De Routing-Tabel (TCP/IP-Netwerk Beheer, 3e Editie)
2.4. De routeringstabel
gateways routeren gegevens tussen netwerken, maar alle netwerkapparaten, zowel hosts als gateways, moeten routeringsbeslissingen nemen. Formost hosts, de routeringsbeslissingen zijn eenvoudig:
-
als de doelhost zich op het lokale netwerk bevindt, worden de gegevens aan de doelhost geleverd.
-
als de doelhost zich op een extern netwerk bevindt, worden de gegevens doorgestuurd naar een lokale gateway.
ip-routeringsbeslissingen zijn gewoon tabelopzoekingen. Pakketten worden gerouteerd naar hun bestemming zoals aangegeven door de routingstabel (ook wel de doorstuurtabel genoemd). In de routeringstabel worden bestemmingen toegewezen aan de router-en netwerkinterface die IP moet gebruiken om die bestemming te bereiken.Het onderzoeken van de routeringstabel op een Linux systeem laat dit zien.
op een Linux systeem gebruikt u het routecommando met de-noption om de routeringstabel weer te geven. De-n optie voorkomt route van het converteren van IP-adressen naar hostnamen, wat een duidelijkere weergave geeft. Hier is een routeringstabel van een voorbeeld Red Hat systeem:
Het Etstat commando wordt gebruikt om de routeringstabel op Solaris 8 systemen te onderzoeken. Een Solaris-voorbeeld wordt later in dit hoofdstuk behandeld.
# route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface172.16.55.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0172.16.50.0 172.16.55.36 255.255.255.0 UG 0 0 0 eth0127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo0.0.0.0 172.16.55.1 0.0.0.0 UG 0 0 0 eth0
op een Linux-systeem wordt de routeringstabel weergegeven met de volgende velden:
bestemming
de waarde waartegen het IP-adres van de bestemming overeenkomt.
Gateway
de te gebruiken router om de specifieke bestemming te bereiken.
Genmasker
het adresmasker dat wordt gebruikt om een IP-adres te matchen met de waarde die wordt getoond in het Doelveld.
Flags
bepaalde kenmerken van deze route.De mogelijke Linux flag waarden zijn:
De vlaggen R, M, C, I en ! zijn specifiek voor Linux. De andere vlaggen worden gebruikt op mostUnix systemen.
U
geeft aan dat de route omhoog en operationeel is.
H
geeft aan dat dit een route is naar een specifieke host(de meeste routes zijn naar netwerken).
G
geeft aan dat de route een externalgateway gebruikt. De netwerkinterfaces van het systeem bieden routes naar direct aangesloten netwerken. Alle andere routes maken gebruik van externe gateways.Direct verbonden netwerken hebben niet de G-vlag ingesteld; alle andere routes wel.
R
geeft een route aan die geà nstalleerd is, waarschijnlijk door een dynamisch routeringsprotocol dat op dit systeem draait, gebruikmakend van de instate optie.
D
geeft aan dat deze route is toegevoegd vanwege een ICMP-Omleidingsbericht. Wanneer een systeem hoort van een routevia een ICMP Redirect, voegt het de route toe aan zijn routing table, zodat extra pakketten die naar die bestemming gaan niet hoeven te worden doorgestuurd. Het systeem gebruikt de D-vlag om deze routes te markeren.
M
geeft een route aan die gewijzigd is, waarschijnlijk door het adynamic routing protocol dat op dit systeem draait, met behulp van de mod optie.
een
geeft een cache-route aan die een associatedentry heeft in de ARP-tabel.
C
geeft aan dat deze route afkomstig is van de kernelrouting cache. De meeste systemen gebruiken twee routeringstabellen: de ForwardingInformation Base (FIB), de tabel waarin we geïnteresseerd zijn omdat deze wordt gebruikt voor de routeringsbeslissing, en de kernel routingcache, die de bron en bestemming van recentgebruikte routes weergeeft. Deze vlag is gedocumenteerd, maar ik heb nog nooit de C-vlag in een routing table listing gezien, zelfs niet bij het weergeven van de routing cache.
L
geeft aan dat de bestemming van deze route een van de adressen van deze computer is. Deze “localroutes” zijn alleen te vinden in de routing cache.
B
geeft een route aan waarvan de bestemming een omroepadres is. Deze “broadcast routes” zijn alleen te vinden in deouting cache. Solaris kent de vlag toe aan zowel broadcast-adressen als netwerkadressen; dat wil zeggen dat zowel 172.16.255.255 als 172.16.0.0 de B-vlag krijgen van Solaris-systemen die op network172.16.0.0/16 leven.
I
geeft een route aan die de loopback-interfacevoor een ander doel gebruikt dan het aanpakken van het loopback-netwerk. Deze “interne routes” zijn alleen te vinden in de routing cache.
!
geeft aan dat datagrammen die voor deze bestemming zijn gebonden, zullen worden afgewezen. Linux staat je toe om handmatig”negatieve” routes te installeren. Dit zijn routes die expliciet gegevens blokkeren die zijn gekoppeld aan een specifieke bestemming. Dit is Linux-specifiek en vaak gebruikt, maar het is een mogelijke vlag instelling.
Metric
De “kosten” van de route. De metriek wordt gebruikt om dubbele routes te sorteren als die in de tabel voorkomen. Daarnaast is een dynamisch routeringsprotocol vereist om gebruik te maken van de metriek.
Ref
het aantal keren dat naar de route is verwezen om een verbinding tot stand te brengen. Deze waarde wordt niet gebruikt door Linux systemen.
gebruik
het aantal keren dat deze route werd opgezocht door IP.
Iface
de naam van de netwerkinterface die voor deze route wordt gebruikt.
de netwerkinterface is de hardware en software van networkaccess die IP gebruikt om te communiceren met het fysieke netwerk. Zie hoofdstuk 6, “De Interface configureren” voor details.
elke regel in de routeringstabel begint met een waarde voor bestemming. De doelwaarde is de sleutel waarmee het IP-adres wordt vergeleken om te bepalen of dit de juiste route is om het IP-adres te bereiken. De destinationwaarde wordt meestal het “bestemmingsnetwerk” genoemd, hoewel het geen netwerkadres hoeft te zijn. De destinationwaarde kan een hostadres zijn, een multicast-adres, een Adresblok dat een aggregatie van vele netwerken dekt, of een speciale waarde voor het standaard route-of loopback-adres. In alle gevallen bevat het veld destination echter de waarde waarmee het doeladres van het IP-pakket wordt vergeleken om te bepalen of ifIP het datagram via deze route moet leveren.
Het genmaskerveld is het bitmasker dat IP toepast op het Destination-adres van het pakket om te zien of het adres overeenkomt met de destination-waarde in de tabel. Als een bit is ingeschakeld in het bitmasker, de corresponding bit in het doeladres is significant formatteren van het adres. Zo zou het adres 172.16.50.183 overeenkomen met de tweede ingang in de steekproeftabel omdat het adres 255.55.255 is.0 levert 172.16.50.0 op.
wanneer een adres overeenkomt met een regel in de tabel, vertelt het Gatewayfield IP hoe de specifieke bestemming bereikt moet worden. Als het veld Gateway het IP-adres van arouter bevat, wordt de router gebruikt. Als het Gateway-veld alle 0s(0.0.0.0 wanneer route wordt uitgevoerd met-n) of een sterretje (* wanneer route wordt uitgevoerd zonder-n) bevat, is het Destination-netwerk een direct verbonden netwerk en is de”gateway” de netwerkinterface van de computer. Het laatste veld dat voor elke tabelinvoer wordt weergegeven, is de netwerkinterface die voor de route wordt gebruikt. In het voorbeeld is het de eerste Ethernetinterface (eth0) of de loopback interface(lo). De bestemming, gateway, masker, eninterface bepalen de route.
De overige vier velden (Ref, Use, Flags en Metric) geven informatie over de route weer. Deze informatievelden hebben slechts een marginale waarde. Sommige systemen houden een nauwkeurige telling in het Ref veld; anderen, zoals Linux, gebruiken het niet echt. Linux gebruikt het Usefield om het aantal keren te tellen dat aroute moest worden opgezocht omdat het niet in de routing cache zat toen IP het nodig had. Sommige andere systemen tonen het aantal packettransmitted via de route in het veld Use. Het Flagsfield geeft informatie weer die vaak niet zichtbaar is, zelfs zonder de flags: elke route heeft de U-vlag ingesteld, omdat elke route in de routeringstabel per definitie omhoog is, en kijkend naar het Gateway-veld vertelt u of er al dan niet een externalgateway wordt gebruikt zonder te zoeken naar de G-vlag. De Metricvalue wordt alleen gebruikt als je een versie van het RoutingInformation Protocol (Rip) op je systeem uitvoert. Laat je niet afleiden door deze informatie. Het hart van de routing tabel is de route,die bestaat uit de bestemming, het masker, de gateway, en deinterface.
IP gebruikt de informatie uit de routeringstabel (de doorstuurtabel)om de routes te construeren die gebruikt worden voor actieve verbindingen. De routesgekoppeld met actieve verbindingen worden opgeslagen in de routingcache. Op Linuxsystems kan de routeringscache worden onderzocht door het argument-C toe te voegen aan de opdrachtregel:
$ route -CnKernel IP routing cacheSource Destination Gateway Flags Metric Ref Use Iface127.0.0.1 127.0.0.1 127.0.0.1 l 0 0 0 lo192.203.230.10 172.16.55.3 172.16.55.3 l 0 0 0 lo172.16.55.1 172.16.55.255 172.16.55.255 ibl 0 0 243 lo172.16.55.2 172.16.55.255 172.16.55.255 ibl 0 0 15 lo172.16.55.3 192.203.230.10 172.16.55.1 0 0 0 eth0127.0.0.1 127.0.0.1 127.0.0.1 l 0 0 0 lo172.16.55.3 132.163.4.9 172.16.55.1 0 0 0 eth0172.16.55.2 172.16.55.3 172.16.55.3 il 0 0 149 lo172.16.55.3 172.16.55.2 172.16.55.2 0 1 0 eth0132.163.4.9 172.16.55.3 172.16.55.3 l 0 0 0 lo
De routeringscache verschilt van de routeringstabel omdat de cache bestaande routes toont. De routing table wordt gebruikt om routing beslissingen te maken; de routing cache wordt gebruikt nadat de beslissing is gemaakt. De routing Cach toont de bron en bestemming van een netwerkverbinding en de gateway en interface gebruikt om die verbinding te maken.
Linux geeft een goed voorbeeld voor het tonen van de inhoud van de routertabel omdat het Linux route commando de tabel zo duidelijk weergeeft. Op Solaris-systemen heeft het commando route een heel andere syntaxis. Bij het draaien van Solaris, Toon de inhoud van de routing tabel met deetstat-nrcommand. De optie-r vertelt netstat om de routeringstabel weer te geven, en de optie-n vertelt netstat om de tabel in numerieke vorm weer te geven.
Linux bevat de informatie over het adresmasker in de routeringstabel. Solaris 8support adresmaskers; het laat ze gewoon niet zien wanneer de routeringstabel wordt afgespeeld.
% netstat -nr Routing Table: IPv4 Destination Gateway Flags Ref Use Interface ----------- ----------- ----- ---- ----- --------- 127.0.0.1 127.0.0.1 UH 1 298 lo0 default 172.16.12.1 UG 2 50360 172.16.12.0 172.16.12.2 U 40 111379 dnet0 172.16.2.0 172.16.12.3 UG 4 1179 172.16.1.0 172.16.12.3 UG 10 1113 172.16.3.0 172.16.12.3 UG 2 1379 172.16.4.0 172.16.12.3 UG 4 1119
de eerste tabel-regel is de loopback-routevoor de lokale host. Dit is het loopbackadres dat eerder werd genoemd als een gereserveerd netwerknummer. Omdat elk systeem de loopback route gebruikt om datagrammen naar zichzelf te sturen, is er een ingang voor de loopback interface in de routeringstabel van elke host.De H-vlag wordt ingesteld omdat Solaris een route naar een specifieke host(127.0.0.1) maakt, niet een route naar een volledig netwerk (127.0.0.0).We zullen de loopback faciliteit weer zien als we kernelconfiguratie en het ifconfig Commando bespreken. Op dit moment zijn we echter echt geïnteresseerd in externe routes.
een andere unieke regel in deze routingtabel is die met het woord “default” in het Destination veld. Dit item is voor de defaultraute, en de gateway gespecificeerd in dit item is de default gateway. De standaardroute is het eerder genoemde ander behouden netwerknummer: 0.0.0.0. De defaultgateway wordt gebruikt wanneer er geen specifieke route in de tabel is voor het doelnetwerkadres. Bijvoorbeeld, deze routeringstabel heeft geen toegang voor Netwerk 192.168.16.0. Als IP datagrammen ontvangt die op dit netwerk zijn gericht, zal het deze verzenden via de standaard gateway172. 16. 12.1.
alle gateways die in de routeringstabel verschijnen, bevinden zich op netwerkendirect verbonden met het lokale systeem. In het voorbeeld hierboven weergegeven, betekent dit dat de gateway adressen allemaal beginnen met 172.16.12 ongeacht het doeladres. Dit is het enige netwerk waaraan deze voorbeeldhost Direct is gekoppeld, en daarom is het het enige netwerk waaraan het direct gegevens kan leveren. De gateways die de host gebruikt om de rest van het Internet te bereiken, moeten zich op zijn subnet bevinden.
in Figuur 2-4 wordt de IP-laag van twee hosts en agateway op ons imaginaire netwerk vervangen door een klein stukje van de arouting tabel, die de bestemmingsnetwerken en de gateways toont die worden gebruikt om die bestemmingen te bereiken. Neem aan dat het adresmasker dat Voor netwerk 172.16.0.0 wordt gebruikt 255.255.255.0 is. Wanneer de bron host (172.16.12.2) data stuurt naar de doel host (172.16.1.2), past het het adresmasker toe om te bepalen dat het moet zoeken naar het Destination netwerk adres 172.16.1.0 in de routeringstabel. De routeringstabel in de bronhost laat zien dat de gegevens gebonden voor 172.16.1.0 naar gateway 172.16.12.3 worden verzonden. De bron host stuurt het pakket door naar de gateway. De gateway doet dezelfde stappen en zoekt het Destination adres op in zijn routeringstabel. Gateway 172.16.12.3 maakt dan directe levering via zijn 172.16.1.5 interface. Uit de routetabellen in Figuur 2-4 blijkt dat alle systemen alleen gateways weergeven op netwerken waarop ze rechtstreeks zijn aangesloten.Dit wordt geïllustreerd door het feit dat 172.16.12.1 is de defaultgateway voor zowel 172.16.12.2 en 172.16.12.3, maar omdat 172.16.1.2cannot Direct netwerk 172.16.12.0 bereiken, het heeft een andere defaultroute.
figuur 2-4. Tabelgebaseerde routering
een routeringstabel bevat geen end-to-endroutes. Een route wijst alleen naar de nextgateway, genaamd de next hop, langs het pad naar het bestemmingsnetwerk. De hostrelies op de lokale gateway om de gegevens te leveren, en de gatewayrelies op andere gateways. Als een datagram van de ene gateway naar de andere gaat, zou het uiteindelijk een moeten bereiken die direct verbonden is met het bestemmingsnetwerk. Het is deze laatste gateway die uiteindelijk de gegevens naar de bestemmingshost verzendt.
zoals we zullen zien in hoofdstuk 7, “Routing configureren”, verkrijgen sommige routingprotocollen, zoals OSPF en BGP,end-to-end routing informatie. Niettemin wordt het pakket nog steeds doorgegeven aan de next-hop router.
IP gebruikt het netwerkgedeelte van het adres om het datagram tussen netwerken te routeren. Het volledige adres, inclusief de hostinformatie, wordt gebruikt om de definitieve levering te doen wanneer het datagram het Destination-netwerk bereikt.
2.3. Internet Routing Architecture | 2.5. Address Resolution |