LINUX.ORG.RU
ФорумAdmin

Маршрут к хосту из другой сети

 ,


0

1

Есть машинка с двумя интерфейсами eth0 (192.168.0.3) и wlan0 (192.168.1.3)
К её eth0 подключен ещё один девайс с адресом 192.168.0.137.
На машинке поднята ad hoc беспроводная сеть, включен ip_forwarding и добавлена запись в iptables:

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all  — 192.168.1.0/24 192.168.0.137

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Ноутбук с ip из сети 192.168.1.0/24 подключен к этой сети. У него есть запись в таблице маршутизации
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 192.168.1.3 255.255.255.0 U 2 0 0 wlan0
Адрес 192.168.0.3 доступен, а 192.168.0.137 уже нет. Пните меня, что я ещё не сделал/сделал не так. Спасибо.



Последнее исправление: Pinkbyte (всего исправлений: 1)

Если

# sysctl net.ipv4.ip_forward 
net.ipv4.ip_forward = 0
то
# cat <<EOF>> /etc/sysctl.conf
net.ipv4.ip_forward = 1
EOF
# sysctl -p
на машинке с теми двумя инрефейсами.

beastie ★★★★★
()

ad hoc

Зло. Освой hostapd.

Адрес 192.168.0.3 доступен, а 192.168.0.137 уже нет. Пните меня, что я ещё не сделал/сделал не так. Спасибо.
Ноутбук с ip из сети 192.168.1.0/24 подключен к этой сети. У него есть запись в таблице маршутизации
Адрес 192.168.0.3 доступен, а 192.168.0.137 уже нет.

Когда комп из 192.168.1.0/24 посылает пакеты через 192.168.1.3 к 192.168.0.137, то (скорее всего) они доходят. Но вот 192.168.0.137 посылает пакеты в соответствии со своей таблицей маршрутизации (т.е. в свою броадкаст-подсеть и в default gw), т.е. для того, чтобы пакеты на 192.168.1.0/24 уходили куда надо (192.168.0.3), нужно на 192.168.0.137 или на его default gw (в смысле на устройстве, которое для него default gw, а не в этой записи, хотя тоже будет работать, но инет отрубится) добавить 192.168.1.0 192.168.0.3 255.255.255.0.
Однако, обычно админы не применяют такие решения без необходимости, т.е. это приведет либо к избыточному трафику через default gw (в случае, если default gw = spec net gw, то применяют), либо нужно всем анонсировать через dhcp данный маршрут, что не все устройства умеют.
192.168.1.0/24 (c default gw 192.168.1.3) видит 192.168.0.3, т.к. у него включен форвардинг и маршрут до 192.168.1.0/24 имеется (а не уходит в default gw).

Поэтому применяется маскарадинг. В данном случае iptables -t nat - A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE или просто iptables -t nat - A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE для глобальной постмаршрутизации.



Пните меня, что я ещё не сделал/сделал не так. Спасибо.

Ага, матчасть не учил. Не за что.

ktulhu666 ☆☆☆
()
Ответ на: комментарий от zolden

Хм, про тестинг-вариант ip r g 192.168.0.137 не знал, спасибки.

ktulhu666 ☆☆☆
()
Ответ на: комментарий от ktulhu666

ktulhu666, не в бровь, а в глаз, спасибо.
Ещё проблемка в том, что этот 192.168.0.137 является девайсом под названием видеосервер. И его gw 192.168.0.1 поменять не могу - придется дать машинке с двумя интерфейсами на eth0 этот адрес.
zolden, спасибо.

brotherrabbit
() автор топика
Ответ на: комментарий от brotherrabbit

Я не понимаю, чем Вам не нравится идея маскарадинга.

ktulhu666 ☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.