Wiki
Clone wikiconfigs / network / hardware / cisco / routing / BGP
BGP
Префиксы
Получаем только default маршруты (ибо fullview от 2+ апстримов 3845 не выдержит). Для исключения ошибки на нейборы навешиваем префикс-лист DEFAULT_ONLY
ip prefix-list DEFAULT_ONLY seq 5 permit 0.0.0.0/0 router bgp 65000 network 8.8.8.0 mask 255.255.255.0 neighbor 1.1.1.1 remote-as 65001 neighbor 1.1.1.1 prefix-list DEFAULT_ONLY in neighbor 1.1.1.1 route-map AS_ISP1_PREP out neighbor 2.2.2.2 remote-as 65002 neighbor 2.2.2.2 prefix-list DEFAULT_ONLY in neighbor 2.2.2.2 route-map AS_ISP2_PREP out
Поднятие пира
Важно
Стоит постоянно помнить о том, что по умолчанию маршрутизатор будет анонсировать все маршруты всем пирам. Поэтому любого neighbor лучше создавать потушеным (просто правило хорошего тона):
router bgp 65000 neighbor 1.1.1.1 shutdown neighbor 1.1.1.1 remote-as 65001
Не очень то работает, так что сначала все таки определяем remote-as и только потом тушим:
cs3845km(config-router)#neighbor 3.3.3.3 shutdown % Specify remote-as or peer-group commands first
Ripe-db
После поднятия пира необходимо обновить запись в ripedb, объект aut-num
aut-num: AS65000 as-name: TEST-AS descr: Test remarks: Upstreams import: from AS65001 accept ANY export: to AS65001 announce AS65000 import: from AS65002 accept ANY export: to AS65002 announce AS65000
Балансировка трафика
Входящий
Препенды
Балансировка входящего трафика осуществляется при помощи препендов. Для этого на каждого пира создаются отдельные роутмапы:
router bgp 65000 neighbor 1.1.1.1 route-map AS_ISP1_PREP out neighbor 2.2.2.2 route-map AS_ISP2_PREP out route-map AS_ISP1_PREP permit 10 match ip address prefix-list AS_PREFIX set as-path prepend 65000 65000 route-map AS_ISP2_PREP permit 10 match ip address prefix-list AS_PREFIX ip prefix-list AS_PREFIX seq 5 permit 8.8.8.0/24
set as-path prepend 65000 65000
clear ip bgp 1.1.1.1 soft
Не сбрасывайте сразу всех нейборов, дайте пару минут раздуплиться для каждого нейбора. Ну и сбрасывайте только тех, на которых были произведены изменения.
Более тонкая балансировка
Конфигурирование препендов методом, показанным выше -- хороший способ быстрой и грубой балансировки входящего трафика. Для более тонкой балансировки можно использовать установление препендов на стороне апстрима. Любой порядочный магистральный оператор связи имеет на своей сети community, которые, как правило, описываются в ripedb. Для примера возьмем гордую AS9002:
remarks: --------------------------------------------------------------- remarks: *********** BGP communities accepted from downstream ********** remarks: --------------------------------------------------------------- remarks: remarks: 1.Common, prepending to all peers (but not to customers): remarks: 9002:6553X, where remarks: X < 5 prepend X times to all peers remarks: X = 5 advertise to customers but not to peers remarks: remarks: Note #1. If the downstream's route isn't tagged with 9002:6553X remarks: community, then community 9002:65530 is applied on ReTN side remarks: (advertise everywhere without prepending) remarks: remarks: 2.Specific, prepending to peer ASN: ASN:6553X, where remarks: X < 5 prepend X times to peer ASN remarks: X = 5 do not advertise to peer ASN remarks: remarks: Note #2. Specific communities are applied for a limited subset remarks: of ReTN peers, listed below remarks: remarks: Note #3. If downstream tags the route with community ASN:6553X, remarks: then community 9002:6553X is ignored while advertising to peer remarks: ASN (if is present in the list below). Otherwise the route is remarks: advertised to peer ASN in accordance with community 9002:6553X remarks: remarks: Note #4. Unaccepted bgp communities, including well-known ones, remarks: are ignored and stripped remarks: remarks: Specific communities are applied for ASNs: remarks: remarks: IPv4 peers remarks: ========== remarks: 286 KPN Telecom remarks: 702 MCI Europe / Verizon Business EMEA remarks: 1273 Cable and Wireless remarks: 1299 TeliaSonera remarks: 2686 AT&T EMEA remarks: 2914 NTT Communications remarks: 3216 Vimpelcom / Golden Telecom remarks: 3786 LG UPlus / DACOM remarks: 4134 China Telecom remarks: 4323 TW Telecom remarks: 4436 nLayer Communications remarks: 4651 CAT Telecom remarks: 4766 Korea Telecom remarks: 5400 British Telecom remarks: 5577 root S.A. remarks: 5580 Atrato IP Networks remarks: 5588 GTS Central Europe remarks: 6327 Shaw Cablesystems / Big Pipe remarks: 6453 TATA Communications / Teleglobe remarks: 6461 Zayo / AboveNet Communications remarks: 6539 Bell Canada remarks: 6830 Liberty Global / UPC Broadband remarks: 6849 UkrTelecom remarks: 6939 Hurricane Electric remarks: 7473 Singapore Telecommunications remarks: 8220 COLT Telecommunications remarks: 8928 Interoute remarks: 8997 RosTelecom, North-West branch remarks: 9121 Turk Telekom remarks: 9304 Hutchison Global Communications remarks: 9318 Hanaro Telecom remarks: 10310 Yahoo remarks: 12389 RosTelecom remarks: 12714 NetByNet remarks: 13213 UK2 remarks: 13237 LambdaNet remarks: 13335 CloudFlare remarks: 13414 Twitter remarks: 15133 EdgeCast Networks remarks: 15412 FLAG Telecom remarks: 16265 LeaseWeb remarks: 16509 Amazon.com remarks: 19092 Zayo / 360Networks remarks: 19151 Broadband One / WV Fiber remarks: 22822 Limelight Networks remarks: 24940 Hetzner Online remarks: 32934 Facebook remarks: 36351 SoftLayer Technologies remarks: 44237 RosTelecom, Central branch remarks: 46489 Justin.tv / TwitchTV remarks: 46786 IP Transit, Inc. remarks: 47541 VKontakte-SPb remarks: 47542 VKontakte-Msk remarks: 48061 RuTube remarks: remarks: IPv6 peers remarks: ========== remarks: 702 MCI Europe / Verizon Business EMEA remarks: 1273 Cable and Wireless remarks: 1299 TeliaSonera remarks: 2497 Internet Initiative Japan remarks: 2914 NTT Communications remarks: 4635 HKIX Route Servers remarks: 6453 TATA Communications / Teleglobe remarks: 6695 DE-CIX Route Servers remarks: 6777 AMS-IX Route Servers remarks: 6939 Hurricane Electric remarks: 8631 MSK-IX Route Servers remarks: 8714 LINX Route Servers remarks: 13030 Init Seven remarks: 13237 LambdaNet remarks: remarks: ---------------------------------------------------------------
ip bgp-community new-format router bgp 65000 neighbor 3.3.3.3 remote-as 9002 neighbor 3.3.3.3 send-community neighbor 3.3.3.3 prefix-list DEFAULT_ONLY in neighbor 3.3.3.3 route-map TO_RETN out route-map TO_RETN permit 10 match ip address prefix-list AS_PREFIX set community 24940:65532
Инструменты мониторинга
Lookin Glass
Проверять наличие анонсов можно при помощи инструмента Looking Glass, выбрав PoP, режим «v4 bgp route terse» и вбив туда префикс (8.8.8.0/24) Вывод должен быть примерно таким:
inet.0: 490875 destinations, 887664 routes (490850 active, 69 holddown, 263 hidden) + = Active Route, - = Last Active, * = Both A V Destination P Prf Metric 1 Metric 2 Next hop AS path * ? 8.8.8.0/24 B 170 100 90 12389 65000 65000 I unverified >87.245.233.29 ? B 170 100 90 12389 65000 65000 I unverified >87.245.233.29 ? B 170 100 90 702 3216 65000 I unverified >87.245.233.29 ? B 170 100 90 702 3216 65000 I unverified >87.245.233.29
Qrator radar
Удобный ресурс для постоянного мониторинга своих сетей на предмет уязвимостей и прочих косяков
radar.qrator.net
Проверки состояния пиров
Для проверки работы пиров необходимо проверить их статус командой
#sh ip bgp summary BGP router identifier 8.8.8.8, local AS number 65000 BGP table version is 8, main routing table version 8 2 network entries using 234 bytes of memory 3 path entries using 156 bytes of memory 4/2 BGP path/bestpath attribute entries using 496 bytes of memory 2 BGP AS-PATH entries using 48 bytes of memory 1 BGP community entries using 24 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP using 958 total bytes of memory BGP activity 3/1 prefixes, 4/1 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 1.1.1.1 4 3216 130 137 8 0 0 02:04:52 1 2.2.2.2 4 12389 113707 103967 8 0 0 3w0d 1
Также от пиров мы получаем last resort - список полученых роутов можно поглядеть командой
#sh ip bgp BGP table version is 8, local router ID is 8.8.8.8 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path r 0.0.0.0 1.1.1.1 0 65001 i r> 2.2.2.2 0 65002 i *> 8.8.8.0/24 0.0.0.0 0 32768 i
cs3845km#sh ip bgp neighbors 1.1.1.1 advertised-routes BGP table version is 8, local router ID is 8.8.8.8 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 8.8.8.0/24 0.0.0.0 0 32768 i Total number of prefixes 1
cs3845km#sh ip bgp neighbors 2.2.2.2 received-routes BGP table version is 48, local router ID is 1.1.1.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * 0.0.0.0 2.2.2.2 0 35558 28906 i * 2.2.2.0/19 2.2.2.2 0 0 35558 i * 3.3.3.0/20 2.2.2.2 0 0 35558 i * 3.3.3.0/22 2.2.2.2 0 0 35558 i Total number of prefixes 4
Положить пира:
router bgp 65000 neighbor 1.1.1.1 shutdown
Updated