Архив метки: Network

Mkrotik и vlan по быстрому.

Купили новый маленький роутер от Mikrotik — RB4011iGS+RM. Решили попробовать как он будет работать в маленькой сетке в качестве роутера (странно? Да? 🙂 ). У него есть 10G SFP+ интерфейс, подключенный непосредственно к процессору. Если включить FastPath, то по идее должен справляться.




SFP+ интерфейс естественно в trank. На всякий пожарный eth6, тоже в транк. Eth с 1-го по 5-й в 1-й vlan, в режиме access mode, что бы подключаться прямо в серверной к коммутаторам, если вдруг чего. Остальные не задействованы.




При обращении к Google с вопросом Mirotik+vlan вываливается куча страниц с описанием настройки vlan. Но, проблема в том, что они блин все устарели! В новых версиях router os все уже не так.




Как сейчас рулить vlan с возможностью маршрутизации? Теперь там все через bridge интерфейс.




В первую очередь добавляем сам мост:




> /interface bridge




/interface bridge> add name=core




Добавим к мосту порты, в которых будут бегать тегированные пакеты:




/interface bridge> port




/interface bridge port> add bridge=core interface=sfp-trunk




/interface bridge port> add bridge=core interface=ether6




Порты, работающие в access режиме:




/interface bridge port> add bridge=core interface=ether1




/interface bridge port> add bridge=core interface=ether2




/interface bridge port> add bridge=core interface=ether3




/interface bridge port> add bridge=core interface=ether4




/interface bridge port> add bridge=core interface=ether5




Там же, в разделе bridge есть возможность указывать какие vlan на каком интерфейсе и режим работы интерфейса.




/interface bridge port> /interface bridge vlan




/interface bridge vlan> add bridge=core tagged=sfp-trunk,ether6,core untagged=ether1,ether2,ether3,ether4,ether5 vlan-ids=1




/interface bridge vlan> add bridge=core tagged=sfp-trunk,ether6,core vlan-ids=1010,1011,1254




Итак, мы добавили vlan 1 к нужным нам интерфейсам и заодно определили режимы работы самих интерфейсов. Так же были определены другие vlan, которые будут приходить на mikrotik и в дальнейшем мы будем заниматься маршрутизацией между этими сетями.




На данном этапе пакеты Ethernet начнут бегать в своих vlan.




Пришло время заняться маршрутизацией.




Обязательно добавляйте интерфейс моста в параметре tagget при добавлении vlan в разделе bridge! Без этого у нас ничего не получиться на 3-м уровне 🙁




Для того, что бы маршрутизатор смог маршрутизировать 🙂 нам необходимо для каждого vlan создать свой интерфейс и задать им параметры ip.




Как обычно, интерфейсы создаём в разделе interface vlan (не bridge vlan!).




> /interface vlan




/interface vlan> add interface=core name=VLAN-1254 vlan-id=1254




/interface vlan> add interface=core name=VLAN-1010 vlan-id=1010




/interface vlan> add interface=core name=VLAN-1011 vlan-id=1011




Обратите внимание, что vlan-ы мы добавляем к bridge интерфейсу core. Не зря мы включали на этом интерфейсе режим работы tagged.




Осталось добавить ip адреса на интерфейсы:




> /ip address




/ip address> add address=192.168.1.1/24 interface=core network=192.168.1.0




/ip address> add address=192.168.10.1.24 interface=VLAN-1010 network=192.168.10.0




/ip address> add address=192.168.11.1/24 interface=VLAN-1011 network=192.168.11.0




/ip address> add address=192.168.254.1/24 interface=VLAN-1254 network=192.168.254.0




Наши админы очень любят DHCP сервер mikrotik, поэтому его тоже придется поднимать на этом устройстве. Поскольку интерфейсы сконфигурированы, DHCP сервер настраивается обычным образом.




Вот и все.




Источник: https://www.kryukov.biz/2019/04/mkrotik-i-vlan-po-bystromu/



2022-08-08T00:24:11
Network

Pfsense и MikroTik, настройка VPN туннеля

Инструкция по настройке VPN туннеля типа IpSec между облачным роутером Pfsense и MikroTik. В результате настройки должно получиться объединение двух сетей, за MikroTik и за Pfsense.







Что такое Pfsense




PfSense — дистрибутив для создания межсетевого экрана/маршрутизатора, основанный на FreeBSD. PfSense предназначен для установки на персональный компьютер, известен своей надежностью и предлагает функции, которые часто можно найти только в дорогих коммерческих межсетевых экранах. Настройки можно проводить через web-интерфейс, что позволяет использовать его без знаний базовой системы FreeBSD. Сетевые устройства с pfSense обычно применяются в качестве периметровых брандмауэров, маршрутизаторов, серверов DHCP/DNS, и в технологии VPN в качестве узла топологии hub/spoke.




