Трудности с Hairpin NAT

RIP, OSFP, BGP, MPLS/VPLS
Аватара пользователя
Sir_Prikol
Сообщения: 281
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Трудности с Hairpin NAT

Сообщение Sir_Prikol » 16 мар 2019, 11:09

Добрый день, имеем следующий конфиг:

Головной рутер - RB3011 - 192.168.4.0/22
В него воткнута WiFi точка 5Ghz
Так-же в него воткнут switch CRS326, он получает адрес из этой-же подсети (без IP эффект тот-же, о котором пишу)
Всё в бридже, proxy-arp включён

Теперь получаем проблему:
С клиентов точки 5Ghz - я могу попасть на сайт внутри сети с nginx по внешнему доменному имени, даже если у сайта настроена через nginx прокси переадресация на другую машину (пример, сайт крутится на 192.168.7.178 через proxy_pass nginx сделана переадресация на 192.168.7.254, с WiFi точки, воткнутой напрямую в RB3011 - всё отрабатывает, зайти могу, с любой точки, воткнутой в свитч, и прямое подключение воткнутое в свитч - соединение на сайт, по домену, виснет, как только я перетыкаю точку из свитча в RB3011 - всё открывается)

В следствии вопрос, что не так:

В логах вижу, что пакеты вылетают с клиента на внешний адрес и замирают (это со свитча)
С RB3011 - пакеты летят на внешний адрес и нормально попадают в NAT

UPD:

Правила маскардинга сделано с исключением локального бриджа, если включаю общее правило - то всё работает

Это не работает

Код: Выделить всё

chain=srcnat action=masquerade out-interface=!WiFi+LAN log=no
Это работает

Код: Выделить всё

chain=srcnat action=masquerade log=no
Но, если я оставлю второе правило, то все мои соединения внутри сети, будут проходить от имени RB3011,а надо чтоб светился каждый IP

Ну и второй трабл, так как у меня PCC на 5 аплинков и 6-ой резервный, то второе правило наглухо вырубает проброс портов
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

Аватара пользователя
Chupaka
Сообщения: 1962
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Трудности с Hairpin NAT

Сообщение Chupaka » 16 мар 2019, 18:57

Добрый. Вот зачем всё в кучу мешать-то? :)

> proxy-arp включён
Зачем?

> С клиентов точки 5Ghz - я могу попасть на сайт внутри сети с nginx по внешнему доменному имени
А внешнее доменное имя ведёт на внешний IP-адрес или на внутренний?

> даже если у сайта настроена через nginx прокси переадресация на другую машину
Это не переадресация, клиент всё ещё обращается исключительно к nginx'у, он не знает, какие там у него внутри настройки

> если я оставлю второе правило, то все мои соединения внутри сети, будут проходить от имени RB3011,а надо чтоб светился каждый IP
Так одно из решений проблемы Hairpin NAT - это и есть тотальный маскарадинг. Если оно не подходит вам - используйте другое. Второе решение - прописать в DNS внутренний адрес сайта (ну и заставить клиентов использовать этот DNS). Третье - вынести машину с сервером на другой интерфейс (который будет не коммутироваться в рамках этого же бриджа, а маршрутизироваться).

> так как у меня PCC на 5 аплинков и 6-ой резервный, то второе правило наглухо вырубает проброс портов
Не совсем понимаю пока, как это связано :)

Аватара пользователя
Sir_Prikol
Сообщения: 281
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: Трудности с Hairpin NAT

Сообщение Sir_Prikol » 16 мар 2019, 19:15

