GRAF DECYZJI O TRASIE PAKIETU

Transkrypt

GRAF DECYZJI O TRASIE PAKIETU
GRAF DECYZJI O TRASIE PAKIETU
ROUTING STATYCZNY W SIECIACH IP
Routery są urządzeniami, które na podstawie informacji zawartych w
nagłówku odebranego pakietu oraz danych odebranych od sąsiednich
urządzeń są w stanie podjąć decyzję,
decyzję gdzie przesłać pakiet aby trafił on w
miejsce swojego przeznaczenia.
Każdy router posiada własną tablicę routingu,
routingu na podstawie której wysyła
pakiet przez odpowiedni interfejs. Takie tablice routingu zawierają wszystkie
znane routerowi adresy IP odległości oraz odpowiadające im numery
interfejsów, którymi można osiągnąć żądany adres.
Routing statyczny polega na ręcznej modyfikacji przez
administratora wpisów do tablic routingu.
Podstawową zaletą implementacji takiego rozwiązania w
małych sieciach są stosunkowo małe opóźnienia.
Routery posiadające statyczne trasy nie wymieniają się
informacjami na temat sieci, nie korzystają również z
algorytmów pozwalających na wybór optymalnej drogi.
Statycznie definiowane trasy mogą znacznie zwiększać
bezpieczeństwo w sieci.
sieci
ROUTING DYNAMICZNY W SIECIACH IP
Protokoły routingu dynamicznego mają zazadanie określenie zasad
wymiany tablic routingu oraz sposobu wyliczania wartości metryki routingu.
ROUTING DYNAMICZNY W SIECIACH IP
Podstawową i zaletą tego rozwiązania jest wprowadzenie
mechanizmów wymiany informacji między routerami.
routerami W routingu
dynamicznym same routery budują swoje tablice routingu i w razie
potrzeby uaktualniają je.
Router zauważa zmianę topologii, informuje o niej inne,
sąsiednie routery i przystosowuje się do nowych warunków.
Czas potrzebny sieci na uzyskanie zbieżności jest znacznie
krótszy niż w przypadku routingu statycznego.
W przypadku, gdy do żądanej lokalizacji jest kilka tras (tzw.
nadmiarowych ścieżek), router porównuje metryki i wybiera trasę
z przypisaną metryką o większej wartości.
Wyróżniamy trzy podstawowe algorytmy:
Distance — Wektor, (np. RIP)
Link — State, (np. OSPF)
routing Hybrydowy.
TABLICA ROUTINGU
Dla każdego nadchodzącego pakietu sprawdzana jest
zgodność pomiędzy adresem docelowym a wpisami z
kolumny Network/Subnet
Każdy wiersz określa trasę do sieci/podsieci
TABLICA ROUTINGU
Jak powinien być zinterpretowany
trzeci wiersz ?
TABLICA ROUTINGU
Jeżeli tylko jedna trasa może bć wybrana – tam właśnie
wysyłanyjest pakiet.
Trasa 0.0.0.0 oznacza tzw. trasę domyślną
TABLICA ROUTINGU
Jeżeli więcej niż jedna trasa może być wybrana – za najlepsząuważa
się tę speniającą warunek dłuższego prefiksu sieciowego.
Jeżeli powyższa reguła nie wystarcza –
rozstrzyga wartośc metryki routingu
REGUŁA LONGEST MATCH
PRZYKŁAD: Jeżeli adres IP przeznaczenia to 11.1.2.5 oraz zdefiniowane są
trzy prefix-y w tablicy routingu (11.1.2.0/24, 11.1.0.0/16, and 11.0.0.0/8),
router powinien wybrać sieć docelową 11.1.2.0/24. Sieć ta tj, 11.1.2.0/24 jest
wybierana ze względu na fakt, iż prefix dla niej zawiera najwięcej
odpowiadających bitów w adresie docelowym.
PODZIAŁ TOPOLOGICZNY
 Zestaw
sieci i routerów administrowanych spójnie przez jedną
organizację
 Definicja nie jest ścisła
 Zwykle tożsamy z firmą
 Potrzebny, żeby podzielić na mniejsze, zarządzalne fragmenty ogromną
sieć, jaką jest Internet
 Każdy system autonomiczny może posługiwać się swoim protokołem
routingu
SYSTEM AUTONOMICZNY
PODZIAŁ TOPOLOGICZNY
 Interior
Gateway Protocols (IGPs)
– Używane przez routery wewnątrz systemu autonomicznego
– Opisywane trasy leżą w obrębie systemu autonomicznego
 Exterior
