Handleiding

Recept: vaste publieke IP-adressen

Een blok vaste adressen op de WAN, en een server die er een van krijgt.

Doel: je provider levert een blok vaste publieke adressen; je zet de WAN daarop in en geeft een server een van die adressen, met NAT of zonder.

Wat je nodig hebt

  • Het blok in CIDR-notatie, bijvoorbeeld 203.0.113.8/29, en welk adres daarin van jou is.
  • Het gateway-adres van de provider en de DNS-servers die erbij horen.
  • Het antwoord op één vraag: ligt het blok op hetzelfde subnet als je WAN-adres, of routeert de provider het blok naar je WAN-adres toe? Dat verschil bepaalt de rest van dit recept. Staat het niet in je aansluitbrief, vraag het na.
  • Een modem in bridge-modus. Een blok vaste adressen werkt niet achter een modem dat zelf nog routeert.

Let op de rekensom: een /29 heeft acht adressen, waarvan het eerste het netwerk is en het laatste broadcast. Er blijven er zes over, en daarvan is er meestal één de gateway van de provider. Je houdt er dus vijf.

Stap 1: de uplink

  1. Kies je rol (Thuisrouter of Kantoorrouter met VLANs) en ga naar WAN / internet.
  2. Zet bij de uplink het type op Vast IP-adres.
  3. IP-adres/prefix: jouw adres met het prefix van het blok, dus 203.0.113.10/29 en niet /32. Met een /32 kent de router het gateway-adres niet als buur en komt er geen route tot stand.
  4. Gateway: het adres van de provider, bijvoorbeeld 203.0.113.9.
  5. DNS van provider: vul de servers uit je aansluitgegevens in. Bij een vaste uplink is er geen DHCP die DNS meestuurt, dus de vraag "DNS van provider gebruiken" staat er niet. Dit veld wordt gebruikt zodra je in het onderdeel DNS kiest voor DNS van de provider; kies je daar een eigen resolver, dan doet het niets.
  6. Gateway-check staat op ping. Blokkeert je provider ping naar de gateway, zet hem dan op arp, anders wordt je route als dood gemarkeerd terwijl de lijn het doet.

Stap 2: wel of geen NAT

In Firewall & NAT staat de keuze NAT naar internet:

  • Masquerade — de standaard. Prima, maar bedoeld voor een adres dat kan wisselen; de router zoekt per pakket het bronadres op.
  • src-nat naar vast adres — bij een vast WAN-adres efficiënter. Vul een adres uit je eigen blok in, niet dat van de gateway.
  • Geen NAT — voor een router waar alles erachter een publiek adres heeft.

Stap 3a: de server achter NAT

De eenvoudigste weg: de server houdt een privé-adres en je zet een port forward. In het onderdeel Firewall, onder Port forwarding: protocol, externe poort, intern adres, interne poort. Zet Hairpin NAT aan als je de server ook vanaf je eigen netwerk via het publieke adres wilt bereiken.

Een port forward van deze tool matcht op de interface-lijst WAN, niet op één bepaald doeladres. Je kunt hier dus geen forward maken die alleen voor het tweede adres uit je blok geldt. Heb je meerdere servers die allemaal poort 443 willen, dan is dat de reden om de server een eigen publiek adres te geven in plaats van een forward.

Stap 3b: de server met een eigen publiek adres

Routeert je provider het blok naar je WAN-adres, dan kun je die adressen binnen gebruiken:

  1. Maak in VLANs een VLAN voor je servers, bijvoorbeeld 50.
  2. Zet als Router-adres het eerste bruikbare adres uit het geroute blok, bijvoorbeeld 198.51.100.1/29.
  3. Zet DHCP voor dat VLAN uit en geef de server zijn adres met de hand. Publieke adressen wil je niet uitdelen.
  4. Zet de poort waar de server op zit in de poorttoewijzing op access met dat VLAN.
  5. Ga terug naar Firewall en voeg onder Eigen filterregels toe wat binnen mag komen: chain forward, actie accept, protocol tcp, dst. poort 443, doeladres het adres van de server. Die regel komt vóór de afsluitende regel die alles vanaf WAN dropt.

De masquerade-regel van deze tool geldt voor al het verkeer dat via WAN naar buiten gaat, en er is geen veld om één subnet uit te zonderen. Verbindingen die van buiten komen werken gewoon, maar verbindingen die de server zelf opzet vertrekken onder het WAN-adres van de router. Voor een mailserver of iets anders waar het afzenderadres telt, kies dan Geen NAT, of pas de NAT-regel na het plakken zelf aan op het apparaat.

Stap 4: testen

  • /ip address print — staat je adres op de goede interface, met het goede prefix?
  • /ip route print — is er een standaardroute via je gateway, en staat hij niet op onbereikbaar?
  • /ping 203.0.113.9 naar de gateway, daarna /ping 1.1.1.1, daarna een naam om DNS te testen.
  • Vanaf buiten: bereik het publieke adres van de server. Niet vanaf je eigen netwerk, want dan test je hairpin en niet de forward.
  • /ip firewall filter print stats — telt de regel die je zelf toevoegde mee, of loopt het verkeer in de afsluitende drop?

Waar het op stukloopt

  • Het verkeerde prefix. Het adres van de router krijgt het prefix van het blok, niet /32 en niet /24.
  • Dubbele NAT. Staat het modem nog in routermodus, dan komt je publieke blok niet tot je router.
  • Geen DNS. Een vaste uplink krijgt niets automatisch. Vul de DNS van de provider in, of kies in het onderdeel DNS een resolver.
  • De gateway buiten het subnet. Dan is er geen route naar de gateway zelf en werkt er niets.
  • Een lagere MTU dan 1500 op de WAN. Laat TCP MSS aanpassen aanstaan, anders blijven sommige websites hangen terwijl de rest het doet.
  • Diensten op de router zelf. Die horen niet bij port forwarding, maar bij Diensten op de router zelf bereikbaar vanaf internet. Zet daar niets open wat je ook via WireGuard kunt bereiken.

Zie ook WAN en internet, Port forwarding en Recept: een DMZ.

Meteen proberen? Open de configurator