Comments 36
За выбор отвечает
exit-route.sh. По умолчанию он раз в пять секунд проверяет таблицу маршрутизации.
почему не использовать ospf со встроенными весами?
В OSPF может потребоваться анализ качества канала и донастройка весов.
Ну там, GSM-линк скорость потерял из-за дождя или переключения на другой диапазон, техработы на вышке, например...
У меня анонс служит маркером доступности exit-узла, а скрипт связывает его с заранее заданным IPIP-интерфейсом и ставит через него маршрут по умолчанию в таблицу 200)
Из за кольца между exit, то первый exit из списка будет доступен почти всегда)
Или bgp ?)
exit_order выбирает первый доступный exit и направляет default route в таблице 200 через соответствующий IPIP-интерфейс. OSPF/BGP сами по себе этого не делают: они выбирают маршрут, а привязка отдельной policy-таблицы к конкретному IPIP и fail-open всё равно потребуют дополнительной обвязки. Поэтому здесь скрипт проще.
Или IPv6 ?) 464xlat по вкусу
Интересный подход, у меня похожая топология (тоже 3 локации). Остановился на OpenWrt/BGP/BFD/WireGuard и таким образом связал все локации в единую сеть. Также с таким подходом можно иметь anycast роуты, например в каждой локации у меня есть свой dns сервер и из каждой сети он доступен по 10.111.111.111 при этом запросы идут на ближайший (если один упал, то автоматом роутится на другую сеть). Интересно было почитать, спасибо!
Что только не сделают, чтобы jellyfin не ставить...
А без шуток - круто!
Автор просто хотел посмотреть фильм, но, кажется, чуть не собрал из роутеров Skynet, осторожнее, пожалуйста
Tailscale? Он без пиринга, всегда прямые линки между всеми, но так ли пиринг нужен?
в моей схеме нужно чтобы пакет мог пройти транзитом через узлы)
В tailscale завезли «peer relay», тогда твоя нода может выступать релеем без использования их (или selfhosted) DERP. Но я правильно понимаю, ваша схема позволяет перестроить маршрут через несколько соседей при нарушениях связности сразу возле нескольких нод?
Не думали о p2p mesh между нодами за NAT на нижнем уровне?
Через пробитие UDP дырок за NAT? p2p коннекты leaf узлов, если в моей терминологии?)
Да, чтобы не гонять трафик через релей, если его можно отправить напрямую:) с fallback если соединение хуже или установить соединение не удалось)
Как раз поэтому я сделал spine leaf, где spine просто такие же роутре но с белым ip. Я как задумался сколько мороки с пробитие UDP дырок, мне как то перехотелось)
я одно время поддерживал wg и мой собственный протокол, https://github.com/karen07/QUICTun и хотел сделать openvpn, но потом понял что awg топ по скорости и лучше не распыляться)
Еще преимущество что у меня AWG линки, а не WG линки, которые сегодня есть а завтра их нет) причем линки генерятся на псевдослучайный порт, со случайными параметрами обфускации)
Это да, плюс, я тоже боялся когда разворачивал, что wg не поднимется, но нет, работает и на домашнем и на мобильном интернете. Пока работает, а с другой стороны, в наше нестабильное время у нас все "пока" работает. Вон сколько жалоб на проблемы vless протоколов было, а в это время awg прекрасно работал.
Интересная инфраструктура получилась.
Правда, сети с маской /31 имеют только два адреса — адрес сети и широковещательный.
Обычно для связи роутеров "link2link" используется маска /32.
Очень грамотно и продумано сделано! Большое уважение за работу и спасибо, что поделились исходниками)
Буду рад если кто то расскажет, понравился ли ему опыт использования, и есть ли пожелания по доработкам)
Ничего не могу сказать по вашей схеме. Сам пользуюсь связкой tinc(в режиме hub)+bird(ospf) - на роутерах (openwrt) и vps (ubuntu). Все работает, за исключение того что soho роутеры слабенькие, из за этого пропускная способность не большая. Но всегда можно tinc поднять на конечном пс и подрубить в сеть
Расскажите человеку про jellyfin
Как сделать свой DMVPN (не привлекая внимания санитаров).
Я хотел просто посмотреть фильм, а собрал сеть из OpenWrt-роутеров почти как в ЦОД