Gateway Protocols (EGPs)
– Używane do komunikacji pomiędzy systemami
autonomicznymi. Opisywane trasy leżą w obrębie Internetu
PODZIAŁ TOPOLOGICZNY
EGP (pomiędzy systemami)
Border Gateway Protocol (BGP)
IGP (wewnątrz systemów
autonomicznych)
Routing Information Protocol (RIP)
Open Shortest Path First Protocol
(OSPF)
PROTOKOŁY ROUTINGU – RIP
Protokół RIP (ang. Routing Information Protocol) jest protokołem
routingu, który opiera swoje działanie na algorytmie distance-vector.
distance-vector
Protokół RIP jest obecnie szeroko wykorzystywany w sieci Internet
mimo, że należy do najstarszych protokołów routingu.
Wyznacza on optymalne trasy korzystając wyłącznie z jednej metryki
Ilość skoków (ang. hops) bezpośrednio decyduje o wyborze drogi. Im
pakiet ma na swojej drodze mniej urządzeń, tym lepiej.
Router wysyła, otrzymuje uaktualnienia od sąsiadów, interpretuje te dane
i zapisuje do tablicy jedynie odległości między routerami w sieci.
PROTOKOŁY ROUTINGU – RIP
Komunikaty RIP można podzielić na dwa główne typy: komunikaty z
informacjami o trasach i komunikaty z prośbami o informacje. Nagłówki obu mają
postać przedstawioną poniżej.
Polecenie (ang. command) - wskazuje, czy pakiet jest zgłoszeniem czy
odpowiedzią. Zgłoszenie pyta, czy router wysłał całą tablicę routingu czy jej
część. Odpowiedzią może być dowolne periodyczne uaktualnienie routingu lub
odpowiedź na zgłoszenie. Przy przenoszeniu obszernych tablic routingu
zachodzi potrzeba użycia wielu pakietów.
Wersja (ang.
version number) - określa użytą wersję protokołu RIP. Nie
(
używane (ang. unused) - pole nie używane przyjmuje wartość zero.
Adres (ang. address) - określa adres IP dla wejścia.
PROTOKOŁY ROUTINGU – RIP
Rodzina sieci (ang. Address - Family Identyfier) - określa użyty adres rodziny.
Protokół RIP jest przeznaczony do przenoszenia informacji o routingu dal
wielu różnych protokołów. Każde wejście ma identyfikator AFI wskazujący typ
specyfikowanego adresu. Dla protokołu IP identyfikator AFI przyjmuje
wartość 2.
Odległość sieci (ang. metric) - wskazuje liczbę przejść pomiędzy sieciami
(routerami), które pojawiły się na drodze do miejsca przeznaczenia.
METRYKA ROUTINGU – RIP
Jedyną miarą używaną przez protokół RIP do mierzenia odległości
pomiędzy źródłem a miejscem przeznaczenia jest ilość skoków (ang.
hop-count). Każdemu skokowi na drodze od źródła do miejsca
przeznaczenia zostaje przypisana wartość, najczęściej 1.
Maksymalna liczba skoków na ścieżce wynosi 15.
15 Jeśli router
przyjmie uaktualnienie routingu, które zawiera nowe lub zmienione
wejście, i jeśli po zwiększeniu miary o jeden nastąpi przekroczenie
granicy 15 skoków, to takie miejsce przeznaczenia w sieci staje się dla
routera nieosiągalne.
RIP – WŁAŚCIWOŚCI
●
●
●
●
●
●
Szeroko dostępny
Metryka: hop count
Cykliczne update’y
Łatwy w
implementacji
Często “w cenie”
RFC 1058
●
●
●
●
●
Wolna konwegencja
Brak wsparcia VLSM
Brak wsparcia
nieciągłoci sieci
Routing loops
Count to infinity
PROTOKOŁY ROUTINGU – RIP 2
Decydującym czynnikiem wprowadzenie RIP2 był brak możliwości
obsługi masek podsieci adresów IP wersji pierwszej RIP'a.
Najważniejszymi w stosunku do pierwotnej wersji RIPa możliwościami
są: autoryzacja, czyli mechanizmy pozwalające na identyfikacje
tożsamości użytkownika, wprowadzenie maski podsieci,
podsieci adresów IP
następnych skoków i wiadomości multicastingowych.
W miejsce pól zarezerwowanych pojawiły się pola związane z nowymi
możliwościami RIP'u — 2: domena routowania, znacznik trasy, maska
podsieci, następny skok, odległość.
PROTOKOŁY ROUTINGU – RIP 2
Polecenie (ang. command) wskazuje, czy pakiet jest zgłoszeniem czy
odpowiedzią. Zgłoszenie pyta, czy router wysłał całą tablicę routingu czy jej
część. Odpowiedzią może być dobrowolne periodyczne uaktualnienie
routingu lub odpowiedź na zgłoszenie. Przy przenoszeniu obszernych tablic
routingu zachodzi potrzeba użycia wielu pakietów.
Wersja (ang. version) - określa użytą wersję protokołu RIP. W pakiecie RIP
implementującym jakiekolwiek pola RIP-2 lub mechanizm autoryzacji jest
ustawiona wartość 2.
PROTOKOŁY ROUTINGU – RIP 2
Domena
routowania
(ang.
routing
domain)
identyfikator
systemu autonomicznego, informuje o tym, które tablice routowania powinny
być uaktualnione.
Rodzina sieci (ang. address - family identyfier) - określa użyty adres rodziny.
Protokół RIP jest przeznaczony do przenoszenia informacji o routingu dal wielu
różnych protokołów. Każde wejście ma identyfikator AFI wskazujący typ
specyfikowanego adresu. Dla protokołu IP identyfikator AFI przyjmuje wartość 2.
Jeśli identyfikator AFI dla pierwszego wejścia o komunikacie przyjmuje wartość
0xFFFF, to oznacza, że wejście zawiera informację o autoryzacji, czyli typ
autoryzacji i hasło.Znacznik trasy (ang. route tag) - pozwala rozróżnić rasę
wewnętrzną (poznawaną przez protokół RIP) od zewnętrznej (poznawanej przez
inne protokoły).
PROTOKOŁY ROUTINGU – RIP 2
Adres (ang. address) - określa adres IP dla wejścia.
Maska podsieci (ang. subnet mask) - zawiera maskę podsieci dla
określonego wejścia. Wprowadzenie tego pola umożliwiło protokołowi RIP2 obsługiwanie podsieci. Może być implementowany w sieciach o bardziej
złożonych topologiach. Jeśli wartość tego pola przyjmuje wartość zero
oznacza to, że adres IP nie posiada maski podsieci.
Następny skok (ang. next hop) - wskazuje adres IP następnego skoku
(routera), do którego pakiet dla danego wejścia powinien być skierowany.
Odległość sieci (ang. metric) - wskazuje liczbę przejść pomiędzy sieciami
(routerami), które pojawiły się na drodze do miejsca przeznaczenia.
RIP 2 – WŁAŚCIWOŚCI
●
●
●
●
●
●
●
RFC 1723
Obsługiwany przez Cisco IOS™ 11.1
Obsługa VLSM
Sumaryzacja routingu
Classless InterDomain Routing (CIDR)
Uaktualnianie routingu - multicast
Autentykacja update’ów (MD5)
PROTOKÓł RIP - PODSTAWY
●
●
Przykładowa struktura zawiera 2 sieci
typu multi-access oraz 3 typu point-topoint.
Każdy router ma nadaną nazwę (A do
E), adres IP, oraz numer interfejsu.
– Dla uproszczenia numer intrfejsu i
numer hosta w adresie IP są
identyczne, np. router C jest
dołączony do siecii 10.2.0.0/16
poprzez interfej 2 , który ma
przypisany adres 10.2.0.2.
• Bellman-Ford
• Repeat
For every node x
For every neighbor z
For every destination y
d(x,y) ←
Update(x,y,z)
• Until Converge
1
A
Adres sieciowu i maska sieci
Koszt łącza
Iadres IP interfejsu
Numer interfejsu
algorithm
1
2
1
B
10.1/16
2
2
10.2/16
3
5
1
4
6
D
2
10.5/16
E
2
1
10.4/16
C
1
10.6/16
3
10.3/16
2
2
„ZIMNY” START
Założenia „zimnego” startu
●
Każdy węzeł sieci jest uaktywniany z minimalną wiedzą na
temat topologii sieci, tj.
– Posiada wiedzę na temat swoich interfejsów i sieci IP, z
którymi przez te interfejsy może się połączyć,
●
Informacja ta pochodzi z danych konfiguracyjnych
interfejsu. Każdy interfejs posiada zdefiniowane
przynajmniej elementy:
– Adres IP
– Mska sieciowa
●
Numer sieci jest pośrednio uzyskiwany z adresu IP
oraz maski sieciowej.
– Posiada wiedzę na temat kosztu każdego obsługiwanego
łącza/sieci.
„ZIMNY” START - PRZYKŁAD
Routing table for A
net
mask
10.1.0.0 16
10.3.0.0 16
Routing table for B
gateway int cost
---------1
1
---------2
3
net
mask
10.1.0.0 16
10.2.0.0 16
10.6.0.0 16
Routing table for C
net
mask
10.2.0.0 16
10.5.0.0 16
gateway
-------------------
int cost
2
2
1
5
Routing table for D
net
mask
10.3.0.0 16
10.4.0.0 16
1
A
Routing table for E
net
mask
10.4.0.0 16
10.5.0.0 16
10.6.0.0 16
gateway
----------------------------
int cost
1
6
2
5
4
4
gateway int cost
---------2
1
---------1
2
---------3
4
1
gateway int cost
---------1
3
---------2
6
2
1
B
10.1/16
2
2
10.2/16
3
2
4
3
10.3/16
1
10.6/16
5
1
4
6
D
2
10.5/16
E
2
1
10.4/16
C
2
WYMIANA INFORMACJI
Algorytm wysyłania
●
Router wysyła na wszystkie interfejsy
(do
wszystkich
przyłączonych
bezpośrednio sieci) wektor „odległości”
zawierający wszystkie znane sieci i
koszt osiągnięcia tych sieci.
– Dla każdej sieci z tablicy routingu,
wysyłane są:
●
Numer IP sieci
●
Maska sieciowa
●
Koszt
– Informacje te są przesyłane przez
sieci typu multi-access na zasadzie
broadcastu dzięki czemu wszystkie
routery w sieci mogą otrzymać ten
wektor.
1
A
1
2
1
B
10.1/16
2
2
10.2/16
3
2
4
3
10.3/16
1
10.6/16
5
1
D
2
4
6
2
1
10.4/16
10.5/16
E
C
2
WYMIANA INFORMACJI
Algorytm otrzymywania
●
●
●
Dodaj koszt „na danym interfejsie” do wartości kosztu osiągnięcia danej sieci,
otrzymanego na ten interfejs.
Jeżeli dana sieć nie znajduje się w tablicy routingu, dodaj wpis:
– Ustaw pole „interface” w tablicy routingu na wartość odpowiadającą numerowi
interfejsu, na który nadesłano wektor „odległości”,
– Ustaw pole „gateway” w tablicy routingu na wartość odpowiadającą nazwie węzła,
nadawcy wektora „odległości”.
●
W przypadku sieci typu multi-access, pole „gateway” odpowiada polu „next hop”.
– Wyslij nowy wektor do wszystkich sąsiadów.
Jeżeli dana sieć znajduje się w tablicy routingu, to:
– Jeżeli nadawca jest ten sam jak wcześniej już zapisany w tablicy to:
●
Jeżeli koszt zawarty w otrzymanym wektorze jest różny od posiadanej wartości
to uaktualnij wpis w swojej tablicy routingu i wyślij nowy wektor „odległości” do
wszyskich sasiadów.
– Wprzeciwnym wypadku
●
Jeżeli nowy koszt jest MNIEJSZY niż istniejący w tablicy
– Uaktualnij wartość koszty, interfejsu oraz gateway`a
– Wyślij nowy wektor „odległości” do wszyskich sasiadów.
ALGORYTM NADAWANIA - PRZYKŁAD
Węzeł A wysyła swój wektor
„odległości” na interfejs 1 i
rozgłasza go poprze interfejs 2
W wyniku nadawania przez A,
B i D zwiększają swoją widzę
o topologii sieci.
●
●
1
A
1
2
1
B
10.1/16
2
2
10.2/16
3
2
4
3
10.3/16
1
10.6/16
5
1
4
6
D
2
10.5/16
E
2
1
10.4/16
C
2
Old table for B
net
mask
10.1.0.0 16
10.2.0.0 16
10.6.0.0 16
gateway
----------------------------
New table for B
net
mask
10.1.0.0 16
10.2.0.0 16
10.3.0.0 16
10.6.0.0 16
gateway int cost
---------2
1
---------1
2
10.1.0.1 2
4
---------3
4
Old table for D
net
mask
10.3.0.0 16
10.4.0.0 16
gateway int cost
---------1
3
---------2
6
New table for D
net
mask
10.1.0.0 16
10.3.0.0 16
10.4.0.0 16
int cost
2
1
1
2
3
4
gateway int cost
10.3.0.2 1
4
---------1
3
---------2
6
ALGORYTM NADAWANIA – PRZYKŁAD
●
●
●
●
●
Węzły B oraz D uaktualniły swoje tablice routingu, wobec tego mogą wysłąć swoje
nowe wektory „odległości”.
Węzeł B wysyła nowy wektor do A, C, E
Węzeł D wysyła nowy wektor doo A, E
Dla przejrzystości przykładu, załóżmy, że wektor z B nadszedł pierwszy
Węzeł A otrzyma od B wektory dla sieci 10.1, 10.2 oraz 10.6.
– Węzeł A dodaje swój lokalny koszt na interejsie (1) do wartości kosztów
wewszystkich 3 wektorach.
– Sieci 10.2 oraz 10.6 są nową informacją wobec tego A dadaje odpowiednie
wpisy.
– Informacja o sieci 10.1nie będzie uaktualniona ponieważ koszt 2 jst większy
kosztt już isniejący w tablicy.
Old table for A
1
A
1
2
B
10.1/16
2
net
mask
10.1.0.0 16
10.3.0.0 16
2
1
10.2/16
3
2
4
3
10.3/16
1
10.6/16
5
1
D
2
4
6
2
1
10.4/16
10.5/16
E
C
2
New table for A
gateway int cost
---------- 1
1
---------- 2
3
net
mask
10.1.0.0 16
10.2.0.0 16
10.3.0.0 16
10.6.0.0 16
gateway int cost
---------- 1
1
10.1.0.2 1
3
---------- 2
3
10.1.0.2 1
5
ALGORYTM NADAWANIA – PRZYKŁAD
Table for B
Table for A
net
mask
10.1.0.0 16
10.2.0.0 16
10.3.0.0 16
10.4.0.0 16
10.5.0.0 16
10.6.0.0 16
gateway int cost
---------1
1
10.1.0.2
1
3
---------2
3
10.3.0.1
2
9
10.1.0.2
1
8
10.1.0.2
1
5
net
mask
10.1.0.0 16
10.2.0.0 16
10.3.0.0 16
10.4.0.0 16
10.5.0.0 16
10.6.0.0 16
Jaka będzie tablica routingu dla D ????
1
A
1
2
B
10.1/16
2
10.2/16
3
4
3
10.3/16
2
10.6/16
5
1
4
6
D
2
1
10.4/16
2
C
1
10.5/16
E
2
Table for C
net
mask
10.1.0.0 16
10.2.0.0 16
10.3.0.0 16
10.4.0.0 16
10.5.0.0 16
10.6.0.0 16
2
1
gateway int cost
---------2
1
---------1
2
10.1.0.1
2
4
10.6.0.4
3
10
10.2.0.2
1
7
---------3
4
gateway int cost
10.2.0.1
2
3
---------2
2
10.2.0.1
2
6
10.5.0.2
1
11
---------1
5
10.2.0.1
2
6
Table for E
net
mask
10.1.0.0 16
10.2.0.0 16
10.3.0.0 16
10.4.0.0 16
10.5.0.0 16
10.6.0.0 16
gateway int cost
10.6.0.3
4
5
10.6.0.3
4
6
10.6.0.3
4
8
---------1
6
---------2
5
---------4
4
REAKCJA NA USZKODZENIE
Table for A
A i B wykryły uszkodzenie
A oraz B ustawiają wartość
kosztu dla wszystkich wpisów w
tablicy odnoszących się do
odpowiednio
1
i
2
na
nieskończoność.
●
●
1
A
gateway int cost
---------1
inf
10.1.0.2
1
inf
---------2
3
10.3.0.1
2
9
10.1.0.2
1
inf
10.1.0.2
1
inf
Table for B
1
2
2
2
1
B
10.1/16
10.2/16
3
2
4
3
10.3/16
1
4
6
D
10.5/16
E
2
1
10.4/16
C
1
10.6/16
5
2
net
mask
10.1.0.0 16
10.2.0.0 16
10.3.0.0 16
10.4.0.0 16
10.5.0.0 16
10.6.0.0 16
2
net
mask
10.1.0.0 16
10.2.0.0 16
10.3.0.0 16
10.4.0.0 16
10.5.0.0 16
10.6.0.0 16
gateway int cost
---------2
inf
---------1
2
10.1.0.1
2
inf
10.6.0.4
3
10
10.2.0.2
1
7
---------3
4