У меня есть сервер OpenBSD, действующий как маршрутизатор / брандмауэр с набором правил фильтрации пакетов yhr, показанным ниже, сервером Linux и клиентом Linux.
При передаче файлов (с использованием netcat) по TCP ограничения применяются (например, ограничение в 100 Мбит в примере), хотя при передаче данных по UDP ограничения не применяются; файл всегда занимает одинаковое количество времени, независимо от установленного мной ограничения пропускной способности очереди (я даже могу полностью отключить очереди, и все равно получу тот же результат).
Почему правила очередей не применяются к пакетам UDP?
Используемые правила:
#queue rules
altq on { $int_if, $ext_if } cbq bandwidth 100Mb queue { def, low }
queue def bandwidth 0Mb cbq(default)
queue low bandwidth 100Mb cbq
#Passrules test
pass out quick from $int_if to $ext_if queue low
pass in quick from $ext_if to $int_if queue low
pass out quick from $ext_if to $int_if queue low
pass in quick from $int_if to $ext_if queue low
Я полагаю, это может быть связано с вопросом, который я ранее задавал, хотя, поскольку это скорее отдельный вопрос, я полагаю, что для этого следует использовать отдельный вопрос.
Пожалуйста, опубликуйте вывод pfctl -vsq
и pfctl -vsr
так что мы можем видеть, что правила совпадают правильно.