Используя дважды NATTing и dns_Alg
Я пытаюсь использовать дважды nat вместе с dns_alg для поддержки фреймворка и провести его измерения.
У меня частная сеть 192.168.0.0/24
эта сеть содержит www, dns, dhcp и т. д. для собственного использования. Для глобального доступа также используются DNS,WWW. Я сказал, например. 6 публичных адресов, которые были выделены мне.
192.168.0.0/24 | ----router/NAT ||=--- 6ips-----isp-----bigger isp-----whatever.
Я хочу: -Распределить все эти IP-адреса на внешнем нике одного маршрутизатора, или псевдоним их, но у меня есть только 1 ник.
-Используйте наттинг, так что всякий раз, когда внутренний DNS отвечает, маршрутизатор должен изменить его, чтобы он соответствовал глобальному адресу (выбор времени выполнения не статичен). Всякий раз, когда внешний DNS отвечает, nat должен снова сопоставить общедоступный адрес с одним частным адресом, скажем, 192.168.0.32, и затем он должен достичь клиента.
- используйте источник и адрес, так что внутренние адреса никогда не связываются с внешним миром, скорее они связываются только со своей локальной сетью.
как мне поступить +
1 ответ
Проблема 1: Несколько IP-адресов на сетевой карте.
ip address add a.b.c.d1/mm brd + dev ${WAN_IFACE}
ip address add a.b.c.d2/mm brd + dev ${WAN_IFACE}
... and so on ...
abcd1, abcd2 и т. д. - это предоставленные вам публичные IP-адреса, /mm - это маска подсети, предоставленная вам.
Проблема 2: Двойной NAT
iptables -t nat -A PREROUTING -i ${WAN_IFACE} -p udp --dport 53 -j DNAT --to-destination ${internal_dns_ip}:53
iptables -A FORWARD -i ${WAN_IFACE} -o ${LAN_IFACE} -p udp --dport 53 -j ACCEPT
iptables -t nat -A POSTROUTING -o ${LAN_IFACE} -p udp --dport 53 -j SNAT --to-source ${router_lan_ip}
( and optionally for -p tcp, too )
Но почему ты хочешь это сделать???
Изменить: предоставление NAT для подсети в более крупной сети.
Исходя из комментариев (см. Ниже), ответ на проблему 2 не будет подходящим. Вместо этого достаточно простого SNAT:
# Allow traffic from smaller LAN to bigger LAN
iptables -A FORWARD -i ${SMALLER_LAN_IFACE} -o ${BIGGER_LAN_IFACE} -j ACCEPT
# Allow established and related trafic bothways
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Perform Source NAT
iptables -t nat -A POSTROUTING -o ${BIGGER_LAN_IFACE} -j SNAT --to-source ${LOWER_IP}-${HIGHER_IP}
Если вы доверяете как локальной, так и небольшой локальной сети, вы можете обойтись одним правилом FORWARD:
iptables -A FORWARD -j ACCEPT