Pull to refresh
38
0
Дьячков Андрей @andrew526d

Пользователь

Send message
Вы абсолютно правы, моя ошибка, поправил, спасибо!
Нет, в Quagga при одинаковой AD сравниваются метрики. В этом действительно отличие от Cisco.

Вроде бы разобрался.

В том, что я называл маршрутной информацией (т.е. структуре, где хранится тип протокола, метрика, AD и т.д., в zebra данная структура называется rib) на самом деле может храниться не один next-hop, а несколько разных next-hop'ов (в виде связного списка). При этом если данная маршрутная информация выбирается лучшей, то в ядро linux (FIB) попадают все ее next-hop'ы (если они валидны). Получается, что лучшая маршрутная информация (rib) выбирается одна, но в ядро linux действительно может попасть несколько маршрутов, поскольку у rib может быть несколько next-hop'ов.

При выводе команды show ip route хорошо видно rib с несколькими next-hop. Например, в следующем примере для префикса 10.0.0.1/32 имеются два rib — один статический и другой ospf. При этом у ospf имеется два next-hop — 10.158.47.30 и 172.16.1.30.



При этом, как минимум, для статических маршрутов с разной AD действительно может быть несколько разных rib для одного префикса. Поэтому убрал из текста "(не более одного для каждого протокола)"
Лучший маршрут в рамках одного протокола действительно осуществляется внутри соответствующего демона. Но можно административную дистанцию (AD) у разных протоколов маршрутизации настроить так, что у них она будет совпадать. Тогда, чтобы хоть как-то сравнить такие маршруты от разных протоколов но с одинаковой AD используется метрика. Случаи из жизни, когда нужно было настраивать разные протоколы с одинаковой AD я не могу вспомнить, но, возможно, бывают и такие извращения.

> В случае наличия маршрутов с одинаковой метрикой мы можем иметь балансировку трафика. А значит в таблице маршрутизации может быть несколько маршрутов от одного протокола.

Возможно, Вы действительно правы. По идее, это зависит от конкретных демонов (ospfd, bgpd), будут ли они слать в zebra несколько маршрутов с одинаковой метрикой но с разными next-hop, с ними я еще не разбирался.
Другой вопрос, будет ли zebra все эти маршруты посылать в linux для балансировки трафика. Мне казалось, что она посылает только один из них. В общем, нужно будет с ECMP разобраться повнимательнее, постараюсь посмотреть как оно реализовано.

Исправил, спасибо!

Information

Rating
Does not participate
Registered
Activity