IP routing
IP routing (směrování IP) je implementace směrování pro IP sítě. Každý uzel musí udržovat směrovací tabulku, kterou při odesílání IP paketů používá pro výběr dalšího uzlu, na nějž se má paket poslat. Tento uzel se nazývá , česky se obvykle používá termín „další hop“.

Když vyhovuje několik cílů, vybere se cesta s nejdelší maskou podsítě.
Implicitní cesta může existovat pouze jedna.

Algoritmus IP směrování 

Algoritmus směrování IP pro IP adresu cíle D a prefix sítě N je následující:

jestliže ( N odpovídá některé z přímo připojených síťových adres )

    Doruč datagram na D přes danou linku;

jinak jestliže ( Směrovací tabulka obsahuje cestu pro N )

    Pošli datagram na adresu dalšího hopu uvedenou ve směrovací tabulce;

jinak jestliže ( Existuje implicitní cesta )

    Pošli datagram implicitní cestou;

jinak

    Vrať odesilateli chybovou zprávu;

Když neexistuje žádná dostupná cesta, bude odesilateli paketu vrácena chyba ve formě ICMP paketu, který informuje odesilatele, že paket nemohl být doručen, aby se zabránilo zbytečným opakováním vysílání (), které by mohlo vést až k zahlcení sítě. Odesílatel musí buď zastavit vysílání nebo zvolit jinou adresu či cestu.

Typy IP směrování

Linková vrstva 

Uzly ve stejné podsíti, jako je odesilatel, jsou přímo dosažitelné prostřednictvím lokálního síťového spoje.
Pro zjištění linkové adresy se použije Address Resolution Protocol (ARP), který pro doručení paketů na cílový systém využívá všesměrové vysílání.

Adresy patřící do níže uvedených podsítí nesmějí být směrovány, takže lze s nimi komunikovat pouze pokud jsou dosažitelné přes přímo připojenou síť dostupnou pomocí síťové karty, rozbočovače (hubu), bridge nebo přepínače.

Protože tyto podsítě se v Internetu nesmí směrovat, neexistuje adresa dalšího hopu.
route add -net 169.254.0.0 netmask 255.255.0.0 dev eth0
route add -net 192.168.0.0 netmask 255.255.0.0 dev eth0
route add -net 172.16.0.0  netmask 255.240.0.0 dev eth0
route add -net 10.0.0.0    netmask 255.0.0.0   dev eth0

Vrstva IP 

Další dva typy cest používají síťovou vrstvu pro směrování přes hranice sítí. Každá cílová síť může být dostupná přes jiný router, který přeposílá pakety:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.96.1

Pokud pro určitý cíl neexistuje žádný router, použije se implicitní brána:
route add default gw 71.46.14.1

Příklad 

Příklad směrovací tabulky:
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         71.46.14.1      0.0.0.0         UG    0      0        0 ppp0
10.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 eth0
71.46.14.1      0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
172.16.0.0      0.0.0.0         255.240.0.0     U     0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
192.168.1.0     192.168.96.1    255.255.255.0   UG    0      0        0 eth0
192.168.96.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

Síťová rozhraní:

 eth0 je síťová karta (Local Area Network)
 ppp0 je PPPoE spojení (implicitní cesta).

Implicitní cesta má cíl a masku 0.0.0.0 a příznak G.

Router je identifikován síťovou maskou 255.255.255.255 a příznakem H.

Směrovací příznaky

Masky podsítí 

Novější jádra podporují zjednodušenou syntaxi:

route add -net 169.254.0.0/16 dev eth0
route add -net 192.168.0.0/16 dev eth0
route add -net 172.16.0.0/12 dev eth0
route add -net 10.0.0.0/8 dev eth0

Směrovací tabulky jádra 

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         217.136.39.1    0.0.0.0         UG    0      0        0 ppp0
10.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
172.16.0.0      0.0.0.0         255.240.0.0     U     0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
217.136.39.1    0.0.0.0         255.255.255.255 UH    0      0        0 ppp0

V Linuxovém jádře je tabulka cest dostupná pomocí systému souborů /proc:
cat /proc/net/route
cat /proc/net/route
Iface   Destination     Gateway         Flags   RefCnt  Use     Metric  Mask            MTU     Window  IRTT
ppp0    00000000        012788D9        0003    0       0       0       00000000        0       0       0
eth0    0000000A        00000000        0001    0       0       0       000000FF        0       0       0
eth0    0000FEA9        00000000        0001    0       0       0       0000FFFF        0       0       0
eth0    000010AC        00000000        0001    0       0       0       0000F0FF        0       0       0
eth0    0000A8C0        00000000        0001    0       0       0       0000FFFF        0       0       0
ppp0    012788D9        00000000        0005    0       0       0       FFFFFFFF        0       0       0

Směrovací protokoly 

 RIP – Routing Information Protocol (implementovaný routed démonem z unixové distribuce BSD)
 EGP – Exterior Gateway Protocol
 BGP – Border Gateway Protocol (implementovaný gated démonem vyvinutým na Cornellově univerzitě)
 Multipath směrování

Odkazy

Reference 

Internetové protokoly
Směrování v sítích
Síťové algoritmy