Можно ли на WL-500gP настроить NAT таким образом чтобы один внутриний айпишник из LAN натился в определенный внешний айпиншник?
Например весь LAN 192.168.1.0/24 натится в 1.1.1.1, и только 192.168.1.100/24 натится в 1.1.1.2
Было: WL500gP (fw 1.9.2.7-10-USB-1.71) + Toshiba TravelStar 250Gb 2.5" inside router.
(ADOS + rTorrent WebUI+rtorrent + samba + rrdtool + XMail + QuiXplorer + ClamAV)
> Мои инструкции < Для новичков и ленивых > Wiki переехало сюда < "Ночные" сборки >
Ну если понятно то читаем МАН http://iptables-tutorial.frozentux.net/
Забыл добавить 1-е правило для конкретных IP-адресов только потом пля подсети.PHP Code:
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
Last edited by Less; 10-03-2009 at 07:24.
wl500gp-1.9.2.7-d-r1222 + StoreJet 35 Ultra >>> rtorrent+rutorrent -|- lighhtpd + ssl + auth -|- vnStat + vnStat PHP frontend -|- vsftpd -|- squid + lightsquid...
Прописал, но всё равно пакеты от 192.168.1.100/32 уходят в инет с source адресом 1.1.1.1 а не 1.1.1.2 как надо. Адрес 1.1.1.2 повесил алиасом на интерфейс vlan1. Может ещё надо что то прописать?
Покажыте вывод
Code:iptables -L -nvt nat
wl500gp-1.9.2.7-d-r1222 + StoreJet 35 Ultra >>> rtorrent+rutorrent -|- lighhtpd + ssl + auth -|- vnStat + vnStat PHP frontend -|- vsftpd -|- squid + lightsquid...
маскарад убери который там по умолчанию
wl-500gp + AGESTAR IUBCP + HDD Seagete 80 GB = 1.9.2.7-10 + lighttp + perl + sqlite2 + php + ados + rtorrent + Kaspersky update + squid(–enable-delay-pools) + rrd + smb + ntp + ftp + half-dynamic shaping...
вот, только 192.168.1.0 в реальности 172.16.22.0
У меня есть ещё один алиас на интерфейсе vlan1 и через него идет маршрут, и адрес в который я хочу натить 172.16.22.100 на самом деле не реальный 1.1.1.2 а серый из подсети 10.1.8.0. Может быть изза него не получается и надо натить только в реальный айпишникPHP Code:
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
PHP Code:
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
Не забудьте выполнить flashfs save && flashfs commit && flashfs enableCode: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
iptables -t nat -I POSTROUTING 2 - правило будет №2 в таблице POSTROUTING.
Маскарад уберать не нужно (иначе вообще некуда пакеты уходить не будут, их будет дропать шлюз прова), необходимо просто добрать нашы правила перед маскарадом.
В правилах должен быть тот интерaейс с которого выходите (vlan1:0).
Поправте адреса ибо я запуталя
wl500gp-1.9.2.7-d-r1222 + StoreJet 35 Ultra >>> rtorrent+rutorrent -|- lighhtpd + ssl + auth -|- vnStat + vnStat PHP frontend -|- vsftpd -|- squid + lightsquid...
iptables не понимает имена интерфейсов с двоеточием. Используйте просто vlan1.
Да, действительно не понимает! Всё заработало как хотел и с одним только правилом
ну и плюс интерфейс vlan1:1 с ip 10.1.8.13 как я уже писалPHP Code:
iptables -t nat -I POSTROUTING 1 -s 172.16.22.100 -o vlan1 -j SNAT --to-source 10.1.8.13
Всем большое спасибо за помощь!
P.S. коробочка конечно классная, позволяет превратить любую больную фантазию в жизнь