Toon posts:

(Static) routing tutorial

Pagina: 1
Acties:
  • 10.264 views sinds 30-01-2008

  • Predator
  • Registratie: Januari 2001
  • Laatst online: 23-03 12:53

Predator

Suffers from split brain

Topicstarter
(Static) routing tutorial

Intro:


Routeren is het transporteren van laag 3 pakketjes (IP of IPX) over 2 verschillende
netwerksegmenten.
Een host, verbonden met 2 of meer aparte IP subnetten, kan gebruikt worden om een IP
pakketje van subnet 1 naar subnet 2 te transporteren.



Quicklinks:
  • <li><a href="/forum/list_messages/744581#1" class=link>Deel 1: Routing activeren</a> <li><a href="/forum/list_messages/744581#2" class=link>Deel 2: De routing tabel</a> [list] <li><a href="/forum/list_messages/744581#alg" class=link>Algemeen</a> <li><a href="/forum/list_messages/744581#vkl" class=link>Verklaring</a> <li><a href="/forum/list_messages/744581#hrt" class=link>Hoe bekijkt een computer of router nu de route tabel ?</a> [/list] <li><a href="/forum/list_messages/744581#3" class=link>Deel 3: Praktische voorbeelden</a> [list] <li><a href="/forum/list_messages/744581#vb1" class=link>Voorbeeld1 - 3 pc's</a> <li><a href="/forum/list_messages/744581#vb2" class=link>Voorbeeld2 - 3 pc's + breedband router</a> [/list] <li><a href="/forum/list_messages/744581#credits" class=link>Credits & aanmerkingen</a>


Deel 1: Routing activeren.




• Win2k/WinXP
Routing is eenvoudig aan te zetten via een wijziging in het register.
code:
1
Start->run->regedit

Ga naar HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Daar zet je IPEnableRouter op 1 ipv op 0
Reboot

Als je ipconfig /all uitvoert op de commando lijn zou je:
code:
1
IP Routing Enabled. . . . . . . . : Yes

moeten zien.

Op de server versies kan je de RRAS (routing and remote access) snap-in gebruiken en de RRAS service starten.
Of je kan de bovenstaande registry aanpassing uitvoeren.

• WinNT
IP forwarding aanzetten bij de advanced options van TCP/IP

• Win9X/WinME
Deze kunnen geen routing functie vervullen.
In ieder geval niet zonder 3rd party programma.

Een programma waarmee dit wel mogelijk zou zijn, is Winroute.
Het programma installeren op een Win9x/WinMe machine en de Winroute service starten is genoeg.
Vanaf dat moment werkt de computer als router.
(volgens Winroute help doc)

• Linux
Met
code:
1
echo 1 > /proc/sys/net/ipv4/ip_forward

schakel je routing in
met
code:
1
echo 0 > /proc/sys/net/ipv4/ip_forward

schakel je routing uit.

Na reboot is dit weg dus ofwel zet je het in de startup scripts ofwel pas je het network configbestand aan.
Op redhat linux computer is dit /etc/sysconfig/network.
Daar zet je FORWARD_IPV4=yes
Bij debian linux is dit /etc/network/options.
Daar zet je ip_forward=yes

Terug naar de index




Deel 2: De routing tabel





Algemeen:



De routing tabel houdt bij waar welk subnet zich situeert, welke interface daarvoor gebruikt moet worden en of daar eventueel nog een router voor gecontacteerd moet worden.

Om de routing tabel te laten zien doe je:

Windows machines:
code:
1
route print

of
code:
1
netstat -rn


Dan krijg je bv iets zoals dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
C:\>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 a0 24 75 96 6d ...... Fast Ethernet Adapter
0x3 ...00 06 4f 00 99 7c ...... Realtek 8139-series PCI NIC

