Re: Проблемы со связностью по ipv6 сайта nginx.org
Eugene Grosbein
eugen на grosbein.net
Чт Сен 24 14:13:39 UTC 2020
24.09.2020 20:54, Vladislav V. Prodan пишет:
>
>
> чт, 24 сент. 2020 г. в 16:27, Maxim Dounin <mdounin на mdounin.ru <mailto:mdounin на mdounin.ru>>:
>
> Hello!
>
> On Thu, Sep 24, 2020 at 02:03:37PM +0300, Sergey Budnevitch wrote:
>
> > > Продемонстрированная проблема ровно одна: пакетный менеджер не
> > > может получить
> > > http://nginx.org/packages/debian/dists/buster/InRelease с
> > > IPv6-адреса 2a05:d014:edb:5704::6, жалуясь на разрыв соединения.
> > >
> > >
> > > Первый запрос дождался таймаута (непонятно почему).
> > > Второй запрос выполнился мгновенно.
> > > https://pastebin.com/dWbffATH
> >
> > Смотрите:
> > a) вы продемонстрировали проблему с первым подключением к nginx.org <http://nginx.org>
> > b) вы утверждаете что бывает проблема с резолвером, когда используется ipv6
> > c) вы используете Hurricane Electric tunnel brocker для ipv6
> >
> > Поскольку a) и b) не связаны, я бы грешил на конфигурацию туннеля и/или на какие-то проблемы в he.
> >
> > nginx.org <http://nginx.org> доступен по ipv6 c нескольких точек с которых я мог проверить, и судя по логам подключаются
> > по ipv6 к nginx.org <http://nginx.org> как обычно.
>
> Насколько я вижу, соединение нормально устанавливается, запрос
> отправляется, а ответ не приходит и ждёт таймаута. После чего на
> некоторое время всё исправляется.
>
> Если используется тоннель, то это выглядит и пахнет как
> классическая проблема с MTU, которая лечится за счёт PMTU black
> hole detection.
>
> Я со своей стороны давно разочаровался в идее работоспособности
> PMTU discovery в современном интернете, и жить с тоннелями без
> правки MSS никому не рекомендую.
+100500
> Но с нашей стороны явно имеет смысл проверить, что ICMP
> fragmentation needed (ICMPv6 Packet Too Big) в зоне нашей
> ответственности ходят нормально и не зафильтрованы. С учётом
> того, что пинги не ходят - у меня вот лично в этом сомнения.
>
>
> Благодарю.
> Похоже таки проблема в MTU/PMTU.
> Выставил в туннеле MTU 1480 при MTU 1500 физическом интерфейсе и заработало.
> Подозреваю опцию
> net.ipv4.tcp_mtu_probing = 0
> на маршрутизаторе.
IPv4 PMTUD в современном (и уже лет 20 как, а то и больше) интернете сломан бесповоротно
и время, которое тратится на восстановление его работы в публичном интернете,
лучше потратить на что-нибудь другое.
Это не касается контролируемых сетей и до определенной степени сетей
с вменяемыми партнёрскими отношениями с их администрацией. Но для публичного интернета
только занижение размера пакета любыми способами; в порядке уменшения предпочтительности:
TCP MSS adjust, или занижение MTU на туннеле (иногда это лекарство хуже болезни),
или принудительное снятие флага DF.
Подробная информация о списке рассылки nginx-ru