Настройка VPN в MikroTik для подключения к Pfsense




Со стороны роутера MikroTik будет настроен стандартный VPN туннель типа IpSec. Больше сведений по настройке VPN типа IpSec представлено в статье:




VPN туннель IpSec состоит из двух фаз:




  • PHASE-1 – идентификация устройств между собой, по заранее определенному IP адресу и ключу.
  • PHASE-2 – определение политики для трафика между туннелей: шифрование, маршрутизация, время жизни туннеля.




Создание профиля для MikroTik IpSec phase-1




Настройка находится в IP→IPsec→Profile




Pfsense и MikroTik, создание профиля для IpSec phase-1




Создание Peer для MikroTik IpSec phase-1




Настройка находится в IP→IPsec→Peers




Pfsense и MikroTik, создание Peer для IpSec phase-1




Определение ключа MikroTik IpSec phase-1




Настройка находится в IP→IPsec→Identities




Pfsense и MikroTik, определение ключа IpSec phase-1




Настройка параметров MikroTik Proposal IpSec phase-2




Настройка находится в IP→IPsec→Proposals




Pfsense и MikroTik, настройка параметров Proposal IpSec phase-2




Создание политики(Policies) MikroTik IpSec phase-2




Настройка находится в IP→IPsec→Policies




Pfsense и MikroTik, создание политики(Policies) IpSec phase-2




Настройка политики(Policies) MikroTik IpSec phase-2




Настройка находится в IP→IPsec→Policies→Action




Pfsense и MikroTik, настройка политики(Policies) IpSec phase-2




/ip ipsec profile
add dh-group=modp1024 enc-algorithm=3des hash-algorithm=md5 lifetime=8h name=Pfsense
/ip ipsec peer
add address=10.10.10.10/32 name=Pfsense profile=Pfsense
/ip ipsec proposal
add auth-algorithms=md5 enc-algorithms=3des lifetime=8h name=Pfsense
/ip ipsec policy
add dst-address=192.168.5.0/24 peer=Pfsense proposal=Pfsense 
sa-dst-address=10.10.10.10 sa-src-address=0.0.0.0 src-address=
192.168.1.0/24 tunnel=yes
/ip ipsec identity
add peer=Pfsense secret=Pt36ENepT3t3




Настройка VPN в Pfsense для подключения к MikroTik




Pfsense имеет удобный web интерфейс, с помощью которого и будет производиться настройка VPN туннеля типа IpSec для связи с роутером MikroTik.




Настройка phase-1 для Pfsense IpSec




Создание phase-1 для Pfsense IpSec







Настройка phase-2 для Pfsense IpSec




Настройка phase-2 для Pfsense IpSec




Настройка phase-2 для Pfsense IpSec, шифрование




Настройка phase-2 для Pfsense IpSec, общие параметры




Настройка Pfsense Firewall




Настройка Pfsense Firewall, разрешение внешнего подключения IpSec




Настройка Pfsense Firewall, обмен трафиком внутри VPN




Результат настройки VPN IpSec между Pfsense и MikroTik




После успешно принятых настроек, проверить соединение VPN типа IpSec между Pfsense и MikroTik можно так:




Pfsense и MikroTik, статус VPN туннеля IpSec




MikroTik и Pfsense, статус VPN IpSec туннеля




Источник: https://xn—-7sba7aachdbqfnhtigrl.xn--j1amh/pfsense-i-mikrotik-nastrojka-vpn-tunnelya/



2022-08-08T00:21:27
Network

Объединение сетей с помощью L2TP/IPsec на Mikrotik и Keenetic Ultra II

Появилась задача подключить к локальной сети два дополнительных удалённых офиса. Про настройку OpenVPN сервера для желающим поработать из дома или в командировке я уже рассказывал, однако перспектива выдачи каждому пользователю сети отдельного сертификата с последующей настройкой соединения меня совсем не радовала. Потому для подключения филиалов было решено пойти другим путём.




Объединять сети будем через VPN туннели по технологии L2TP/IPsec без поднятия дополнительных серверов и использования дорогостоящего оборудования, непосредственно на роутерах Mikrotik и Keenetic Ultra II. Поводом для такого объединения, помимо удобства пользователей и моей лени, послужила некорректная работа встроенного L2TP/IPsec клиента в Windows.




Как видно из схемы, пользователи в филиалах должны иметь доступ к терминальному серверу, расположенному за роутером Keenetic Ultra II. Так как на «Кинетике» уже был настроен и благополучно работал L2TP/IPsec сервер, то «Микротикам» досталась роль клиентов. Кроме того, такой вариант существенно проще в настройке, по сравнению с поднятием VPN сервера на «микротике».