===========================================================================
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0    213.119.111.1  213.119.111.166      1
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
      192.168.1.0    255.255.255.0      192.168.1.1     192.168.1.1       1
      192.168.1.1  255.255.255.255        127.0.0.1       127.0.0.1       1
    192.168.1.255  255.255.255.255      192.168.1.1     192.168.1.1       1
    213.119.111.0    255.255.255.0  213.119.111.166  213.119.111.166      1
  213.119.111.166  255.255.255.255        127.0.0.1       127.0.0.1       1
  213.119.111.255  255.255.255.255  213.119.111.166  213.119.111.166      1
        224.0.0.0        224.0.0.0      192.168.1.1     192.168.1.1       1
        224.0.0.0        224.0.0.0  213.119.111.166  213.119.111.166      1
  255.255.255.255  255.255.255.255      192.168.1.1     192.168.1.1       1
Default Gateway:     213.119.111.1
===========================================================================
Persistent Routes:
  None


Terug naar de index



Verklaring:




Network Destination
Het netwerk adres van het netwerk waar deze route de wegbeschrijving voor is.

Netmask
De bijbehorende netmask van het netwerk adres. ( duh :+ )

Gateway
Het IP van de router die moet gebruikt worden.
Indien geen router nodig, maw een netwerk waar de computer zelf is op aangesloten, toont windows het IP van de interface.
De gateway moet altijd een IP zijn dat tot een netwerk behoort waar de computer zelf tot behoort.

Interface
Het IP adres van de interface dat gebruikt moet worden om het doel te bereiken.

Metric
De metriek.
Hier ook niet zo van belang.
Het wordt voornamelijk gebruikt door dynamische routing protocollen.
Je kan het ook gebruiken om zelf prioriteit te geven als je 2 gelijke entry's hebt.

De 224.0.0.0 adressen en 255.255.255.255 (multicast & broadcast) doen hier niets ter zake.

We houden over:
code:
1
2
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0    213.119.111.1  213.119.111.166      1

Dit is de default route.
Dit omvat 'alles'.
Deze route wordt gebruikt als er geen enkele andere route gevonden wordt.
De behorende router is de 'default gateway'
code:
1
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1

Loopback netwerk. Dit is een virtueel netwerk dat gewoon de pc zelf is.
Alle 127.0.0.x IP's zijn hierdoor localhost.

code:
1
      192.168.1.0    255.255.255.0      192.168.1.1     192.168.1.1       1

Het netwerk waar de computer zelf in zit

code:
1
      192.168.1.1  255.255.255.255        127.0.0.1       127.0.0.1       1

Het lokale IP van de computer zelf.
Dit is een host route (255.255.255.255) en geldt enkel voor die host.

code:
1
    192.168.1.255  255.255.255.255      192.168.1.1     192.168.1.1       1

Het broadcast IP van het lokale netwerk.
Nog een host route.

code:
1
    213.119.111.0    255.255.255.0  213.119.111.166  213.119.111.166      1

Het netwerk van de ISP waar deze computer tot behoort

code:
1
  213.119.111.166  255.255.255.255        127.0.0.1       127.0.0.1       1

Het internet IP van deze computer.

code:
1
  213.119.111.255  255.255.255.255  213.119.111.166  213.119.111.166      1

Het broadcast IP van het netwerk van de ISP waar deze computer tot behoort

code:
1
Default Gateway:     213.119.111.1

Nog een aanduiding op windows computers van de default gateway.
Dit volgt gewoon uit de bovenvermelde default route.

Linux machines
code:
1
route -n

of
code:
1
netstat -rn


Zelfde routing tabel onder linux:
Kernel IP routing table
code:
1
2
3
4
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
213.119.111.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         213.119.111.1   0.0.0.0         UG    0      0        0 eth1


Destination
Zelfde als windows (idem)

Gateway
Indien een router nodig -> IP van de router
Anders 0.0.0.0

Genmask
Netmask

Flags
Status vlagen
Meest voorkomende:
U = (up) actieve route
H = (host) een host route ipv een route naar een netwerk
G = (gateway) router vereist

Metric
idem

Iface
De interface.
Nu niet met IP adres maar met de linux aanduiding van het device.

Routing tabel aanpassen:
De route tabel manipuleren doe je met het commando route.

• Windows:
code:
1
2
route ADD 192.168.0.0 MASK 255.255.255.0  192.168.1.1
    destination^           ^mask       ^gateway


geeft als resultaat dat
code:
1
    192.168.0.0    255.255.255.0      192.168.1.1     192.168.1.1       1

geadd is in de routetabel

