Algorytm Wyboru Trasy w BGP
Algorytm BGP jest używany do wyboru najlepszej trasy, gdy do tego samego prefiksu mamy kilka dostępnych ścieżek (np. Do sieci Onetu możemy się dostać przez jednego i przez drugiego operatora). Należy pamiętać, że tylko takie same prefiksy są porównywane. W momencie jak jest jedna ścieżka dostępna to sprawdzana jest tylko dostępność next-hopa, algorytm nie ma wtedy zastosowania.
Ogólna metodologia jest następująca:
- Sprawdzaj poszczególne atrybuty/właściwości prefiksu z różnych dostępnych ścieżek i porównuj je.
- Jeśli mamy spełniony warunek np. jeden jest większy, to znaczy że znaleźliśmy właściwą trasę i ona zostaje zainstalowana w tablicy routingu. Jeśli nie możemy stwierdzić, która ścieżka jest lepsza np. porównywane atrybuty są takie same, to dokonujemy porównania kolejnych właściwości wg algorytmu.
Kolejność algorytmu jest następująca (dla Cisco):
- Preferuj najwyższy WEIGHT.
- Preferuj najwyższy LOCAL PREFERENCE.
- Preferuj trasy ogłoszone lokalnie przez komendę network lub redistribute.
- Preferuj ścieżkę z krótszym AS_PATH (mniejsza ilość asów w ścieżce).
- Preferuj niższy ORIGIN.
- Preferuj niższy MED.
- Preferuj ścieżki z eBGP nad iBGP.
- Preferuj ścieżki, gdzie koszt IGP do BGP next-hopa jest niższy.
- Jeżeli włączony jest BGP multipath to zainstaluj trasę w tablicy routingu.
- Preferuj starszą ścieżkę (otrzymaną wcześniej).
- Preferuj ścieżkę, która ma niższy router-id.
- Preferuj ścieżkę, która przyszła od neighbora z niższym adresem IP.
Powyższy algorytm nie w pełni uwzględnia kwestie konfederacji (dla uproszczenia).