The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Помогите разобратся с доступом из лок. сети в лок. сеть"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / Linux)
Изначальное сообщение [ Отслеживать ]

"Помогите разобратся с доступом из лок. сети в лок. сеть"  +/
Сообщение от georglk (ok) on 28-Авг-10, 15:07 
Помогите разобраться с доступом из локальной сети на ресурс находящийся в той же локальной сети через маршрутизатор.
Схема сети такая:
- локальная сеть 192.168.1.0/24 в ней станция-клиент 192.168.1.50
- маршрутизатор с тремя сетевыми интерфейсами etho - локальная сеть, eth1 - первый провайдер, eth2 - второй провайдер
- у внешних интерфейсов (eth1, eth2) по три реальных ip-адреса eth1: 172.16.1.1, 172.16.1.2, 172.16.1.3; eth2: 172.16.2.1, 172.16.2.2, 172.16.2.3
- у внутреннего интерфейса адрес 192.168.1.254
- шлюз первого провайдера 172.16.1.10
- шлюз второго провайдера 172.16.2.10
- вебсервер, внутри локальной сети 192.168.1.51
Маршрутизация настроена так (согласно https://www.opennet.ru/docs/RUS/LARTC/x348.html):
#ip rule
0:      from all lookup local
32753:  from all fwmark 0x67 lookup ISP1
32754:  from all fwmark 0x66 lookup ISP1
32755:  from all fwmark 0x65 lookup ISP1
32756:  from 172.16.1.1 lookup ISP1
32762:  from all fwmark 0xcb lookup ISP2
32763:  from all fwmark 0xca lookup ISP2
32764:  from all fwmark 0xc9 lookup ISP2
32765:  from 172.16.2.1 lookup ISP2
32766:  from all lookup main
32767:  from all lookup default
# ip route list table ISP1
172.16.1.0/25 dev eth2  scope link
192.168.1.0/24 dev eth0  scope link
127.0.0.0/8 dev lo  scope link
default via 172.16.1.10 dev eth1
# ip route list table ISP2
172.16.2.0/25 dev eth1  scope link
192.168.1.0/24 dev eth0  scope link
127.0.0.0/8 dev lo  scope link
default via 172.16.2.10 dev eth2
# ip route list table main
172.16.1.0/25 dev eth1  proto kernel  scope link  172.16.1.1
172.16.2.0/25 dev eth2  proto kernel  scope link  172.16.2.1
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.254
default via 172.16.1.10 dev eth1  metric 100

# iptables-save
*raw
:PREROUTING ACCEPT [2322:296381]
:OUTPUT ACCEPT [1692:290926]
COMMIT
*mangle
:PREROUTING ACCEPT [2322:296381]
:INPUT ACCEPT [2131:226028]
:FORWARD ACCEPT [179:69081]
:OUTPUT ACCEPT [1692:290926]
:POSTROUTING ACCEPT [1871:360007]
-A PREROUTING -s 192.168.1.50/32 ! -d 192.168.1.0/24 -i eth0 -m mac --mac-source xx:xx:xx:xx:xx:xx -j MARK --set-xmark 0x66/0xffffffff
COMMIT
*nat
:PREROUTING ACCEPT [481:40651]
:POSTROUTING ACCEPT [127:8536]
:OUTPUT ACCEPT [124:8392]
-A PREROUTING -d 172.16.1.3/32 -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.51:80
-A PREROUTING -d 172.16.2.3/32 -i eth2 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.51:80
-A POSTROUTING -s 192.168.1.0/24 -o eth1 -m mark --mark 0x65 -m comment --comment "WAN1IP1" -j SNAT --to-source 172.16.1.1
-A POSTROUTING -s 192.168.1.0/24 -o eth2 -m mark --mark 0xc9 -m comment --comment "WAN2IP1" -j SNAT --to-source 172.16.2.1
-A POSTROUTING -s 192.168.1.0/24 -o eth1 -m mark --mark 0x66 -m comment --comment "WAN1IP2" -j SNAT --to-source 172.16.1.2
-A POSTROUTING -s 192.168.1.0/24 -o eth2 -m mark --mark 0xca -m comment --comment "WAN2IP2" -j SNAT --to-source 172.16.2.2
-A POSTROUTING -s 192.168.1.0/24 -o eth1 -m mark --mark 0x67 -m comment --comment "WAN1IP3" -j SNAT --to-source 172.16.1.3
-A POSTROUTING -s 192.168.1.0/24 -o eth2 -m mark --mark 0xcb -m comment --comment "WAN2IP3" -j SNAT --to-source 172.16.2.3
-A POSTROUTING -s 192.168.1.51/32 -o eth1 -p tcp -m tcp --sport 80 -j SNAT --to-source 172.16.1.3
-A POSTROUTING -s 192.168.1.51/32 -o eth2 -p tcp -m tcp --sport 80 -j SNAT --to-source 172.16.2.3
COMMIT
*filter
:INPUT ACCEPT [1:40]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2:1304]
COMMIT

