none
Не работает проброс портов при доступе изнутри сети RRS feed

  • Вопрос

  • Добрый день. Стоит windows server 2003.

    Поднята служба RRAS, 2 сетевых интерфейса - один лан, второй ppoe соединение с интернет. 

    Настроил проброс портов. При доступе снаружи сети, все отлично пробрасывается. Но при обращении непосредственно из локалки - порты не пробрасываются. подскажите, как решить данную проблему?

    24 июня 2010 г. 4:31

Ответы

  • Конечно так работать не будет. В двух словах как работает NAT - чтобы ИП пакет натился, ему нужно пройти через входящий и исходящий интерфейс. В вашем случае ноут находится в локальной сети и лезет на наружный итерфейс и сервер не знает что с этим пакетом делать, пакет должен пройти через внешний ИП, но тут же срабатывает проброс на порт 9030 обратно в локальную сеть. Это так, кратко :), может и не понятно - но работать так не будет. Правильно будет чтобы ноут в локальной сети ходил на  10.0.0.100:9030.


    Dmitriy Poberezhniy (my web blog http://dimsan.blogspot.com)
    24 июня 2010 г. 11:36
    Отвечающий
  • Нет, Windows в отличие от *nix не выполняет NAT на одном сетевом интерфейсе. Частично обойти проблему можно с помощью внутреннего и внешнего DNS, когда одно и то же имя хоста изнутри сети будет разрешаться во внутренний IP-адрес, а из Интернета - на внешний.
    24 июня 2010 г. 12:26
    Модератор

Все ответы

  • Какие вы порты пробрасуете?
    Dmitriy Poberezhniy (my web blog http://dimsan.blogspot.com)
    24 июня 2010 г. 5:37
    Отвечающий
  • я пробовал 80, 9030

    результат одинаковый. 

    24 июня 2010 г. 8:11
  • Что-то я не пойму :(  у вас в локальной сети стоит SERVER1 на нем к примеру  стоит WWW. Вы настроили проброс WWW, чтобы пользователь обращаясь к вашему реальному IP по WWW попадал на SERVER1. Я правильно понимаю?


    Dmitriy Poberezhniy (my web blog http://dimsan.blogspot.com)
    24 июня 2010 г. 8:36
    Отвечающий
  • Есть Server 1. Он выполняет роль роутера. Стоит windows 2k3. Два сетевых интерфейса: внутренний, с адресом 10.0.0.1 и внешний с белым ip адресом, допустим 1.2.3.4 

    Есть Server 2. Он выполняет роль файлового сервера. Один сетевой интерфейс с адресом 10.0.0.100.

    Есть ноутбук, с которым работают как внутри сети, так и снаружи. допустим адрес у него 10.0.0.200

    На Server 1 настроена переадресация портов 80 и 9030 на внутренний адрес 10.0.0.100.

    Если ноутбук находится за пределами локальной сети, при обращении по внешнему адресу (1.2.3.4:9030) он попадает на приложение, работающее на этом порте на Server 2

    Если ноутбук находится внутри локальной сети, то обращаясь по внешнему адресу (1.2.3.4:9030) меня никуда не переадресовывает, и соответственно доступа к приложению на Server 2 у меня нету. Единственный вариант, использовать внутренний адрес, меня не очень устраивает.

     

    24 июня 2010 г. 11:12
  • Конечно так работать не будет. В двух словах как работает NAT - чтобы ИП пакет натился, ему нужно пройти через входящий и исходящий интерфейс. В вашем случае ноут находится в локальной сети и лезет на наружный итерфейс и сервер не знает что с этим пакетом делать, пакет должен пройти через внешний ИП, но тут же срабатывает проброс на порт 9030 обратно в локальную сеть. Это так, кратко :), может и не понятно - но работать так не будет. Правильно будет чтобы ноут в локальной сети ходил на  10.0.0.100:9030.


    Dmitriy Poberezhniy (my web blog http://dimsan.blogspot.com)
    24 июня 2010 г. 11:36
    Отвечающий
  • но ведь в Linux посредством iptables я могу провернуть такое. неужели windows не может сделать аналогичное?

    вот эти правила отлично реализовывали сей процесс.

    $IPT -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to 193.124.17.19

    $IPT -t nat -A POSTROUTING -o eth2 -s 10.0.0.0/24 -j SNAT --to-source 10.0.0.1

    $IPT -A FORWARD  -d 10.0.0.100 -p tcp --dport 9030 -m state --state NEW -j ACCEPT

    $IPT -t nat -A PREROUTING -p tcp --dport 9030 -j DNAT --to-destination 10.0.0.100:9030

    24 июня 2010 г. 12:14
  • Нет, Windows в отличие от *nix не выполняет NAT на одном сетевом интерфейсе. Частично обойти проблему можно с помощью внутреннего и внешнего DNS, когда одно и то же имя хоста изнутри сети будет разрешаться во внутренний IP-адрес, а из Интернета - на внешний.
    24 июня 2010 г. 12:26
    Модератор
  • ок. Большое спасибо за консультацию
    24 июня 2010 г. 12:26
  • Я бы с удовольствием проконсультировал вас по iptables, но это не тот форум :)

    Вариант который вас может устроить:

    • в DNS создаете еще один домен kmtn.ru если у вас имя AD отличается этого kmtn.ru
    • создаете в этом домене узел(А) du-17-19 и IP ему даете 10.0.0.100
    • если же имя AD одинаковое, то просто создайте псевдоним CNAME  du-17-19 и IP ему даете 10.0.0.100

     


    Dmitriy Poberezhniy (my web blog http://dimsan.blogspot.com)
    24 июня 2010 г. 12:41
    Отвечающий
  • Не выполнит NAT на одном eth и Сisco
    Dmitriy Poberezhniy (my web blog http://dimsan.blogspot.com)
    24 июня 2010 г. 13:13
    Отвечающий