The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Помогите разобратся с доступом из лок. сети в лок. сеть, !*! georglk, 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 при этом нет

  • Помогите разобратся с доступом из лок. сети в лок. сеть, !*! reader, 15:27 , 28-Авг-10 (1)
    • Помогите разобратся с доступом из лок. сети в лок. сеть, !*! georglk, 00:25 , 29-Авг-10 (3)
      >[оверквотинг удален]
      >>но если из внутренний сети обратиться на 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-а нет


      • Помогите разобратся с доступом из лок. сети в лок. сеть, !*! georglk, 02:13 , 29-Авг-10 (4)
        но есть одна проблема!
        если канала два, то при двух таких наборах правил, внутренний веб-сервер
        всегда думает что к нему обращается с $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-а нет

        • Помогите разобратся с доступом из лок. сети в лок. сеть, !*! georglk, 03:13 , 29-Авг-10 (5)
          в результате получилось так
          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-а нет

      • Помогите разобратся с доступом из лок. сети в лок. сеть, !*! reader, 12:14 , 29-Авг-10 (8)
        • Помогите разобратся с доступом из лок. сети в лок. сеть, !*! georglk, 13:51 , 29-Авг-10 (9)
          >если на web сервере шлюзом прописан 192.168.1.254, то snat для пакетов идущих
          >из инета не нужен, там маршрутизация отработает.
          >snat нужен для правильного хождения ответных пакетов когда обращение происходит из локалки
          >к web серверу , который находится в этой же подсети, через
          >внешний ip. соответственно если web сервер вынести в другую подсеть, то
          >snat можно вообще убрать.

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

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

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

  • Помогите разобратся с доступом из лок. сети в лок. сеть, !*! tux2002, 17:01 , 28-Авг-10 (2)



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

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