Je kan ervoor zorgen dat de route blijft staan na reboot door de optie -p

• Linux:
Dezelfde route als hierboven add je in linux op deze manier:
code:
1
route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.1.1


Een default gateway in linux toevoegen doe je zo, bv:
code:
1
route add default gw 192.168.1.1


default staat eigenlijk voor "-net 0.0.0.0 netmask 0.0.0.0"

Routes blijven niet behouden na een reboot.
Onder windows kan je met de '-p' optie dit wel forceren.
Onder linux kan je daarvoor een desbetreffende config file gebruiken ofwel gewoon de routes in je opstart script toevoegen.

Terug naar de index



Hoe bekijkt een computer of router nu de route tabel ?




Eerst wordt gezocht naar matches:
Voor elke route wordt gecontrolleerd of het IP adres in het netwerk van de route ligt
(via bitwise AND met netmasker & vergelijking met netwerkadres in de route).
Zo wordt de route tabel afgegaan.

Dan zijn er nu geen, 1 of meerdere matches.
Geen matches = no route to host error.
1 match = route geselecteerd

Als er een default gateway is dan is er al minstens 1 route die matched (nl de default route).

Meerdere matches:
Nu wordt eerst de meest specifieke genomen (grootste prefix lengte/netmask: 255.255.255.0 heeft voorrang op 255.255.0.0).
zijn er nog meerdere mogelijkheden, dan neemt hij deze met de kleinste metriek.
Zijn er nog meerdere mogelijkheden, dan mag het besturingssysteem kiezen.

Door dit mechanisme (eerste regel) wordt de default route pas gebruikt als er geen andere route is.
De default route is nl de minst specifieke route.

Terug naar de index




Deel 3: Praktische voorbeelden





Voorbeeld1 - 3 pc's




http://faq.tweakers.net/nt/sit1.jpg

Stel, je hebt een PC (PC1) met IP adres 192.168.1.10 en een 24 bit
netmasker. (255.255.255.0)
In je netwerk staat een andere PC (PC2), met 2 netwerkkaarten. De netwerkkaart in jou netwerk, heeft IP adres 192.168.1.1/24, en de andere netwerkkaart heeft 192.168.2.1/24. In het netwerk dat verbonden is aan de 2e netwerkkaart staat nog een PC (PC3) met IP adres 192.168.2.11/24.
Wanneer er in de IP instellingen van jou PC het IP adres 192.168.1.1 als gateway staat ingesteld, dan is het mogelijk om via de PC met 2 netwerkkaarten het 2e netwerk te bereiken.

Er zijn dan wel een aantal zaken waar je rekening mee moet houden.
Stel, je geeft vanaf PC1 een ping naar het IP adres van PC3.

code:
1
C:\>ping 192.168.2.11


Er zal op dat moment een IP pakketje van 32 bytes gegevens verstuurd worden naar het IP adres 192.168.2.11. Jou PC kent dit netwerk niet, en zal dit pakketje doorsturen naar zijn "default gateway" (PC2). PC2 kent dat netwerk wel, en (indien routing aan staat) zal het pakketje doorzetten naar het andere netwerk. Het pakketje komt dan aan bij PC3. Op PC3 komt er dus een pakketje aan met als originator (verzender) PC1 (192.168.1.10). Hij wil daarop reply-en, maar kent dat netwerk niet. (PC3 kent immers alleen 192.168.2.0 als netwerk).
Hij zal de reply dus versturen naar de "default gateway" zoals ingesteld op PC3. Mits er op PC3 het IP adres van PC2 (192.168.2.1) ingesteld staat als "default gateway" zal het pakketje weer terug komen bij PC2, welke het pakketje op zijn beurt weer doorzet naar PC1.
Wanneer er op PC3 een ander IP adres als default gateway staat ingesteld, dan zal dat pakketje waarschijnlijk nooit aankomen.

Let op: Het subnet links en rechts moet verschillend zijn !

Terug naar de index




Voorbeeld 2 - 3 pc's + breedband router




Duidelijk ?
Nu gaan we het iets lastiger maken:

http://faq.tweakers.net/nt/sit2.jpg

In bovenstaand voorbeeld, is de "default gateway" van PC3 ingesteld op 192.168.2.200. Op dat IP adres staat een breedband router, die een verbinding heeft met kabel internet.

