ситуация:
два свитча DGS-3620.
поднимаю на обоих интерфейс loopback с /32 маской. между свитчами сеть с маской /30. настраиваю на обоих свитчах маршрут до соседского лупбека и получай таймаут при пинге с обоих сторон.
что самое интересное, если я не буду прописывать конкретно лупбеки в маршрутах а укажу default маршрут друг на друга на обоих свитчах, то лупбеки начинают пинговаться.
возможно с этим связана ещё более интересная ситуация:
сеть из DGS-3620, соединённых по принципу partial mesh. на всех подняты лупбеки с /32 маской и /30 маска между соседями как обычно. поднят ospf.
пингуем со свитчей соседей, дальних соседей и получаем такую картину - если количество хопов до соседа - чётное, пинг не проходит, если нечётное - проходит. при этом все реальные (не лупбеки) интерфейсы пингуются у всех и отовсюду.
далее ещё интереснее. ставим в сеть dxs-3600 с возможностью default-information originate, поднимаем на нём также ospf на /30 интерфейсах до нескольких соседей и начинаем пинговать лупбеки свитчей, в которых теперь присутствует дефолтный маршрут в их таблицах маршрутизации. на этот раз в местах где раньше просто не пинговалось, вылетает ошибка
TTL EXCEEDED. делаем ещё интереснее, подключаем к например dxs сервер /30 сетью, эту же сеть разумеется анонсим в ospf, а на сервере дефолт маршрут пишем на dxs. и вот что я получаю:
Код:
$ ping -m 10 10.96.0.5
PING 10.96.0.5 (10.96.0.5): 56 data bytes
36 bytes from 10.96.2.13: Time to live exceeded
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 0b86 0 0000 00 01 f7ab 172.16.0.3 10.96.0.5
Код:
$ ping -m 11 10.96.0.5
PING 10.96.0.5 (10.96.0.5): 56 data bytes
64 bytes from 10.96.0.5: icmp_seq=0 ttl=253 time=1.115 ms
Код:
$ ping -m 12 10.96.0.5
PING 10.96.0.5 (10.96.0.5): 56 data bytes
36 bytes from 10.96.2.13: Time to live exceeded
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 1aaa 0 0000 00 01 e887 172.16.0.3 10.96.0.5
Код:
$ ping -m 13 10.96.0.5
PING 10.96.0.5 (10.96.0.5): 56 data bytes
64 bytes from 10.96.0.5: icmp_seq=0 ttl=253 time=1.154 ms
от места пинга до 10.96.0.5 ровно 3 хопа, если пинговать свитч стоящий дальше на один хоп, то проходить будет только пинг отправленный с чётным TTL.
господа уважаемые, я что-то в основах сетей не понимаю? как может
чётность TTL влиять на то пройдёт пакет или гдето закольцуется и дропнется? я всю жизнь был убеждён что если и есть какое-то кольцо в маршрутизации, то пакет будет в любом случае теряться, вне зависимости от своего ттл. как так получается?
и вообще, почему в ситуации когда есть прямой маршрут до лупбека соседа, DGS-3620 использовать дефолтный маршрут? ув. сотрудники д-линка, попробуйте на стенде восстановить хотябы первую ситуацию. вот конфиги двух свитчей:
свитч A:
create vlan peer tag 100
config vlan peer add tagged 1
create ipif peer 10.1.1.1/30 peer state enable
create loopback ipif lb 10.0.0.1/32 state enable
config ospf router_id 10.0.0.1
config ospf ipif lb state enable passive enable
config ospf ipif peer state enable
enable ospf
свитч B:
create vlan peer tag 100
config vlan peer add tagged 1
create ipif peer 10.1.1.2/30 peer state enable
create loopback ipif lb 10.0.0.2/32 state enable
config ospf router_id 10.0.0.2
config ospf ipif lb state enable passive enable
config ospf ipif peer state enable
enable ospf
в такой конфигурации лупбеки соседа свитчи не видят (при том что маршруты до лупбека соседа по ospf прилетают исправно, они видны в таблице маршрутизации обоих свитчей). если на каждом из них прописать что-то типа create ipr default 10.1.1.1, то всё начинает работать.
прошивка на всех свитчах последняя доступная на момент написания поста