Chupaka писал(а):
16 мар 2019, 18:57
Зачем?
Надо было в какой-то из конфигурации, не работало без этого параметра, пришли к выводу его включить - заработало (вспоминать тяжко, но оно точно нужно)
Chupaka писал(а):
16 мар 2019, 18:57
А внешнее доменное имя ведёт на внешний IP-адрес или на внутренний?
Ведёт на внешний, по внешнему DNS
Chupaka писал(а):
16 мар 2019, 18:57
Это не переадресация, клиент всё ещё обращается исключительно к nginx'у, он не знает, какие там у него внутри настройки
Да я в nginx в портах запутался, слишком много правил было, уже поправил, не актуально
Chupaka писал(а):
16 мар 2019, 18:57
Так одно из решений проблемы Hairpin NAT - это и есть тотальный маскарадинг. Если оно не подходит вам - используйте другое. Второе решение - прописать в DNS внутренний адрес сайта (ну и заставить клиентов использовать этот DNS). Третье - вынести машину с сервером на другой интерфейс (который будет не коммутироваться в рамках этого же бриджа, а маршрутизироваться).
Chupaka писал(а):
16 мар 2019, 18:57
Скорее вынесу в маршрутизацию, но, как показал сегодняшний эксперимент, пока не актуально (но сделать надо), так как отовсюду, кроме телефонов и дитячих компов, попасть на вебсервер можно
Chupaka писал(а):
16 мар 2019, 18:57
Не совсем понимаю пока, как это связано :)
А это были глюки уже сервера мониторинга, он не хотел видеть сайт при другом маскараде, что с ним не так - не знаю, к счастью не актуально :)

В общем, пока экспериментировал, я так и не понял, почему через свитч не работает, а напрямую воткнутое в RB работает, такое ощущение что всё, что проходит через свитч, который в том-же бридже, почему-то не бежит именно по 80, 443 портам, а вот это для меня тёмный лес, так как по ssh и ftp отрабатывает
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

Аватара пользователя
Sir_Prikol
Сообщения: 281
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: Трудности с Hairpin NAT

Сообщение Sir_Prikol » 16 мар 2019, 19:18

Вспомнил, без proxy-arp сетевой принтер не работал от всех точек, только после включения этого параметра, все устройства увидели принтер
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

Аватара пользователя
Chupaka
Сообщения: 1962
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Трудности с Hairpin NAT

Сообщение Chupaka » 16 мар 2019, 19:20

Sir_Prikol писал(а):
16 мар 2019, 19:15
Ведёт на внешний, по внешнему DNS
Тогда надо разобраться, почему с вайфая оно работает =) Возможно, потому, что трафик с точки на сервер идёт через роутер (а там какой Use IP Firewall на бридже включен, может), а с CRS на сервер - напрямую, в обход роутера.

Аватара пользователя
Sir_Prikol
Сообщения: 281
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: Трудности с Hairpin NAT

Сообщение Sir_Prikol » 16 мар 2019, 19:26

Опа, точно, вот что у меня свербило, сервак воткнут в тот-же свитч, вот и получается, что пакет, в ответе от сервера, отправляется напрямую на внт=утренний адрес, а не на внешний, вот и идёт обрыв соединения, если я перенесу быллинг на рутер, то заработает, или, если я воткну ещё один свитч через рутер, то оно то-же заработает :)
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

Аватара пользователя
Sir_Prikol
Сообщения: 281
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: Трудности с Hairpin NAT

Сообщение Sir_Prikol » 16 мар 2019, 19:28

Но этот глюк именно при использовании proxy_pass в nginx при переадресации на ещё один сервер :) Проще в nginx подменять ip при переадресации :)
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

Аватара пользователя
Chupaka
Сообщения: 1962
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Трудности с Hairpin NAT

Сообщение Chupaka » 16 мар 2019, 22:51

Ещё раз: proxy_pass делает запросы от имени nginx'а, оно никак не влияет на работу запроса от клиента к nginx'у.

Аватара пользователя
Sir_Prikol
Сообщения: 281
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: Трудности с Hairpin NAT

Сообщение Sir_Prikol » 16 мар 2019, 23:10

Знаю, но не работает именно когда выставлен proxy_pass :) Вот из принципа, видео могу снять и показать :)

10 мин
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

Аватара пользователя
Sir_Prikol
Сообщения: 281
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: Трудности с Hairpin NAT

Сообщение Sir_Prikol » 16 мар 2019, 23:17

Вот видео, с переключением по WiFi с RB на свитч и обратно

С RB доступ есть
С switch только на сайт, на proxy nginx доступа нет


https://monosnap.com/file/OUzePihkkpqly ... E6aflLJi7P

Могу снять с конфигами
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

Ответить