Обязательное условие: адреса объединяемых сетей не должны пересекаться между собой.




Настройка L2TP VPN-сервера на роутере Keenetic




С подробностями настройки L2TP/IPsec сервера на Keenetic Ultra можно ознакомиться перейдя по этой ссылке. Там всё просто, потому не буду повторяться. В дополнение к той статье, необходимо остановиться на паре существенных моментов, без которых не возможна нормальная работа VPN туннелей:




  • Отключить NAT для клиентов, оно тут будет только мешать;




  • Снять галочку, напротив поля «Множественный вход», если она там стояла. Это позволит точно указать IP адрес, выдаваемый клиенту L2TP сервером при подключении;







  • Настроить статическую маршрутизацию.







Для удалённых филиалов я выбрал имена office_01 и оffice_02 и назначил им соответсенно статические адреса 172.16.2.35 и 172.16.2.35. Эти адреса, указываются в качестве шлюзов при создании статических маршрутов для сетей, расположенных за ними. У office_01 внутренняя сеть 192.168.11.0/24, office_02 — 192.168.0.0/24




Настройка Mikrotik в качестве клиента L2TP/IPsec




Настройку удаленного клиента начнём с добавления нового интерфейса L2TP Client в разделе интерфейсов. Указываем IP-адрес L2TP сервера, свои учётные данные и общий ключ шифрования IPSec.







Если вы думаете, что этого достаточно для успешной установки соединения с сервером, поднятом на Keenetic Ultra II, то глубоко заблуждаетесь, ибо настройка «микротов» это всегда боль и страдания. Складывается впечатление, что компания Mikrotik намеренно лишает себя прибыли. Я не понимаю, что мешает выпустить нормальные пошаговые руководства по настройке своих железок и стать ведущим игроком на рынке.




Далее требуется указать нужные алгоритмы шифрования SA (Security Association) в настройках IP->IPsec->Proposals и изменить значение параметра PFS Group с modp1024 на none.




Аббревиатура PFS расшифровывается как Perfect Forward Secrecy — что-то связанное со второй фазой обмена ключами в IPsec. Честно говоря, так глубоко в эту тему не вникал и если не ошибаюсь, то на устройствах от Apple данный параметр в настройках IPsec по умолчанию тоже выключен. В общем, чтобы канал до Keenetic Ultra II поднялся, значение параметра PFS Group должно быть none.







Также скорректируем и профиль шифрования по-умолчанию IP->IPsec->Profiles:







Нажимаем «Применить», и если мы всё сделали правильно, соединение должно быть установлено.




Туннель у нас поднялся. Осталась самая малость, чтобы компьютеры за роутером получили доступ в удалённую сеть 192.168.99.0/24, где находится терминальный сервер. Для этого необходимо добавить правило маскарада и новый статический маршрут.




Переходим во вкладку IP->Firewall->NAT:







На вкладке IP->Routes в качестве шлюза указываем созданный интерфейс l2tpMainOffice, а в поле Pref. Source – наш IP-адрес в виртуальной сети:







Аналогичным образом настраивается и клиент для второй сети.




Источник: https://mdex-nn.ru/page/l2tp-ipsec-tunnel-mikrotik-i-keenetik.html



2022-06-14T00:03:42
Network

Настройка BGP для обхода блокировок, версия 3.1. И немного Q&A

 

Близится кожаная свадьба Роскомнадзора с Телеграмом, 16 апреля 2018 года начался крестовый поход, ставший фактически символом уничтожения интернета в России, хотя в глобальной войне, начавшейся в 2012 году, он был всего лишь ярким эпизодом.

 

 

Ковровые блокировки в исполнении РКН стали причиной появления на свет множества различных сервисов, помогающих пользователям сети выживать под бомбежками. Одним из них стал antifilter.download, позволяющий получать списки находящихся под блокировками IP-адресов. Далее пользователи сервиса могли использовать полученную информацию по своему усмотрению. Вариант усмотрений был описан в статье Настройка BGP для обхода блокировок, версия 3, без VPS, которая стала достаточно популярной в сети и породила несколько сотен пользователей сервиса.

Однако «Tempora mutantur et nos mutamur in illis». За прошедшие три года сервис пережил Alpharacks-gate, похоронивший вместе с собой практически все донаты, упирание в технические ограничения как следствие роста количества пользователей, упирание в те же ограничения как следствие взрывного роста количества ip-адресов в списке РКН… Да что только не пережил. Каждое из этих изменений приводило к небольшому устареванию предыдущей статьи и когда неделю назад один из хабраюзеров предложил мне поправить ее под текущие реалии, я понял, что проще родить нового, чем отмыть этого написать новую версию, заодно и ответив на часто задаваемые вопросы. Результат — ниже.

 


 

