The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
IPTABLES, DNAT, multiroute, !*! InventoRs, 23-Мрт-10, 15:44  [смотреть все]
Есть gateway, задача такая, при обращении на внешний порт, пробрасывать его на внутренний сервер.
Написали так:
IPTABLES -t nat -A PREROUTING -i IN_INET1 -p tcp --dport 1005 -j DNAT --to-destination 192.168.0.60:1010
IPTABLES -t nat -A POSTROUTING -d 192.168.0.60 -j SNAT --to-source IP_GW_SERV

IPTABLES -t filter -A FORWARD -d 192.168.0.60 -i IN_INET1 -o LAN_IN -p tcp --dport 1010 -j ACCEPT

Такая комбинация работает, если default route лежит через интерфейс IN_INET1

Но у нас несколько входящих каналов.
Просто дублируем правила и получается что так, входящие пакеты работают только на том интерфейсе где default route

  • IPTABLES, DNAT, multiroute, !*! Andrey Mitrofanov, 15:57 , 23-Мрт-10 (1)
    >Но у нас несколько входящих каналов.

    http://opennet.ru/tips/info/2009.shtml

    • IPTABLES, DNAT, multiroute, !*! ALex_hha, 23:51 , 23-Мрт-10 (2)
      >>Но у нас несколько входящих каналов.
      >
      >http://opennet.ru/tips/info/2009.shtml

      не будет оно работать, уходить то всегда будет через дефолт, единственное решение насколько знаю, это создание промежуточных шлюзов с соответствующей маршрутизацией

      • IPTABLES, DNAT, multiroute, !*! PavelR, 06:05 , 24-Мрт-10 (3)
        >>>Но у нас несколько входящих каналов.
        >>
        >>http://opennet.ru/tips/info/2009.shtml
        >
        >не будет оно работать, уходить то всегда будет через дефолт, единственное решение
        >насколько знаю, это создание промежуточных шлюзов с соответствующей маршрутизацией

        https://www.opennet.ru/tips/info/1651.shtml

        У внутреннего сервера, на который осуществляется проброс, должен быть либо один интерфейс и один шлюз, на котором настраивается трекинг соединений с привязкой (маркировкой) соединения к интерфейсу/провайдеру,

        либо на самом сервере есть несколько интерфейсов, и тогда маркировку соединений следует делать уже на нём. Если необходимо, то на вышестоящих, по отношению к серверу,  маршрутизаторах делается проброс портов. Маркировка соединений тем не менее, делается на самом сервере, и на нем же определяется, какому вышестоящему маршрутизатору отмаршрутизировать ответ.  Читайте https://www.opennet.ru/tips/info/1651.shtml .

        • IPTABLES, DNAT, multiroute, !*! ALex_hha, 12:04 , 24-Мрт-10 (4)
          Я имел ввиду эту реализацию

          Два шлюза в Интернет и NAT

          http://www.xgu.ru/wiki/%D0%94%D0%B2%...

                      GW1   GW2
                       *     *
                       |     |
                   IP1 |     | IP2
                [eth3] |     | [eth4]
                      +-------+
                      |       |
                      |  gw   |
                      |       |
                      +-------+
              10.0.3.250  |  10.0.3.254
                  [eth1]  |  [eth2]
                          |
                          |
              10.0.3.249  |  10.0.3.253
                [eth1.1]  |  [eth2.1]
                      +-------+
                      |       |
                      |  pgw  |
                      |       |
                      +-------+
                          | 10.0.3.6
                          | [eth0]
                          |

          Вот только вопрос, можно ли в таком случае gw и pgw размещать на одной физической машине?

          • IPTABLES, DNAT, multiroute, !*! PavelR, 15:08 , 24-Мрт-10 (5)
            >Я имел ввиду эту реализацию
            >
            >Два шлюза в Интернет и NAT
            >
            >http://www.xgu.ru/wiki/%D0%94%D0%B2%...
            >
            >Вот только вопрос, можно ли в таком случае gw и pgw размещать
            >на одной физической машине?

            мм, сходу не понятно, какие порты с каких адресов куда (на какой адрес) пробрасываются.

            As for me, можно пробросить с маршрутизатора с тремя интерфейсами (два внешних и один внутренний) во внутреннюю сетку без проблем, с использованием маркировки соединений на этом самом маршрутизаторе и без использования дополнительных маршрутизаторов, о чем можно почитать в заметке по ссылке в моем сообщении выше.

            • IPTABLES, DNAT, multiroute, !*! InventoRs, 22:20 , 24-Мрт-10 (6)
              Что-то у меня так и не получается сделать желаемое.
              Задача пробросить порт внутрь локальной сети и ответ вернуть по тому же каналу с которого пришел
              Делаю так:

              iptables -t nat -A PREROUTING -i eth1 -p tcp -j CONNMARK --set-mark 0x1
              iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 1005 -j DNAT --to-destination 192.168.0.50:1010
              iptables -t nat -A PREROUTING -i eth2 -p tcp -j CONNMARK --set-mark 0x2
              iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 1005 -j DNAT --to-destination 192.168.0.50:1010
              iptables -t nat -A PREROUTING -i eth3 -p tcp -j CONNMARK --set-mark 0x3
              iptables -t nat -A PREROUTING -i eth3 -p tcp --dport 1005 -j DNAT --to-destination 192.168.0.50:1010

              iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
              iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
              iptables -t nat -A POSTROUTING -o eth3 -j MASQUERADE

              iptables -t nat -A POSTROUTING -d 192.168.0.50 -j SNAT --to-source 192.168.0.20

              iptables -t mangle -A OUTPUT -s 192.168.0.8 -j CONNMARK --restore-mark

              ip rule add fwmark 0x1 table prov1
              ip rule add fwmark 0x2 table prov2
              ip rule add fwmark 0x3 table prov3

              ip route add default via 194.185.159.55 table prov1
              ip route add default via 125.124.141.35 table prov2
              ip route add default via 133.135.131.151 table prov3

              Все равно пакеты идут только там где default route

              • IPTABLES, DNAT, multiroute, !*! ALex_hha, 00:19 , 25-Мрт-10 (7)
                # ip route flush cache

                выполнял?

                > iptables -t nat -A POSTROUTING -d 192.168.0.50 -j SNAT --to-source 192.168.0.20\

                а зачем это правило?

              • IPTABLES, DNAT, multiroute, !*! PavelR, 09:27 , 25-Мрт-10 (8)
                >[оверквотинг удален]
                >Делаю так:
                >ip rule add fwmark 0x1 table prov1
                >ip rule add fwmark 0x2 table prov2
                >ip rule add fwmark 0x3 table prov3
                >
                >ip route add default via 194.185.159.55 table prov1
                >ip route add default via 125.124.141.35 table prov2
                >ip route add default via 133.135.131.151 table prov3
                >
                >Все равно пакеты идут только там где default route

                Пока вы не будете проверять, как выполняются команды, и к каким результатам, к каким изменениям в конфигурации, они приводят - ничего у вас так и не получится.

                Статью вы так и не осилили прочитать.

                А там много раз было приведено - "ip ru sh".

                Читайте еще раз.

                • IPTABLES, DNAT, multiroute, !*! InventoRs, 22:43 , 25-Мрт-10 (9)
                  Уже несколько раз перечитать статью, и много других.
                  Уже пошел другим способом.
                  Все по минимуму.

                  iptables -t nat -A PREROUTING -p tcp  --dport 1005 -d $my_inet_ip -j CONNMARK --set-mark 2
                  iptables -t nat -A PREROUTING -p tcp -d my_inet_ip --dport 1005 -j DNAT --to-destination 192.168.0.60:1010

                  from all fwmark 0x2 lookup T1
                  ip route add default via $prov_gate table T1

                  iptables -t nat -A POSTROUTING -o $inet_interface -j MASQUERADE

                  И все равно в упор коннект из вне на порт 1005 никчему не приводит.

                  Еще и руководство сверху давит когда закончу.
                  Помогите плиз, разжуйте неуку.

              • IPTABLES, DNAT, multiroute, !*! Ермаков Александр, 14:53 , 05-Май-11 (10)
                Всё у вас правильно, ошибочна только эта строчка
                > iptables -t mangle -A OUTPUT -s 192.168.0.8 -j CONNMARK --restore-mark

                Правильно будет

                iptables -t mangle -A PREROUTING -s 192.168.0.8 -j CONNMARK --restore-mark

                потому что метка соединения должна быть восстановлена до совершения роутинга.




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

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