Июл 12 2009

BGP community. Настройка в Quagga.

По мере роста числа клиентов, количества BGP сессий вы убедитесь, что управлять становится все сложнее. То один попросит анонсировать в тот канал, но не анонсировать в другой и тому подобное. Потихоньку замечаешь что управление такой системой занимает черезчур много времени. Решение простое, нужно использовать community. Внедрение bgp сommunity снимает сразу ряд проблем. Первое — это мы можем передовать принадлежность комьюнити между своими маршрутизаторам, тем самым избавившись от проверок на каждом хосте access листами и второе, более важное, наши клиенты теперь смогут сами устанавливать принадлежность своих анонсов к той или иной community, тем самым сами смогут управлять поведением проходящих через вашу автономную систему анонсов. Главное все правильно и красиво спроектировать. А теперь вернемся к вопросу как же все таки работать c community.

Для того, что бы в этот вопросе разобраться построим нашу изначальную схему на базе community. Схема выглядит так:
bgpnet
Свою сеть 192.168.1.0/24 авнономной системы AS65535 мы будем анонсировать с community 65535:0, для этого надо вначале описать community:

vtysh
configure terminal 
ip community list standart  MYNET permit 65535:0

теперь нужно создать route-map который можно будет назначить сети:

route-map SET-COMMUNITY permit 10
 set community 65535:0

и теперь припишем этот роуте мап к нашей сети:

network 192.168.1.0/24 route-map SET-COMMUNITY

Теперь наши анонсы будут помечены community 65535:0. Теперь мы можем запретить анонсировать что либо отличное от нашей автономной системы и сети входяще в нее, для этого сделаем такую route-map:

route-map ME-OUT permit 10
 match community 65535:0

И поставим route-map на наши neighbors:

 neighbor 192.168.0.2 route-map ME-OUT out
 neighbor 192.168.0.6 route-map ME-OUT out

То есть конфигурационный файл bgp роутера будет таким:

router bgp 65535
 bgp router-id 192.168.0.1
 network 192.168.1.0/24
 neighbor 192.168.0.6 remote-as 65533
 neighbor 192.168.0.6 soft-reconfiguration inbound
 neighbor 192.168.0.6 route-map ME-OUT out
 neighbor 192.168.0.2 remote-as 65534
 neighbor 192.168.0.2 soft-reconfiguration inbound
 neighbor 192.168.0.2 route-map ME-OUT out
!
ip community-list standard MYNET permit 65535:0
!
route-map ME-OUT permit 10
 match community 65535:0

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

Для того, что бы передавалось community необходимо указать в настройках:

neighbor 192.168.0.2 send-community both

хотя в последних версиях Quagga передача community разрешена по умолчанию. Ключевое слово both означает что передавать и extended и standart community.
В следующих статьях я постараюсь применить типичное применение community в работе.

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Украинская Баннерная Сеть