![]() |
Помогите пожалуйста с роутингом
Прошу прощения, проблема избитая, но сам разобраться так и не смог. :(
Предположим, есть две подсети и машина с двумя интерфейсами в обеих подсетях, для простоты и чтобы не путаться - 192.168.1.0/24 на интерфейсе eth1 (192.168.1.1) и 192.168.2.0/24 на интерфейсе eth2 (192.168.2.1). Эта же машина выдаёт через dhcp default gateway'ями в обе подсети адреса на своих интерфейсах, то есть, 192.168.1.1 и 192.168.2.1 соответственно. Форвардинг включен: Код:
monitor:~# cat /proc/sys/net/ipv4/ip_forward Вопрос: как сделать роутинг между подсетями через эту машину без маскардинга? Для этого ведь не надо делать ip тунеллей? Или надо? Если да, то как? route add -net 192.168.1.0/24 gw 192.168.2.1 и route add -net 192.168.2.0/24 gw 192.168.1.1 - не помогает. Так же пытался делать (по аналогии с http://www.linux.org.ru/view-message.jsp?msgid=21652): route add -net 192.168.1.0/24 dev eth2 route add -net 192.168.2.0/24 dev eth1 С тем же результатом. :( В обоих вариантах при попытке пинговать узлы одной сети из другой, получается следующее: Код:
From 192.168.1.1: icmp_seq=1 Redirect Host(New nexthop: 192.168.1.2) |
Большое спасибо моему знакомому Skiv'у, который подсказал, что нужно сделать. Проблема решается двумя правилами в iptables:
Код:
iptables -A FORWARD -i eth1 -o eth2 -s 192.168.1.0/24 -d 192.168.2.0/24 -j ACCEPT |
По-моему роутинг надо настраивать на клиентах, а не на шлюзе. При включённом разрешении форвардинга, всё должно и так проходить (если только файерволл не поднят).
|
Роутинг, имхо, надо настраивать на роутере (он же шлюз), ибо это машина, которая принимает решение по прохождении пакетов по тому или иному маршруту. Клиенту в идеале должно хватать адреса дефолтного гейтвея, выдаваемого дхцп.
|
Время: 14:25. |
Время: 14:25.
© OSzone.net 2001-