Netwerken
IVO Brugge
NW04 TCP/IP Dit hoofdstuk is voor een stuk een korte herhaling van de cursus datacommunicatie.
1 Inleiding Staat voor Transmission Control Protocol / Internet Protocol. Als computersystemen via een netwerk fysiek met elkaar zijn verbonden, moeten er nog afspraken gemaakt worden hoe die computersystemen met elkaar communiceren. Communicatie tussen computersystemen (hosts) vindt plaats op basis van het heen-en-weer sturen van gegevens. Deze gegevensstroom is opgedeeld in stukjes. We noemen zo’n stukje een dataframe. De communicatieafspraken noemen we netwerkprotocollen. Er bestaat een aantal netwerkprotocollen zoals TCP/IP, IPX en NetBEUI. In deze cursus beperken we ons tot het TCP/IP protocol. Het heeft zijn oorsprong in de Unix-wereld. Door de opkomst van het internet heeft TCP/IP aan belangrijkheid gewonnen ook buiten deze Unix-wereld. TCP/IP staat voor Transmission Control Protocol/Internet Protocol. Het is HET internet protocol. Hoewel er vaak wordt beweerd dat alles in de IT-wereld zo snel veranderd, is het leuk om weten dat dit protocol, een van de grootste motoren van het internet, al vanaf begin jaren tachtig wordt toegepast. Sinds die tijd is er weinig veranderd. Pas de laatste jaren is men door de enorme toename van het gebruik van het IP-protocol tegen de beperkingen van de huidige gebruikte IP-versie 4, kortweg IPv4, aan gelopen. Vandaar dat vanaf 1992 is gezocht naar een opvolger van IPv4. In 1998 is de definitie van de opvolger afgerond in een aantal zogeheten RFC’s (Request for Comments). De nieuwe versie heeft de naam IP versie 6, kortweg IPv6 of IPng (IP next generation). In IPv6 zijn de beperkingen van Ipv4 opgeheven. De implemantie wil echter nog niet op gang komen. Dit laatste heeft ongetwijfeld te maken met de complexiteit (dus de risico’s die gelopen worden) en de kosten die gemaakt moeten worden om te kunnen overstappen. IPv4 werkt met 4 getallengroepen : bv 192.168.0.1. Elke getallengroep heeft een bovengrens van 255. Dit betekent dat elke getallengroep 1 Byte voorstelt. In theorie zouden er 4.294.967.296 mogelijke IP-nummers moeten zijn (in de praktijk zijn er dat heel wat minder omdat er nogal wat gereserveerde nummers zijn). Met IPv6 zou er met 16 getallengroepen gewerkt worden. Dit betekent dat er in theorie 3,40 x 1038 mogelijke IP-nummers kunnen gevormd worden. In ieder computernetwerk komen veel knooppunten voor. Denk aan alle knooppunten die gevormd worden door websites waar je als gebruiker op aanlogt. Ieder van deze sites wordt in de lucht gehouden door een internetprovider. De provider heeft afspraken met leveranciers van datacommunicatieverbindingen om zijn verkeer af te handelen. Al dit verkeer moet naar verschillende plaatsen in de wereld. Het mechanisme dat dit mogelijk maakt is het routeren van de data. Dit routeren wordt door routers gedaan. Om van routers gebruik te kunnen maken moet het protocol routering ondersteunen. IP is dus een routeerbaar protocol.
NW04 TCP/IP
60
Jan De Deurwaerder
Netwerken
IVO Brugge
De hierboven beschreven situatie geeft een WAN weer. WAN staat voor Wide Area Network. Een WAN wordt in principe in de lucht gehouden door tele- of datacommunicatieleveranciers. Een WAN verbindt gebouwen en landen met elkaar. WAN staat tegenover een LAN, het Local Area Network, een netwerk dat in principe tot een gebouw beperkt blijft. Het LAN wordt in de lucht gehouden door de eigen netwerkbeheerders of door een servicebedrijf. Ieder knooppunt in een IP-netwerk wordt node genoemd. Elke PC in het netwerk is dus een node, maar ook een router is een node. Een router wordt in een netwerk ook wel gateway genoemd. Een PC wordt in een netwerk ook wel host genoemd.
2 IP-Nummer Iedere computer heeft een uniek nummer in een TCPIP netwerk. Het internet is een gigantisch netwerk van meerder computers. Elke computer op het net heeft dus een IP nummer. Het nummer bestaat uit een 32 bits lang getal. Hierdoor zijn er in principe 2 tot de macht 32 (232)(= 4 294 967 296) mogelijk adressen. Een 32 bits lang getal is meestal te moeilijk om te onthouden of op te schrijven. Daarvoor wordt het getal opgesplitst in 4 keer 8 bits. Elke 8 bits vormen 1 byte. Elke byte heeft een waarde van 0 tot 255. De 4 bytes worden gescheiden door puntjes. Hierdoor is een adres eenvoudiger memoriseerbaar en kan het zonder fout ingetikt worden. Dit noemt men de dotteddecimal notation. Bv. 11000001000010100001111000000010 Na opdeling in 4 bytes. 11000001
00001010
00011110
00000010
De dotted-decimal notation is dan : 193.10.30.2
3 Klasses van IP adressen. Met een IP nummers worden tegelijkertijd 2 elementen weergegeven : • •
Het netwerk nummer Het computer nummer
Samen vormen ze het unieke nummer. Het netwerknummer is van belang om meerdere computers onder te brengen in een subnetwerk. Er zijn 3 categorieën van adressen.
NW04 TCP/IP
61
Jan De Deurwaerder
Netwerken
IVO Brugge
Klasse A : Hiervan betekent de eerste byte het netwerknummer en de 3 volgende bytes het computernummer. NNNNNNNN
CCCCCCCC
CCCCCCCC
CCCCCCCC
De eerste byte heeft een waarde van 0 tot 127. Er zijn 126 netwerken, die elk 16 777 214 computers kunnen hebben. Klasse B : Hiervan zijn de eerste twee bytes het netwerknummer en de volgende 2 bytes het computernummer. NNNNNNNN
NNNNNNNN
CCCCCCCC
CCCCCCCC
De eerste byte heeft een waarde van 128 tot 191 Er zijn 16 384 netwerken, die elk 65 534 computers kunnen hebben. Klasse C : Hiervan zijn de eerste drie bytes het netwerknummer en de vierde byte het computernummer. NNNNNNNN
NNNNNNNN
NNNNNNNN
CCCCCCCC
De eerste byte heeft een waarde van 192 tot 223. Er zijn 2 097 152 netwerken met elk 254 computers. Verder zijn er nog Klasse D en klasse E adressen die voorlopig niet gebruikt worden. Er zijn ook enkele gereserveerde adressen : 0.0.0.0 (all zeros) kan niet gebruikt worden 255.255.255.255 (all ones) kan ook niet gebruikt worden. 127.0.0.1 Het loopback adres. Met dit adres wordt steeds de eigen computer bedoeld. Om het even vanop welke computer zal het versturen van data naar 127.0.0.1 resulteren in het sturen van de data naar zichzelf. Alle adressen die eindigen op 255 kunnen ook niet aan een computer toegewezen worden. Door van de laatste byte een 255 te maken wordt de data naar alle computers verzonden die zich in het sub-netwerk bevinden. Dit is het broadcast adress. Alle adressen van 244.0.0.1 tot 255.255.255.255 worden niet gebruikt om een computer te bepalen. Het zijn deels experimentele adressen Wie deelt de netwerkadressen uit ?
NW04 TCP/IP
62
Jan De Deurwaerder
Netwerken
IVO Brugge
Als uw netwerk op Internet wordt aangesloten, moet u een aanvraag indienen bij de officiële Internet autoriteit voor een netwerkadres. Het NIC (network information center) helpt daarbij. Surf naar www.internic.net (registratie van IP adressen) Of stuur een e-mail naar
[email protected]
4 Beheer van IP adressen. Om computers in het internet te kunnen zetten moeten ze een IP-nummer hebben die uniek is over de gehele wereld. De adressen worden beheerd door het NIC (Network Information Center). Een adres moet door een firma aangekocht worden bij deze instantie. Naargelang de grootte van de firma zal een adres uit een bepaalde klasse aangekocht worden. Een firma die heel veel computers op het internet wil, zal een adres uit klasse A willen. Hierdoor hebben ze een heel brede computer range. Ze zijn vrij hierbinnen zelf nog eens een hiërarchie te bedenken. Grote firma’s zijn er niet veel, vandaar het geringe aantal netwerknummers. Wel zijn er heel veel kleine firma’s die slechts een beperkt aantal computers op het net willen. Deze opteren dan voor een C adres. Alle klasse A adressen zijn momenteel uitgedeeld aan de firma’s zoals Apple, IBM …
5 Hoe een klasse herkennen. Aan de hand van het adres kan men bepalen in welk klasse een adres zich bevindt. Hierdoor moet de eerste byte naar binair omgezet worden. Aan de hand van het aantal leidende eenen (binaire 1) in de byte is de klasse te bepalen. Begint met
Klasse
0
A
10
B
110
C
1110
D
1111
E
Oefening Tot welke klassen behoren volgende IP adressen : 21.34.55.55 223.75.234.239
NW04 TCP/IP
63
Jan De Deurwaerder
Netwerken
IVO Brugge
223.322.232.127 Wat is het netwerk ID van : 201.102.21.12 121.212.112.122 Wat is het host ID van : 201.44.45.54 4.1.6.22
6 Subnetmask Een subnetmask is een reeks van bits die definiëren wat het netwerk nummer en wat het computernummer is van een IP adres. Een 1 staat voor het netwerk adres, een 0 voor het computernummer. In een subnetmask zal altijd een reeks van 1-en gevolgd worden door een reeks van 0-en. Nooit zal na een 0 terug een 1 voorkomen. De mogelijke subnetmasks zijn dus. 10000000 00000000 00000000 00000000 11000000 00000000 00000000 00000000 11100000 00000000 00000000 00000000 ... 11111111 11111111 11111111 11111000 11111111 11111111 11111111 11111100 11111111 11111111 11111111 11111110 In klasse A is de eerste byte het netwerknummer en de volgende 3 het computernummer. Hierdoor is het subnetmask 11111111 0000000 0000000 0000000. In dotted-decimal notitie is dit 255.0.0.0
NW04 TCP/IP
Klasse
Subnetmask
A
255.0.0.0
B
255.255.0.0
C
255.255.255.0
64
Jan De Deurwaerder
Netwerken
IVO Brugge
7 Subnetting Naast de drie standaard klassen kan ook een ander klasseringsprincipe gebruikt worden. Dit komt voor bij netwerken die niet aan het internet gekoppeld worden of voor het verder indelen van de computernetwerken van grote firma’s. Dit kan door een subnetmask te gebruiken die tussen de standaard subnetmask van de klassen ligt. Stel : Een firma heeft een adressen range in klasse C nl. 205.101.55.X . Hierdoor heeft het 1 netwerk van 254 computers. Het standaard subnetmask is dus 255.255.255.0 Dit komt overeen met 11111111 11111111 11111111 00000000 Een bepaald adres in de range van de firma is 205.101.55.91 11001101 01100101 00110111 01011011 11111111 11111111 11111111 00000000 11001101 01100101 00110111 01011011
ipnr subnetmask netwerknummer computernummer
Dit betekent computer nummer 91 in netwerk 205.101.55. De firma wil dit netwerk nogmaals opdelen in meerdere subnetwerken. Dit kan het door het subnetmask te verbreden. Het nieuw subnetmask wordt 11111111 11111111 11111111 11100000 (dotted-decimal : 255.255.255.224) Hierdoor zijn 6 nieuw netwerken mogelijk nl. 11111111 11111111 11111111 11111111 11111111 11111111
11111111 11111111 11111111 11111111 11111111 11111111
11111111 11111111 11111111 11111111 11111111 11111111
001 010 011 100 101 110
Hierdoor liggen de computers 11111111 11111111 11111111 00100001 11111111 11111111 11111111 01000001 elk in een ander netwerk. In dotted-decimal notitie zijn dit volgende 6 netwerk nummers : 205.101.55.32
NW04 TCP/IP
205.101.55.64
65
205.101.55.96
Jan De Deurwaerder
Netwerken
IVO Brugge
205.101.55.128
205.101.55.160 205.101.55.192
Hoe werkt een subnet mask precies ? Er wordt gebruik gemaakt van de logische AND-bewerking 1 1 0 0
AND AND AND AND
1 0 1 0
= = = =
1 0 0 0
Voorbeeld : IP adres Subnetmask
200.20.16.5 255.255.255.0
AND
11001000 00010100 00010000 00000101 11111111 11111111 11111111 00000000 11001000 00010100 00010000 00000000 (200.20.16.0)
Als er dus enkel 255 of 0 in het subnet mask staat, hoef je niet te berekenen wat het netwerk ID is. Bv IP adres 15.6.100.1 met subnet mask 255.0.0.0 => netwerk ID = 15.0.0.0
8 Private subnetten Als je nooit op internet gaat of zult gaan dan neem je om het even welk adres. Toch neem je beter een adres uit de volgende paragraaf want het kan zijn dat je in de toekomst toch iets met internet te maken zult krijgen (sic) en dan kan je met alles herbeginnen.
Deze adressen zijn niet geldig op het Internet. Routers zullen ze niet routen. 10.0.0.0 tot 10.255.255.255 172.16.0.0 tot 172.31.255.255 192.168.0.0 tot 192.168.255.255
9 Voorbeeld van een subnet mask bepaling We hebben een IP adres van klasse B : 168.20.0.0 Subnet mask 255.255.0.0 Veronderstel dat je 4 subnetten wilt maken. Hoeveel extra bits hebben we dan nodig ?
NW04 TCP/IP
66
Jan De Deurwaerder
Netwerken • • •
IVO Brugge
neem het aantal gewenste subnetten (4) tel er 1 bij (5) zet dit om in binaire code : 101 (dit is het aantal toe te voegen bits aan het subnet mask) (3)
IP adres Subnet Mask
10101000 00010100 00000000 00000000 11111111 11111111 00000000 00000000
We voegen 3 maal de bit 1 toe aan het subnet mask 11111111 11111111 11100000 00000000 (255.255.224.0) Met de AND bewerking komen nu een aantal nieuwe netwerk ID’s vrij : 10101000 10101000 10101000 10101000 10101000 10101000 10101000 10101000
00010100 00010100 00010100 00010100 00010100 00010100 00010100 00010100
000 001 010 011 100 101 110 111
(allemaal nullen in de host mag niet) 168.20.32.0 168.20.64.0 168.20.96.0 168.20.128.0 168.20.160.0 168.20.192.0 (allemaal enen in de host mag niet)
Aantal mogelijke hosts per subnet = 2n-2 (n= het aantal bits voor de host) Hier is dit dus 213-2 = 8192 – 2 = 8190 Oefening Je krijgt een netwerk ID 149.3.0.0 Je wil 46 subnetten met elk meer dan 1000 hosts 1. Bereken het subnet mask 2. Hoeveel computers zijn er per subnet ?
10 Voordelen van subnetten • • • •
Netwerksegmenten die fysisch ver uit elkaar staan kunnen verbonden worden. Verschillende media kunnen gelinkt worden (vb ethernet en token ring) Het type netwerk kan het aantal hosts beperken, maar met extra subnetten kan dit uitgebreid worden. Het netwerkverkeer wordt verminderd want broadcasts en lokaal netwerkverkeer worden beperkt tot het lokale segment.
NW04 TCP/IP
67
Jan De Deurwaerder
Netwerken
IVO Brugge
11 IPCONFIG Met het programma IPConfig kunnen de TCP/IP paramaters op een host gecontroleerd worden, waaronder het IP-adres, het subnet mask en de standaard gateways. Als een adres dubbel is gebruikt, wordt het subnet mask weergegeven als 0.0.0.0 Bij Win95, Win98, Win98SE en WinME gebruikt u het programma WinIPCfg
12 MAC-adressen Iedere host moet een uniek adres hebben in een netwerk. Zonder dit adres is het niet mogelijk om te communiceren. Vrijwel ieder netwerkcomponent (PC, bridge, switch, router, …) heeft een uniek MAC-adres. Dit MAC-adres bevindt zich onder andere op iedere netwerkkaart en heeft een lengte van 6 bytes. De feitelijke communicatie tussen systemen in een netwerk vindt plaats op basis van MAC-adressen. Wenst u te weten wat het MAC-adres is van uw eigen netwerkkaart, dan kan u hiervoor de DOS-instructie ipconfig /all gebruiken. Een MAC-adres ziet er als volgt uit : 00-04-76-EB-46-CB Daarmee lijkt het probleem van het adresseren opgelost, maar helaas. Als een netwerk gerouterd wordt, dan worden MAC-adressen onderweg steeds aangepast. Steeds bevindt zich in het dataframe het MAC-adres van het laatste verzendende knooppunt en het nieuwe ontvangende knooppunt. Het oorspronkelijke MAC-adres van de afzender gaat tijdens het transport verloren, terwijl het MAC-adres van de bedoelde ontvanger vaak niet bekend is. Vandaar dat in een dataframe vier adressen voorkomen. Naast twee MAC-adressen komen in het dataframe de IP-adressen voor van de oorspronkelijke verzendende en de bedoelde bestemmingshost. Deze twee IP-adressen wijzigen tijdens het transport NIET.
NW04 TCP/IP
68
Jan De Deurwaerder
Netwerken
IVO Brugge
Schematische voorstelling van een dataframe Bron MAC-adres (zender)
Doel MAC-adres (ontvanger)
Bron IP-adres (eerste afzender)
Doel IP-adres (bestemming)
Rest van het frame
Voorbeeld 1 : communicatie tussen 2 hosts (PCA en PCB) binnen hetzelfde subnet (dit betekent dat dit toestellen zijn die binnen dezelfde IP-Range vallen). Bij vertrek van het dataframe (stel PCA verstuurt en PCB ontvangt) zal het dataframe er zo uitzien : Bron MAC-adres Doel MAC-adres 00-04-76-EB-46-CB 00-04-76-EB-46-CC
Bron IP-adres 192.168.0.1
Doel IP-adres 192.168.0.2
Rest …
Bij aankomst zal er niets gewijzigd zijn omdat beide hosts zich in het zelfde subnet bevinden. Voorbeeld 2 : communicatie tussen 2 hosts (PCA1 en PCZ9) die in 2 verschillende subnetten liggen. Deze subnetten worden met elkaar verbonden m.b.v. een router (RT1). In het voorbeeld wordt er steeds van uit gegaan dat er gewerkt wordt met subnetmask 255.255.255.0 Stel : PCA1 IP = 192.168.0.1 MAC = 00-04-76-EB-46-CB PCZ9 IP = 10.0.0.1 MAC = 00-07-12-1F-CD-44 RT1 IP(1) = 192.168.0.254 MAC = 00-03-9D-4F-34-AA IP(2) = 10.0.0.254 MAC = 00-03-9D-4F-34-AB Schematisch ziet onze opstelling er als volgt uit : PCA1 IP : 192.168.0.1 Subnet : 255.255.255.0 MAC : 00-04-76-EB-46-CB
RT1 IP(1) : 192.168.0.254 MAC : 00-03-9D-4F-34-AA IP(2) : 10.0.0.254 MAC : 00-03-9D-4F-34-AB
PCZ9 IP : 10.0.0.1 Subnet : 255.255.255.0 MAC : 00-07-12-1F-CD-44
Een router vormt een scheidingspunt in netwerken. Elk deel van het netwerk dat op een router is aangesloten noemen we een subnet. Ieder subnet heeft in een netwerk een uniek netwerkadres (dat deel van het IP-nummer dat door het subnetmasker gemaskeerd wordt)
NW04 TCP/IP
69
Jan De Deurwaerder
Netwerken
IVO Brugge
Bijvoorbeeld : bij IP 192.168.0.1 met subnetmask 255.255.255.0, wordt het netwerkadres 192.168.0). Sluit je een router aan dit netwerk aan, waarmee je verbinding maakt met een ander (desnoods lokaal) netwerk, dan mag het netwerk ‘aan de andere kant’ van de router NIET hetzelfde netwerkadres dragen. Zodra PCA1 wenst te communiceren met PCZ9, dan wordt er eerst gekeken of PCZ9 zich in hetzelfde subnet bevindt (als dat het geval was, dan kwam de router er niet aan te pas). Als blijkt dat de bestemmeling geen deel uitmaakt van het eigen subnet, dan wordt het dataframe naar de router gestuurd. De router kan het dataframe aan de hand van de op de router aanwezige routetabellen (*) doorsturen naar het juiste subnet. De router zal ook het dataframe gaan aanpassen (enkel het MAC-adres gedeelte). (*) een routetabel is een database waar bijgehouden wordt waar netwerkadressen zich bevinden. Deze kunnen statisch zijn, maar doorgaans zijn ze dynamisch opgebouwd. Niet alleen een router beschikt over dergelijke routetabel, elke PC op het netwerk heeft er zo eentje. U kan de routetabel van uw eigen PC opvragen met de DOS instructie route print. Bij vertrek zal het dataframe er (waarschijnlijk) zo uitzien : Bron MAC-adres Doel MAC-adres Bron IP-adres 00-04-76-EB-46-CB 00-03-9D-4F-34-AA 192.168.0.1
Doel IP-adres 10.0.0.1
Rest …
De verzender kan uit zijn eigen adresberekening afleiden dat de bestemmeling zich niet in zijn eigen subnet bevindt en stuurt het pakket meteen naar de router (vandaar het MAC-adres van de router in het dataframe). De router ontvangt het dataframe en onderzoekt het doel IP-adres. Hij herkent dit (m.b.v. zijn eigen routetabel) en stuurt het dataframe door naar de bestemmeling. Het dataframe komt op de volgende manier toe bij de bestemmeling (PCZ9) : Bron MAC-adres Doel MAC-adres Bron IP-adres 00-03-9D-4F-34-AB 00-07-12-1F-CD-44 192.168.0.1
Doel IP-adres 10.0.0.1
Rest …
De bestemmeling weet nu dat het bericht oorspronkelijk kwam van 192.168.0.1 maar dat het hem bereikt heeft via het toestel met MAC-adres 00-03-9D-4F-34-AB (dus onze router) en kan in geval van antwoord zijn bericht dan ook meteen naar deze router sturen.
NW04 TCP/IP
70
Jan De Deurwaerder
Netwerken
IVO Brugge
13 De semi-automatische toewijzing van IP-gegevens en DHCP Een aantal malen is aan de orde geweest dat IP-adressen in een LAN of WAN uniek moeten zijn. Als er meer subnetten in een LAN zijn, moeten hosts in die subnetten het juiste netwerk-ID krijgen en elke host moet een verwijzing krijgen naar een router (gateway) die ervoor zorgt dat hosts op andere subnetten kunnen worden bereikt. De kans dat hier fouten optreden in een LAN van 30 hosts is niet zo groot, maar als er sprake is van een LAN met 3 subnetten met 1000 hosts, waarvan er bovendien 100 portable zijn, terwijl die steeds in verschillende subnetten kunnen voorkomen, dan zal het duidelijk zijn dat een handmatige statische toewijzing op iedere host van IPadressen, subnetmaskers en default gateways (routers) niet meer werkbaar is. Ook voor deze complexe problemen is een oplossing bedacht : het Dynamic Host Configuration Protocol (DHCP). De functie van DHCP is het automatisch toewijzen van TCP/IP configuratieparameters aan hosts die daarom vragen. Een host kan worden geconfigureerd om van DHCP gebruik te maken. Enkele voorbeelde van TCP/IP configuratieparameters zijn : • een IP-adres : een DHCP verstrekt een IP-adres maar één keer per subnet. • Een Subnetmasker : DHCP zoekt bij meer subnetten zelf uit wat het juiste subnetmasker is. • Het IP-adres van één of meer default gateways. • Het IP-adres van één of meer DNS-server (zie verder). Deze TCP/IP configuratieparameters toewijzing heeft een bepaalde geldigheidsduur : dit wordt de leaseperiode genoemd. Als de leaseperiode verstrijkt kan niet meer van het IP-adres gebruik gemaakt worden en zullen ook de overige genoemde TCP/IP toewijzingen niet meer beschikbaar zijn. Een DHCP-client (host dus) zal dan ook proberen om de lease niet te laten verlopen. Nadat de helft van de leaseperiode verstreken is, zal de client proberen om de lease te vernieuwen. De aanvraag tot vernieuwing wordt gedaan bij de DHCP-server die de lease verstrekt heeft. Als die DHCP-server wordt gevonden en het IP-adres beschikbaar is, dan zal die lease vernieuwd worden. Gelijktijdig worden de TCP/IPconfiguratieparameters meegestuurd. Eventuele wijzigingen op de DHCP-server worden dan ook op de client aangepast. Als de DHCP-server niet gevonden wordt, blijven de actuele TCP/IP-gegevens actief. Vanaf dit moment zal het proces om de lease bij de DHCP-server te vernieuwen steeds worden uitgevoerd als de host opnieuw wordt opgestart. Het proces verandert nadat 7/8-deel van de leaseperiode verstreken is. Vanaf dat moment wordt een verzoek tot vernieuwing van de lease gericht aan elke willekeurige DHCP-server die in het netwerk te vinden is. Als dat ook niet lukt, is na het verstrijken van de leaseperiode geen communicatie meer mogelijk met de verstrekte TCP/IP-configuratieparameters (en wordt opnieuw overgeschakeld op het APIPA-systeem).
NW04 TCP/IP
71
Jan De Deurwaerder
Netwerken
IVO Brugge
14 Functie van TCP en UDP IP zorgt voor het routeren van dataframes door internet, WAN of LAN, maar het zorgt er niet voor dat er zekerheid bestaat of dataframes wel aankomen of niet. Het is zelfs zo dat als een dataframe te lang onderweg is het door IP zal weggegooid worden. En toch gaat communicatie via TCP/IP doorgaans vrij goed. Dit komt door het TCPprotocol. De naam TCP (Transport Control Protocol) verklaart het al. Als TCP wordt gebruikt, wordt gecontroleerd of een dataframe aangekomen is. Als dat niet het geval is, wordt het dataframe opnieuw verstuurd. Naast TCP bestaat binnen de TCP/IP protocolsuite het User Datagram Protocol (UDP). Waar TCP wordt gebruikt om controle uit te voeren op het transport van dataframes, wordt UDP gebruikt voor de snelheid. Met UDP worden gegevens getransporteerd, maar er wordt geen controle uitgevoerd om zeker te weten of een dataframe is aangekomen. Het UDP wordt gebruikt door heel wat multimedia toepassingen zoals video conferencing, streaming media, … maar ook DNS gebruikt UDP. Samenvattend : • IP is de vervoerder van de data door het netwerk. • TCP is de controleur van het transport • Als de vervoerder zeer betrouwbaar is kan gebruik worden gemaakt van UDP.
15 Werking en functie van het DNS Tegenwoordig is het heel normaal dat informatie wordt gezocht op internet. Informatie is gebaseerd op gegevens en deze gegevens staan op harde schijven, die weer aan hosts gekoppeld zijn. Dit betekent dat hosts op internet gevonden moeten worden om de gegevens te verkrijgen. Aangezien alle hosts op internet bekend zijn, zijn ze te benaderen met hun unieke IPadres. Toch benadert (vrijwel) niemand de hosts op het internet met behulp van hun unieke IP-adres. Vrijwel iedereen is bezig met namen zoals www.microsoft.com, www.ivobrugge.be, … Dit is mogelijk omdat er een systeem gecreëerd is waarin (internet) hostnamen gekoppeld zijn aan hun bijbehorende IP-adressen. Dit systeem noemen we het Domain Name System (DNS). In het begin van internet werd ook al met hostnamen gewerkt, maar toen waren er nog heel erg weinig hosts. Deze hostnamen, gekoppeld aan hun IP-adres, werden lokaal op elke host opgeslagen in het Hosts-bestand. Als gecomuniceerd werd op basis van een hostnaam dan werd eerst in het lokale hosts-bestand gekeken wat het bijbehorende IPadres was. Tegenwoordig werkt dit nog steeds zo. Nog steeds komt op computersystemen het hosts bestand voor. Het DNS is feitelijk gegroeid uit alle hosts-bestanden. Ter info : op Windows 2003 kan u dit host-bestand terugvinden onder C:\WINDOWS\system32\drivers\etc\hosts
NW04 TCP/IP
72
Jan De Deurwaerder
Netwerken
IVO Brugge
Dat deze wel degelijk geraadpleegd wordt voor er ook maar sprake is van het consulteren van enige DNS-server kunt u eenvoudig zelf even uittesten. Bijvoorbeeld : Zoek het MAC-adres op van www.cnn.com (64.236.16.116) Voeg nu de volgende lijn toe aan het hosts bestand (bv mbv kladblok) : … 127.0.0.1 localhost 64.236.16.116 www.google.nl Open nu je browser, en surf naar www.google.nl : je merkt dat je terechtkomt op de website van CNN.
Het DNS is een grote hiërarchische database die verdeeld is over veel computersystemen, DNS-servers genaamd. DNS-severs zijn overal in de wereld opgesteld. Al die servers samen bevatten IP-adressen met hun bijbehorende host-namen of bevatten verwijzingen naar DNS-servers die kunnen helpen om die DNS-servers te vinden die de gevraagde hostnaam bevatten, of omgekeerd als een IP-adres bekend is om de bijbehorende hostnaam te vinden. Omdat in het internet heel veel gelijke hostnamen voorkomen, is er een onderverdeling in gebieden nodig om onderscheid te kunnen maken. Deze gebieden worden domeinen genoemd. We onderscheiden : • het rootdomein • top level domeinen • second level domeinen • subdomeinen In de figuur is weergegeven hoe de domain name space (domeinnaamruimte) is opgedeeld in diverse domeinen. Rootdomein
.
org
ipv6
edu
usb
NW04 TCP/IP
gov
mil
co
be
nasa
doc
intel
www
ntia
bisni
www
www
nl
de
Toplevel
vrt
kbc
Second level
www
www
Subdomein of hostnaam
hostnaam
73
Jan De Deurwaerder
Netwerken
IVO Brugge
Een combinatie van een hostnaam met een domeinnaam wordt een Fully Qualified Domain Name , kortweg FQDN, genoemd. Door een FQDN is een host compleet gedefinieerd. Bij een FQDN hoort een uniek IP-adres. Een voorbeeld van een FQDN is www.vrt.be. In de figuur is het hoogste domein het rootdomein. Het wordt weergegeven als een punt. Het rootdomein wordt gebruikt om het zoeken te starten naar het IP-adres van een FQDN. Hiervoor staan in de wereld op een aantal plaatsen DNS-rootservers. Er zijn momenteel 13 DNS-rootservers. Elke DNS-rootserver wordt aangeduid met een letter. De DNS-rootservers bevinden zich momenteel in : San Francisco : Los Angeles : Washington DC : Stockholm : Tokyo : London :
2 stuks nl E en F 2 stuks nl B en L 6 stuks nl A, C, D, G, H en J I M K
Deze DNS-servers verwijzen de vragende host naar DNS-servers die informatie bevatten over de in de FQDN voorkomende top level domainnaam. Bijvoorbeeld : je wenst www.vrt.be te bekijken. Je zal eerst worden doorverwezen naar een DNS-rootserver die je op zijn beurt zal doorverwijzen naar een DNS-server die informatie bevat over het toplevel domain (in ons voorbeeld dus : be). In het toplevel domain komen een aantal aanduidingen voor. Bestaande aanduidingen zijn: edu voor onderwijsinstituten en universiteiten mil voor militaire overheidsinstellingen gov voor niet-mililtaire overheidsinstellingen org voor alle andere niet-commerciële organisaties net netwerken com commerciële organisaties num telefoonnummers arpa omgekeerd DNS (zie verder) XX tweeletterige landcode Toplevel domainservers verwijzen de vragende host naar second level domain servers die informatie bevatten over de in de FQDN voorkomende second level domeinnaam. Bij www.vrt.be worden we nu dus doorverwezen naar een DNS-server die informatie bevat over het second level domain (in ons voorbeeld dus : vrt) Op dit niveau zien we bekende namen verschijnen (nasa, intel, vrt, kbc, …). Dit zijn vaak namen die we herkennen als de feitelijke organisatie of bedrijfsnaam. In de praktijk wordt nu verwezen naar een IP-adres van een host die onder verantwoording valt van dat bedrijf of die organisatie. Een bedrijf of organisatie kan nu dan ook een extra subdomein toevoegen of hostnamen bedenken. Een onderneming kan dat doen omdat het de verantwoording draagt voor haar eigen domain name space (domeinnaamruimte). Als een bedrijf of organisatie een eigen domeinnaam krijgt toegewezen, heeft dat de vorm : vrt.be of microsoft.com of intel.com of … Daarbinnen is het vrij om voorvoegsels te plaatsen.
NW04 TCP/IP
74
Jan De Deurwaerder
Netwerken
IVO Brugge
Bedenk dat dit mogelijk is omdat verdere DNS verwijzingen plaatsvinden binnen de eigen DNS-omgeving van het bedrijf of de organisatie. Een voorbeeld van een extra subdomein komt voor in de FQDN www.ntia.doc.gov Hierin is ntia het subdomein en www de hostnaam. Een ander voorbeeld is www.bisnis.doc.gov Hierin is bisnis het subdomein en www de hostnaam. Op het laagste niveau komen we de feitelijke hostnamen tegen. De meeste gebruikte naam is www, wat staat voor world wide web. Maar er is geen enkele reden om voor www te kiezen. Elke naam is mogelijk. In feite krijgen we nu het gevraagde IP-adres dat hoort bij de FQDN.
2 3
4 5 6 1
7
8
Feitelijke communicatie
In bovenstaande figuur is het proces van het omzetten van een FQDN in een IP-adres weergegeven. Het opzoeken van een IP-adres bij een hostnaam wordt naamresolutie genoemd. De client wordt in dit proces de resolver genoemd en de DNS-server vaak de nameserver. Merk op dat er heel wat dataverkeer moet plaatsvinden voordat het IP-adres van de host bij de client bekend is. De FQDN en het bijbehorende IP-adres worden een bepaalde periode bewaard op de lokale DNS-server en op de client in de DNS-cache. Deze periode op de DNS-server is afhankelijk van het Tim To Live-veld (TTL) dat met het IP-adres is meegestuurd. Als die bijvoorbeeld 3600 seconden is, zal de hostnaam met het IP-adres na 3600 seconden verwijderd worden. Zolang deze gegevens in de cache staan zal de communicatie direct plaatsvinden tussen de client en de host. Windows 2003 ondersteunt negative caching. Dit betekent dat een naamresolutie die geen positief resultaat opleverde, omdat de naam niet kon worden gevonden, ook in de cache wordt bewaard. Hiermee wordt gedurende een korte tijd een nieuwe zinloze naamresolutiepoging met dezelfde naam voorkomen.
NW04 TCP/IP
75
Jan De Deurwaerder
Netwerken
IVO Brugge
Om het zoekproces te kunnen starten moet de client wel een (lokale) DNS-server kunnen vinden. Hiervoor moet de client geconfigureerd worden. Dit gaat heel eenvoudig. Zorg er voor dat TCP/IP als protocol wordt gebruikt en vul op het DNS-tabblad het IP-adres van de te raadplegen DNS-server(s) in. Of nog eenvoudiger, configureer alles op de DHCP-server. Dit zijn de stappen die nodig zijn om tot een omzetting van een hostnaam te komen (zie bovenstaande figuur) : 1. Controleer of de gevraagde naam de eigen naam is. 2. Kijk of de naam in de lokale client-cache voorkomt. 3. Doorzoek het lokale hosts-bestand 4. Stuur de aanvraag voor naamzetting naar de op de client geconfigureerde DNSserver(s). 5. Als een DNS-server niet reageert, worden er nieuwe pogingen ondernomen na 5, 10, 20 en 40 seconden. Bij meerdere DNS-servers worden de eerste drie allemaal gevraag om een naamomzetting. 6. Stuur een aanvraag voor naamomzetting naar de op de client geconfigureerde NetBIOS (WINS)-naamserver 7. Voer een broadcast uit in het lokale netwerk 8. Doorzoek het lokale LMHosts-bestand De laatste 3 stappen worden in deze cursus niet behandeld.
16 Het beheer van second level domeinen en subdomeinen Second level domeinen en alles wat daaronder zit, vallen gewoonlijk onder de verantwoording van bedrijven of organisaties (bij kleinere bedrijven wordt het beheer hiervan doorgaans doorgegeven aan de ISP). Dat betekent in de praktijk dat binnen die bedrijven of organisaties delen van de DNSdatabase te vinden zijn. Als een organisatie een host met de FQDN ftp.soft.ivo.be heeft, draagt die organisatie de verantwoording voor de namen ftp.soft.ivo. Hierin vormt ftp de hostnaam, rd de subdomeinnaam en ivo de second level domain naam. Om deze verantwoording te kunnen waarmaken zijn er in die organisatie DNS-servers nodig, ook wel nameservers genoemd. Deze DNS-servers worden immers geraadpleegd voor naamresolutie door clients (van over de hele wereld) die hostnamen zoeken binnen het ivo.be domein. Op deze DNS-servers worden naast het domein de subdomeinen gedefinieerd evenals de hostnamen en bijbehorende IP-adressen. Deze DNS-servers moeten in principe altijd toegankelijk zijn vanaf het internet. Dat is dan ook de reden dat er redundantie vereist wordt voor het geval dat er sprake is van het uitvallen van de DNS-server. Er worden daarom per bedrijf of organisatie altijd minimaal 2 DNS-servers ingezet om de naamresolutie te kunnen waarborgen, de primary en secondary DNS-server. Het hebben van meer dan 1 DNS-server heeft overigens nog meer voordelen, want als er veel naamresolutie verzoeken afgehandeld moeten worden, kan de belasting over de DNSservers verdeeld worden (loadbalancing).
NW04 TCP/IP
76
Jan De Deurwaerder