В результате, из локальной сети в интернет доступ есть (192.168.1.50 -> интернет)
Из интернета на "внутренний" вебсервер доступ тоже есть (интернет -> 172.16.1.3 -> 192.168.1.51 и интернет -> 172.16.2.3 -> 192.168.1.51)
но если из внутренний сети обратиться на 172.16.1.3 или 172.16.2.3, то есть попытаться получить доступ от 192.168.1.50 к 192.168.1.51 через 172.16.1.3 или 172.16.2.3 то не работает
tcpdump показывает трафик от 192.168.1.50 к 172.16.1.3 или 172.16.2.3 и обратно, а трафика к 192.168.1.51 при этом нет

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Помогите разобратся с доступом из лок. сети в лок. сеть"  +/
Сообщение от reader (ok) on 28-Авг-10, 15:27 
>[оверквотинг удален]
>:OUTPUT ACCEPT [2:1304]
>COMMIT
>
>В результате, из локальной сети в интернет доступ есть (192.168.1.50 -> интернет)
>Из интернета на "внутренний" вебсервер доступ тоже есть (интернет -> 172.16.1.3 -> 192.168.1.51 и интернет -> 172.16.2.3 -> 192.168.1.51)
>но если из внутренний сети обратиться на 172.16.1.3 или 172.16.2.3, то есть
>попытаться получить доступ от 192.168.1.50 к 192.168.1.51 через 172.16.1.3 или 172.16.2.3
>то не работает
>tcpdump показывает трафик от 192.168.1.50 к 172.16.1.3 или 172.16.2.3 и обратно, а
>трафика к 192.168.1.51 при этом нет

или вебсервер в другую подсеть или SNAT на 192.168.1.254

https://www.opennet.ru/docs/RUS/iptables/#DNATTARGET
https://www.opennet.ru/openforum/vsluhforumID1/89679.html#6

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Помогите разобратся с доступом из лок. сети в лок. сеть"  +/
Сообщение от georglk (ok) on 29-Авг-10, 00:25 
>[оверквотинг удален]
>>но если из внутренний сети обратиться на 172.16.1.3 или 172.16.2.3, то есть
>>попытаться получить доступ от 192.168.1.50 к 192.168.1.51 через 172.16.1.3 или 172.16.2.3
>>то не работает
>>tcpdump показывает трафик от 192.168.1.50 к 172.16.1.3 или 172.16.2.3 и обратно, а
>>трафика к 192.168.1.51 при этом нет
>
>или вебсервер в другую подсеть или SNAT на 192.168.1.254
>
>https://www.opennet.ru/docs/RUS/iptables/#DNATTARGET
>https://www.opennet.ru/openforum/vsluhforumID1/89679.html#6

