Bekijk de volledige versie : Static NAT
Можно ли на WL-500gP настроить NAT таким образом чтобы один внутриний айпишник из LAN натился в определенный внешний айпиншник?
Например весь LAN 192.168.1.0/24 натится в 1.1.1.1, и только 192.168.1.100/24 натится в 1.1.1.2
Можно ли на WL-500gP настроить NAT таким образом чтобы один внутриний айпишник из LAN натился в определенный внешний айпиншник?
Например весь LAN 192.168.1.0/24 натится в 1.1.1.1, и только 192.168.1.100/24 натится в 1.1.1.2
Да, iptables в помощь.
Да, iptables в помощь.
Ну это то понятно, хотелось бы посмотреть примерные конфиги
Ну если понятно то читаем МАН http://iptables-tutorial.frozentux.net/
iptables -t nat -A POSTROUTING -s 192.168.1.100/32 -o vlan7 -j SNAT --to-source 1.1.1.2
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o vlan7 -j SNAT --to-source 1.1.1.1
Забыл добавить 1-е правило для конкретных IP-адресов только потом пля подсети.
Прописал, но всё равно пакеты от 192.168.1.100/32 уходят в инет с source адресом 1.1.1.1 а не 1.1.1.2 как надо. Адрес 1.1.1.2 повесил алиасом на интерфейс vlan1. Может ещё надо что то прописать?
Покажыте вывод
iptables -L -nvt nat
маскарад убери который там по умолчанию
вот, только 192.168.1.0 в реальности 172.16.22.0
Chain PREROUTING (policy ACCEPT 5619 packets, 334K bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- vlan1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:6100 to:172.16.22.5:7777
0 0 DNAT tcp -- vlan1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:6000 to:172.16.22.44:8888
0 0 DNAT tcp -- vlan1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:5900 to:172.16.22.14:9999
3650 190K VSERVER all -- * * 0.0.0.0/0 1.1.1.1
Chain POSTROUTING (policy ACCEPT 1243 packets, 74715 bytes)
pkts bytes target prot opt in out source destination
587 23506 MASQUERADE all -- * vlan1 !1.1.1.1 0.0.0.0/0
4 908 MASQUERADE all -- * br0 172.16.22.0/24 172.16.22.0/24
0 0 SNAT all -- * vlan1:1 172.16.22.100 0.0.0.0/0 to:10.1.8.13
Chain OUTPUT (policy ACCEPT 1247 packets, 75623 bytes)
pkts bytes target prot opt in out source destination
Chain VSERVER (1 references)
pkts bytes target prot opt in out source destination
У меня есть ещё один алиас на интерфейсе vlan1 и через него идет маршрут, и адрес в который я хочу натить 172.16.22.100 на самом деле не реальный 1.1.1.2 а серый из подсети 10.1.8.0. Может быть изза него не получается и надо натить только в реальный айпишник
ifconfig vlan1:0 10.1.8.35 netmask 25.255.255.0 up
route add -net 10.1.0.0 netmask 255.255.0.0 gw 10.1.8.1 dev vlan1:0
Добавте в файл /usr/local/sbin/post-firewall
iptables -t nat -I POSTROUTING 1 -s 172.16.22.100 -o vlan1:0 -j SNAT --to-source 10.1.8.13
iptables -t nat -I POSTROUTING 2 -s 172.16.22.0/24 -o vlan1:0 -j SNAT --to-source 1.1.1.1
Не забудьте выполнить flashfs save && flashfs commit && flashfs enable
iptables -t nat -I POSTROUTING 2 - правило будет №2 в таблице POSTROUTING.
Маскарад уберать не нужно (иначе вообще некуда пакеты уходить не будут, их будет дропать шлюз прова), необходимо просто добрать нашы правила перед маскарадом.
В правилах должен быть тот интерaейс с которого выходите (vlan1:0).
Поправте адреса ибо я запуталя :D
iptables не понимает имена интерфейсов с двоеточием. Используйте просто vlan1.
iptables не понимает имена интерфейсов с двоеточием. Используйте просто vlan1.
Да, действительно не понимает! Всё заработало как хотел и с одним только правилом
iptables -t nat -I POSTROUTING 1 -s 172.16.22.100 -o vlan1 -j SNAT --to-source 10.1.8.13
ну и плюс интерфейс vlan1:1 с ip 10.1.8.13 как я уже писал
Всем большое спасибо за помощь!
P.S. коробочка конечно классная, позволяет превратить любую больную фантазию в жизнь :D