Зачем это всё

Выполнив описанные ниже действия на своем маршрутизаторе Mikrotik, вы сможете автоматически получать через уже имеющийся у вас VPN доступ к ресурсам, ip-адреса которых занесены в «Единый реестр доменных имен, указателей страниц сайтов в сети «Интернет» и сетевых адресов, позволяющих идентифицировать сайты в сети «Интернет», содержащие информацию, распространение которой в Российской Федерации запрещено».

Мы используем протокол BGP для доставки списка IP-префиксов из «Единого реестра» на ваш маршрутизатор и дальнейшего перенаправления трафика к этим префиксам в VPN-туннель. Здесь и далее под общим термином IP подразумевается IPv4, IPv6-адреса сервисом не обрабатываются.

Если ваш маршрутизатор не Mikrotik, но умеет протокол BGP, вы, скорее всего, сможете использовать этот сервис, адаптировав настройки под своё оборудование. Вариант для Keenetic, например, приведен в полезных ссылках в конце статьи.

 

Что нужно для использования

  1. Маршрутизатор Mikrotik
  2. подключенный к интернету
  3. с VPN куда-то в зону, свободную от блокировок, и использующим протокол, создающий интерфейс (практически любой вариант, кроме чистого IPSEC — в примере используется GRE). В целом тема настройки VPN — отдельная и широкая, а поскольку я ни с одним таким сервисом не аффилирован, описывать на примере кого-либо из них не буду. Будем считать, что VPN у вас есть и работает.

 

Как настроить

Команды, приведенные в цитатах, необходимо выполнять в окне терминала Mikrotik. В целом никто не запрещает настраивать это всё и в Winbox, но разбирать, какие параметры в какое поле Winbox вводить, вам придется самостоятельно.

 

Предварительные ласки

Проверяем наш VPN. Крайне важно, чтобы он работал еще до внедрения сервиса.
Наиболее простым способом проверки будет посещение любого сайта, который показывает ваш внешний IP-адрес (например, 2ip.ru), с включенным и выключенным VPN и фиксированием факта, что отображаемый ip-адрес меняется.

Тут у нас лежит первая и частая засада. Очень часто люди с неэкспертной квалификацией настраивают подключение к VPN по шаблону из интернета с использованием routing mark, особенно когда параллельно используют multiWAN схему. В принципе, ничто не запрещает использовать BGP-префиксы и в такой конфигурации, но ее нужно тщательно продумывать и подстраивать под текущие настройки, что в статье «в общем» не описать. Так что в дальнейшем подразумевается, что вы используете только классическую маршрутизацию по префиксам.

Если у вас сильно зажаты правила файрвола, возможно вам потребуется создать отдельное правило для выпуска трафика BGP с маршрутизатора.

/ip firewall filter add action=accept chain=output protocol=tcp dst-address=45.154.73.71 dst-port=179 out-interface=gre-tunnel1

На место gre-tunnel1 нужно подставить имя вашего интерфейса VPN-туннеля.

 

Укрепи и направь

Прописываем маршрут до сервиса antifilter.download через ваш VPN. Это действие нам поможет от случая, когда где-то на пути какой-то из провайдеров фильтрует BGP (на удивление, таких в России достаточно много).

/ip route add dst-address=45.154.73.71/32 gateway=gre-tunnel1

 

На место gre-tunnel1 нужно подставить имя вашего интерфейса VPN-туннеля.

Также очень полезно иметь маршрут до VPN-сервера, жестко указывающий в вашего провайдера, но если у вас работает VPN — вероятно, такой маршрут у вас уже прописан.

Для работы VPN обычно используют маршрут по умолчанию, указывающий в VPN-туннель — после активации сервиса в этом маршруте смысла нет и его нужно удалить или задизаблить.

 

Глубокое проникновение

Настраиваем пиринг с сервисом.

/routing bgp instance set default as=64512 ignore-as-path-len=yes router-id=81.117.103.94 /routing bgp peer add hold-time=4m in-filter=bgp_in keepalive-time=1m multihop=yes name=antifilter remote-address=45.154.73.71 remote-as=65432 ttl=default
/routing filter add action=accept chain=bgp_in comment=»Set nexthop to VPN» set-in-nexthop-direct=gre-tunnel1

 