Stel dat het ping pakketje van PC1 nu aankomt bij PC3. Deze zal zijn reply willen versturen maar kent het netwerk van de verzender niet. Hij zal de reply dus versturen naar zijn default gateway. (192.168.2.200). Dat pakketje komt dus aan bij de breedband-router.
De router zal op zijn beurt het pakketje door willen versturen naar zijn default gateway. Hij kent het netwerk 192.168.1.0 immers ook niet. Het pakketje komt dus op internet terecht waar hij direct wordt weggegooid. Dit omdat pakketjes met als ontvanger een IP adres uit een private range (zoals 192.168.1.10) niet gerouteerd worden op internet.(Naar alle waarschijnlijkheid gooit de router het pakketje zelf al weg.)

Hoe dit nu oplossen :?

Een veel gemaakte fout is nu dat er op PC3 een 2e "default gateway" wordt ingesteld. Dit veroorzaakt echter veel vertraging waardoor er een time-out plaats vindt. 2 "default gateways" op een host is niet aan te raden.

Een mogelijke oplossing is op PC3 een aparte persistent route aan te maken die PC3 vertelt dat het netwerk 192.168.1.0/24 te vinden is achter PC2 (192.168.2.1)

code:
1
c:\>route add 192.168.1.0 192.168.2.1 -p


Nu zal een ping van PC1 naar PC3 inderdaad terug komen op PC1.
Maar stel dat PC3 opnieuw wordt geïnstalleerd, dan wordt deze informatie vaak vergeten, en zit men weer na te denken over het ping probleem.(en alle andere dingen die dan niet werken zoals delen van mappen etc.)

De laatste mogelijkheid, is een extra route aanmaken op de breedband-router.
Wanneer we op deze router een extra route aanmaken voor het netwerk 192.168.1.0 via 192.168.2.1 dan zal het reply pakketje van PC naar PC1, via de breedband router naar PC2 worden verstuurd.
PC2 verstuurd het pakketje dan weer naar PC1.

Routeren is dus 2-weg communicatie.
Niet alleen de weg heen, maar ook de weg terug moet bekend zijn !




Hoe zit dat nu met Internet, hoe werkt dat dan :?
Ik heb net verteld dat pakketjes naar private adressen (zoals 192.168.1.1) niet gerouteerd worden op Internet. Maar een aanvraag van een PC naar een webserver ergens op Internet zou dan nooit terug komen. Hier komt NAT om de hoek kijken.

Vanuit bovenstaand voorbeeld:
Stel PC3 vraagt een web-pagina op vanaf een server ergens op Internet. De aanvraag loopt via de breedband-router, welke de aanvraag routeert naar internet. Stel dat de router geen NAT zou doen, dan zou de aanvraag van PC3 op de webserver aankomen, welke dan een reply zou moeten sturen naar 192.168.2.11. Dan kan hij niet, want die ranges worden niet gerouteerd op internet. De aanvraag word dan getrashed.

Daarom doet de breedband-router NAT. (Network Address Translation)
Het source IP adres het (het adres van de verzender) wordt op de breedband-router vertaald naar het externe IP adres van de breedband-router (internet IP adres). De webserver krijgt dus een aanvraag voor een pagina van het IP adres van de externe kant van de router. De reply wordt dus ook terug gestuurd naar dat adres.

D.m.v. een NAT-tabel wordt er op de breedband-router bijgehouden voor wie / welk adres de reply bedoeld is. Dus op de terugweg wordt het destination adres gewijzigd naar het interne IP adres van PC3.

Terug naar de index




Credits & aanmerkingen:



Deze tutorial werd u aangeboden door: Equator en Predator

Voor op- en aanmerkingen, typfouten, en zelfs mierenneukerij kan u [url=mailto:Predator@tweakers.net?subject=Routing_faq]hier[/url] terecht.

Terug naar de index



Routing tutorial voor static routing en routing tabellen.

[Voor 255% gewijzigd door Equator op 17-05-2006 07:35. Reden: CyberJ -> Equator >:)]

Everybody lies | BFD rocks ! | PC-specs


Dit topic is gesloten.


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee