On 08/14/2011 11:26 PM, Frank Voncken wrote: Hoi,
> Dat zou een verklaring kunnen zijn (al snap ik niet zo heel erg veel > van). Zou het wellicht helpen als ik een andere router neem dan de > consumer-grade? Of lekker rommelen in de Ubee-modem van Ziggo? Of zit ik > eraan vast? Even een heel lang verhaal over de NAT: Doorgaans krijgt een router/modem het externe ip-adres. De computers die je er op aansluit krijgen een ip-adres uit een private range. De router vertaalt de verbindingen van/naar buiten steeds van het externe ip-adres naar het interne van de computer die iets wil en terug (om precies te zijn: poort op extern adres naar intern adres + poort). Dat proces het NAT (Network Address Translation). De router houdt een tabel bij van welke poort op het externe adres bij welke poort op welke interne computer hoort. Dat is de 'NAT-table'. Die NAT-table kan vrij groot worden. Zo heeft de laptop waar ik nu op zit te typen, zonder dat ik veel bijzonders doe, zo een 30-40 verbindingen op staan. Als ik even web surf worden er zo honderden verbindingen opgebouwd en weer afgebroken. Als ik ga spelen met iets als bittorrent, dan kan ik zo tientallen honderden verbindingen per seconde opbouwen en makkelijk per computer honderden tot duizenden verbindingen open hebben staan. Nu zijn er soorten verbindingen die geopend worden en kort daarna meteen weer afgesloten worden (bijvoorbeeld POP en HTTP) maar er zijn ook verbindingen die na het openen uren tot dagen open kunnen blijven zonder dat er verkeer overheen gaat (bijvoorbeeld IMAP, SSH en XMPP). Die laatsten openen een verbinding en laten die slapen totdat een van de partijen iets te melden heeft. Nu is het de vraag wat de router doet als de NAT-table te groot wordt en welke mechanismes de router heeft om de NAT-table weer op te ruimen. Gooit de router verbindingen uit de lijst als er te lang niets op gebeurt (Een zogenaamde 'NAT-timeout')? Welke verbindingen worden weggegooid als de tabel te groot dreigt te worden? De oudste? Degene waar het langst geen verkeer overheen is gegaan? Enfin, als de NAT-table niet groot genoeg is (bijvoorbeeld om geheugen uit te sparen) en/of als de router gare of te agressieve logica gebruikt bij het opschonen van de NAT-table, dan worden de 'slapende' verbindingen ceremonieloos de nek omgedraaid. Bij dat de nek omdraaien omdraaien hebben de computer in het interne netwerk en de server aan de andere kant geen idee dat ze geen contact meer met elkaar hebben. Ze komen daar pas achter, als ze zelf iets te melden hebben en daar dan een TCP-error of time out op volgt. Voor jouw IMAP zou dat dan betekenen dat de computer thuis denkt dat de IMAP-server nog steeds aan de lijn hangt en de mail doorstuurt totdat 'ie zelf wat wil versturen. Dan volgt er in het beste geval een TCP-error, in het slechtste wacht 'ie dan eerst nog totdat 'ie een TCP time-out heeft. Dan pas weet de computer dat er iets mis is met de IMAP verbinding en probeert 'ie opnieuw verbinding te maken. Al die tijd komen nieuwe berichten van de server niet aan, de server kan die pas versturen nadat de computer opnieuw verbinding heeft gemaakt. Al met al geen goede gebruikerservaring. Ik heb geen overzicht van welke modems fatsoenlijk NAT doen en welke niet. Maar ik zie wel regelmatig NAT-problemen bij consumenten apparatuur. Daarbij heb ik ook gezien dat 'kwaliteitsproducten' met een verkeerde firmware versie problemen konden hebben. Doorgaans kan je bij consumentenproducten niets veranderen aan de NAT-instellingen. Naar mijn mening is NAT door een consumentenproduct een gok. Zelf heb ik een oplossing gezocht waarbij mijn ADSL-modem niets geen NAT doet (ook niet stiekem) en laat ik de NAT door een Debian router doen. Dat bevalt prima en daarmee zijn we zijn eindelijk weer on-topic. Wat de beste manier is om te voorkomen dat je een gare NAT hebt als je niet je eigen router wilt draaien en/of als je bij Ziggo zit? Werkelijk geen idee. Ik denk eigenlijk dat het praktischer is om niet te proberen de router te maken, maar om een mail client te zoeken die een optie heeft om 'keep-alive packets' te versturen tegen een NAT time-out. Ik weet dat sommige XMPP programma's dat kunnen en dat scheelt een hoop (maar niet alle) gedonder. groet, Winfried -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]
