Расскажу вкратце топологию моей сети.
Кабель от провайдера входит в eth0 моего "файрволла" (кодовое имя warsword), на который законно адресованы один реальный ip и один провайдерский маскарадный. От файрволла eth1 ведёт к рабочей станции (kitezh). Для проброса соединения к Китежу на данный момент используется внутреннее представление как сети 192.168.0.0/24, у шлюза ip 192.168.0.1, у рабочей станции 192.168.0.2
Используемое шлюзом правило:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEХочу устроить такое: реальный ip пусть продолжает указывать только на шлюз, а хоминетовский маскарадный указывал на внутренний хост. При сем не как-нибудь, а так, чтобы и сам kitezh считал себя провайдерским маскарадным хостом (имеются в виду его сетевые настройки), то есть шлюзование должно быть "прозрачным". То есть сделать проброс соединения практически "как у провайдера", только в этом случае пробрасываем не реальный, а маскарадный "LANовский" ip-адрес.
Вариант с туннелями эту функциональность реализует, но это сильнее грузит шлюз и пр. (дополнительные заголовки появляются).Короче, помогите. LARTC howto прочитал весь, руководство iptables тоже (правда, давно, сейчас полностью не перечитывал, только примеры, но там слегка не мой случай в rc.DMZ.firewall), но опыта применения мало, так что теряюсь.
На обоих хостах gentoo linux, установлены iptables и iproute2, и я так понимаю, правильней будет пользоваться именно iproute2.
>[оверквотинг удален]
>этом случае пробрасываем не реальный, а маскарадный "LANовский" ip-адрес.
>Вариант с туннелями эту функциональность реализует, но это сильнее грузит шлюз и
>пр. (дополнительные заголовки появляются).
>
>Короче, помогите. LARTC howto прочитал весь, руководство iptables тоже (правда, давно, сейчас
>полностью не перечитывал, только примеры, но там слегка не мой случай
>в rc.DMZ.firewall), но опыта применения мало, так что теряюсь.
>
>На обоих хостах gentoo linux, установлены iptables и iproute2, и я так
>понимаю, правильней будет пользоваться именно iproute2.Погуглите на предмет arp proxy - как раз Ваш случай
>Погуглите на предмет 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 eth1ip 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" )
Ещё один способ (вернее даже не один), и тут тоже нужен третий ip-адрес.http://support.infinet.ru/Forums/technicalIssues/949767192478
ПС Если я гоню, и третий ип не нужен - то отпишитесь, не дайте умереть дураком.
>Ещё один способ (вернее даже не один), и тут тоже нужен третий
>ip-адрес.
>
>http://support.infinet.ru/Forums/technicalIssues/949767192478
>
>ПС Если я гоню, и третий ип не нужен - то отпишитесь,
>не дайте умереть дураком.нужен. Я по крайней мере не нашел решение такой задачи без еще одного АйПи.
Может конечно можно иптаблез прикрутить, но я что-то не стал углубляться дальше.