VŠB TU OSTRAVA 21.6.2006
Semestrální projekt do předmětu
Směrované a přepínané sítě
Podrobný popis spolehlivého šíření LSA
Vypracovali : Luboš Hejduk hej044, Petr Sedlář sed165
Obsah
3. Rozdělení sítí podle protokolu OSPF
1. Zadání
Podrobný popis spolehlivého šíření LSA (Link State Advertisement) v protokolu OSPF. Na point-to-point i broadcast síti. Návrh vhodné topologie, zachycení analyzátorem a podrobný komentář.
Směrovací protokol OSPF (Open Shortest Path First) odstraňuje některé nevýhody původního protokolu RIP, a to zvláště relativní pomalost konvergence (pomalé reagování na změně v topologii), velké objemy přenášených dat v RIP paketech, nevhodná metrika (počet hopů) a nedostupnost sítí nad vzdálenost 15 směrovačů.
Pro protokol OSPF platí :
- vychází z použití algoritmu LSA
- stav sousedních směrovačů je periodicky kontrolován protokolem ,,Hello“
- metrika cesty je pružně volitelná podle požadavků správce intersítě
- cena linky je vždy sdružena s výstupním portem směrovače
- protokol podporuje paralelní cesty se stejnou cenou
- podporuje libovolné fyzické rozhraní sítě (broadcast, non-broadcast)
Protokol OSPF je typickým představitelem směrovacího protokolu typu Link State. Vytváří tedy v paměti směrovače kompletní mapu celé sítě, označovanou jako topologická databáze (někdy se jí říká Link State Database). Nad touto databází potom pomocí algoritmu označovaného jako Shortest Path First (SPF) provádí výpočty potřebné k nalezení nejvýhodnější cesty do jednotlivých sítí.
3. Rozdělení sítí podle protokolu OSPF
Na základě fungování protokolu OSPF na různých typech sítí můžeme sítě rozdělit na :
Broadcast sítě – je to typ sítě, kterou propojují více než dva směrovače a navíc zajišťují, že jeden vyslaný paket mohou přijmout současně všechny směrovače. Kdyby se měly navazovat vztahy přilehlosti systémem každý s každým, vedlo by to k poměrně velkému režijnímu provozu na síti. Proto je v tomto typu sítě zvolen jeden ze směrovačů jako Designated Router (DR) - pověřený. Pro případ jeho výpadku je zvolen ještě Backup Designated Router (BDR) – záložní. Snížení zatížení sítě pak spočívá v tom, že každý ze směrovačů považuje za své přilehlé sousedy pouze DR a BDR, i když je fyzicky propojen s dalšími směrovači. Volba DR a BDR probíhá na základě vyhodnocení osmibitové číselné hodnoty, kterou má každé rozhraní routeru v síti (Router Priority). Ta určuje s jakou prioritou má být směrovač v daném segmentu sítě zvolen jako DR nebo BDR. Priorita je oznámena sousedním routerům v Hello paketu. Směrovač s nejvyšší prioritou je pak zvolen jako DR. S druhou nejvyšší prioritou jako BDR.
V případě rovnosti priorit je zvolen DR router s nejvyšším ID (což je nejvyšší IP adresa na loopback rozhraní nebo při absenci loopback rozhraní, je to nejvyšší IP adresa rozhraní routeru). OSPF komunikace probíhá v Broadcast a Point-to-Point sítích pomocí multicast paketů :
224.0.0.5 - pakety určené pro všechny směrovače OSFP
224.0.0.6 - pakety určené jen pro DR a BDR
Point-to-Point sítě – jsou to sítě spojující pouze 2 směrovače. V tomto případě neprobíhá volba DR a BDR a směrovače se zde vždy stávají přilehlými. Pro vzájemnou komunikaci se používá pouze multicastová adresa 224.0.0.5
Pro náš projekt jsme volili níže zobrazenou síťovou topologii (obr.1). Na směrovačích (routerech) jsme nejprve nastavili ip adresy jednotlivých rozhraní podle obrázku. Po nakonfigurování jednotlivých rozhrání jsme mezi všemi routery zprovoznili směrovací protokol OSPF.
Abychom nemuseli připojovat ke všem koncovým routerům jednotlivé počítače, vytvořili jsme si na routerech RC, RF, RD virtuální rozhraní (loopback), které nám simulovalo připojenou síť.
Pozn.
U loopbacků (routery RC, RF, RD) jsme nastavili masku sítě na hodnotu 255.255.255.0 (tedy /24), ale Cisco implementace OSPF loopback propaguje vždy s maskou 255.255.255.255 (tedy /32). Routery RJ a RD jsme propojili sériovou linkou, protože nebylo v laboratoři k dispozici dostatek routerů, které mají potřebný počet ethernetových rozhraní.
obr.1 Topologie testované sítě
Do sítě jsme na každou ethernetovou linku připojili rozbočovač (SWITCH nebo HUB), a do něj připojili PC s analyzátorem Ethereal (obr.2), ve kterém jsme zachytávali veškerou komunikaci mezi routery. Mezi routery RJ a RD jsme komunikaci nezachytávali, protože byly spojeny sériovou linkou, ale vzhledem k tomu, že situace mezi RI-RJ a RI-RD je podobná, není složité si domyslet šíření LSA paketů touto linkou.
obr.2 Topologie testované sítě s analyzátory
4.2 Hello pakety
Po spuštění protokolu OSPF začaly routery posílat přes svá rozhraní ,,Hello“ pakety. Pakety Hello se posílají na multicastové adrese 224.0.0.5. V Hello paketu router posílá informaci o sobě plus ještě informaci o routerech, o kterých slyšel (obsaženo v poli Active Neighbor, ve kterém jsou Router ID všech již nalezených sousedů), dále délku Hello intervalu a router Dead intervalu, jak můžeme vidět níže v zobrazeném Hello paketu. Pokud router v obdrženém Hello paketu má v poli Neighbor své vlastní ID a má stejný Hello a Dead interval, pak jsou tyto routery ve stavu sousednosti.
Příklad ,,Hello" paketu odchyceného analyzátorem 3 od routeru RI (10.0.20.1) po navázání vztahu přilehlosti :
No. Time Source Destination Protocol Info
9 4.856428 10.0.20.1 224.0.0.5 OSPF Hello Packet
Open Shortest Path First
OSPF Header - hlavička OSPF
OSPF Version: 2 - verze protokolu OSPF
Message Type: Hello Packet (1) - typ o jakou zprávu se jedná
Packet Length: 52 - délka paketu
Source OSPF Router: 10.0.20.1 (10.0.20.1) - zdrojový OSPF router, který zaslal tento paket
Area ID: 0.0.0.0 (Backbone) - v jaké leží oblasti
Packet Checksum: 0x8496 (correct) - kontrolní součet bezchybnosti přenosu paketu
Auth Type: Null
Auth Data (none)
OSPF Hello Packet
Network Mask: 255.255.255.248 - maska sítě
Hello Interval: 10 seconds - délka Hello intervalu ( v jakám časovém intervalu se Hello pakety zasílají)
Options: 0x2 (E)
Router Priority: 1 - priorita pro přidělení DR, BDR
Router Dead Interval: 40 seconds - délka Dead intervalu ( za jak dlouho se považuje sousední Router za nefunkční, pokud od něj
nedojde Hello paket)
Designated Router: 10.0.20.2 - zvolený DR router
Backup Designated Router: 10.0.20.3 - zvolený BDR router
Active Neighbor: 10.0.4.1 - první nalezený sousední router
Active Neighbor: 10.0.5.1 - druhý nalezený sousední router
4.3 LS - update
Abychom na některém z analyzátoru zachytili paket LS - update, museli jsme provést nějakou změnu v síti. Odpojili jsme proto síť 10.0.2.0.
Potom, co router RJ tuto změnu zaregistroval, vyslal paket LS Update routerům RI a RD. Ty mu potvrdily příjem paketem LS – Acknowledge a odeslaly tento paket na další svá rozhraní. Routery RD a RI si tento paket beze změny vyměnily (nemůžou vědět, že už ho obdrželi od RJ) a router RI ho ještě odeslal do sítě 10.0.20.0 na routery RC a RF.
To aby se paket LS – Update nezacyklil je zajištěno tím, že se neposílá zpět původci paketu a tam kam už stejný paket zaslal (např. router RI po obdržení paketu od RD ho neodeslal zpět na router RJ, který ho vlastně vytvořil, což zjistí z pole Advertising Router). Paket LS – Update zašle router tehdy, zjistí-li nějakou změnu sítě ve svém okolí nebo když přeposílá obdržený LS - Update od jiného routeru.
Pro názornost uvádíme příklad dvou zachycených LS Update paketů mezi RI – RJ.
LS-update při odpojení sítě 10.0.2.0
No. Time Source Destination Protocol Info 11 18.720967 10.0.10.17 224.0.0.5 OSPF LS Update
Frame 11 (122 bytes on wire, 122 bytes captured) Ethernet II, Src: Cisco_46:6f:c1 (00:00:0c:46:6f:c1), Dst: 01:00:5e:00:00:05 (01:00:5e:00:00:05) Internet Protocol, Src: 10.0.10.17 (10.0.10.17), Dst: 224.0.0.5 (224.0.0.5) Open Shortest Path First OSPF Header OSPF Version: 2 Message Type: LS Update (4) Packet Length: 88 Source OSPF Router: 10.0.10.17 (10.0.10.17) Area ID: 0.0.0.0 (Backbone) Packet Checksum: 0x5822 [correct] Auth Type: Null Auth Data (none) LS Update Packet Number of LSAs: 1 LS Type: Router-LSA LS Age: 1 seconds Options: 0x22 (E/DC) Link-State Advertisement Type: Router-LSA (1) Link State ID: 10.0.10.17 Advertising Router: 10.0.10.17 (10.0.10.17) LS Sequence Number: 0x80000011 LS Checksum: 6341 Length: 60 Flags: 0x00 Number of Links: 3 Type: Transit ID: 10.0.10.18 Data: 10.0.10.17 Metric: 10 Type: PTP ID: 10.0.3.1 Data: 10.0.10.10 Metric: 64 Type: Stub ID: 10.0.10.8 Data: 255.255.255.248 Metric: 64 |
LS-update při připojení sítě 10.0.2.0
No. Time Source Destination Protocol Info 8 11.549007 10.0.10.17 224.0.0.5 OSPF LS Update
Frame 8 (134 bytes on wire, 134 bytes captured) Ethernet II, Src: Cisco_46:6f:c1 (00:00:0c:46:6f:c1), Dst: 01:00:5e:00:00:05 (01:00:5e:00:00:05) Internet Protocol, Src: 10.0.10.17 (10.0.10.17), Dst: 224.0.0.5 (224.0.0.5) Open Shortest Path First OSPF Header OSPF Version: 2 Message Type: LS Update (4) Packet Length: 100 Source OSPF Router: 10.0.10.17 (10.0.10.17) Area ID: 0.0.0.0 (Backbone) Packet Checksum: 0x89e4 [correct] Auth Type: Null Auth Data (none) LS Update Packet Number of LSAs: 1 LS Type: Router-LSA LS Age: 1 seconds Options: 0x22 (E/DC) Link-State Advertisement Type: Router-LSA (1) Link State ID: 10.0.10.17 Advertising Router: 10.0.10.17 (10.0.10.17) LS Sequence Number: 0x8000000c LS Checksum: 2360 Length: 72 Flags: 0x00 Number of Links: 4 Type: Stub ID: 10.0.2.0 Data: 255.255.255.0 Metric: 10 Type: Transit ID: 10.0.10.18 Data: 10.0.10.17 Metric: 10 Type: PTP ID: 10.0.3.1 Data: 10.0.10.10 Metric: 64 Type: Stub ID: 10.0.10.8 Data: 255.255.255.248 Metric: 64 |
Pozn.
Z uvedených paketů je vidět, že se liší pouze jedním řádkem (po připojení – v příkladu tučně zvýrazněn).
4.3.1 Popis paketu LS - update
LS-update při odpojení sítě 10.0.2.0 a jeho popis
No. Time Source Destination Protocol Info
11 18.720967 10.0.10.17 224.0.0.5 OSPF LS Update
Frame 11 (122 bytes on wire, 122 bytes captured)
Ethernet II, Src: Cisco_46:6f:c1 (00:00:0c:46:6f:c1),
Dst: 01:00:5e:00:00:05 (01:00:5e:00:00:05)
Internet Protocol, Src: 10.0.10.17 (10.0.10.17),
Dst: 224.0.0.5 (224.0.0.5)
Open Shortest Path First
OSPF Header - hlavička OSPF
OSPF Version: 2 - verze protokolu OSPF
Message Type: LS Update (4) - typ o jakou zprávu se jedná
Packet Length: 88 - délka paketu
Source OSPF Router: 10.0.10.17 (10.0.10.17) - zdrojový OSPF router, který zaslal tento paket
Area ID: 0.0.0.0 (Backbone) - v jaké leží oblasti
Packet Checksum: 0x5822 [correct] - kontrolní součet bezchybnosti přenosu paketu
Auth Type: Null
Auth Data (none)
LS Update Packet - hlavička OSPF
Number of LSAs: 1 - množství LSA údajů
LS Type: Router-LSA
LS Age: 1 seconds - udává stáří paketu
Options: 0x22 (E/DC)
Link-State Advertisement Type: Router-LSA (1)
Link State ID: 10.0.10.17
Advertising Router: 10.0.10.17 (10.0.10.17) - jaký paket potvrzujeme (propagující router)
LS Sequence Number: 0x80000011 - jednoznačná identifikace LS paketu
LS Checksum: 6341 - kontrolní součet bezchybnosti přenosu LS
Length: 60
Flags: 0x00
Number of Links: 3 - počet připojených linek k routeru
- dále se popisuje okolí routeru (advertising routeru) -
Type: Transit ID: 10.0.10.18
Data: 10.0.10.17 Metric: 10
IP address of Designated Router:
10.0.10.18 - IP adresa DR
Link Data:
10.0.10.17
- určuje IP adresu rozhraní
Link Type: 2 - Connection to a transit
network - určuje jaký typ spojení popisuje
Number of TOS metrics: 0
TOS 0 metric: 10
Type: PTP ID: 10.0.3.1 Data: 10.0.10.10 Metric: 64
Neighboring router's Router ID:
10.0.3.1 - ID sousedního routeru
Link Data:
10.0.10.10
- určuje IP adresu rozhraní
Link Type: 1 - Point-to-point connection to another router
- určuje jaký typ spojení popisuje
Number of TOS metrics: 0
TOS 0 metric: 64
Type: Stub ID: 10.0.10.8 Data: 255.255.255.248 Metric: 64
IP network/subnet number:
10.0.10.8 - označení
připojené sítě/podsítě
Link Data:
255.255.255.248
- maska připojené sítě/podsítě
Link Type: 3 - Connection to a stub
network - určuje jaký typ spojení
popisuje
Number of TOS metrics: 0
TOS 0 metric: 64
Pozn.
Pole Advertising Router v LS paketu ukazuje Router ID směrovače, který je původcem LS paketu. Položka LS Sequence number je 32-bitové celé číslo, které je používáno k určení stáří a duplikaci LSA. Každý router má své sekvenční číslo a spolu s polem Advertising Router jednoznačně určují LS paket. Větší sekvenční číslo je aktuálnější. Nejnižší možné sekvenční číslo je 0x80000001 (takže nejstarší LSA). Při každém vytvoření nového LS Update se sekvenční číslo zvětší o jedničku. Když dosáhne maxima (0x7fffffff), sdělí se tato informace ostatním a nová instance může opět začít od začátku (0x80000001).
4.4 LS - Acknowledge
Tento paket byl vyslán jako potvrzení přijetí LS – Update a obsahoval z původního update paketu pouze hlavičku.
Příklad paketu LS-Acknowledge od RI po obdržení LS – Update od RJ
No. Time Source Destination Protocol Info
14 21.219542 10.0.10.18 224.0.0.5 OSPF LS Acknowledge
Frame 14 (78 bytes on wire, 78 bytes captured)
Ethernet II, Src: Cisco_46:3e:8b (00:00:0c:46:3e:8b), Dst: 01:00:5e:00:00:05 (01:00:5e:00:00:05)
Internet Protocol, Src: 10.0.10.18 (10.0.10.18), Dst: 224.0.0.5 (224.0.0.5)
Open Shortest Path First
OSPF Header - hlavička OSPF
OSPF Version: 2 - verze protokolu OSPF
Message Type: LS Acknowledge (5) - typ o jakou zprávu se jedná
Packet Length: 44 - délka paketu
Source OSPF Router: 10.0.20.1 (10.0.20.1) - zdrojový OSPF router, který zaslal tento paket
Area ID: 0.0.0.0 (Backbone) - v jaké leží oblasti
Packet Checksum: 0xb21a [correct] - kontrolní součet bezchybnosti přenosu paketu
Auth Type: Null
Auth Data (none)
LSA Header - hlavička LSA
LS Age: 1 seconds - udává stáří paketu
Options: 0x22 (E/DC)
Link-State Advertisement Type: Router-LSA (1)
Link State ID: 10.0.10.17
Advertising Router: 10.0.10.17 (10.0.10.17) - jaký paket potvrzujeme
LS Sequence Number: 0x80000011 - jednoznačná identifikace podle sekvenčního čísla
LS Checksum: 6341 - kontrolní součet bezchybnosti přenosu LS
Length: 60
Jakmile obdrží routery RC a RF paket LSA update (informace o změně v topologii), potvrdí příjem odesláním paketu LSA Acknowledge. Protože k sobě nemají připojeny žádné další routery, je proces „aktualizace“ topologie sítě u konce a dále se posílají opět jen Hello packety.
Pakety LS - Update se posílají vždy (jak u broadcast tak point-to-point sítě) na multicastovou adresu 224.0.0.5. Tato multicastová adreasa je určena pro všechny routery používající směrovací protokol OSPF (v broadcast a point-to-point sítích). Pokud jsou spojeny na jednom rozhraní více než dva routery (Broadcast síť), potom pakety LS - Acknowledge vysílají routery, které jsou DR (designated router) a BDR (backup designated router) na adresu 224.0.0.5 a ostatní vysílají tento paket pouze na adresu 224.0.0.6 (což znamená, že tento paket je určen pro DR a BDR). Pokud je původce paketu LS - Update DR router (náš příklad), potom paket LS - Acknowledge posílá na adresu 224.0.0.5 jen router BDR (Backup Designated Router) a ostatní na adresu 224.0.0.6.
4.5 LS - request
Tento typ paketu (Link State Request) pošle router svému sousedovi tehdy, pokud zjistí že mu některé LSA chybí nebo je zastaralé. Vyžádá si tak LS update od daného směrovače.
Pozn.
Tento typ paketu se nám při odchytávání nepodařilo zachytit.
Na uvedeném obrázku (obr. 2) je zobrazeno šíření LSA paketů po odpojení sítě 10.0.2.0/24. Podrobný popis šíření je popsán v praktické části. Vyznačená čísla u šipek znamenají, v jakém pořadí se LSA packety posílaly.
obr.3 Ukázka šíření LSA paketů při odpojení sítě 10.0.2.0/24
7.1 Router RC
hostname RC
!
interface Loopback0
ip address 10.0.4.1 255.255.255.0
no shutdown
!
interface Ethernet0
ip address 10.0.20.2 255.255.255.248
no shutdown
!
router ospf 1
log-adjacency-changes
network 10.0.20.0 0.0.0.7 area 0
network 10.0.4.0 0.0.0.255 area 0
7.2 Router RD
hostname RD
!
interface Loopback0
ip address 10.0.3.1 255.255.255.0
no shutdown
!
interface Ethernet0
ip address 10.0.10.2 255.255.255.248
no shutdown
!
interface Serial0
ip address 10.0.10.9 255.255.255.248
no fair-queue
clockrate 64000
no shutdown
!
router ospf 1
log-adjacency-changes
network 10.0.3.0 0.0.0.255 area 0
network 10.0.10.0 0.0.0.7 area 0
network 10.0.10.8 0.0.0.7 area 0
7.3 Router RF
hostname RF
!
interface Loopback0
ip address 10.0.5.1 255.255.255.0
no shutdown
!
interface Ethernet0
ip address 10.0.20.3 255.255.255.248
duplex auto
speed auto
no shutdown
!
router ospf 1
log-adjacency-changes
network 10.0.5.0 0.0.0.255 area 0
network 10.0.20.0 0.0.0.7 area 0
7.4 Router RI
hostname RI
!
interface Ethernet0
ip address 10.0.10.1 255.255.255.248
media-type 10BaseT
no shutdown
!
interface Ethernet1
ip address 10.0.10.18 255.255.255.248
media-type 10BaseT
no shutdown
!
interface Ethernet2
ip address 10.0.20.1 255.255.255.248
media-type 10BaseT
no shutdown
!
router ospf 1
log-adjacency-changes
network 10.0.10.0 0.0.0.7 area 0
network 10.0.10.16 0.0.0.7 area 0
network 10.0.20.0 0.0.0.7 area 0
7.5 Router RJ
hostname RJ
!
interface Ethernet0
ip address 10.0.10.17 255.255.255.248
no shutdown
media-type 10BaseT
!
interface Ethernet1
ip address 10.0.2.1 255.255.255.0
no shutdown
media-type 10BaseT
!
interface Serial0
ip address 10.0.10.10 255.255.255.248
clock rate 64000
no shutdown
no fair-queue
!
router ospf 1
log-adjacency-changes
network 10.0.10.8 0.0.0.7 area 0
network 10.0.10.16 0.0.0.7 area 0
network 10.0.2.0 0.0.0.255 area 0
8. Závěr
Protože informace o připojení sítě 10.0.2.0 se dostala až k routerům RC a RF znamená, že pakety LS - Update obdržely všechny routery a každý z nich má kompletní topologickou databázi (i když z celé tabulky si vypočítá jen next hop, který se využije). Pakety Link State Request se nám nepodařilo zachytit.
9. Přílohy
V přílohách je možno stáhnout zachycené pakety programem Ethereal a konfigurační soubory všech routerů. Zachycené pakety jsou rozděleny do adresářů s popisem routerů, mezi kterými se šířily.
10. Zdroje
[1] Kállay, F. a Peniak, P. Počítačové sítě a jejich aplikace. vyd. Praha : GRADA Publishing, a.s., 2003. ISBN 80-247-0545-1
[2]
http://www.freesoft.org/CIE/RFC/1583/65.htm[3] http://www.cs.vsb.cz/grygarek/SPS/