fbpx

Wyrażenia regularne w BGP – regexp

utworzone przez mar 22, 2019BGP, teoria

Regexp, a dokładniej regular expressions, czyli wyrażenia regularne są to wzorce, które opisują ciągi znaków. Bardzo często spotykane w językach programowanie.

Dobra, ale co wyrażenia regularne mają wspólnego z BGP?

W BGP takim ciągiem znaków jest AS-PATH. Poniżej masz przykład.

1299 6453 4755 45528 i

Więcej informacji o atrybucie AS-path znadziesz w artykule AS-path – atrybut BGP.

Za pomocą regexp administrator systemu autonomicznego może przeszukiwać tablicę routingu BGP i wybierać ścieżki zawierające określony wzór np.: numer AS.

Wyrażenia regularne wykorzystywane są jako jeden z elementów budujących polityki routingu. Automatyzują po części pracę administratora. Zobaczysz to w dalszej części wpisu.

Abyś mógł wykorzystać pełną moc, jaką mają wyrażenia regularne, musisz poznać kilka znaków i ich znaczenie:

 

^ kareta Początek ciągu znaków
$ dolar Koniec ciągu znaków
* asterisk Powtórzenie poprzedniego znaku zero lub więcej razy
+ plus Powtórzenie poprzedniego znaku jeden lub więcej razy
[ ] Nawiasy kwadratowe Przedział znaków
myślnik Zakres znaków od do
() Nawiasy okrągłe Logiczna grupa znaków
. kropka Każdy pojedynczy znak

 

Wyrażenia regularne – przykłady

To teraz sprawdźmy, jak w praktyce wyglądają wyrażenia regularne.

Wykorzystam do tego router server Hurrican Electric. Dostępny pod adresem route-server.he.net. Jeśli nie możesz użyć telnetu, wykorzystaj looking glass dostępny przez przeglądarkę np.: http://lg.as48972.net/  lub sprawdź jeden w zakładce Narzędzia.

Ja w przykładach będę korzystał z Hurrican Electric. Zalogujemy się na adres route-server.he.net wykorzystując telnet.

UWAGA

Ze względu na czytelność, wyniki poleceń zostały skrócone do jednej lub kilku linii.

telnet route-server.he.net 

Chcesz poznać BGP?
Od podstaw aż po sieć operatorską na dwóch platformach?
Jeśli tak, to zapisz się do programu
BGP – zbuduj silne fundamenty

Prefiksy z pustym as-path.

Pusty as-path oznacza, że prefiksy są lokalnymi sieciami routera. Bardzo przydatna opcja, w przypadku budowania polityk, które mają rozgłaszać wszystkie nasze prefiksy.

route-server> show ip bgp regexp ^$
   Network       Next Hop         Metric LocPrf Weight Path
* i5.57.80.0/22  216.218.252.118       0    140      0 i

Prefiksy rozgłaszane przez AS – Origin AS

W tym przykładzie posłużymy się AS5617, czy główny numer AS Orange Polska. Zobaczymy jakie prefiksy rozgłasza Orange.

show ip bgp regexp _5617$
  Network               Next Hop      Metric LocPrf Weight Path
* i95.178.88.0/22       216.66.84.190      1    100      0 5511 5617 i
* i5.184.0.0/15         216.66.84.190      1    100      0 5511 5617 i

Prefiksy rozgłaszane przez AS z którym mamy sesje BGP

Chcemy znaleźć wszystkie prefiksy, które są rozgłaszane przez naszego sąsiada.

show ip bgp regexp ^9002$
  Network           Next Hop       Metric LocPrf Weight Path
* i23.56.98.0/24    216.218.252.184     1    100      0 9002 i

Prefiks 23.56.98.0/24  jest rozgłaszany przez AS9002. AS6939 (Hurricane Electric) ma zestawioną sesje BGP z AS9002.

Prefiksy rozgłaszane przez wszystkie AS z którymi mamy sesje BGP

Chcemy znaleźć wszystkie prefiksy, które są rozgłaszane przez wszystkich naszych sąsiadów.

Polecenie:

show ip bgp regexp ^[0-9]+$

^ – początek as-path

[0-9] – znaki z zakresu od 0 do 9

+ – poprzedni znak może zostać powtórzony jeden lub więcej razy

$ – koniec as-path

show ip bgp regexp ^[0-9]+$
   Network          Next Hop         Metric LocPrf Weight  Path
* i1.0.0.0/24       216.218.252.169   1 100 0 13335 i
* i1.0.16.0/24      203.190.230.19     1 100 0 2519 i
* i1.6.0.0/22       27.111.228.121     1 100 0 9583 i

Tranzyt

Sprawdź jakie prefiksy są osiągalne przez AS5617

show ip bgp regexp _5617_
  Network           Next Hop    Metric LocPrf Weight Path
* i91.150.187.0/24  216.66.86.82     1 100 0 5511 5617 56709 206953 i

Prefiks 91.150.187.0/24 jest rozgłaszany przez AS206953 a AS5617 jest dla niego tranzytowym.

Dwa ASN

Znajdź prefiksy, które pochodzą z AS9002 lub z AS5617

show ip bgp regexp _9002$|_5617$
Network            Next Hop Metric LocPrf Weight  Path
* i5.184.0.0/15      216.66.86.82     1 100 0  5511 5617 i
* i                 216.66.86.82 1    100 0 5511 5617 i
* i23.56.98.0/24    216.218.252.173  1 100 0  9002 i
* i                  198.32.160.182 1    100 0 9002 i
* i                  198.32.160.182 1    100 0 9002 i
* i37.108.0.0/16    216.66.86.82     1 100 0 5511 5617 i
* i                  216.66.86.82 1    100 0 5511 5617 i

Wyrażenia regularne – podsumowanie

Jest to kilka przykładów wykorzystanie wyrażeń regularnych do analizy atrybuty AS-PATH. Na koniec jedna uwaga. Każdy Looking glass, nieważne czy dostępny przez przeglądarkę lub po telnecie, loguje wasze zapytania. Zachęcam do testowania nowych wyrażeń regularnych i podzielenia się nimi w komentarzu.

.
Tomasz Mikołajek

Tomasz Mikołajek

Założyciel Showroute.pl

Inżynier sieciowy lubiący dzielić się wiedzą i pomagać innym zrozumieć zawiłości działania sieci i Internetu.

Share This