Dynamické směrování
František Kobzík, kobza@mail.muni.cz
Obsah
Statické vs. dynamické směrování
Statické směrování - router posílá pakety podle pevně dané tabulky (menší
sítě).
Dynamické směrování - zpočátku router nemá úplnou znalost o síti. Pomocí
zpráv zasílaných mezi routery si router vytvoří představu o topologii sítě, takže ví, kam
má pakety posílat. Vhodné pro větší sítě - vyšší fault-tolerance a rozložení
zátěže.
Autonomní systémy
aka samosprávní systémy.
Jedná se o izolované sítě (např. poskytovatele připojení k Internetu nebo
velké organizace).
Pro dynamické směrování v těchto sítích se používají protokoly spadající
do množiny IGP (Interior gateway protocol), konkrétně RIP, OSPF, IS-IS.
Pro směrování mezi autonomními systémy se používají protokoly typu EGP
(Exterior gateway protocol), konkrétně BGP.
Směrovací protokoly
Dělí se do dvou kategorií:
- Distance Vector protokoly
- směrovače znají cestu k sousedům
- periodickým posíláním a obohacováním svých tabulek získají obraz topologie sítě
- pomocí grafového algoritmu (většinou Bellman-Ford) vypočítají vzdálenost do všech ostatních uzlů
- Nevýhoda: periodické vysílání, možnost zacyklení
- Link State protokoly
- Routery si posílají zprávy pouze při změně topologie (výpadek)
- Pro výpočet vzdálenosti mezi uzly je použit Dijkstrův algoritmus
- Výhoda: konvergují rychleji než DV
- Nevýhoda: výpočetně složitější
RIP - Routing Information Protocol
- IGP protokol
- DV, výpočet vzdálenosti pomocí Bellman-Forda
- Několik verzí: v1, v2 pro IPv4, RIPng prot IPv6
- Proti zacyklení se brání povolením cest určité délky
- Trpí neduhy DV protokolů - pomalá konvergence, hodně posílaných dat atp.
OSPF - Open Shortest Paths First
- IGP protokol
- LS, výpočet vzdálenosti pomocí Dijkstry
- Podporuje IPv6
- Routery si posílají hello packety, pokud protistrana neodpoví během dead intervalu, je linka prohlášena za mrtvou
- AS je rozdělen na oblasti (areas) označené 32 bitovým číslem (obvykle vypadají jako IP adresa)
- 3 typy oblastí :
- Páteřní (taktéž backbone, nebo area 0) - označovaná 0.0.0.0. Všechny oblasti jsou k ní připojeny. Tato oblast je typicky připojena do Internetu.
- Tranzitní - připojení k oblasti 0 více cestami. Tranzitní oblasti spolu mohou být taktéž propojeny.
- Stub oblast - připojená k oblasti 0 pouze jenou cestou
- Výhody/nevýhody - viz LS obecně
BGP - Border Gateway Protokol
- EGP protokol, tedy směruje pakety mezi AS
- Path Vector protokol - k uzlům si též ukládá celé cesty
- Narozdíl od IGP se zohledňují i další kritéria kromě vzdálenosti
- Mezi routery se neposílají celé routovací tabulky
Implementace v UNIXových systémech
GNU Quagga
- Fork aplikace GNU Zebra
- Balíček implementující různé směrovací protokoly
- Obsahuje daemona Zebra - rozhraní mezi jádrem a směrovacími protokoly
- Obsahuje jednotlivé implementace protokolů jako daemony - ospdf, ripd, bgpd...
BIRD
- Projekt MFF UK
- Podpora IPv6
- BIRD implementuje vnitřní směrovací tabulku, ke které se připojují
podporované protokoly a komunikují s ní.
- Pomocí protokolu "kernel" je možné připojit k vnitřní tabulce směrovací
tabulku kernelu.
- Možnost aplikace filtrů na různé cesty.
Konfigurace programu Quagga
- "Inspirace" na ABCLinuxu.cz
- Situace: máme 2 routery v rámci sítě ISP. Jeden má přístup do Internetu,
pod druhým je podsíť, kterou chceme připojit do Internetu.
- Na obou routerech nastavíme GNU Quagga a daemona
ospfd
(konfigurační soubory zebra.conf
,
ospfd.conf
).
Konfigurace prvního routeru:
Soubor zebra.conf
!jmeno routeru
hostname routername
!loopback
interface lo
!rozhrani do Internetu
interface eth0
!rozhrani do site ISP
interface eth1
Soubor osfpd.conf
! Jmeno routeru
hostname routername
! Loopback
interface lo
! Prvni sitovka zakomentovana, do Internetu nebudeme vysilat OSPF
!interface eth0
!
! Druha sitovka
interface eth1
description smer do vnitrni site
ip ospf cost 100
ip ospf dead-interval 40
ip ospf hello-interval 10
!
!
! Konfigurace ospfd
router ospf
! ID-routeru (napr. IP adresa)
ospf router-id 10.0.90.1
redistribute connected metric-type 1
redistribute static metric-type 1
network 10.0.0.0/24 area 0
network 10.0.90.0/24 area 0
!tenhle radek na routeru mezi Internetem a siti ISP
! zpusobi propagaci default gw do vnitrni site
default-information originate always metric-type 1
U druhého routeru se konfigurační soubory liší v několika bodech
Po spuštění deamonů quagga a ospfd na obou strojích by se po chvíli měla
vypropagovat default brána z prvního routeru na druhý.
Ověříme pomocí příkazu ip
:
[user@somewhere]$ ip route
default via 10.0.90.1 dev eth0 proto zebra metric 101
Zabezpečení OSPF v Quagga
Dva způsoby
- heslem - po síti se posílá nezašifrované heslo
- md5 - v ospf paketu se posílá otisk obsahu paketu, klíče, router-id a
sekvenčního čísla (proti útoku přehráním) - vyšší zátěž CPU
Konfigurace statických cest
Konfigurace v zebra.conf
ip route sit/maska brana
ip route sit/maska brana vzdalenost
Směrování multicastu
Směrování pomocí PIM (Protocol Independent Multicast)
Dva módy:
- PIM-SM (Sparse Mode)
- PIM-DM (Dense Mode)
PIM-SM
Používá Sparse Tree - Jsou vybudovány společné body (meeting points), jedna
skupina má jeden společný bod. Tyto body jsou spolu propojeny. Aktivita zdola.
Je nejpoužívanějším protokolem pro směrování multicastu.
PIM-DM
Používá Shared Tree - "Centralizovaný" způsob. Pro jednu multicastovou adresu
existuje jeden centrální bod, který vše řídí - zaplavuje síť broadcasty.
To je nevhodné pro sítě většího rozsahu.
Konfigurace v jádře
Volba:
Networking support/Networking options/IP:Multicasting
Pokud zároveň chceme, aby se stroj choval jako multicastový router, je potřeba
povolit možnosti:
Networking support/Networking options/IP:Multicast routing
Networking support/Networking options/IP:Tunelling
Také je třeba povolit přesměrování paketů.
O směrování se stará daemon mrouted
.
Ještě před spuštěním routeru je potřeba nastavit defaultní cestu pro multicast:
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
IGMP - Internet Group Management Protocol
Protokol starající se o správu členství v multicastových skupinách. Pakety formátu IGMP obsahují např. žádosti o vytvoření skupiny, přidání ke skupině apod.
Literatura