спасибо за напоминание о доп. правилах DNAT, совсем забыл про них
но вопрос решился не добавлением
-j SNAT --to-source _внутр_IP_сервера
доступ из локальной сети по реальному адресу внутреннего ресурса заработал при трех правилах (учитываем что -P FORWARD ACCEPT)
$iptables -v -t nat -A PREROUTING  -i $WAN1IF -p tcp -m tcp --sport $UNPRIVPORTS -d $WEB3EXTISP1 -m multiport --dports 80,443 -j DNAT --to-destination $WEB3INT
$iptables -v -t nat -A PREROUTING  -i $LAN1IF -p tcp -m tcp --sport $UNPRIVPORTS -d $WEB3EXTISP1 -m multiport --dports 80,443 -j DNAT --to-destination $WEB3INT
$iptables -v -t nat -A POSTROUTING -o $LAN1IF -p tcp -m tcp --sport $UNPRIVPORTS -d $WEB3INT -m multiport --dports 80,443 -j SNAT --to-source $WEB3EXTISP1
где WAN1IF внеш. интерфейс роутера, LAN1IF внутр. интерфейс роутера
WEB3EXTISP1 "реальный" адрес для вебсервера, WEB3INT - его "серый" ip адрес

причем для доступа из интернета к локальному вебсерверу достаточно только первой строчки,
сам проверял, как работает не совсем понимаю, для WEB3INT SNAT-а нет


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Помогите разобратся с доступом из лок. сети в лок. сеть"  +/
Сообщение от georglk (ok) on 29-Авг-10, 02:13 
но есть одна проблема!
если канала два, то при двух таких наборах правил, внутренний веб-сервер
всегда думает что к нему обращается с $WEB3EXTISP1
(если поменять наборы местами, то будет $WEB3EXTISP2)

>[оверквотинг удален]
>--to-destination $WEB3INT
>$iptables -v -t nat -A POSTROUTING -o $LAN1IF -p tcp -m tcp
>--sport $UNPRIVPORTS -d $WEB3INT -m multiport --dports 80,443 -j SNAT --to-source
>$WEB3EXTISP1
>где WAN1IF внеш. интерфейс роутера, LAN1IF внутр. интерфейс роутера
>WEB3EXTISP1 "реальный" адрес для вебсервера, WEB3INT - его "серый" ip адрес
>
>причем для доступа из интернета к локальному вебсерверу достаточно только первой строчки,
>
>сам проверял, как работает не совсем понимаю, для WEB3INT SNAT-а нет

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Помогите разобратся с доступом из лок. сети в лок. сеть"  +/
Сообщение от georglk (ok) on 29-Авг-10, 03:13 
в результате получилось так
iptables -t nat -A PREROUTING  -i $WAN1IF -p tcp -m tcp --sport $UNPRIVPORTS -d $WEB3EXTISP1 -m multiport --dports 80,443 -j DNAT --to-destination $WEB3INT
iptables -t nat -A PREROUTING  -i $WAN2IF -p tcp -m tcp --sport $UNPRIVPORTS -d $WEB3EXTISP2 -m multiport --dports 80,443 -j DNAT --to-destination $WEB3INT
iptables -t nat -A PREROUTING  -i $LAN1IF -p tcp -m tcp --sport $UNPRIVPORTS -d $WEB3EXTISP1 -m multiport --dports 80,443 -j DNAT --to-destination $WEB3INT
iptables -t nat -A PREROUTING  -i $LAN1IF -p tcp -m tcp --sport $UNPRIVPORTS -d $WEB3EXTISP2 -m multiport --dports 80,443 -j DNAT --to-destination $WEB3INT
iptables -t nat -A POSTROUTING -o $LAN1IF -p tcp -m tcp -s $LAN1NET --sport $UNPRIVPORTS -d $WEB3INT -m multiport --dports 80,443 -j SNAT --to-source $LAN1IP1


