Ik ben bezig aan een Linux 2.6 + iptables router/firewall te bouwen voor een kleine onderneming. Die onderneming gebruikt dyndns.dk, met Dynsite op alle clients, omdat het personeel soms met de laptop via GPRS/UMTS op locatie zit en die client per definitie altijd bereikbaar moet zijn via die naam, mits hij aan het internet hangt en opstaat natuurlijk.
Probleem is dat ze dit ook gebruiken als beide hosts op het interne netwerk, gewoon in het bedrijf zelf, zitten. Dit vindt die router niet zo leuk. Ze willen geen IP/hostname gebruiken als ze lokaal zitten en een andere als ze remote zijn. Daarom moet die iptables router dus DNAT doen en als het een pakket met die destination tegenkomt, terug het interne netwerk opsturen met het lokale IP.
Dat gaat er dan zo uitzien:
Het probleem is dus dat die destination een DDNS-hostname is. Het hele punt van DDNS is natuurlijk dat dat IP niet altijd hetzelfde is, maar eens die rules in iptables zitten veranderd dat ip natuurlijk wel niet meer.
Ik heb dus iets nodig wat ik bv in een cronjob kan zetten, de DDNS naar een IP resolvet, dat vergelijkt met wat het n minuten geleden was, en indien er een verandering is opgetreden de firewall opnieuw start.
Probleem is dat ze dit ook gebruiken als beide hosts op het interne netwerk, gewoon in het bedrijf zelf, zitten. Dit vindt die router niet zo leuk. Ze willen geen IP/hostname gebruiken als ze lokaal zitten en een andere als ze remote zijn. Daarom moet die iptables router dus DNAT doen en als het een pakket met die destination tegenkomt, terug het interne netwerk opsturen met het lokale IP.
Dat gaat er dan zo uitzien:
code:
1
2
| iptables -A PREROUTING -t nat -p tcp -d 1.2.3.4 --dport 8080 \
-j DNAT --to 192.168.1.1:80 |
Het probleem is dus dat die destination een DDNS-hostname is. Het hele punt van DDNS is natuurlijk dat dat IP niet altijd hetzelfde is, maar eens die rules in iptables zitten veranderd dat ip natuurlijk wel niet meer.
Ik heb dus iets nodig wat ik bv in een cronjob kan zetten, de DDNS naar een IP resolvet, dat vergelijkt met wat het n minuten geleden was, en indien er een verandering is opgetreden de firewall opnieuw start.