Senast uppdaterad: (UTC)
huvudsyftet med BGP-aktiverade routrar är att annonsera prefix till andra routrar. Dessa prefix kan vara från flera olika adressfamiljer, till exempel IPv4 och VPNv4. När du annonserar ett prefix bifogar BGP extra information, kallade attribut. BGP använder dessa attribut för att välja den bästa sökvägen.
BGP kan innehålla mer information med varje prefix, i form av Gemenskapssträngar. En gemenskapsträng är ett talvärde som peer använder som en tagg.
gemenskaper skapar routingpolicyer mellan kamrater. Genom att märka prefix med gemenskaper ber vi peer att hantera prefixen på ett speciellt sätt.
som ett exempel kan vi säga att en viss grupp av prefix måste ha sin vikt inställd på 10 av en peer-router. Vi kan välja ett gemenskapsnummer att använda och märka prefixen med det. Om det ser ett prefix från oss taggat med det här samhället, kommer det att ställa in vikten till 10.
vi måste komma överens med vår peer om vilka samhällen som ska användas. Ur ett tekniskt perspektiv är det upp till dem att bestämma hur de ska hantera alla samhällssträngar. De kan välja att ignorera dem helt om de vill.
leverantörer kan ha en lista över fördefinierade samhällen som de använder och åtgärder som de vidtar. Som kund kan vi ställa in våra samhällen för att matcha deras policyer, för att ställa in hur de hanterar våra prefix.
samhällen är valfria och transitiva. De är transitiva så att en peer kan skicka dem till nästa peer.
varje standardgemenskap är ett 32-bitarsvärde. De är ofta uppdelade i två 16-bitars värden, för att göra dem lättare att läsa. Till exempel är gemenskapen 4259840100 samma sak som 65000:100. Ofta representerar de första 16-bitarna AS, och de andra 16-bitarna är ett anpassat värde.
det finns också Utökade samhällen, som är för speciella ändamål, till exempel MPLS VPN. dessa är 64-bitars värden. De består av ett 16-bitars typvärde, ett 16-bitars AS eller IP-värde och 32-bitar för det anpassade communityvärdet.
vissa samhällen är reserverade:
- 0:0 – 0:65535
- 65535:0 – 65535:63335
konfiguration
Låt oss labba detta för att se hur det fungerar. Tänk på att detta inte är ett verkligt scenario.
för det här labbet använder vi två router med olika ASN. R1 har flera nätverk som den vill annonsera till R2.
R2 tilldelar vikter till prefixen, beroende på bifogade samhällen:
- om gemenskapen är inställd på 10: 100 kommer den att ställa in vikten till 100
- om gemenskapen är inställd på 10:200, Det kommer att ställa in vikten till 10
ladda ner BGP Communities Lab
R1 – tilldela gemenskaper
Prefixlistor identifierar rutterna att tilldela samhällen till. I detta fall är 172.16.0.0 och 172.16.10.0 i Grupp1 och 172.16.20.0 i Grupp2.
Ruttkartor matchar prefixlistorna och ställer sedan in gemenskapen på rutten. Group1 tilldelas community 100 och Group2 tilldelas community 200.
som standard är samhällen ett stort antal, vilket är svårt att läsa. Kommandot ip bgp-community new-format ändrar detta värde till Asn: Community-formatet. Detta underlättar verifieringen senare.
som standard skickar Cisco-routrar inte samhällen. Aktivera detta per granne med kommandona send-community och send-community extended.
slutligen tillämpas ruttkartan på grannens utgående. När du skickar rutter till grannen bifogas samhällena.
! 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
verifiera samhällen
här kan vi se att samhällena är inställda på de rutter som R2 tar emot.
! 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
ange policyer
nu när R2 tar emot rutter med samhällen kan den tillämpa policyer för dem.
först skapar vi en gemenskapslista för att identifiera specifika samhällen. Dessa är som att använda ACL eller prefix-listor för att identifiera IP-adresser. I det här exemplet använder vi en namngiven gemenskapslista. Till skillnad från numrerade gemenskapslistor stöder de RegEx och kan ha obegränsade poster. Numrerade listor har en gräns på 100 poster.
Ruttkartor matchar samhället och ställer in vikten.
ruttkartan tillämpas på grannen för inkommande prefix.
! 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
dessa ändringar kommer inte att ske för rutter som redan finns i din routingtabell. Det enklaste sättet att tvinga detta att gälla är att återställa grannförhållandet. Tänk på att detta är störande, så gör det inte i ett produktionsnätverk.
verifiera policyer
om du tittar på BGP-tabellen på R2 kan du se att vikterna har ställts in som förväntat.
! 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
välkända samhällen
det finns flera fördefinierade samhällen, kallade välkända samhällen. Dessa samhällen har speciella fördefinierade betydelser som alla BGP-högtalare stöder.
de vanligaste är:
Internet – en Cisco proprietär gemenskap. Detta gör det möjligt för routern att annonsera prefixet till alla grannar. Detta är en’ catch-all ’ gemenskap i slutet av en gemenskapslista. Detta är ett undantag, eftersom det inte alla leverantörer kommer att stödja det.
No-Export – förhindrar reklam prefixet till någon EBGP grannar. Detta håller ett prefix i AS.
No-Advertise – detta förhindrar reklam prefixet till alla grannar alls.
Local-AS – Used med confederations för att hålla prefixet inom det lokala AS. Tillåter prefixdelning med EBGP-grannar inom konfederationen.
design för samhällen
när du utformar samhällen, överväga dessa grundläggande steg:
- definiera administrationspolicyn för routing
- Bestäm vad du ska filtrera och var du ska filtrera
- Bestäm vilka attribut som ska ändras för att påverka trafikflödet
- utforma gemenskapssystemet
- det vill säga bestämma vilka värden som ska användas, baserat på policyn
- distribuera schemat med hjälp av Ruttkartor
- skapa dokumentation
när du tar emot Rutter från en extern källa, överväg att tagga dem baserat på webbplatsen de mottogs på. På samma sätt, när du kommer från rutter, överväga att märka dem med ett ID för den webbplats som har sitt ursprung i dem.