Первой командой мы создаем процесс BGP на вашем устройстве. В ней:

 

  • 64512 — 16-битный номер автономной системы. Заменяем на любой по вашему желанию, кроме ASN сервиса (65432). В нашем конкретном случае нам не важно, какой там будет указан номер в диапазоне от 1 до 65534, но если делать все правильно — RFC6996 говорит нам, что для частного использования выделен диапазон 64512-65543.
  • 81.117.103.94 — router ID (32 бита) в формате IPv4-адреса. В общем случае нам, опять же, не важно, какой там будет указан ID, но чтобы уменьшить вероятность пересечения с другим пользователем — лучше использовать ваш текущий внешний IP-адрес (посмотрев его на том же 2ip.ru). При его изменении менять router ID совершенно не обязательно.

 

Второй командой мы создаем BGP соединение с сервисом antifilter.download. В ней ничего менять не надо.

Третьей командой мы указываем, что для всех маршрутов, полученных от сервиса, нужно установить в качестве next-hop интерфейс нашего VPN. В ней на место gre-tunnel1 нужно подставить имя вашего интерфейса VPN-туннеля.

 

… и обоюдный оргазм

 

Если всё настроено правильно — через несколько десятков секунд, в течение которых процессор маршрутизатора будет на 100% загружен обработкой списка полученных префиксов, все заработает и трафик до полученных IP-адресов будет отправляться в VPN.

То, что пиринг поднялся, можно посмотреть по пути Routing — BGP — Peers в Winbox:

 

 

State должен быть Established, а в поле Count — отличное от нуля количество полученных префиксов.

Также характерным признаком того, что префиксы получены, является следующая картинка по пути IP — Routes в Winbox:

 

 

По клику где указано можно раскрыть весь список полученных префиксов и увидеть что-то вроде:

 

 

Важно, чтобы в поле Gateway было указано имя вашего интерфейса VPN и слово reachable (Distance при этом у вас будет другим, это нормально).

Если что-то не работает — проверьте прежде всего доступность сервиса. Сервер откликается на пинг, так что команда ping antifilter.download вполне себе покажет, все ли хорошо со связностью. Если пинг проходит — проверьте соответствие IP-адреса в пинге 45.154.73.71, потому что вы вполне можете читать эту статью в момент, когда сервис уже куда-то мигрировал.

Далее перепроверьте настройки и прочитайте Q&A ниже. А потом спросите в комментариях здесь или на канале MikrotikRus, там я тоже иногда поддерживаю решение, да и кроме меня там очень много грамотных людей.

 

А поговорить? (Q&A)

 

  • Решение перекрывает не все проблемы с блокировками
    • Конечно нет. Нужно понимать, что поскольку действие (блокировка) лежит фактически на 7 уровне модели ISO/OSI, то и противодействие (обход блокировки) наиболее эффективно работает на том же уровне модели. Сервис же предоставляет возможность борьбы на 3 уровне модели, что автоматически означает неидеальное совпадение. Если хочется более точного варианта — плагин для браузера, автоматически отправляющий некоторые сайты через прокси-сервер (например, SwitchyOmega для Chrome), будет работать гораздо лучше.
  • Я всё настроил, а мой любимый ресурс все равно блокируется. При этом подходящего префикса для его адреса в списке нет
    • Вероятно, РКН внес другой IP-адрес ресурса в реестр. Список IP-адресов генерируется полностью автоматически и не может редактироваться со стороны сервиса под каждый отдельный кейс вручную. Самое простое решение — прописать до любимого ресурса статический маршрут в VPN на маршрутизаторе.
  • Я всё настроил, а мой любимый ресурс все равно блокируется. При этом подходящий префикс для его адреса в списке есть, но nslookup выдает другой адрес из сети моего провайдера
    • Вероятно, ваш оператор связи использует многоуровневую систему блокировки контента, в том числе перехватывающую DNS-запросы с соответствующей коррекцией ответа. В этом случае вам может помочь перенаправление DNS в VPN или более интеллектуальные способы решения, описанные в частности в статье Переводим на DoH домашнюю сеть.
  • После включения сервиса в VPN отправляется трафик на IP-адреса, отсутствующие в реестре. Дефолт в VPN я отключить не забыл
    • Вероятно, в реестре есть IP-адрес из той же IP-подсети /24. По BGP сервис отдает только суммаризованные вверх префиксы /24 (т.е. даже если в реестре есть только адрес 1.2.3.4 — вы получите префикс 1.2.3.0/24, перекрывающий весь диапазон от 1.2.3.0 до 1.2.3.255).
      Вы всегда можете исправить эту ситуацию для себя и конкретных адресов, прописав маршрут на них через провайдера в вашем роутере статически (статика по умолчанию побеждает динамику).
  • Раньше сервис можно было настроить для получения отдельных IP-адресов (по /32). Как получать их сейчас?
    • К сожалению, сервис банально уперся в проблему масштабирования. После появления нескольких сотен пользователей и заполнения реестра в отдельные моменты более чем 2 миллионами префиксов схождение BGP-процесса сервиса могло занимать десятки минут, со всеми вытекающими в виде разрыва сессий по таймауту. Many Bothans died to… Многие оптимизации были сделаны в попытках решить эту проблему, включая миграцию с VPS на выделенный сервер, разделения на фронт- и бэкенды и т.п., но кардинально проблема была решена только отказом от раздачи по BGP списка отдельных IP-адресов.Если вам необходим список отдельных адресов, вы можете получать их с сайта по HTTPS и далее внедрять в свое решение, например, как описано в статье Настройка BGP для обхода блокировок, или «Как я перестал бояться и полюбил РКН». Мало того, с сайта доступно гораздо больше разных списков, в том числе и в формате Mikrotik Address List, что позволяет более гибко использовать решение.
  • РКН замедляет Twitter, решение может помочь?
    • По сути — нет, потому что все эти замедления не отражаются в реестре (хотя законность такого действия спорна, но who cares). Для замедления используются ресурсы расставленных у операторов связи ТСПУ (DPI от компании RDP.RU), управление которыми идет централизованно и закрыто от постороннего взгляда. И высока вероятность, что в недалеком будущем вся фильтрация уйдет в эту сторону и реестр перестанет быть источником данных для нас.Мысль о развитии кастомных списков «Вот эти IP-адреса надо сделать доступными для обхода замедления» есть, но для бесплатного пет-проджекта нахрапом это требует чересчур много постоянных инвестиций. Если удастся придумать форму, в которой я смогу тратить на этот сервис разумное количество собственных сил и средств — обязательно реализую и опишу. Кстати, если у кого-то есть идеи, как это сделать, пишите в комментариях, обсудим. Ибо одна голова — хорошо, а две — мутация.
  • У меня есть вопрос, ответа на который нет в Q&A
    • Задайте его в комментариях к статье. Постараюсь ответить на все там же, а если вопрос будет интересен большому числу читателей — добавлю в Q&A.

 