>[оверквотинг удален]
>>--to-destination $WEB3INT
>>$iptables -v -t nat -A POSTROUTING -o $LAN1IF -p tcp -m tcp
>>--sport $UNPRIVPORTS -d $WEB3INT -m multiport --dports 80,443 -j SNAT --to-source
>>$WEB3EXTISP1
>>где WAN1IF внеш. интерфейс роутера, LAN1IF внутр. интерфейс роутера
>>WEB3EXTISP1 "реальный" адрес для вебсервера, WEB3INT - его "серый" ip адрес
>>
>>причем для доступа из интернета к локальному вебсерверу достаточно только первой строчки,
>>
>>сам проверял, как работает не совсем понимаю, для WEB3INT SNAT-а нет

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "Помогите разобратся с доступом из лок. сети в лок. сеть"  +/
Сообщение от reader (ok) on 29-Авг-10, 12:14 
если на web сервере шлюзом прописан 192.168.1.254, то snat для пакетов идущих из инета не нужен, там маршрутизация отработает.
snat нужен для правильного хождения ответных пакетов когда обращение происходит из локалки к web серверу , который находится в этой же подсети, через внешний ip. соответственно если web сервер вынести в другую подсеть, то snat можно вообще убрать.

а можно было бы сделать чтобы dns сервер для локалки отдавал ip 192.168.1.51, а не внешние и не грузить маршрутизатор

но web сервер в общей локалке это не безопасно :) , поэтому в DMZ его

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "Помогите разобратся с доступом из лок. сети в лок. сеть"  +/
Сообщение от georglk (ok) on 29-Авг-10, 13:51 
>если на web сервере шлюзом прописан 192.168.1.254, то snat для пакетов идущих
>из инета не нужен, там маршрутизация отработает.
>snat нужен для правильного хождения ответных пакетов когда обращение происходит из локалки
>к web серверу , который находится в этой же подсети, через
>внешний ip. соответственно если web сервер вынести в другую подсеть, то
>snat можно вообще убрать.

спасибо, понял

>а можно было бы сделать чтобы dns сервер для локалки отдавал ip
>192.168.1.51, а не внешние и не грузить маршрутизатор

так и будет сделано, но если раз в год понадобиться обратится по ip-адресу, хочется, что бы все работало и различное поведение не вводило в заблуждения.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Помогите разобратся с доступом из лок. сети в лок. сеть"  +/
Сообщение от tux2002 (ok) on 28-Авг-10, 17:01 
>попытаться получить доступ от 192.168.1.50 к 192.168.1.51 через 172.16.1.3 или 172.16.2.3
>то не работает

192.168.1.50 к 192.168.1.51 в одной подсети, зачем им общаться через шлюзы? Они могут напрямую.
Покажите ip route list на хостах 192.168.1.50 и 192.168.1.51.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "Помогите разобратся с доступом из лок. сети в лок. сеть"  +/
Сообщение от igorimoldova (ok) on 29-Авг-10, 09:32 
>>попытаться получить доступ от 192.168.1.50 к 192.168.1.51 через 172.16.1.3 или 172.16.2.3
>>то не работает
>
> 192.168.1.50 к 192.168.1.51 в одной подсети, зачем им общаться через шлюзы?
>Они могут напрям

без  шлюзов могут работать только 2 компьютера, которые подключены бкз помощи хаба


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "Помогите разобратся с доступом из лок. сети в лок. сеть"  +/
Сообщение от PavelR (??) on 29-Авг-10, 10:00 
>>>попытаться получить доступ от 192.168.1.50 к 192.168.1.51 через 172.16.1.3 или 172.16.2.3
>>>то не работает
>>
>> 192.168.1.50 к 192.168.1.51 в одной подсети, зачем им общаться через шлюзы?
>>Они могут напрям
>
>без  шлюзов могут работать только 2 компьютера, которые подключены бкз помощи
>хаба

а если 2 компа в одной IP-подсети, но в разных физических Ethernet-доменах, то общаться друг с другом они не смогут.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "Помогите разобратся с доступом из лок. сети в лок. сеть"  +/
Сообщение от tux2002 (ok) on 29-Авг-10, 15:43 

>без  шлюзов могут работать только 2 компьютера, которые подключены бкз помощи
>хаба

Это я не понял. У нас обычно компьютеры включаются в концентратор/коммутатор, имеют адреса из одной сети и нормально работают.

Ну тогда поменяйте адрес одного из компьюторов на адрес из другой сети. И шлюзу назначьте адрес из новой сети.


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру