"Поделиться" провайдером который отдаёт два адреса в одной подсети.

Обсуждение ПО и его настройки
Ответить
kirill_ant
Сообщения: 9
Зарегистрирован: 25 дек 2019, 12:40

Вводные:
Есть микрот А, у него есть провайдер, он даёт два адреса из одной сети по IPoE, предположим это 1.1.1.1/25 и 1.1.1.2/25 со шлюзом 1.1.1.126
Есть второй микрот Б. Они связаны между собой каналом связи L2, псевдо-эзернет, то есть виланы нельзя.
У микрота Б есть свой провайдер. Микрот Б (а точнее его владелец) хочет использовать канал микрота А как резервный, при этом адрес 1.1.1.2/25 он хочет держать сам.
Есть у кого какие мысли как, если не хочется EoIP, положим по причине того что не хочется платить ни за лишнюю инкапсуляцию ни за бриджинг на конце А.
А, и да, сразу, провайдер на конце А - условно суровый, то есть они никогда не пошлёт первым ARP-запрос ху из 1.1.1.2 даже если снаружи на 1.1.1.2 вы будете посылать пинги, будет ответ unreachable, сначала надо чтобы сам 1.1.1.2 что-то куда-то в мир послал, ну или не в мир а просто куда-то в том вот L2 где шлюз живёт, как я экспериментально понял. А, и если вы сначала таким вот образом "зарегистрируете" себя с неким MAC, то будьте потом любезны чтобы весь остальной трафик лился с этого MAC, даже на ARP-запрос вам не ответят если вы вдруг пошлёте его с другого MAC. Два адреса на один MAC то бишь алиас - повесить можно вроде, не возбраняется. А, да, ROS v7.
 
Свой вариант пока постить не буду чтобы не замутнять разум. Вдруг у кого-то родится кристально чистая схема, а я тут со своими костылями..


karton
Сообщения: 103
Зарегистрирован: 21 мар 2025, 06:34

Что за L2 канал между ними? Нельзя ли сбриджевать его и обойтись без доп инкапсуляции? Если не нравиться EoIP можно рассмотреть другие L2 туннели, но думаю разницу в производительности заметно не будет, иных решений я не вижу. Также не совсем понял, L2 канал независим от основного провайдера? т.е. он не упадёт просто вместе с провайдером Б? А если делать туннель просто через провайдера Б то понятно что использовать его как резерв не выйдет, он просто упадёт вместе с провайдером


kirill_ant
Сообщения: 9
Зарегистрирован: 25 дек 2019, 12:40

Что за L2 канал между ними?

Ну, Ethernet, но виланы нельзя, я сам в вилане - Q-in-Q - нету. ТАм ещё должен мой внутренний трафик ходить, не WAN. Резервирование канала - это как-бы в нагрузку.
Нельзя ли сбриджевать его и обойтись без доп инкапсуляции?
Да как-то не хотелось бриджевать мне тут, вот совсем. И MTU понижать - тоже не хотелось. Как буд-то тогда корячится например MPLS но там вроде тоже будет оверхед какой-то видимо да и вообще - из пушки по воробьям.
L2 канал независим от основного провайдера?
Зависим, но L2 припадает значительно реже чем провайдерский BRAS, или аплинк, по опыту, так-что смысл есть.

Ну, я так то в принципе писал выше что решил, просто без деталей.
 
Решил на базе MACVLAN + ARP publishing + VRF и совершенно банального IP-форвардинга, просто адреса у меня (микрота А) в данном VRF - нету, но это не мешает мне форвардить пакеты. И я даже умею нормально отвечать что вот он я ещё один хоп на вашем пути в трассировке, всё по красоте.
Только одна маааленькая наркомания остаётся - я не могу делать ARP разрешение шлюза в этом VRF потому как адреса у меня опять же - нету, а с левого адреса как я и писал если спросить, то не ответят, а без знания какому МАКу форвардить как-то сложно собственно форвардить )) Так-то в лабе если такое поднять, где везде микроты то там вообще всё идеально работает, микрот не проверяет валидность спрашивающего ARP - ответит на любой запрос.
Пока заткнул тупо копированием ARP из @main в нужный VRF, и наверное если ничего умнее не найдётся то так и буду делать это скриптом по планировщику.


DenSyo
Сообщения: 16
Зарегистрирован: 22 сен 2024, 13:24
Контактная информация:

По простому. На стороне Б должен быть основной маршрут через А, должны быть маршруты между локальными сетями, на wan интерфейсе роутера А должны быть объявлены оба внешних адреса (требуется для dstnat, srcnat будет работать без этого). На роутере Б необходимо настроить маркировку маршрутов для мультиван, если на роутере А более одного провайдера - тоже, причем, обязательно с поддержкой dst-nat (схемы есть разные).

Код: Выделить всё

/ip firewall nat
chain=srcnat src-address=[локальная сеть Б] out-interface=wan action=src-nat to-addresses=1.1.1.2
chain=dstnat dst-address=1.1.1.2 in-interface=wan action=dst-nat to-address=[локальный адрес роутера Б]
Правило srcnat помещаем выше основного правила nat (masquerade или src-nat на wan).
Самого давно интересовала организация использования нескольких адресов на одном wan, решение таким и виделось, как его привел, но проверить получилось только сейчас. С недавних пор на обслуживании Микротик у которого два из нескольких провайдеров дают по два пула адресов, есть где развернуться в экспериментах. Проверил работоспособность приведенных правил совместно с использованием маркировки маршрутов в mangle для выбора провайдера при выходе из локалки - все работает.


Ответить