Squid tcp_outgoing_mark и маршрутизация Linux fwmark
Классифицируйте выбранные прокси-запросы с помощью tcp_outgoing_mark, а существующее правило Linux fwmark пусть выбирает их маршрут.
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-запрос. Сохраните в проекте и обратный путь к клиенту, и маршрут немаркированного трафика.