LINUX.ORG.RU
ФорумAdmin

вопрос по SNAT и нескольким сетям, пропадает сеть...


0

0

Имею комп, к нему подключен к 1 сетевой модем в роутере, к другой локальная сеть 192.168.8.0/24. В этой сети.есть выход в другую локальную сеть 192.168.2.0/ через 192.168.8.254. Роут прописан, все хорошо, вижу 192.168.2.0/24.
Хочу сделать для 1 человека 192.168.8.15 доступ в интернет через мой модем.
Пишу 1 правило, 
iptables -t nat -A POSTROUTING -j SNAT --to-source 192.168.66.2 ---- IP адрес сетевой,котоаря смотрит на модем. в ip_forward 1.

У человека.если он ставит меня основным шлюзом, интернет работает. Но, у меня тогда пропадает видимость сети 192.168.2.0/24 

вот вывод route

Код
[root@mars /]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.2.0     192.168.8.254   255.255.255.0   UG    0      0        0 eth0
192.168.66.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.8.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.66.1    0.0.0.0         UG    0      0        0 eth1

Как добиться видимости и ната одновременно?
И как натить только 1 ИП? У SNAT есть только -d ключик...
★★

>>iptables -t nat -A POSTROUTING -j SNAT --to-source 192.168.66.2
эта строка означает, что ВСЕМ пакетам исходящим из твоего компа и маршрутизированным им будет выставлен "обратный адрес" 192.168.66.2.

Таким образом, пакет с твоей машины адресованный, например, 192.168.2.20 будет отправлен на 192.168.8.254, но обратным адресом будет 192.168.66.2. Естественно, что маршрутизатор 192.168.8.254 будет в замешательстве, когда получит пакет от 192.168.2.20 для 192.168.66.2.

>>Как добиться видимости и ната одновременно?
>>И как натить только 1 ИП? У SNAT есть только -d ключик...
Это не ключик :), а критерий. Есть ряд общих критериев, применимых ко всем правилам. (http://www.citforum.ru/operating_systems/linux/iptables/1.shtml#GENERICMATCHES )

Тебе надо что-то вроде:
iptables -t nat -A POSTROUTING -s 192.168.8.15 -o eth1 -j SNAT --to-source 192.168.66.2

а расшифруется это так: если пакет, пришедший с ip=192.168.8.15 после принятия решения о маршрутизации будет отправляться через ветевой интерфейс eth1, то к нему (пакету) будет применено действие подмены исходного адреса.

Кстати, а у тебя, случаем, на модеме не NAT ли работает?
Может просто маршрут для 192.168.8.15 на твоей машине достаточно будет прописать?

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

спасибо за разъяснения. Я примерно так и думал, но про ключик -s , думал что не подходит ... На модеме нат, как сделать маршрут для 8.15? т.к. модем поставить в 8 сеть не могу...

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

я не знаю, как конфигурится модем, но, ИМХО, если на нем настроить NAT и роутинг для 8.15, то можно обойтись и без NAT на компе (а маршрутизация на нем и так подходящая)
или второй вариант: переключить модем в режим моста, тогда IP, выданный провайдером, будет пренадлежать сетевому интерфейсу компа
или третий вариант: оставить все как есть :) работать должно - просто двойной NAT

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