Я пытаюсь дважды использовать 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 ник.
-Используйте natting, чтобы всякий раз, когда внутренний DNS отвечает, маршрутизатор должен модифицировать его, чтобы он соответствовал глобальному адресу (выбор времени выполнения не статический). Каждый раз, когда внешний DNS отвечает, nat должен снова сопоставить публичный адрес с одним частным адресом, например 192.168.0.32, а затем он должен достигнуть клиента.
как мне поступить +
Проблема 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 ...
a.b.c.d1, a.b.c.d2 и т. д. - это публичные 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}
Если вы доверяете и меньшей, и большей LAN, вы можете обойтись одним правилом FORWARD:
iptables -A FORWARD -j ACCEPT