Wyrażenia regularne w BGP – regexp
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
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.