Squid может классифицировать запрос по сведениям, которых нет у обычного маршрута IP. В поддерживаемой сборке Linux tcp_outgoing_mark назначает серверную метку Netfilter на основе быстрого ACL:

acl selected_sites dstdomain -n .vendor.example
tcp_outgoing_mark 0x20 selected_sites
tcp_outgoing_mark 0x00 all

Соответствующее правило политики Linux может затем использовать fwmark 0x20, чтобы выбрать уже настроенную таблицу маршрутизации. Таблице по-прежнему нужны правильные маршруты и достижимый следующий узел. Директива Squid их не создаёт.

Эта метка — локальные метаданные маршрутизации. Она отличается от поля DSCP или TOS, переносимого в пакете IP, и от tcp_outgoing_address, который выбирает исходный IP.

Документированная директива требует поддержки маркировки пакетов и прав в Linux и принимает только быстрые ACL. Она доступна в Squid 7 и более ранних перечисленных выпусках, но не в Squid 8.

Стройте политику вокруг фактических исходящих соединений. Повторно используемые соединения TCP не становятся новыми только потому, что их использует другой HTTP-запрос. Сохраните в проекте и обратный путь к клиенту, и маршрут немаркированного трафика.

Похожие статьи