Назад | Перейти на главную страницу

OpenBSD pf 'match in all scrub (no-df)' делает HTTPS недоступным в мобильной сети

Прежде всего: извините за плохое использование английского языка.

Уже несколько лет я испытываю проблемы с правилом 'match in all scrub (no-df)' в pf. Я не могу понять, что здесь происходит.

Я постараюсь быть ясным и простым. Pf.conf был сильно сокращен для этой публикации на форуме.

Вот мой pf.conf:

set skip on lo0
match in all scrub (no-df)
block all
block in quick from urpf-failed
pass in on em0 proto tcp from any to 213.125.xxx.xxx port 80 synproxy state
pass in on em0 proto tcp from any to 213.125.xxx.xxx port 443 synproxy state
pass out on em0 from 213.125.xxx.xxx to any modulate state

HTTP и HTTPS работают нормально. До этого момента клиент во Франции (Wanadoo DSL) не мог просматривать страницы HTTPS! Я винил его провайдера и не исследовал эту проблему.

Но потом ... Я купил Android Samsung Galaxy SII (Vodafone) для мониторинга своих серверов. Через несколько часов я вышел из телефонного магазина: на моем сервере нет HTTPS-соединений! Я думал, что мои серверы не работают, и очень быстро поехал обратно в офис. Но они встали.

Я обнаружил, что отключение правила

match in all scrub (no-df)

решает проблему. Телефон Android (Vodafone NL) и Wanadoo DSL FR теперь поддерживают HTTPS.

Но теперь я больше не занимаюсь мытьем. Я не этого хочу.

Кто-нибудь здесь понимает, что происходит? Я не. Включение очистки приводит к тому, что веб-страницы HTTPS не загружаются НЕКОТОРЫМИ интернет-провайдерами, но не всеми.

В systat я, как ни странно, ДЕЙСТВИТЕЛЬНО вижу созданное состояние и пакеты, полученные от этих провайдеров ...

Все еще в замешательстве. Я использую OpenBSD 5.1 / amd64 и OpenBSD 5.0 ​​/ i386. У меня в офисе два провайдера (один DSL и один кабель). Влияет на обоих.

Это можно довольно легко воспроизвести. Надеюсь, у кого-то есть опыт решения этой проблемы.

Приветствую,

Фрэнк

Из того, что я прочитал на pf.conf справочная страница вам может потребоваться изменить правило на:

match in all scrub (no-df random-id)    

Как мне кажется, у вас проблемы с блокировкой ICMP, который на самом деле является неотъемлемой частью TCP / IP. ICMP используется как минимум для Обнаружение MTU пути. Выдержка из справочника FreeBSD, Раздел ПФ:

Протокол ICMP отправляет и принимает управляющие сообщения между хостами и шлюзами, главным образом, чтобы предоставить отправителю обратную связь о любых необычных или сложных условиях на пути к целевому хосту. Маршрутизаторы используют ICMP для согласования размеров пакетов и других параметров передачи в процессе, который часто называют обнаружением MTU пути.

PMTU работает точно с использованием DF, который вы очищаете, если scrub правила удаляется.