Заключение

Предполагаю, что реестр как источник IP-префиксов для обхода блокировок исчерпает себя в начале-середине 2022 года, поэтому вряд ли эта статья потребует новой версии, скорее просто уйдет в архив как неработающее решение.

Мечтаю, впрочем, что это и подобные решения станут иметь исключительно историческую ценность и интернет будет тем, чем был раньше — транспортом для информации вне политики. Но эти мечты вряд ли сбудутся.

Так что, как обычно, буду рад, если статья кому-то поможет или, что еще лучше, сподвигнет более глубоко изучать сетевые технологии. Потому что в грамотности — наша сила.

 

Полезные ссылки

 

  • Прежде всего статья Настройка BGP для обхода блокировок, или «Как я перестал бояться и полюбил РКН» — она была наиболее полной и подробно описывающей логику решения. Если вам хочется более глубоко погрузиться в концепцию — эта статья практически идеальна (разве что сейчас уже имеет смысл внедрять это на bird v2, с соответствующей коррекцией конфигураций решения). И еще более полезны комментарии к ней.
  • Если вам интересно более глубоко понять, что такое и с чем едят BGP в частности и сетевые технологии вообще — не могу не порекомендовать «Сети для самых маленьких» от проекта LinkMeUp
  • Если вам хочется решение на Address List — NeoBeZ опубликовал короткий скрипт для выгрузки нужного с сервиса. Не забудьте, что потом по этому листу нужно реализовать набор правил для перенаправления трафика.
  • Для роутеров Keenetic есть решение от Александра Рыжова. Оно, конечно, базируется на старой версии сервиса, но легко корректируется под новую.

 

Конфиг для микротика с 7й прошивкой:

 

/routing bgp template

add as="ВАША ВЫДУМАННАЯ AS БЕЗ СКОБОК" disabled=no hold-time=4m input.filter=bgp_in .ignore-as-path-len=yes keepalive-time=1m multihop=yes name=antifilter routing-table=main



/routing bgp connection

add disabled=no hold-time=4m input.filter=bgp_in .ignore-as-path-len=yes keepalive-time=1m local.address= "ВАШ ВНУТРЕННИЙ ИП БЕЗ СКОБОК" .role=ebgp multihop=yes name=antifilter_bgp remote.address=45.154.73.71/32 .as=65432 router-id="ВАШ ВНЕШНИЙ ИП БЕЗ СКОБОК" routing-table=main templates=antifilter



/routing filter rule

add chain=bgp_in disabled=no rule="set gw *9; accept;" <<<===Вот тут по поводу *9 я не уверен. У емня вместо *9 название VPN интерфейса, но в конфиге именно так.

 

