
У меня есть маршрутизатор WAN, который подключен к интернет-провайдеру через /30
подсеть WAN. Но он также служит маршрутизатором для /29
локальной публичной подсети WAN, которая подключена к нескольким моим серверам. Трафик из нее /29
направляется к интернет-провайдеру через /30
подсеть. По причине проводной связи я хочу замаскировать (NAT) интерфейс, у которого есть /30
IP. Таким образом, интерфейс с /30
IP должен отображаться как замаскированный для моей 192.168.1.0/24
сети, и он также должен действовать как обычный маршрутизатор без NAT для моей публичной подсети WAN /29
. Можно ли это сделать с помощью iptables на машине Linux?
ПРАВКА1: Какие правила моего брандмауэра сейчас:
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#WAN Security
iptables -A INPUT -d 1.2.3.3 -m state --state INVALID -j DROP
iptables -A INPUT -d 1.2.3.3 -m state --state ESTABLISHED,RELATED -j ACCEPT
#NAT
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 1.2.3.3
#FORWARD
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A INPUT -d 1.2.3.3 -j DROP
решение1
Да, это будет работать просто отлично. Настройте фильтрацию пакетов и маршрутизацию так же, как если бы вы вообще не использовали NAT, а затем добавьте что-то вроде:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 1.2.3.3
(Предполагается, что ваш интернет-провайдер подключен к eth0, а ваш публичный IP-адрес — 1.2.3.3.)
Это позволит применить NAT только к пакетам, поступающим из вашей локальной сети с частными IP-адресами.