IP routing

Z Wikipedie, otevřené encyklopedie

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á next hop[1], č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í[editovat | editovat zdroj]

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í (anglicky retransmission), 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í[editovat | editovat zdroj]

Linková vrstva[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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í:

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[editovat | editovat zdroj]

Nejobvyklejší směrovací příznaky
Příznak Význam
G (Gateway) Použití brány
H (Host) Cílem je jediný uzel (ne síť)
U (Up) Cesta je aktivní

Masky podsítí[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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[editovat | editovat zdroj]

Odkazy[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku IP forwarding algorithm na anglické Wikipedii.

  1. Douglas E. Comer. Internetworking with TCP/IP; Principles, Protocols and Architecture. 3. vyd. [s.l.]: Prentice Hall International, Inc., 1995.