URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 39562
[ Назад ]

Исходное сообщение
"Помогите с DNAT пож "

Отправлено SergLo , 20-Янв-04 14:54 
Ситуация:
прокси/роутер с двумя интерфейсами (eth0 - Локалка, eth1- интернет).
213.0.0.153 - шлюз провайдера
213.0.0.154 - eth1
213.0.0.155 - это должен быть ип пробрасываемой машины.
Посредством iptables нужно выбросить внутреннюю машину наружу. Ее ип адрес 192.168.8.25

Делаю так:
1. Сначала делаю alias для еще одного ип адреса:

eth1:0    Link encap:Ethernet  HWaddr 00:07:E9:83:8E:AA  
          inet addr:213.0.0.155  Bcast:213.221.44.159  Mask:255.255.255.248
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:20 Base address:0xe000

2. Извне этот адрес пингуется. Делаю route add 213.0.0.155 gw 213.0.0.153 netmask 0.0.0.0 metric 1 dev eth1:0
Вывод route:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
213.0.0.155  213.0.0.153  255.255.255.255 UGH   1      0        0 eth1

3. iptables -t nat -A PREROUTING -p tcp -d 213.0.0.155 -j DNAT --to-destination 192.168.8.25

4. iptables -A FORWARD -i eth1 -d 192.168.8.25 -j ACCEPT

Итог- не работает. По выводу iptables -L -v -n видно что до FORWARD цепочки дело не доходит.


Содержание

Сообщения в этом обсуждении
"Помогите с DNAT пож "
Отправлено Sampan , 20-Янв-04 15:54 
>Делаю route add 213.0.0.155 gw 213.0.0.153 netmask 0.0.0.0 metric 1 dev eth1:0

Мне кажется в этом и зарыта собака. Сдается мне, совершенно лишнее телодвижение и, похоже, не правильное. На хосте должны быть: шлюз по умолчению на 213.0.0.153 через eth1 и, естественно, маршрут на 192.168.8.0/24 через eth0. Еще можно добавить запись для сети 213.0.0.152/255.255.255.248 без шлюза, только через eth1 (на первый взляд, будет работать и без этого)

На маршрутизаторе провайдера должен быть маршрут на всю сеть 213.0.0.152/255.255.255.248 (скорее всего - так и есть). Туда и попадает .155


"Помогите с DNAT пож "
Отправлено SergLo , 21-Янв-04 09:05 
>>Делаю route add 213.0.0.155 gw 213.0.0.153 netmask 0.0.0.0 metric 1 dev eth1:0
>
>Мне кажется в этом и зарыта собака. Сдается мне, совершенно лишнее телодвижение

Но без этого тоже не работает. То есть явно тут собака порылась.


"Помогите с DNAT пож "
Отправлено screep , 21-Янв-04 09:20 
>Но без этого тоже не работает. То есть явно тут собака порылась.

укажи route ISP на 155 машине
или введи ее в локалку и пропиши SNAT, типа
-A POSTROUTING -t nat -o eth1 -j SNAT --to-source=....153


"Помогите с DNAT пож "
Отправлено screepah , 21-Янв-04 09:22 
>-A POSTROUTING -t nat -o eth1 -j SNAT --to-source=....153

не 153, а 154 точнее, ip на eth1


"Помогите с DNAT пож "
Отправлено BRomantik , 21-Янв-04 09:48 
Не понятно... Тебе тачку выкинуть надо из локалки7?? Тогда причем здесь DNAT???
Тебе нужно использовать SNAT --to-source 192.....
Или я просто не так понял, проясни

"Помогите с DNAT пож "
Отправлено SergLo , 21-Янв-04 09:51 
>>-A POSTROUTING -t nat -o eth1 -j SNAT --to-source=....153
>
>не 153, а 154 точнее, ip на eth1

На роутере, который является дефолтным гейтвеем для машины .155 сделал маршрут до сети 213.0.0.152 через 192.168.8.2 (это прокси с НАТом).
И все равно не работает ;-)


"Помогите с DNAT пож "
Отправлено SergLo , 21-Янв-04 09:57 
сети 213.0.0.152 через 192.168.8.2 (это прокси с НАТом).
>И все равно не работает ;-)


Но зато по iptables -L -v -n видно, что пакеты через цепочку FORWARD проходят.
Но куда они теряются?


"Помогите с DNAT пож "
Отправлено BRomantik , 21-Янв-04 10:05 
1) Создал доаолнительный интерфейс
2) iptables -A FORWARD -s 192.168.какойтебенадо -d any/0 -j ACCEPT
3) iptables -A -t nat POSTROUTING -s 192.168.какойтебенадо -d any/0 - j SNAT --to-source 213.0.0.155

"Помогите с DNAT пож "
Отправлено SergLo , 21-Янв-04 10:11 
Нужно, чтоб извне (из интернета) машина 192.168.8.6 была доступна по ип адресу 213.0.0.155... Это же DNAT получается?
Она сама видит весь интернет через SNAT:

-A POSTROUTING -s 192.168.8.6 -o eth1 -j SNAT --to-source 213.0.0.154
-A FORWARD -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.8.6 -i eth0 -o eth1 -j ACCEPT


"Помогите с DNAT пож "
Отправлено BRomantik , 21-Янв-04 10:20 
>Нужно, чтоб извне (из интернета) машина 192.168.8.6 была доступна по ип адресу
>213.0.0.155... Это же DNAT получается?
>Она сама видит весь интернет через SNAT:
>
>-A POSTROUTING -s 192.168.8.6 -o eth1 -j SNAT --to-source 213.0.0.154
>-A FORWARD -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
>-A FORWARD -s 192.168.8.6 -i eth0 -o eth1 -j ACCEPT
так вообще проблем не вижу...
Я спокойно делаю так для 139 порта и все прекрасно работает..
1) Опять таки создал интерфейс.
2) То же самое да наоборот
iptables -A -t nat PREROUTING -d ip_дополнительного_инт-са -j DNAT --to-destination 192.168.какойтебенадо
3) И разрешаешь форварды в обе стороны...

Ну или 2 пункт после третьего, сам разберешься, -А в конец добавляет вроде


"Помогите с DNAT пож "
Отправлено Sampan , 21-Янв-04 16:02 
Покажи полный вывод
route -n