Xelça


Het probleem: je kunt een bepaalde website niet bezoeken, maar mensen met een andere verbinding kunnen wel naar die site. Andere sites kun je wel gewoon bezoeken.

Ik ben een keer een maand bezig geweest om het probleem op te lossen. Als naslagwerk en referentie een uitgebreid technisch verhaal over de problemen en de oplossingen

De oplossing
In dit document wordt beschreven waarom sommige sites niet bereikbaar (lijken te) zijn en wat daar aan te doen is.

Het internet is opgebouwd uit een enorme hoeveelheid apparaten, niet alleen computers, maar ook switches, hubs etc. Al deze apparaten praten met elkaar door middel van de welbekende IP pakketjes. Deze apparaten zijn bovendien fysiek op tal van verschillende manieren aan elkaar verbonden, door bijvoorbeeld glasvezels, utp-kabels of, minder fysiek, door zogenaamde tunnels. Deze verbindingen stellen eisen aan de manier waarop data eroverheen getransporteerd kan worden, niet alleen of dat met behulp van licht of elektriciteit moet, maar ook zaken als de maximale grootte die een data-pakketje mag hebben. Deze maximale grootte wordt MTU oftewel Maximum Transmission Unit genoemd.

Dit betekent dat ieder stukje in de fysieke verbinding tussen een computer en een andere computer een andere maximale grootte kan hebben. Je voelt hem nu waarschijnlijk al aankomen: hoe weet nou de ene computer hoe groot hij een pakketje maximaal mag maken, zodat het toch nog bij de andere computer aan komt? Dat weet ie in eerste instantie ook niet! Hij weet alleen dat op het stukje netwerk waar hij op aangesloten is de maximale grootte bijvoorbeeld 1500 (bytes) is. Als hij verbinding maakt met een andere computer zal hij dan ook in z'n IP pakketje zetten: 'de maximale grootte van de pakketjes die ik kan ontvangen is 1500'. De ontvangende computer, die bijvoorbeeld als maximale grootte 3000 heeft, weet dan: 'oh ik mag geen pakketjes sturen die groter zijn dan 1500!'.

Mocht er nou, tussen die twee computers in een stukje netwerk liggen dat bijvoorbeeld IP pakketjes van maximaal 1476 groot kan transporteren, dan is er een probleem. De pakketjes van de twee computers, die net afgesproken hebben dat ze pakketjes van maximaal 1500 bytes groot zullen sturen, passen er niet doorheen! Omdat de apparatuur van het tussenliggende stukje netwerk niet de IP pakketjes kan aanpassen zodat beide computers door hebben dat de maximale grootte niet 1500, maar 1476 is, is hier iets anders op bedacht. Krijgt de apparatuur een te groot pakketje, dan zal deze de afzender hiervan een zogenaamd ICMP pakketje terug sturen, met daarin: 'hee, dit pakketje is te groot, ik kan maar maximaal 1476 bytes aan'. Deze pakketjes zijn familie van de bekendere ICMP ping pakketjes, die gebruikt worden om een host 'te pingen'. Nu verlagen beide kanten de maximale pakket grootte van 1500 naar 1476 en kan er uiteindelijk toch nog gecommuniceerd worden.

Dit zou allemaal prachtig werken als iedereen die apparatuur aan of in het internet heeft hangen, zich netjes zou gedragen. Er zijn echter netwerk beheerders die alle ICMP pakketjes op hun firewall eruit filteren, ook al zijn deze pakketjes nodig voor een goede communicatie! Een voorlopige oplossing hiervoor is ervoor te zorgen dat je computer denkt dat de maximale pakket grootte niet 1500, maar 1476 is. Zodat al bij het begin van de communicatie met een andere computer wordt duidelijk gemaakt dat de pakketjes niet groter mogen zijn en er daardoor ook geen te grote pakketjes worden verstuurd welke er voor zorgen dat het tussenliggende stukje netwerk ICMP pakketjes terugstuurd die er in de firewall worden uit gefilterd.

2. Workaround
Zoals in de laatste alinea van de vorige paragraaf gezegd: verlaag de MTU van je netwerk verbinding van 1500 naar 1476.

2.1 voor Windows
Om onder windows de MTU aan te passen, moet de registry worden aangepast. Aangezien er geen kant en klare registry patches zijn, en ik erg weinig van de windows registry weet, doen wij het met een tooltje . Als het goed is werkt dit op Windows 95, 98, 98SE, ME, NT4, 2k en XP. 

Vul in het veld (Max)MTU de waarde 1476 in en start je computer opnieuw op, of onder 2k en XP disable en enable je netwerk verbinding.

2.2 voor Linux
Onder linux is het vrij straight-forward. Type op de commandline als root in met de ip tool:

ip link set <netwerk device, bijv eth0> mtu 1476
met de ifconfig tool:
ifconfig <netwerk device, bijv eth0> mtu 1476


Heeft dit artikel geholpen om de problemen op te lossen? Of toch niet? Laat even een reactie achter.



   [lees andere artikelen]




Xelça archief

Zoek:
Xelça weer:

Blikseminslagen

Xelça nieuws:
nu.nl
webwereld.nl
Alarmeringen.nl

Xelça handig:
Webmail
TV Gids
Navigatie
Satelliet
File info

Xelça leest:
Merel Roze
Retecool
Eva Krebbers

Xelça reist:
Europa

Xelça link exchange:
Just a drop of water
Mombers
IPM media
Directory Google

Hosting:


W.I.E.



© 2003-2009