Ostatnia aktualizacja: (UTC)
głównym celem routerów z obsługą BGP jest reklamowanie prefiksów innym routerom. Prefiksy te mogą pochodzić z kilku różnych rodzin adresów, takich jak IPv4 i VPNv4. Podczas reklamowania prefiksu BGP dołącza dodatkowe informacje, zwane atrybutami. BGP używa tych atrybutów, aby wybrać najlepszą ścieżkę.
BGP może zawierać więcej informacji z każdym prefiksem, w postaci ciągów społecznościowych. Community string to wartość liczbowa, której peer używa jak znacznika.
społeczności tworzą zasady routingu między rówieśnikami. Oznaczając prefiksy społecznościami, mówimy peerowi, aby obsługiwał te prefiksy w specjalny sposób.
jako przykład, powiedzmy, że określona grupa prefiksów musi mieć swoją wagę ustawioną na 10 przez router równorzędny. Możemy wybrać numer społeczności do użycia i oznaczyć nim prefiksy. Jeśli zobaczy prefiks od nas oznaczony tą społecznością, ustawi wagę na 10.
musimy uzgodnić z naszym rówieśnikiem, z jakich społeczności korzystać. Z technicznego punktu widzenia to od nich zależy, jak poradzą sobie z dowolnym ciągiem społeczności. Mogą je całkowicie zignorować, jeśli chcą.
Dostawcy mogą mieć listę wstępnie zdefiniowanych społeczności, z których korzystają, i działań, które podejmują. Jako klient możemy dopasować nasze społeczności do ich zasad, aby dostosować sposób, w jaki radzą sobie z naszymi prefiksami.
społeczności są opcjonalne i przejściowe. Są przechodnie, więc jeden rówieśnik może je przekazać kolejnemu rówieśnikowi.
każda standardowa społeczność jest wartością 32-bitową. Często są one podzielone na dwie wartości 16-bitowe, aby ułatwić ich odczyt. Na przykład, społeczność 4259840100 jest tym samym co 65000:100. Często pierwsze 16-bitowe reprezentują AS, a drugie 16-bitowe są wartością niestandardową.
istnieją również rozszerzone społeczności, które są do specjalnych celów, takich jak MPLS VPN. są to wartości 64-bitowe. Składają się one z 16-bitowej wartości typu, 16-bitowej wartości AS lub IP oraz 32-bitowej dla niestandardowej wartości społeczności.
niektóre społeczności są zastrzeżone:
- 0:0 – 0:65535
- 65535:0 – 65535:63335
Konfiguracja
przeanalizujmy to, aby zobaczyć, jak to działa. Należy pamiętać, że nie jest to scenariusz rzeczywisty.
do tego laboratorium użyjemy dwóch routerów z różnymi ASN. R1 ma kilka sieci, które chce reklamować do R2.
R2 przypisuje wagi do przedrostków, w zależności od dołączonych społeczności:
- jeśli społeczność jest ustawiona na 10: 100, to ustawi wagę na 100
- jeśli społeczność jest ustawiona na 10:200, ustawi wagę na 10
Pobierz BGP Communities Lab
R1 – Przypisywanie społeczności
listy prefiksów określ trasy przypisywania społeczności. W tym przypadku 172.16.0.0 i 172.16.10.0 znajdują się w Grupie 1, A 172.16.20.0 w grupie 2.
mapy trasy pasują do list prefiksów, a następnie ustawiają społeczność na trasie. Group1 ma przypisaną społeczność 100, a Group2 ma przypisaną społeczność 200.
domyślnie społeczności są jedną dużą liczbą, co jest trudne do odczytania. Polecenie IP bgp-community new-format zmienia tę wartość na format ASN:Community. Ułatwia to późniejszą weryfikację.
domyślnie routery Cisco nie wysyłają społeczności. Włącz to dla każdego sąsiada za pomocą rozszerzonych poleceń send-community I send-community.
wreszcie mapa trasy jest stosowana do sąsiada wychodzącego. Przy wysyłaniu tras do sąsiada, społeczności są dołączone.
! Identify networks with prefix listsip prefix-list Group1 seq 5 permit 172.16.0.0/24ip prefix-list Group1 seq 10 permit 172.16.10.0/24ip prefix-list Group2 seq 5 permit 172.16.20.0/24! Match networks, and set community valuesroute-map R2_Peer permit 10 match ip address prefix-list Group1 set community 10:100route-map R2_Peer permit 20 match ip address prefix-list Group2 set community 10:200! Enable the new community formatip bgp-community new-formatrouter bgp 10 ! Enable sending communities neighbor 10.10.10.2 send-community neighbor 10.10.10.2 send-community extended ! Apply the route map to this neighbour neighbor 10.10.10.2 route-map R2_Peer out
Sprawdź społeczności
tutaj widzimy, że społeczności są ustawione na trasach, które otrzymuje R2.
! Enable the new community formatip bgp-community new-format! Verify that the community is setR2#show ip bgp 172.16.0.0BGP routing table entry for 172.16.0.0/24, version 2Paths: (1 available, best #1, table default) Not advertised to any peer Refresh Epoch 1 10 10.10.10.1 from 10.10.10.1 (172.16.20.1) Origin IGP, metric 0, localpref 100, valid, external, best Community: 10:100 rx pathid: 0, tx pathid: 0x0R2#show ip bgp 172.16.20.0BGP routing table entry for 172.16.20.0/24, version 4Paths: (1 available, best #1, table default) Not advertised to any peer Refresh Epoch 1 10 10.10.10.1 from 10.10.10.1 (172.16.20.1) Origin IGP, metric 0, localpref 100, valid, external, best Community: 10:200 rx pathid: 0, tx pathid: 0x0
Ustaw Zasady
teraz, gdy R2 odbiera trasy ze społecznościami, może do nich stosować zasady.
najpierw tworzymy Listę społeczności, aby zidentyfikować konkretne społeczności. Są to jak używanie ACL lub list prefiksowych do identyfikacji adresów IP. W tym przykładzie używamy nazwanej listy społeczności. W przeciwieństwie do numerowanych list społeczności, obsługują one wyrażenia regularne i mogą mieć nieograniczoną liczbę wpisów. Numerowane listy mają limit 100 wpisów.
mapy trasy pasują do społeczności i ustawiają wagę.
route-map jest stosowany do sąsiada dla prefiksów przychodzących.
! Create a named community list to identify the communitiesip community-list expanded High_Weight permit 10:100ip community-list expanded Low_Weight permit 10:200! Create a route-map to match the communities, and set the weightroute-map R1_Peer permit 10 match community High_Weight set weight 100route-map R1_Peer permit 20 match community Low_Weight set weight 10 ! Apply the route map to the neighbourrouter bgp 20 neighbor 10.10.10.1 route-map R1_Peer in
zmiany te nie będą miały miejsca dla tras już w tabeli wyznaczania tras. Najprostszym sposobem, aby wymusić to zastosowanie, jest zresetowanie relacji sąsiada. Pamiętaj, że jest to uciążliwe, więc nie rób tego w sieci produkcyjnej.
sprawdź zasady
jeśli spojrzysz na tabelę BGP na R2, zobaczysz, że Wagi zostały ustawione zgodnie z oczekiwaniami.
! Verify that the weights are setR2#show ip bgpBGP table version is 4, local router ID is 10.10.10.2Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incompleteRPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 172.16.0.0/24 10.10.10.1 0 100 10 i *> 172.16.10.0/24 10.10.10.1 0 100 10 i *> 172.16.20.0/24 10.10.10.1 0 10 10 i
znane społeczności
istnieje kilka wstępnie zdefiniowanych społeczności, zwanych dobrze znanymi społecznościami. Społeczności te mają specjalne predefiniowane znaczenia, które obsługują wszyscy mówcy BGP.
do bardziej popularnych należą:
Internet-społeczność zastrzeżona przez Cisco. Dzięki temu router może reklamować prefiks wszystkim sąsiadom. Jest to społeczność „catch-all” Na końcu listy społeczności. Jest to wyjątek, ponieważ nie wszyscy dostawcy będą go wspierać.
No-Export – zapobiega reklamowaniu prefiksu każdemu sąsiadowi eBGP. To trzyma prefiks w AS.
No-Advertise – zapobiega to reklamowaniu prefiksu żadnym sąsiadom.
Local – as-Used with confederations to keep the prefix within the local AS. Umożliwia współdzielenie prefiksów z sąsiadami eBGP w ramach Konfederacji.
Projektowanie dla społeczności
podczas projektowania społeczności należy wziąć pod uwagę następujące podstawowe kroki:
- Zdefiniuj Zasady administracyjne routingu
- zdecyduj, co filtrować i gdzie filtrować
- zdecyduj, jakie atrybuty zmienić, aby wpłynąć na przepływ ruchu
- Projektowanie systemu wspólnotowego
- czyli decydowanie, które wartości należy stosować, w oparciu o politykę
- wdrażanie schematu przy użyciu map tras
- tworzenie dokumentacji
odbierając trasy ze źródła zewnętrznego, rozważ ich tagowanie w oparciu o witrynę, z której zostały otrzymane. Podobnie, podczas tworzenia tras, rozważ tagowanie ich identyfikatorem dla witryny, która je zapoczątkowała.