Источник: https://habr.com/ru/post/549282/

Переименовываем интерфейсы в Ubuntu 18.04|20.04|22.04

В данной статье расcкажу как можно легко переименовать сетевые интерфейсы в Ubuntu18.04|20.04|22.04.




Ещё в Ubuntu 16.04 для настройки сети мы использовали файл /etc/network/interfaces и при помощи команды service networking restart запускали сделанные изменения, в указанном выше файле, в работу. Но уже начиная с Ubuntu 18.04 разработчики внедрили новый тип настройки сети – NetPlan, а также пересмотрели названия сетевых интерфейсов. Это вызвало некоторые неудобства с настройкой сети. Представьте что вы используете USB-modem, который в свою очередь поднимает сетевой интерфейс, и вместо названия eth0 выдает вам что-то вроде этого: nse45trg6504. Как вы думаете в конфигурационном файле утилиты netplan будет удобно вбивать данное название? Думаю что НЕТ!




Но как изменить название интерфейса на более привычное? Да очень просто.




Переименовываем сетевой интерфейс в Ubuntu 18.04|20.04|22.04




Запускаем терминал на нашей системе. Сделать это можно нажав ctrl+T, ну или при помощи ssh подключения.




Далее смотрим какие интерфейсы присутствуют в нашей системе, для этого вводим следующую команду:




ip addr




1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 4c:ed:fb:da:8c:c9 brd ff:ff:ff:ff:ff:ff




Альтернатива данной команде может быть старая команда ifconfig -a, но разработчики в сборках удалили её. Если хотите можете установить и её, для меня же она более наглядно выводит результат.




Для установки вводим:




sudo apt install net-tool




ну а далее




sudo ifconfig -a




lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 35  bytes 4950 (4.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 35  bytes 4950 (4.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens0f1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 4c:ed:fb:da:8c:c9  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0




Как видно из вывода у меня в системе присутствует всего два интерфейса – это локальная петля lo и сетевой интерфейс ens0f1. Вот как раз второй интерфейс мы и будем переименовывать.




Для этого запоминаем или скопируйте у данного интерфейса его MAC-адрес (информация в выводе выше). У меня он следующий:4c:ed:fb:da:8c:c9




Далее открываем файл настроек утилиты netplan:




sudo nano /etc/netplan/00-installer-config.yaml




  • у вас может быть другое название файла, но суть от этого не меняется.




Вот теперь внесем изменения в данный файл.




Помните что в данном файле нужно четко соблюдать количество пробелов для блоков и ни в коем случае не использовать табуляцию.




Было




# This is the network config written by 'subiquity'
network:
  version: 2
  ethernets:
    ens0f1:
      dhcp4: true




Стало




# This is the network config written by 'subiquity'
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: true
      match:
        macaddress: 4c:ed:fb:da:8c:c9
      set-name: eth0




После изменений вводим команду для проверки и применении настроек




sudo netplan try




если ошибок в файле не было, то должно появится вот такое окно с отчетом в 120 секунд:




 Warning: Stopping systemd-networkd.service, but it can still be activated by:
  systemd-networkd.socket
Do you want to keep these settings?


Press ENTER before the timeout to accept the new configuration


Changes will revert in 120 seconds




Configuration accepted.




Если же появились ошибки, то их необходимо исправить. В выводе будет указанна строка и порядковый номер в котором допустили ошибку. Еще раз повторюсь – не забываем о yaml синтаксисе при редактировании конфигурационного файла.



[endtxt]




. . . .




2022-03-22T17:40:05
Network

Проброс PPPoE соединение в Linux

Сегодня поговорим о том, как можно пробросить PPPoE соединение на Linux к другим машинам находящимся в локальной сети.






Предыстория




Завел я у себя дома небольшой сервер для всяких мирских нужд (торрент качалка, NAS-сервер, MiniDLNA-сервер, Web-сервер, Cloud-сервер ну и так далее.) Вот все это великолепие решил настроить в виртуальной среде. Для достижения поставленной цели выбрал проект Proxmox. На данный момент это версия Proxmox 7.1-4. В качестве провайдера выступает не без известный RT, у которого в качестве идентификации клиента используется протокол PPPoE. Вот тут-то и начинаются танцы с бубном:




В Proxmox v7 используется пакет – ifupdown2, для управления сетевыми настройками. Мне же чтобы поднять PPPoE соединение нужен был пакет pppoeconf у которого в зависимостях еще используется пакет – ifupdown. Ну как вы понимаете данные пакеты мешают работе друг друга. Встал выбор:




  • либо сносить с родительской машины, а это сам Proxmox, пакет ifupdown2 и устанавливать pppoeconf.
  • либо же поднимать виртуальную машину, а у же в ней использовать PPPoE соединение.




Я решил идти по второму пути, а для этого необходимо было пробросить PPPoE в локальную сеть. В этом мне помогла утилита pppoe-relay идущая в зависимостях пакета pppoe.




Синтаксис команды pppoe-relay




pppoe-relay [опции]




Опции pppoe-relay




  • S interface – Добавляет выбранный интерфейс в список интерфейсов, управляемых pppoe-relay. К этому интерфейсу могут быть подключены только PPPoE-серверы.
  • -С interface – Добавляет выбранный интерфейс в список интерфейсов, управляемых pppoe-relay. К этому интерфейсу могут быть подключены только PPPoE-клиенты.
  • -B interface – Добавляет интерфейс в список интерфейсов, управляемых pppoe-relay. К этому интерфейсу могут быть подключены как PPPoE-клиенты, так и серверы.
  • -n num – Позволяет не более num одновременных сеансов PPPoE. Если не указано, то значение по умолчанию равно 5000. num может варьироваться от 1 до 65534.
  • -i timeout – Задает тайм-аут простоя сеанса. Если оба одноранговых узла в сеансе простаивают более 30 секунд, сеанс завершается. Если тайм-аут указан равным нулю, сеансы никогда не будут прекращены из-за простоя.




Обратите внимание, что процедура истечения срока действия сеанса ожидания никогда не выполняется чаще, чем каждые 30 секунд, поэтому тайм-аут является приблизительным. Значение тайм-аута по умолчанию составляет 600 секунд (10 минут).




  • -F – Опция приводит к тому, что pppoe-relay не разветвляется на задний план; вместо этого он остается на переднем плане.
  • -h – Опция печатает краткое сообщение об использовании и завершает работу.




Примеры pppoe-relay




pppoe-relay -S eth0 -C eth1




Приведенный выше пример ретранслирует кадры между PPPoE-клиентами в сети eth1 и PPPoE-сервером в сети eth0.




pppoe-relay -B eth0 -B eth1




В данном пример применяется прозрачная ретрансляция. Кадры ретранслируются между любым набором клиентов и серверов в сетях eth0 и eth1.




pppoe-relay -S eth0 -C eth1 -C eth2 -C eth3




Этот пример ретранслирует кадры между сервером в сети eth0 и клиентами в сетях eth1, eth2 и eth3.




Как узнать имена интерфейсов.




Для того чтобы узнать какие у вас присутствуют интерфейсы необходимо набрать следующую команду:




ip addr




1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp3s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 3c:d9:2b:f9:f4:21 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::3ed9:2bff:fef9:f44c/64 scope link 
       valid_lft forever preferred_lft forever
3: enp3s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master vmbr0 state UP group default qlen 1000
    link/ether 3c:d9:2b:f9:f4:22 brd ff:ff:ff:ff:ff:ff
4: enp4s0f0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq master vmbr0 state DOWN group default qlen 1000
    link/ether 3c:d9:2b:f9:f4:23 brd ff:ff:ff:ff:ff:ff
5: enp4s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq master vmbr1 state DOWN group default qlen 1000
    link/ether 3c:d9:2b:f9:f4:24 brd ff:ff:ff:ff:ff:ff
.....




или же если у вас установлен пакет net-tool, то команда может быть вот такой:




ifconfig




lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 3730211  bytes 709093223 (676.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3730211  bytes 709093223 (676.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp3s0f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::3ed9:2bff:fef9:f44c  prefixlen 64  scopeid 0x20<link>
        ether 3c:d9:2b:f9:f4:21  txqueuelen 1000  (Ethernet)
        RX packets 117905888  bytes 153216511837 (142.6 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 47840145  bytes 17578056257 (16.3 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp3s0f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 3c:d9:2b:f9:f4:22  txqueuelen 1000  (Ethernet)
        RX packets 36628262  bytes 16051408741 (14.9 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 99954928  bytes 127959590855 (119.1 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp4s0f0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 3c:d9:2b:f9:f4:23  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp4s0f1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 3c:d9:2b:f9:f4:24  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0




Заключение




После использования утилиты pppoe-relay я перекинул кадры PPPoE в локальную сеть. На Виртуальной машине установил пакет pppoeconf и с помощью него установил соединение с интернетом. Далее уже настроил данную виртуальную машину на раздачу интернета в локальную сеть, т.е. поднял на ней DHCP-сервер, DNS-сервер и NAT. Теперь все это великолепие работает без перебоев. В будущем планирую установить USB-modem для бесперебойного канала связи. Ведь как говорится может случится всякое, а особенно с провайдером RT.



[endtxt]




. . . .




2022-03-22T10:34:32
Network