urfin⇓ пишет:заинтересовало некоторое расхождение теории с практикой
Дано:
host1
# /etc/rc.d/rc.inet1 stop
# ifconfig eth0 192.168.8.10 up
# route add default gw 192.168.8.254
host2
# /etc/rc.d/rc.inet1 stop
# ifconfig eth0 192.168.9.10 up
# route add default gw 192.168.9.254
1) Обычная маршрутизация пакетов из сети в сеть
gw
# /etc/rc.d/rc.inet1 stop
# ifconfig eth0 192.168.8.254 up
# ifconfig eth1 192.168.9.254 up
# echo "1" > /proc/sys/net/ipv4/ip_forward
# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
Делаем на host2
# tcpdump
и наблюдаем...
На host1
# ping -c1 192.168.9.10
64 bytes from 192.168.9.10: icmp_req=1 ttl=63 time=1.55
...
на host2 наблюдаем
ICMP echo request 192.168.8.10 > 192.168.9.10
ICMP echo reply 192.168.9.10 > 192.168.8.10
2) Трансляция сетевого адреса источника (SNAT)
Делаем:
на gw
# iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -o eth1 -j SNAT --to-source 192.168.9.254
на host1
# ping -c1 192.168.9.10
64 bytes from 192.168.9.10: icmp_req=1 ttl=63 time=1.55
...
на host2 наблюдаем
ICMP echo request 192.168.9.254 > 192.168.9.10
ICMP echo reply 192.168.9.10 > 192.168.9.254
Вопросы, замечания, комментарии?