Een eigen domeinnaam komt uit op mijn vaste publieke (externe) IP-adressen van de Fritz!Box. Achter de Fritz!Box zit een pfSense firewall, die via NAT-translation (port forwarding) uitkomt op Synology NAS, waar ik binnen een VM een eigen website host. Wanneer ik op mijn LAN de domeinnaam intik, wordt die geresolved via de DNS-service van Freedom, die naar de publieke IP-adressen (IP versie 4 en 6) wijst. Mijn website wordt geladen in de browser en alles werkt.
Maar heel soms heb ik geen internet, en wil ik toch dat mijn eigen website voor mij vanaf mijn LAN beschikbaar blijft. Nu heb ik gelezen dat je dat via NAT reflection kan instellen, met een eigen DNS resolver / forwarder op pfSense. Die wijst dan (vanaf het LAN) naar de interne IP-adressen. Maar dat ziet er niet heel triviaal uit om in te stellen.
Heeft iemand ervaring met dit onderwerp? Waar moet je op letten bij het instellen van NAT reflection?
Ik heb wel dit artikel gevonden waarin lijkt alsof het makkelijk te doen is met Pure NAT.
Ik gebruik in zo een geval âlocal dns overridesâ.
Daarmee voorkom je dat je van de lan zijde eerst naar buiten gaat, om daarna alnog terug naar binnen te gaan.
Ik doe dat nu via bind9, maar heb dat indertijd ook gedaan via de openSense dns forwarder.
Ik zie dat pfSense ook iets soortgelijks heeft: Host Overrides | pfSense Documentation
Je NAT probleem is hoogst waarschijnlijk gerelateerd aan onderliggende werking:
DNS query levert âeigen public extern ipâ op.
Er bestaat een DST-Nat rule in de firewall, welke inkomend verkeer op de WAN interface doorsluist naar een intern ip/port adres.
Echter, je firewall doet geen LAN SRC-NAT terug naar de DST-NAT port forwarding rule (een firewall is geen malle-eppie)
In plaats daarvan heeft je pfSense gevraagd of ie een tweede rule mocht aanmaken (add associated filter rule), een dst-nat omleiding van âsource LAN/Protocol/dst adres extern ip/dst portâ naar âport forwarded dst lan ip adres/portâ
Als echter je DNS query mislukt, komt er geen extern ip adres, en stopt heel het systeem (het weet niet waar het heen moet).
Om te voorkomen dat je twee regels in de firewall aan moet maken (een Fritz vraagt nooit iets, die doet dat gewoon) en om te voorkomen dat je van externe dns afhankelijk bent gebruik ik gewoon local overrides ipv de tweede nat rule.
Je kunt gewoon elke willeurige dns naam gebruiken om te vertalen naar intern ip, ook niet bestaande public namen.
Dat is handig, om gewenste locale ip adressen te herleiden via een dns naam welke niet publiekelijk bekend is.
Het weglaten van de âassociated firewall ruleâ vereist dat je een dns kunt resolven, direct gebruik van het âexterne ip adressâ vanuit je lan kan niet zonder deze rule.
p.s. Ik heb in het verleden openSense gebruikt, welke een setting heeft waarin je kunt aangeven of ie die tweede regel standaard erbij moet maken. Waarschijnlijk heeft pfSense iets soortgelijks.