>Погуглите на предмет arp proxy - как раз Ваш случай Спасибо за направление. Хоть тема и совсем неизвестная для меня, но это работает.
Руководствовался
http://www.opennet.me/tips/info/923.shtml
Пришлось, правда, просить ещё один маскарадный ип у провайдера, без этого, кажется, никак.
Если я правильно понимаю, второй маскарадный в данном случае необходим и достаточен и для arp-proxy, и для решения вопроса туннелями или iptables.
Выкладываю конфиг-файлы для благодарных потомков.
/etc/conf.d/net на шлюзе:
modules=( "iproute2" )
config_eth0=( "192.168.85.112 netmask 255.255.255.0" )
config_eth1=( "192.168.85.112 netmask 255.255.255.0" )
/etc/init.d/routing на шлюзе (добавлен в runlevel default):
#!/sbin/runscript
PATH="/sbin/:$PATH" # это паранойя, не обращайте внимания
start()
{
ip addr add 80.90.233.15/27 dev eth0 # присваиваем шлюзу внешний ип - не зря же я за него плачу
ip route del 192.168.85.0/24 dev eth0
ip route del 192.168.85.0/24 dev eth1
ip route add 192.168.85.1 dev eth0
ip route add 192.168.85.111/32 dev eth1
ip route add 192.168.85.0/24 dev eth0 # возможно, эта строка лишняя, но я решил перестраховаться
ip route add default via 192.168.85.1
# теперь мы ударяем в соответствующий бубен и это чудо срабатывает!!!
echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp
}
А пробрасываемая тачка, как и полагается, кем себя считает, тем и является:
/etc/conf.d/net:
modules=( "iproute2" )
config_eth0=( "192.168.85.111 netmask 255.255.255.0" )
routes_eth0=( "default gw 192.168.85.1" )