IVB Posted August 9, 2011 Posted August 9, 2011 Заранее приношу извинения за длинное описание - но коротко не получится. Имеем: Linux 2.6.29-gentoo-r5 quagga 0.99.18 На квагге настроено два bgp view, которые формируют таблицы маршрутов (каждый view - свою таблицу) и отдают эти таблицы (по протоколу bgp) на соответствующие маршрутизаторы (каждый view - на свой маршрутизатор). В качестве маршрутизаторов выступают Extreme Networks Summit X450a с версией XOS 12.5.4.5. Для определенности будем называть эти маршрутизаторы "основной" и "удаленный". Соответственно, bgp view будем называть "RS основной" и "RS удаленный". "RS удаленный" получает анонсы от трех соседей (2000+, 2000+ и 500+ маршрутов), и итоговую таблицу маршрутов отдает своему маршрутизатору и "RS основному". В этой связке все работает. "RS основной" получает анонсы от "RS удаленного" и еще от 6 соседей (5500+ от одного из них, от остальных - по 1-2 маршрута). Все маршруты принимаются корректно. В таблице маршрутов я вижу все принятые анонсы от всех соседей. Далее результирующая таблица маршрутов отдается на свой маршрутизатор. И вот тут возникает ситуация, которую я не могу понять. На маршрутизатор не анонсируются маршруты, которые были получены от "RS удаленного"! Вообще не анонсируются. Т.е. получается следующее: Допустим, для сети a.a.a.a/a есть два маршрута, один из них получен от соседа с 5500+ маршрутов, другой - от "RS удаленого". Если лучшим является маршрут от соседа 5500+ - он анонсируется на маршрутизатор. Если лучшим является маршрут от "RS удаленного" - эта сеть вообще не анонсируется. Я понимаю, что где-то что-то недоконфигурил. Вот только пока не могу сообразить, где. Вот кусок конфига квагги, где описывается сосед - собственный маршрутизатор: router bgp NNNNN view XXX bgp router-id A.A.A.A network B.B.B.B/B network C.C.C.C/C neighbor 192.168.101.2 remote-as NNNNN neighbor 192.168.101.2 description "SSSSSSSSSS" neighbor 192.168.101.2 update-source 192.168.101.20 neighbor 192.168.101.2 soft-reconfiguration inbound Т.е. никаких фильтров нет - должны отдаваться все анонсы. Вот кусок конфига X450a: configure bgp AS-number NNNNN configure bgp routerid 192.168.101.2 create bgp neighbor 192.168.101.20 remote-AS-number NNNNN configure bgp neighbor 192.168.101.20 source-interface ipaddress 192.168.101.2 configure bgp neighbor 192.168.101.20 description "quagga Routing Server" enable bgp neighbor 192.168.101.20 configure bgp neighbor 192.168.101.20 route-policy in bgp_in enable bgp Тут есть фильтр - вот он: Policy: bgp_in entry row00 { if match any { nlri 0.0.0.0/8 ; nlri 10.0.0.0/8 ; nlri 127.0.0.0/8 ; nlri 169.254.0.0/16 ; nlri 172.16.0.0/12 ; nlri 192.0.0.0/24 ; nlri 192.0.2.0/24 ; nlri 192.88.99.0/24 ; nlri 192.168.0.0/16 ; nlri 198.18.0.0/15 ; nlri 198.51.100.0/24 ; nlri 203.0.113.0/24 ; nlri 240.0.0.0/4 ; } then { deny ; } } entry row10 { if match any { nlri B.B.B.B/B ; nlri C.C.C.C/C ; } then { deny ; } } entry row99 { if match any { } then { permit ; } } row00 запрещает принимать анонсы немаршрутизируемых сетей, row10 запрещает принимать анонсы моих собственных сетей. Других запретов нет. Тем не менее, часть маршрутов не анонсируется. Подскажите, пожалуйста, хотя бы в какую сторону смотреть. Вставить ник Quote
vlad11 Posted August 9, 2011 Posted August 9, 2011 row00 запрещает принимать анонсы немаршрутизируемых сетей, row10 запрещает принимать анонсы моих собственных сетей. Других запретов нет. Тем не менее, часть маршрутов не анонсируется. Подскажите, пожалуйста, хотя бы в какую сторону смотреть. 1) нарисуйте графическую схему. 2) почитайте про route-reflector Вставить ник Quote
IVB Posted August 9, 2011 Author Posted August 9, 2011 1) нарисуйте графическую схему. Попытался (см. вложение). Все объекты (RS основной, RS удаленный, X450a основной, X450a удаленный) имеют одинаковый номер AS. Анонсы маршрута a.a.a.a/a приходят на "RS основной" от одного из соседей и от "RS удаленный" Я их "вижу" в таблице маршрутов на "RS основной": Network Next Hop Metric LocPrf Weight Path * ia.a.a.a/a ppp.pp.p.pp 0 jjjjj kkkkk i *> qq.qqq.qqq.qqq 0 jjjjj kkkkk i Маршрут с nexthop равным ppp.pp.p.pp пришел от "RS удаленный" (соответственно, его статус помечен как "i" - internal), маршрут с nexthop равным qq.qqq.qqq.qqq пришел от соседа. В вышеприведенном фрагменте кода "лучшим" выбран маршрут с nexthop равным qq.qqq.qqq.qqq, и анонс этого маршрута нормально уходит на "X450a основной" Если же возникает ситуация, как на нижеприведенном фрагменте кода: Network Next Hop Metric LocPrf Weight Path *>ia.a.a.a/a ppp.pp.p.pp 0 jjjjj kkkkk i * qq.qqq.qqq.qqq 0 jjjjj kkkkk i т.е. "лучшим" считается маршрут с nexthop равным ppp.pp.p.pp - такой маршрут не анонсируется на "X450a основной". Получается, маршруты со статусом "internal" (полученные от маршрутизатора с таким же AS) не анонсируются на другой маршрутизатор с таким же AS. 2) почитайте про route-reflector Да, это ответ на мой вопрос. В настройках "RS основной" нужно пир "X450a основной" описать как route-reflector-client. Тогда на него будут анонсироваться все маршруты, в том числе и со статусом "internal" (т.е. полученные от пира в той же AS). Cпасибо за ответ - тему можно закрывать. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.