IP routingIP 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í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íLinková vrstvaUzly 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 IPDalší 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říkladPří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
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ádraroute -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
OdkazyReferenceV tomto článku byl použit překlad textu z článku IP forwarding algorithm na anglické Wikipedii.
|
Portal di Ensiklopedia Dunia