Я пытаюсь настроить зону OSPF между Juniper MX80 и маршрутизатором Quagga. Маршрутизатор Quagga имеет настроенный OSPF и сеть 199.192.100.0/28, объявленную в приветственном пакете. Но Juniper MX80 отклоняет его со следующей ошибкой:
Jan 22 04:14:38.371296 OSPF packet ignored: subnet mismatch from 199.192.100.2 on intf ae0.0 area 0.0.0.0 Jan 22 04:14:38.371515 OSPF rcvd Hello 199.192.100.2 -> 224.0.0.5 (ae0.0 IFL 336 area 0.0.0.0) Jan 22 04:14:38.371538 Version 2, length 44, ID 10.10.90.4, area 0.0.0.0 Jan 22 04:14:38.371559 checksum 0x0, authtype 0 Jan 22 04:14:38.371581 mask 255.255.255.240, hello_ivl 10, opts 0x2, prio 1 Jan 22 04:14:38.371602 dead_ivl 40, DR 199.192.100.2, BDR 0.0.0.0
Соответствующие части конфигурации:
Можжевельник MX80:
ashinn@mx2# show interfaces ae0 aggregated-ether-options { lacp { active; } } unit 0 { family inet { address 199.192.100.253/30; } } ashinn@mx2# show protocols ospf export redistributeconnected; area 0.0.0.0 { area-range 199.192.100.0/28; interface xe-0/0/1.0; interface ae0.0 { interface-type p2p; } }
Интерфейс ae0.0 - это интерфейс, который обращен к интерфейсу bond0 маршрутизатора Quagga:
! interface bond0 ip ospf cost 50 ipv6 nd suppress-ra ! router ospf log-adjacency-changes redistribute kernel redistribute connected network 199.192.100.0/28 area 0.0.0.0 neighbor 199.192.100.253 !
И интерфейс Quagga для bond0:
[ashinn@lb2 ~]$ ip addr show dev bond0 8: bond0: mtu 1500 qdisc noqueue state UP link/ether 00:25:90:27:8a:be brd ff:ff:ff:ff:ff:ff inet 199.192.100.254/30 brd 199.192.100.255 scope global bond0 inet 199.192.100.2/28 scope global bond0 inet6 fe80::225:90ff:fe27:8abe/64 scope link valid_lft forever preferred_lft forever
Я пробовал без neighbor statement
в Quagga, а также попробовал установить ip ospf network point-to-point
в Quagga тоже. Ни то, ни другое не имеет значения.
Я нашел эту статью http://kb.juniper.net/InfoCenter/index?page=content&id=KB23533&cat=T1600_1&actp=LIST&showDraft=false что, кажется, объясняет ту же проблему. Но это только предлагает исправить несоответствие маски подсети. Где может быть это несоответствие? Если он конфликтует с подсетью интерфейса точка-точка / 30, то почему?
Проблема в том, что у вас настроена неправильная подсеть в OSPF в Quagga. Вам нужен / 30 как сетевой оператор:
network 199.192.100.252/30 area 0.0.0.0
Оператор сети сообщает Quagga, на каком интерфейсе включить OSPF. Для каждого интерфейса, имеющего IP-адрес из этой подсети, будет включен OSPF.
Точно так же 199.192.100.2/28, вероятно, не должно быть на этом устройстве bond0. Попробуйте поместить его в интерфейс lo и указать, что этот интерфейс является пассивным.
Как это:
!
interface bond0
ip ospf cost 50
ipv6 nd suppress-ra
!
router ospf
log-adjacency-changes
redistribute kernel
redistribute connected
network 199.192.100.252/30 area 0.0.0.0
network 199.192.100.0/28 area 0.0.0.0
passive-interface lo
neighbor 199.192.100.253
!
Также я бы рекомендовал установить режим интерфейса OSPF между MX80 и Quagga как точка-точка. Это ускорит время схождения.
Я знаю, что это немного поздно, но для пояснения несколько вещей должны совпадать, чтобы OSPF формировал отношения между соседями. К ним относятся номер области, тип интерфейса (точка-точка или широковещательный), таймеры приветствия, таймеры задержки и маска подсети интерфейсов, которые образуют соседей. MX ищет своего соседа в той же маске подсети, что и локальный интерфейс MX.
Ваш / 30 диапазон, в котором находятся соседи OSPF частично попытка сформировать смежность выходит за пределы / 28, который включен для OSPF ... отсюда и возникает несоответствие маски подсети. Вывод отладки сообщает вам все, что вам нужно знать, чтобы исправить это. OSPF rcvd Hello
должен соответствовать другой стороне. ЕСЛИ маски не совпадают, смежность никогда не образуется.
Было бы гораздо лучше иметь отдельные соединения между маршрутизаторами MX80 + Quagga или, по крайней мере, сегмент сети, выделенный для OSPF, между тремя маршрутизаторами (хотя в этом случае вам потребуется interface-type p2p
выключен, потому что вам нужны выборы DR. Причина, по которой у вас возникла эта проблема, заключалась в том, что Quagga пытался установить смежность OSPF с пакетами Hello из неправильной подсети / настроенного IP-адреса.
Без полных конфигураций трудно понять, что еще не так, но я был бы очень осторожен, учитывая текущую конфигурацию и то, что может случиться с этими командами распространения;)