Как использовать новое ключевое слово dummynet-anchor в pf.conf Mac OS X
Mac OS X представила новое ключевое слово "dummynet-anchor" в pf.conf
файл, который не используется во FreeBSD и OpenBSD. ipfw
был удален в Mac OS X 10.10, как использовать "dummynet-anchor"?
ОБНОВЛЕНИЕ: Какая часть набора правил будет выполняться "dummynet-anchor"?
1 ответ
Вот что я узнал об этой теме:
Вы настраиваете dummynet
настройка с использованием инструмента командной строки dnctl
для деталей. Проверять, выписываться man dnctl
, Этот инструмент позволяет настраивать каналы и очереди. Каждый канал / очередь имеет числовое имя, а также набор свойств (например, пропускную способность, задержку, частоту отбрасывания пакетов и т. Д.)
Пример со страницы руководства:
dnctl pipe 1 config bw 14Kbit/s queue 10Kbytes
Это создает трубу с именем 1
с максимальной пропускной способностью 14 кбит / с и резервным буфером в 10 КБ (или, может быть, 10 КиБ, страница не совсем ясна).
Теперь вам нужен только способ сообщить системе, какие сетевые пакеты должны проходить через этот канал, и это делается с помощью pf
:
dummynet in all pipe 1
Это перенаправит весь входящий трафик в канал с именем 1
,
Хотя нигде не задокументировано, -s
вариант pfctl
также знает dummynet
параметр. Например, чтобы увидеть записи dummynet, которые устанавливает Network Link Conditioner (ncl) из Apple Dev Tools, просто запустите:
sudo pfctl -a com.apple.nlc/base -s dummynet
Вот пример вывода:
no dummynet quick on lo0 all
dummynet in quick inet all allow-opts pipe 40269
dummynet in quick inet6 all allow-opts pipe 40269
dummynet out quick inet all allow-opts pipe 40270
dummynet out quick inet6 all allow-opts pipe 40270
Теперь давайте посмотрим, какие каналы он настроил:
40269: 1.000 Mbit/s 500 ms 50 sl.plr 0.100000 1 queues (1 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
40270: 1.000 Mbit/s 500 ms 50 sl.plr 0.100000 1 queues (1 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
Это точно соответствует тому, что я настроил: Хорошо, что это
dummynet-anchor
? Ну, я думаю, что это просто anchor
но один для dummynet
правила, похожие, как есть nat-anchors
для правил NAT (преобразование сетевых адресов). Бег:
sudo pfctl -sa
Я получаю этот вывод:
TRANSLATION RULES:
nat-anchor "com.apple/*" all
rdr-anchor "com.apple/*" all
FILTER RULES:
scrub-anchor "com.apple/*" all fragment reassemble
anchor "com.apple/*" all
DUMMYNET RULES:
dummynet-anchor "com.apple/*" all
Итак, вы видите, что есть разные виды якорей, принадлежащих к различным разделам правил. Откуда эти правила действительно загружены, для меня до сих пор остается загадкой. Есть каталог /etc/pf.anchors
на MacOS, но этот содержит только один файл com.apple
и этот файл относится только к большему количеству якорей:
#
# AirDrop anchor point.
#
anchor "200.AirDrop/*"
#
# Application Firewall anchor point.
#
anchor "250.ApplicationFirewall/*"
Поиск по 250.ApplicationFirewall
не находит никаких файлов или папок с таким именем в моей системе.
Извините, это не совсем ответ на ваш вопрос, я тоже не знаю ответа. Тем не менее, этому вопросу уже более 3 лет, и никто на него вообще не ответил, поэтому я подумала, что поделюсь своими выводами здесь, и, может быть, кто-то сможет поднять его и таким образом получить новые идеи.