(T) Manipulacja trasami protokołu BGP*

Manipulacja trasami protokołu BGP

Manipulacja trasami protokołu BGP

Metody manipulowania trasami protokołu BGP

  • Distribute List – Lista umożliwiająca filtrowanie rozgłaszanych / pozyskanych tras routingu (Względem określonego sąsiada). Na podstawie standardowych / rozszerzonych list dostępu ACL.
    • Przykładowa konfiguracja listy Distribute List względem sąsiada BGP [neighbor adres-IP distribute-list ACL {in / out}].
  • Prefix List – Lista umożliwiając filtrowanie rozgłaszanych / pozyskanych tras routingu (Względem określonego sąsiada). Na podstawie prefix listy, określającej zakres dopuszczanych / blokowanych prefix-ów.
    • Przykładowa konfiguracja listy Prefix List względem sąsiada BGP [neighbor adres-IP prefix-list nazwa-prefix-listy {in / out}].
  • AS Path ACL/Filtering – Lista umożliwiając filtrowanie rozgłaszanych / pozyskanych tras routingu (Względem określonego sąsiada). Na podstawie listy Regex, dopuszczającej bądź blokującej trasy na podstawie wartości ASN.
    • Przykładowa konfiguracja listy AS Path ACL względem sąsiada BGP [neighbor adres-IP filter-list ACL {in / out}].
  • Route Maps – Funkcja umożliwiając filtrowanie rozgłaszanych / pozyskanych tras routingu (Względem określonego sąsiada). Na podstawie Router mapy posiadającej szereg metod określania tras (ACL, Prefix List czy Regex), a następnie manipulowania ich właściwościami oraz dopuszczania ich, bądź blokowania.
    • Przykładowa konfiguracja Ruter mapy względem sąsiada BGP [neighbor adres-IP route-map nazwa-ruter-mapy {in / out}].
Listy Distributed List oraz Prefix List, nie mogą być jednocześnie przypisane do jednego tego samego sąsiada BGP.

ACL, Prefix list, Regular Expressions oraz Route map

Listy dostępu ACL

  • Rozszerzone listy ACL (Extended ACL) w przypadku protokołu BGP, są interpretowane w inny sposób niż ma to miejsce w przypadku protokołów IGP. Część związana z siecią źródłową odnosi się do prefiksu, natomiast część związana z siecią docelową, określa maskę.
  • Przykładowe znaczenie listy ACL (Extended ACL) względem protokołu BGP:
    • permit ip 10.0.0.0 0.0.0.0 255.255.0.0 0.0.0.0 – Dopuszcza jedynie sieć 10.0.0.0 z maską /16.
    • permit ip 10.0.0.0 0.0.255.0 255.255.255.0 0.0.0.0 – Dopuszcza każdą sieć 10.0.x.0 z maską /24.
    • permit ip 172.16.0.0 0.0.255.255 255.255.255.0 0.0.0.255 – Dopuszcza każdą sieć 172.16.x.x z maską /22 do /32.
    • permit ip 172.16.0.0 0.0.255.255 255.255.255.128 0.0.0.127 – Dopuszcza każdą sieć 172.16.x.x z maską /25 do /32.

Regular Expressions (regex)

  • Wyrażenia regularne (Regular Expressions) umożliwiają określenie zakresu systemów autonomicznych (AS).
WyrażenieOpis
_ (Underscore)Matches a space.
^ (Caret)Indicates the start of a string.
$ (Dollar sing)Indicates the end of a string.
[] (Brackets)Matches a single character or nesting within a range.
– (Hyphen)Indicates a range of numbers in brackets.
[^] (Caret in brackets)Excludes the characters listed in brackets.
() (Parentheses)Used for nesting of search patterns.
| (Pipe)Provides OR functionality to the query.
. (Period)Matches a single character, including a space.
* (Asterisk)Matches zero or more characters or patterns.
+ (Plus sing)Matches one or more instances of the character or pattern.
? (Question mark)Matches one or no instances of the character or pattern.
Regular Expressions (regex)
  • Przykładowe wykorzystanie wyrażeń regularnych (Regular Expressions):
    • ^$ – Trasy rozgłaszane lokalnie.
    • permit ^200_ – Dopuszcza trasy rozgłaszane przez sąsiada o numerze ASN 200.
    • permit _200$ – Dopuszcza trasy rozgłaszane z systemu AS 200.
    • permit _200_ – Dopuszcza trasy przechodzące przez system AS 200.
    • permit ^[0-9]+ [0-9]+ [0-9]+? – Dopuszcza trasy z trzema dowolnymi numerami ASN.

BGP Communities

Wstęp do BGP Communities

  • BGP Communities to opcjonalny atrybut protokołu BGP, który może przechodzić z jednego sytemu AS do drugiego systemu AS. Stanowi 32bitową liczbę, dołączaną do rozgłaszanej trasy NLRI. Wartość BGP Communities może być wyświetlana w formie pełnego 16bitowego numeru (od 0 do 4 294 967 295) bądź jako dwa osobne numery 16bitowe (od 0 do 65535).
  • Referencja RFC 4360 wprowadziła rozszerzoną wersję BGP Communities (Expanded BGP Communities).
  • Referencja RFC 8092 wprowadziła wsparcie, dla wartości BGP Communities większych niż 32bity.

Well-Known Communities

  • Referencja RFC 1997 wprowadziła pojęcie Well-Known Communities, odnoszące się do wartości BGP Communities z zakresu od 4,294,901,760 (0xFFFF0000) do 4,294,967,295 (0xFFFFFFFF). Przykładowe Well-Known Communities:
    • Internet – Określa trasy przeznaczone do rozgłaszania w Internecie.
    • No_Advertise – Określa trasy, które nie powinny być rozgłaszane do sąsiednich urządzeń (iBGP jak i eBGP).
    • No_Export – Określa trasy, które nie powinny być rozgłaszane do sąsiednich urządzeń (eBGP).
BGP Communities nie jest domyślnie rozgłaszana na ruterach Cisco.

Czyszczenie sesji BGP

  • W zależności od zmiany dokonanej przy manipulacji trasami routingu, sesja BGP pomiędzy sąsiadami musi być odnowiona aby dokonane zmiany zostały wprowadzone w życie. Protokół BGP udostępnia dwie opcje resetowania sesji sąsiedztwa:
    • Hard Reset – Zatrzymuje wybraną relację sąsiedztwa, usuwając wszystkie trasy pozyskane od danego sąsiada.
      • Twarde resetowanie relacji sąsiedztwa może być wykonane za pomocą komendy [clear bgp adres-IP].
    • Soft Reset – Czyści pamięć podręczną sesji BGP, wysyła prośbę pełnej aktualizacji dostępnych tras routingu.
      • Miękkie resetowanie relacji sąsiedztwa może być wykonane za pomocą komendy [clear bgp adres-IP soft].

Pozostałe artykuły związane z protokołem BGP

PDFPRINT

Robert T Kucharski

Cisco Network Engineer in GPW.

Dodaj komentarz