Jump to content
  • 0

Вопрос по работе перенаправления портов с ip alias на интерфейсе


Vadim Makhtarov
 Share

Question

Ситуация следующая: мой провайдер предоставляет мне публичную статику. Однако мой роутер тем не менее стоит за NAT провайдера, то бишь этот публичный IP на себя не получает. В результате этого я могу обращаться к ресурсам своей сети по внешнему IP снаружи, но не могу делать это внутри сети. Хотелось бы иметь возможность доступа к ресурсам изнутри по внешнему IP. С провайдером вёл диалог по поводу выдачи сразу публичного IP на мой роутер - получен отказ.

По опыту работы с MikroTik стал искать, как назначить на интерфейс вручную второй IP-адрес. Нашёл, что есть ip alias и назначил свой публичный адрес на WAN. В конфигурации это стало выглядеть следующим образом:

interface FastEthernet0/Vlan2
    rename ISP
    description "Home Net Telecom"
    mac address factory wan
    security-level public
    ip address dhcp
    ip alias XXX.XX.XX.XX 255.255.255.255
    ip dhcp client hostname Keenetic-XXXX
    ip dhcp client dns-routes
    ip dhcp client name-servers
    ip mtu 1500
    ip access-group _WEBADMIN_ISP in
    ip global 700
    up
!

От провайдера роутер получает на этот интерфейс по DHCP адрес 192.168.12.XXX.

Загвоздка у меня возникла с правилами перенаправления портов. Изначально в моих правилах в качестве input'а был указан интерфейс, как в 1-м правиле ниже. Однако с таким правилом внутри сети перенаправления не происходит. Зато оно происходит, если указать вместо интерфейса мой внешний IP, как во 2-м правиле. Но это правило, разумеется, не работает снаружи, поскольку роутер из интернета получает пакеты на IP, который выдал провайдер.

ip static tcpudp FastEthernet0/Vlan2 3389 xx:xx:xx:xx:xx:xx
ip static tcpudp XXX.XX.XX.XX 255.255.255.255 3389 xx:xx:xx:xx:xx:xx

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

Вопрос: это ожидаемое поведение? Если я поставил XXX.XX.XX.XX как второй IP-адрес интерфейса, разве 1-е правило не должно корректно исполняться отовсюду? Я могу, конечно, делать для каждого перенаправления два правила, но вроде бы как оба IP являются частью интерфейса, потому 1-го правила должно по логике хватать (если я, конечно, ничего не путаю).

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0
3 часа назад, Vadim Makhtarov сказал:

Вопрос: это ожидаемое поведение? Если я поставил XXX.XX.XX.XX как второй IP-адрес интерфейса, разве 1-е правило не должно корректно исполняться отовсюду? Я могу, конечно, делать для каждого перенаправления два правила, но вроде бы как оба IP являются частью интерфейса, потому 1-го правила должно по логике хватать (если я, конечно, ничего не путаю).

Сейчас посмотрел с помощью show netfilter в cli. Не смотря на то что в правилах вида как ваше первое указан входной интерфейс, в реальности под капотом в iptables создается правило без указания входного интерфейса. Правило создается просто с указанием destination ip, который определяется как адрес выбранного входного интерфейса. Т.е. создавая правило вида: 

ip static udp  ISP 59876 192.168.1.33   

В реальности создается правило вида:  

 -A _NDM_STATIC_DNAT -d 172.25.25.15/32 -p udp -m udp --dport 59876 -j DNAT --to-destination 192.168.1.33:59876        - 172.25.25.15 это как раз ip адрес на интерфейсе ISP у меня.

Почему правило интерпретируется и создается именно так, а не с указанием входного интерфейса типа так: -A PREROUTING -i ens3 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.55.25, это вопрос к разработчикам. Получается что при создании правила берется ip адрес указанного интерфейса, но, видимо, не берется alias.

К слову, даже если бы правило создавалось c указанием входного интерфейса, ваше первое правило все равно не работало бы для пакетов внутри сети, т.к. пакет из внутренней сети приходит на роутер не на указанный вами интерфейс FastEthernet0/Vlan2, а на интерфейс Bridg0, к примеру.  Так что, конкретно в вашем случае, остается создавать два правила, видимо.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...