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

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

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

Сообщение Sir_Prikol »

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

Головной рутер - 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-ой резервный, то второе правило наглухо вырубает проброс портов
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 3879
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

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

Сообщение Chupaka »

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

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

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

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

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

> так как у меня PCC на 5 аплинков и 6-ой резервный, то второе правило наглухо вырубает проброс портов
Не совсем понимаю пока, как это связано :)
Аватара пользователя
Sir_Prikol
Сообщения: 560
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

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

Сообщение Sir_Prikol »

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 отрабатывает
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Sir_Prikol
Сообщения: 560
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

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

Сообщение Sir_Prikol »

Вспомнил, без proxy-arp сетевой принтер не работал от всех точек, только после включения этого параметра, все устройства увидели принтер
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 3879
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

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

Сообщение Chupaka »

Sir_Prikol писал(а): 16 мар 2019, 19:15 Ведёт на внешний, по внешнему DNS
Тогда надо разобраться, почему с вайфая оно работает =) Возможно, потому, что трафик с точки на сервер идёт через роутер (а там какой Use IP Firewall на бридже включен, может), а с CRS на сервер - напрямую, в обход роутера.
Аватара пользователя
Sir_Prikol
Сообщения: 560
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

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

Сообщение Sir_Prikol »

Опа, точно, вот что у меня свербило, сервак воткнут в тот-же свитч, вот и получается, что пакет, в ответе от сервера, отправляется напрямую на внт=утренний адрес, а не на внешний, вот и идёт обрыв соединения, если я перенесу быллинг на рутер, то заработает, или, если я воткну ещё один свитч через рутер, то оно то-же заработает :)
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Sir_Prikol
Сообщения: 560
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

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

Сообщение Sir_Prikol »

Но этот глюк именно при использовании proxy_pass в nginx при переадресации на ещё один сервер :) Проще в nginx подменять ip при переадресации :)
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 3879
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

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

Сообщение Chupaka »

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

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

Сообщение Sir_Prikol »

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

10 мин
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Sir_Prikol
Сообщения: 560
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

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

Сообщение Sir_Prikol »

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

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


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

Могу снять с конфигами
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 3879
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

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

Сообщение Chupaka »

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

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

Сообщение Sir_Prikol »

После последних настроек (Вы, молодой человека, сами у меня в винбоксе ковырялись) - никаких изменений, кроме добавления пары аплинков, не произошло. Пинги на оба домена покажут то-же самое, по 4 IP на каждый домен, WebProxy вообще не использую, хотя уже была мысль, но до последнего момента разруливал nginx и не задумывался что может возникнуть такой трабл в одном бридже и именно со свитча, с EoIP туннелей в том-же бридже - такой проблемы нет
Могу заного пустить на RB и через RoMON на свитч, чтобы просто глянуть что и как :)
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Sir_Prikol
Сообщения: 560
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

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

Сообщение Sir_Prikol »

Думаю попробовать отказаться от маскарада совсем и всё разруливать dst-nat, через adress листы и листы интерфейсов
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Sir_Prikol
Сообщения: 560
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

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

Сообщение Sir_Prikol »

В общем выкрутился стандартно, не даром у меня это правило было, которое мы с ВАми благополучно потушили 3 месяца назад :)

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

/ip firewall filter
chain=srcnat action=masquerade protocol=tcp dst-address=192.168.7.178 dst-port=80,443 log=no log-prefix="web"
Я тогда уже не помнил почему я его втыкал, дошло только сейчас, когда начал вспоминать поэтапно, что и когда отвалилось.
Умом я понимаю, что этого правила быть не должно, всё в одном L2 сегменте, но без него нихрена proxy_pass в nginx не работает, вернее я не могу достучаться через proxy_pass nginx'а, хотя снаружи всё пашет
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 3879
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

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

Сообщение Chupaka »

Так всё же, включен или выключен Use IP Firewall в бриджах?
Аватара пользователя
Sir_Prikol
Сообщения: 560
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

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

Сообщение Sir_Prikol »

Включён
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 3879
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

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

Сообщение Chupaka »

Тогда в целом всё, видимо, как я и объяснил выше. Но вообще схема костыльная донельзя, без ста грамм не разберёшься :)
Аватара пользователя
Sir_Prikol
Сообщения: 560
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

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

Сообщение Sir_Prikol »

Это точно, я, помнится, говорил, что оно поломалось после какого-то обновления, вот до сих пор огребаем. Ещё года полтора назад - работало на ура, почему мысль и возникает, убрать маскарад и построить на src/dst :)
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 3879
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

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

Сообщение Chupaka »

Sir_Prikol писал(а): 17 мар 2019, 15:49 почему мысль и возникает, убрать маскарад и построить на src/dst :)
Шило на мыло?.. Без Hairpin NAT реализовать - не вариант? :)
Аватара пользователя
Sir_Prikol
Сообщения: 560
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

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

Сообщение Sir_Prikol »

К сожалению - не вариант,, вернее вариант, но он потребует гигантской переделки всего, а на 3011 я не буду это дело, возьму себе или 4011 (когда его допилят) или CCR1016, на крайняк 1100 ;но он без SFP), вот тогда и займусб глобальным переделыванием
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 3879
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

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

Сообщение Chupaka »

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

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

Сообщение Sir_Prikol »

Я маршрутами делать буду :) DNS - не желательно :) Когда dpi внедрять начну, тогда точно DNS-ами разрулю :)
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Sir_Prikol
Сообщения: 560
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

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

Сообщение Sir_Prikol »

У меня тут OSPF не корректно работает, вот где загвоздка, но скоро решу её, перестала отдаваться в одну подсеть :)
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 3879
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

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

Сообщение Chupaka »

Маршрутами - в смысле, выделением сервера в отдельную подсеть?.. И что с ДНС не так?
Аватара пользователя
Sir_Prikol
Сообщения: 560
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

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

Сообщение Sir_Prikol »

У меня сейчас DNS отдаётся 3-х видов, для детей, для взрослых и для халявщиков, использовать внутренние - не комильфо, хотя можно поставить TTL в минуту жизни, но всё равно, оно должно как-то работать без подмены записи :)
Дома: CCR2004 (7-ISP(GPON)белый IP)
Ответить