Я настроил переадресацию портов на роутере Mikrotik, но роутер ОС (v6.39.2) кажется намного более сложным, чем стандартный стандартный интерфейс маршрутизатора, к которому я привык. Я следовал инструкциям отсюда и это настройки, которые я ввел в IP / Firewall / NAT:
- Chain: dstnat
- Protocol: 6 (tcp)
- Dst Port: 8000
- In. Interface: all Ethernet (for testing purposes)
- Action: dst-nat
- Log: yes (for testing purposes)
- To Addresses: 192.168.1.33
- To Ports: 8000
Поскольку не похоже, что порт 8000 официально еще не открыт во внешней сети (ожидая, что кто-то это сделает, тем временем я проверил, был ли он открыт с помощью yougetsignal.comЯ хотел бы хотя бы проверить, работает ли мое правило переадресации портов в локальной сети, ЕСЛИ ЭТО ВОЗМОЖНО.
Когда я пытаюсь получить доступ 192.168.1.1:8000
в веб-браузере я вижу некоторую активность на графике скорости в настройке правила NAT. Но веб-браузер по-прежнему дает мне только ответ «Этот сайт недоступен».
Я надеюсь, что он направит меня к 192.168.1.33:8000
. Возможно ли это? Или я что-то не так сделал?
Mikrotik RouterOS основана на ядре Linux и унаследовала большинство концепций создания сетей.
Итак, я опишу настройку переадресации портов в роутерах Mikrotik. И я постараюсь описать вашу проблему.
Если вы хотите понять это глубже, вы можете прочитать руководство по iptables. Это довольно классная документация с подробными объяснениями.
- Chain: dstnat
- Protocol: 6 (tcp)
- Dst Address: <wan-ip>
- Dst Port: 8000
- In. Interface: all Ethernet (for testing purposes)
- Action: dst-nat
- Log: yes (for testing purposes)
- To Addresses: 192.168.1.33
- To Ports: 8000
Когда пакеты приходят извне (wan-интерфейс), дело тривиально. Но когда пакеты, которые должны быть перенаправлены, приходят из LAN, происходит кое-что интересное.
http://<wan-ip>:8000
страница интернета. Пакет TCP в форме 192.168.1.Z:Y -> <wan-ip>:8000 TCP [SYN]
создается на узле LAN и отправляется на шлюз по умолчанию (маршрутизатор Mikrotik).dst-nat
правило. После этого пакет будет иметь вид 192.168.1.Z:Y -> 192.168.1.33:8000 TCP [SYN]
192.168.1.33
хост.192.168.1.33
хост получает пакет TCP в виде TCP SYN 192.168.1.Z:Y -> 192.168.1.33:8000
, создайте ответ в виде 192.168.1.33:8000 -> 192.168.1.Z:Y TCP [SYN-ACK]
и отправляет его на хост LAN прямо.192.168.1.33:8000 -> 192.168.1.Z:Y TCP [SYN-ACK]
, но это не то, чего ожидает хозяин! И этот пакет будет сброшен.192.168.1.33
хост должен отправлять ответы маршрутизатору mikrotik, а не напрямую хосту LAN. Для этого вы можете добавить дополнительные src-nat
правило к Mikrotik.- Chain: srcnat
- Protocol: 6 (tcp)
- Dst Address: 192.168.1.33
- Dst Port: 8000
- Src Address: 192.168.1.0/24
- Action: src-nat
- Log: yes (for testing purposes)
- To Addresses: 192.168.1.1
Это заставляет Mikrotik перезаписывать адрес источника в пересылаемых на порт пакетах, исходящих из локальной сети. После этого 192.168.1.33
хост будет видеть эти пакеты как 192.168.1.1:X -> 192.168.1.33:8000 TCP [SYN]
, и отправьте ответ на Mikrotik. Микротик сделает обратный перевод адреса и все заработает.
filter/FORWARD
цепочка:- Chain: filter/FORWARD
- Protocol: 6 (tcp)
- Connection state: new
- Dst address: 192.168.1.33
- Dst port: 8000
- Action: accept
- Chain: filter/FORWARD
- Connection state: established,related
- Action: accept
Очевидно, есть достаточно способов улучшить, но основная концепция должна быть ясна сейчас.
Правило dst-nat выглядит нормально. вы можете перейти на 192.168.1.33:8000 из вашей сети? Если да, я бы настроил второй LAN-интерфейс с подсетью, отличной от вашей производственной подсети, и подключил бы ноутбук к этому новому LAN-порту, используя Mikrotik в качестве шлюза по умолчанию для тестирования.
С уважением, Лесли