• Как использовать полученный посредством OSPF gateway для BGP маршрутов?

    @aborouhin Автор вопроса
    Strabbo, вот спасибо за развёрнутый ответ, есть что почитать и в чём дальше разбираться! OSPF уже сейчас на лупбеках, как минимальными силами с BGP извернуться (не становясь экспертом по всем его нюансам :) - буду экспериментировать!
    Написано
  • Как использовать полученный посредством OSPF gateway для BGP маршрутов?

    @aborouhin Автор вопроса
    Strabbo, так, либо я очень туплю (бывает), либо всё ещё не до конца описал задачу.

    Попробую ещё раз по порядку на упрощённом примере. Как оно сейчас:
    - есть зарубежный сервер 10.0.0.1 (допустим, это адрес его loopback-интерфейса, который анонсируется по OSPF);
    - есть российский роутер 10.1.1.1, который очень хочет ходить через 10.0.0.1 на неугодные РКН сайты;
    - есть два VPN-тоннеля между 10.0.0.1 и 10.1.1.1, в первом из которых у них адреса 10.0.1.1 и 10.0.1.2, а во втором - 10.0.2.1 и 10.0.2.2 соответственно;
    - на VPN-интерфейсах настроен OSPF, так что в зав-ти от того, какой из них поднят, маршрут от 10.1.1.1 до 10.0.0.1 строится или через 10.0.1.1, или через 10.0.2.1;
    - есть BGP-сервер (его адрес вообще не важен, ну пусть будет 10.2.2.2), который собирает и парсит реестр РКН и отдаёт его роутеру 10.1.1.1 (и не только ему) по BGP с номером AS 64999 и community 100; каждая строчка с подсетью в конфиге bird выглядит как "route X.X.X.X/X via 10.0.0.1" (но на самом деле пофиг, какое там "via", т.к. мы его меняем на следующем шаге, и для каждого роутера будет свой шлюз);
    - 10.1.1.1, получая по BGP маршруты от 10.2.2.2, прогняет их через фильтр "if (bgp-communities includes 64999:100) {set gw 10.0.1.1; accept} reject".

    6549114b77d4b962813828.png

    Что конкретно надо поменять в этой системе, чтобы когда тоннель 10.0.1.2->10.0.1.1 отвалится и маршрут до 10.0.0.1 на 10.1.1.1 будет построен OSPF через 10.0.2.1, полученные по BGP маршруты продолжали работать?

    Спасибо за уделённое время заранее :)

    P.S. Кажется, я понял, что Вы имели в виду (рисовать схемки полезно, наступает просветление :) Если по BGP маршруты будет отдавать не сторонний сервер (10.2.2.2), а сам тот сервер, через который и надо строить маршрут (10.0.0.1) - то он может указать next-hop self, и вместо этого self подставится тот адрес, который сейчас выбран OSPF. Так?

    Это надо протестировать и если это работает - это решает одну половину проблемы (хоть и не без сложностей в реализации), спасибо! Но это не решает другую половину проблемы. На самом деле у нас не два роутера в сети, а изрядно больше. И может так получиться, что прямых тоннелей между 10.0.0.1 и 10.1.1.1 не останется живых, но останутся тоннели от каждого из них до какого-нибудь 10.3.3.3, и OSPF построит маршрут именно через этот 10.3.3.3... примерно вот так:

    65491f8fa4c95119000031.png

    VPN1 отвалился, маршрут до 10.0.0.1 строится через два VPN и промежуточный узел 10.3.3.3. Как рассказать нашему 10.1.1.1, что полученные по BGP маршруты должны теперь идти через шлюз 10.0.2.1?
    Написано
  • Как использовать полученный посредством OSPF gateway для BGP маршрутов?

    @aborouhin Автор вопроса
    Strabbo, как оно работает?
    У меня есть маршрут к 10.0.0.1 через 10.0.1.1 и маршрут к 10.0.0.1 через 10.0.2.1. В фильтре BGP я не могу указать или один, или другой. Допустим, я указал 10.0.1.1. А потом этот тоннель отваливается, OSPF меняет маршрут к 10.0.0.1 на 10.0.2.1. А фильтр BGP пытается установить маршрут через уже недоступный шлюз 10.0.1.1.
    Написано
  • Как использовать полученный посредством OSPF gateway для BGP маршрутов?

    @aborouhin Автор вопроса
    Руслан Федосеев, gateway - это шлюз, конечно, но почему только по умолчанию-то? :)
    Я не хочу перенести маршруты из OSPF в BGP. Я хочу использовать для полученных по BGP маршрутов выбранный OSPF шлюз.

    Конкретный упрощённый пример я в комментарии к первому ответу привёл.
    Если совсем грубо, то хочется следующего:
    - роутер получил по BGP пачку подсетей с номером community 100
    - роутер знает, что к этим подсетям надо ходить через хост 10.0.0.1
    - но к хосту 10.0.0.1 есть много потенциальных маршрутов, конкретный из которых выбирается OSPF
    - надо указать шлюзом для этих подсетей тот, через который мы сейчас ходим к 10.0.0.1

    Ну или если это невозможно - то достичь того же результата путём пересмотра схемы вообще.
    Написано
  • Как использовать полученный посредством OSPF gateway для BGP маршрутов?

    @aborouhin Автор вопроса
    P.S. Наверное, ещё забыл упомянуть важный момент. Почему я не анонсирую маршруты по OSPF с того самого хоста, через который они должны маршрутизироваться в итоге? Ну т.е. почему бы голландскому серверу не анонсировать все заблокированные РКН префиксы? Вроде бы, это решило бы проблему.
    Но:
    а) Во-первых, эти префиксы (которых МНОГО) прилетят и к тем роутерам, которым они вообще не нужны (какое дело турецкому роутеру или другому зарубежному серверу до блокировок РКН)?
    б) Во-вторых, даже если оверхед от п. "а" окажется приемлемым, не всем роутерам нужны все префиксы. Сейчас каждый роутер в фильтре принимает те BGP comminities, которые ему актуальны (российский - списки РКН и турецкий GeoIP, турецкий - российский GeoIP и т.п.), а остальные игнорирует. Ну и шлюз тот или иной подставляет, в зависимости от community. В OSPF, вроде бы, есть аналог communities - теги, но работать на Микротике я их не смог заставить. На одном роутере указываешь тег, на другом он его не видит... и судя по гуглению, это by design, а не у меня руки кривые...
    Написано
  • Как использовать полученный посредством OSPF gateway для BGP маршрутов?

    @aborouhin Автор вопроса
    Спасибо за ответ, но ничего не понял :)
    Мне default route как раз никуда дистрибьютить не надо, он у каждого роутера свой. Надо указать конкретный gateway (тот, который из всех возможных вариантов, ведущих к целевому хосту, сейчас доступен и выбран OSPF), чтобы к отдельным подсетям (полученным по BGP) ходить через него.
    Написано
  • Как использовать полученный посредством OSPF gateway для BGP маршрутов?

    @aborouhin Автор вопроса
    Спасибо за ответ. Сорри за "воду", я из того вымирающего поколения, которое ещё умеет читать и писать тексты длиннее 140 символов :)

    Предлагаемый вариант не до конца понятен. Сейчас и без отдельного OSPF-инстанса всё работает примерно так же - получаем маршруты по BGP, применяем фильтр для подмены шлюза. Вопрос только в том, что этот шлюз в разные моменты разный, а написать прямо в фильтре "подставь тот шлюз, через который мы в данный момент времени ходим вот до этого хоста" не получится.

    Можно вот прямо на пальцах на упрощённом примере?
    Скажем, у нас роутер, который должен ходить к заблокированным сайтам через зарубежный сервер 10.0.0.1. К этому серверу у нас два VPN-тоннеля, в первом из них у него адрес 10.0.1.1, во втором - 10.0.2.1. По BGP мы получили 200 тысяч префиксов, которым надо шлюз указать или 10.0.1.1, или 10.0.2.1, смотря через какой из них у нас OSPF сейчас маршрут до 10.0.0.1 строит.
    Что конкретно сделать на роутере, чтобы этого достичь? Заранее благодарю.
    Написано
  • Как подключить домофон к умному дому?

    @aborouhin Автор вопроса
    Спасибо за ответ. Модули сопряжения видел у того же Wirenboard, но они рассчитаны на типичный российский домофон.
    Ссылка удалена модератором.
    Там подразумевается, что в квартиру приходит 2 провода от вызывной панели к трубке, в разрыв которых мы и подключаем модуль. У меня же витая пара на 8 проводников (7 из них используется), и подключение последовательное, от соседа к соседу, а не напрямую к вызывной панели. Такой модуль сопряжения очевидно не подойдёт, а других я не нашёл. Если есть ссылки / названия на модули, которые могли бы подойти с моей схемой подключения - буду благодарен!
  • Как подключить домофон к умному дому?

    @aborouhin Автор вопроса
    Прошу прощения за задержку с ответом, был не рядом с обсуждаемым девайсом. Вот фото со всех возможных сторон, заранее благодарю, если они натолкнут на какие-то идеи:
    63dedc90aba9f404598921.jpeg
    63dedc99bf0ec539859045.jpeg
    63dedca0ec686852123072.jpeg
  • Как подключить домофон к умному дому?

    @aborouhin Автор вопроса
    Нет, как раз видео там нет ни в квартире, ни внизу. В рамках этой же системы есть модели с видео, но у меня установлена простая голосовая. По ссылке в вопросе на неё можно посмотреть. Имеем две кнопки "говорить" и "открыть", одну лампочку (которая по неведомой причине загорается не только когда вызов идёт в мою квартиру, но и когда с гостем внизу общается или открывает ему дверь любой сосед) и динамик, играющий незамысловатую мелодию, когда вызывают конкретно меня. Ну и контакты для подключения дверного звонка на лестничной площадке, чтобы при его нажатии музыка играла на той же панели - но с ним-то вопросов нет.
    Решение проблемы паяльником очевидно - подключаемся к тому самому динамику (ну или если смогу поймать какой-то более ранний участок цепи к нему, куда приходит один сигнал, а не музыка) и к кнопке открытия. От динамика реагируем на первые признаки жизни (и дальше игнорируем последующие ноты), контакты кнопки замыкаем.
    Но хотелось без паяльника, просто и элегантно на ту клеммную колодку, куда приходит входящая и уходит уходящая витая пара, кинуть ещё свою и что-то там на другом конце с ней сделать. Но вот что конкретно, вопрос... Разбирать я эту панель уже разбирал, собрал обратно, если фото внутренностей поможет - разберу ещё раз.