Назад | Перейти на главную страницу

Несоответствие подсети Juniper OSPF и маршрутизатора Quagga

Я пытаюсь настроить зону 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-адреса.

Без полных конфигураций трудно понять, что еще не так, но я был бы очень осторожен, учитывая текущую конфигурацию и то, что может случиться с этими командами распространения;)