Achter CGNAT: zo krijg je een publiek IP op je eigen router
Waarom port forwarding niet meer werkt op een gedeeld IPv4-adres, hoe je ziet of jouw verbinding er een heeft, en de vier manieren eromheen, met hun beperkingen.
Je stelt port forwarding in op de router, zet de poort open in de firewall, en er komt nooit iets van buiten binnen. Op veel thuis- en mobiele verbindingen in Luxemburg en België is dat geen configuratiefout. Het adres dat je router van de provider krijgt, is geen publiek adres.
Wat CGNAT is
IPv4 zit al jaren zonder adressen. Om nieuwe klanten te blijven aansluiten, zetten providers er veel achter één gedeeld publiek adres en vertalen ze in het midden: carrier-grade NAT, of CGNAT. Je router doet nog steeds zijn eigen NAT voor je thuisnetwerk, dus er zitten twee vertaallagen tussen je apparaten en het internet. Uitgaande verbindingen werken prima. Inkomende hebben nergens heen: een pakket dat op het gedeelde adres aankomt kan van elk van de honderden klanten erachter zijn, en de vertaler van de provider weet niet dat het jouwe het wil hebben.
Port forwarding, dynamische DNS, een VPN-server thuis, een game- of mediaserver waar vrienden op verbinden, toegang op afstand tot een camera of NAS: dat alles heeft een inkomende verbinding nodig, en dat alles faalt achter CGNAT.
Zo controleer je of je erachter zit
- Vergelijk adressen.Log in op je router en noteer het WAN- of internetadres dat hij toont. Open dan vanaf een apparaat in het netwerk een willekeurige "wat is mijn IP"-site. Verschillen de twee, dan zit er nog een NAT-laag tussen jou en het internet.
- Kijk naar het WAN-adres van de router.Een adres dat begint met
100.64tot100.127komt uit de reeks die voor carrier-grade NAT is gereserveerd (RFC 6598).10.x,172.16tot172.31en192.168.xaan de WAN-kant wijzen op hetzelfde. - Test van buiten.Forward een poort en probeer hem te bereiken vanaf een telefoon op mobiele data, niet via je eigen wifi. Meldt de router dat de forward actief is maar komt er niets binnen, dan is het inkomende pad vóór je router geblokkeerd.
Een dynamisch publiek adres is een ander probleem. Het is publiek en bereikbaar; het verandert alleen. Dynamische DNS lost dat op. CGNAT lost het niet op, want er is geen eigen adres om de naam naar te laten wijzen.
De vier manieren eromheen
1. Vraag de provider om een publiek adres. Sommige providers halen een klant op verzoek uit CGNAT, soms tegen een maandelijkse toeslag, soms alleen op een zakelijk abonnement. Dit is de schoonste oplossing als ze bestaat: er verandert niets aan je opstelling. Vraag dit eerst.
2. Gebruik IPv6. De meeste providers die CGNAT gebruiken voor IPv4 geven ook een publieke IPv6-prefix uit, en IPv6 heeft helemaal geen NAT. Als iedereen die jou moet bereiken IPv6 heeft (de meeste mobiele netwerken hebben het), kun je diensten alleen via IPv6 aanbieden. De beperking zit aan de andere kant: een bezoeker op een IPv4-only netwerk kan een IPv6-only dienst niet bereiken.
3. Host de dienst ergens anders. Hoeft de dienst niet thuis te draaien, draai hem dan op een server met een publiek adres en houd het thuisnetwerk privé. Een kleine VPS komt met een publiek IPv4- en IPv6-adres en is het juiste antwoord voor een website, een mailserver of een VPN-eindpunt.
4. Een tunnel van een aanbieder die publieke adressen heeft. Je router opent een uitgaande VPN-verbinding naar een server die wél publieke ruimte heeft, en de aanbieder routeert een publiek adres door die verbinding terug naar jou. Uitgaande verbindingen werken achter CGNAT, dus de tunnel komt op; eenmaal op, stroomt het verkeer voor het publieke adres erdoorheen naar je router, die dan zoals gewoonlijk poorten doorstuurt. De hardware blijft thuis en krijgt een echt adres.
Wat een tunnel wel en niet doet
De IP Tunnel van NovaNode is optie 4: een WireGuard-tunnel vanuit ons netwerk in Luxemburg die een vast IPv4-adres en een IPv6-prefix naar je router of server routeert. Wat je moet weten voordat je deze weg kiest, bij ons of bij wie dan ook:
- Jouw kant start de verbinding.Alleen uitgaande UDP naar het eindpunt is nodig, daarom werkt het achter CGNAT. Blokkeert of knijpt je provider UDP, dan komt de tunnel niet op of presteert hij slecht; dat deel is tussen jou en je provider.
- Al het verkeer voor het publieke adres gaat door de tunnel, in beide richtingen. Je uploadsnelheid thuis wordt de downloadsnelheid van wie met jou verbindt.
- Het adres is van de aanbieder.Geolocatie zegt Luxemburg, het abuse-contact is dat van de aanbieder, en het adres gaat terug naar de aanbieder als je opzegt. Reverse DNS wordt op verzoek ingesteld.
- Het is één pad.Onze tunnel draait op één eindpunt, best effort, zonder SLA; een redundante opstelling met een tweede eindpunt is op verzoek als extra mogelijk. Is de tunnel down, dan is het publieke adres down.
- Mail is beperkt.Uitgaande poort 25 is standaard dicht en wordt na beoordeling geopend. De meeste andere poorten worden gewoon doorgestuurd.
- Fair use geldt.De capaciteit is gedeeld; wat als fair use telt staat in de productvoorwaarden, en een dedicated commitment kan worden geoffreerd.
- Geen BGP, geen AS-nummer nodig.Het adres wordt statisch naar de tunnel gerouteerd. Wil je wel je eigen prefixen aankondigen, dan is dat een ander product: zie Wat een sponsoring LIR doet.
Hoe een WireGuard-configuratie hiervoor eruitziet en hoe een offerte werkt, staat op de pagina IP Tunnel. Voor een opstelling die je zelf op een VPS draait, werkt hetzelfde idee met elke WireGuard-capabele router en het eigen adres van de VPS.
Welke optie, in de praktijk
- Een of twee poorten moeten van buiten bereikbaar zijn, de provider biedt een publiek IP voor een kleine toeslag: optie 1.
- Alleen jij en je eigen apparaten moeten erin, allemaal op mobiel of moderne verbindingen: optie 2, alleen IPv6, gratis.
- De dienst hoeft niet thuis te staan: optie 3, een VPS.
- De hardware moet blijven waar hij is en IPv4-bezoekers moeten hem bereiken: optie 4, een tunnel.
Nog geen klant?
Prijzen, specificaties en het bestelformulier staan op de productpagina.
Heeft dit het niet opgelost? Open een ticket en vertel wat je al geprobeerd hebt.