Ещё обнаружен очень интересный эффект:
После перезагрузки вроде бы всё заработало, но присмотревшись - ан нет. Без проблем ну никак. Оба коммутатора принимают анонсы от сервера и друг от друга. Сервер почему-то принимает только анонсы от второго коммутатора. Хотя между коммутаторами - всё отлично работает. Привожу конфиги:
DGS-3627 #1, 10.0.0.18/29
Код:
create ospf area 10.0.0.16 type normal
config ospf ipif System area 10.0.0.16 priority 1 hello_interval 10 dead_interval 40
config ospf ipif System authentication none metric 1 state enable passive disable
config ospf router_id 10.0.0.18
enable ospf
DGS-3627 #2, 10.0.0.20/29
Код:
create ospf area 10.0.0.16 type normal
config ospf ipif System area 10.0.0.16 priority 10 hello_interval 10 dead_interval 40
config ospf ipif System authentication none metric 1 state enable passive disable
config ospf router_id 10.0.0.20
enable ospf
На сервере quagga 0.99.6, 10.0.0.17/29
Код:
interface eth0
ip address 10.0.0.17/29
!
...
interface eth3
ip address 10.0.0.3/29
!
...
router-id 10.0.0.3
!
router ospf
ospf router-id 10.0.0.3
redistribute connected
redistribute static metric 200
passive-interface eth1
passive-interface eth1.128
passive-interface eth1.130
passive-interface eth1.132
passive-interface eth1.134
passive-interface eth1.136
passive-interface eth1.138
passive-interface eth1.140
passive-interface eth1.142
passive-interface eth1.144
passive-interface eth1.146
passive-interface eth1.148
passive-interface eth1.150
passive-interface eth1.154
passive-interface eth1.156
passive-interface eth1.162
passive-interface eth1.164
passive-interface eth1.166
passive-interface eth1.168
passive-interface eth1.170
passive-interface eth1.192
passive-interface eth2
network 10.0.0.0/29 area 0.0.0.0
network 10.0.0.16/29 area 10.0.0.16
Там где многоточие (...) - описание виртуальных интерфейсов, они в ospf не участвуют, поэтому я их здесь и не привёл.
Дампом видно, что процесс обмена идёт:
Код:
tcpdump -nni eth0 ip[9] == 89
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
09:52:06.406788 IP 10.0.0.17 > 224.0.0.5: OSPFv2, LS-Update (4), length: 64
09:52:06.407796 IP 10.0.0.18 > 10.0.0.17: OSPFv2, LS-Ack (5), length: 44
09:52:06.408045 IP 10.0.0.20 > 10.0.0.17: OSPFv2, LS-Ack (5), length: 44
09:52:09.679997 IP 10.0.0.18 > 224.0.0.5: OSPFv2, Hello (1), length: 52
09:52:12.952016 IP 10.0.0.20 > 224.0.0.5: OSPFv2, Hello (1), length: 52
09:52:13.266300 IP 10.0.0.17 > 224.0.0.5: OSPFv2, LS-Update (4), length: 92
09:52:13.268352 IP 10.0.0.20 > 224.0.0.5: OSPFv2, LS-Update (4), length: 92
09:52:13.534436 IP 10.0.0.17 > 224.0.0.5: OSPFv2, Hello (1), length: 52
09:52:13.680587 IP 10.0.0.18 > 224.0.0.6: OSPFv2, LS-Ack (5), length: 64
09:52:13.702749 IP 10.0.0.17 > 224.0.0.5: OSPFv2, LS-Ack (5), length: 64
В данный момент там уже более 200 маршрутов, писать их ручками на всех железках - я даже не представляю как это сделать, что бы не ошибиться, в стиле "маршрутная петля".
