Как мне настроить маршрутизатор BIRD для связи с соседом в другой подсети?

Введение

Я пытаюсь установить базовую связь по протоколу RIPv2 между двумя хостами, на которых выполняется маршрутизация BIRD демон .

У меня есть Хост A с интерфейсом enp0 с адресом 10.0.1.50/24 .
m пытается установить базовую связь с протоколом RIPv2 между двумя хостами, на которых работает демон маршрутизации BIRD. У меня есть хост A с интерфейсом enp0 с адресом 10.0.1 ....

Введение

Я пытаюсь установить базовую связь по протоколу RIPv2 между двумя хостами, на которых выполняется маршрутизация BIRD демон .

У меня есть Хост A с интерфейсом enp0 с адресом 10.0.1.50/24 .
m пытается установить базовую связь с протоколом RIPv2 между двумя хостами, на которых работает демон маршрутизации BIRD. У меня есть хост A с интерфейсом enp0 с адресом 10.0.1 ....

Введение

Я пытаюсь установить базовую связь по протоколу RIPv2 между двумя хостами, на которых выполняется маршрутизация BIRD демон .

У меня Хост A с интерфейсом enp0 с адресом 10.0.1.50/24 .
У меня есть другой хост Хост B с интерфейсом enp1 с адресом 10.1.1.25/24 . Эти интерфейсы напрямую соединены кабелем. Я могу пинговать между обеими машинами, если я добавлю статический маршрут на обеих машинах.

Файлы конфигурации

У меня есть следующий bird.conf на хосте A :

protocol kernel {
        learn;                  # Learn all alien routes from the kernel
        persist;                # Don't remove routes on bird shutdown
        scan time 20;           # Scan kernel routing table every 20 seconds
        export all;             # Default is export none
}

protocol device {
    scan time 10;           # Scan interfaces every 10 seconds
}

protocol direct {
        interface "enp0"
}

protocol rip MyRIP {    
    export all;
    import all;
    interface "enp0" { mode multicast;};
}

bird.conf на хосте B идентичен, за исключением того, что enp0 заменен на enp1

Начальные результаты

После запуска демона птицы на обоих хостах я могу выполнить tcpdump -ni enp0 -vv

13:21:41.943537 IP (tos 0xc0, ttl 1, id 4933, offset 0, flags [none], proto UDP (17), length 132)
    10.1.1.25.520 > 224.0.0.9.7742: [udp sum ok] UDP, length 104
13:21:41.943704 IP (tos 0xc0, ttl 1, id 150, offset 0, flags [none], proto UDP (17), length 272)
    10.0.1.50.520 > 224.0.0.9.7742: [bad udp cksum 0xec48 -> 0x1219!] UDP, length 244

. Я могу перейти в командную строку birdcl и запустить show rip neighbors и получить пустой Таблица.

Как заставить его работать

Если я настрою адреса в одной подсети, я могу запустить show rip neighbors и увидеть 10.0.1.50 в моих списках соседи.

Заключение

Как я могу заставить эти маршрутизаторы указывать друг друга в качестве соседей, если два конца канала не находятся в одной подсети?

У меня должно быть какое-то неверное представление о том, как работают сети, разве маршрутизаторам не нужно постоянно разговаривать с соседями, которые не находятся в одной подсети?

Я не зависаю от BIRD- конкретный ответ.

1
задан 25 July 2016 в 21:07
1 ответ

Еще в древние времена, когда в сети было больше протоколов, чем TCP / IP, я запускал RIP. Тогда это был RIPv1, и он использовал широковещательные рассылки. Сетевые топологии выглядели примерно так:

[10.0.0.0/24] <-- router --> [10.0.1.0/24] <-- router --> [10.0.2.0/24]
[10.0.3.0/24] <-- router ------^        ^---- router  --> [10.0.4.0/24]
[10.0.5.0/24] <-- router -------^      ^----- router  --> [10.0.6.0/24]

Где все маршрутизаторы будут совместно использовать подсеть, в которой есть только маршрутизаторы. Для конфигураций с двумя маршрутизаторами между ними был протянут один кабель, как и вы. Для более крупных установок подсеть будет работать с быстрым сетевым устройством (надеюсь, коммутатором, но не всегда). Таким образом, все было в двух прыжках, и схождение маршрутов прошло просто. Это то, что у нас было в то время.

Затем пришли RIPv2 и многоадресная рассылка, и большее количество переходов было менее подвержено проблемам сходимости. Если TTL многоадресной рассылки был установлен на +1 по диаметру прыжка, каждый маршрутизатор фактически объявлял об этом напрямую каждому другому маршрутизатору, что ускоряло конвергенцию.

Однако ключевая вещь, о которой следует подумать: посмотрите на адреса источника в вашем TCPDUMP вывод.

 10.1.1.25.520 > 224.0.0.9.7742
 10.0.1.50.520 > 224.0.0.9.7742

Маршрутизатору 10.0.1.50 было сообщено, что маршрутизатор по адресу 10.1.1.25 имеет локальную подсеть 10.1.1.0/24 . . Однако маршрутизатор с адресом 10.0.1.50 не имеет маршрута к адресу 10.1.1.25 , поэтому он не будет добавлять его в таблицу. Многоадресная рассылка - это ваш канал объявлений, но он не может передавать маршрутизируемый трафик.

Еще не все потеряно.

Если вы по какой-то причине ограничены одним кабелем, вы можете определить виртуальные интерфейсы. Где enp0.0 - на 10.3.1.0/24, а enp0.1 - на 10.0.1.0/24. Таким образом, вы можете использовать 10.3.1.0/24 в качестве «сети маршрутизации».

3
ответ дан 3 December 2019 в 18:33

Теги

Похожие вопросы