Как использовать новое ключевое слово 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 лет, и никто на него вообще не ответил, поэтому я подумала, что поделюсь своими выводами здесь, и, может быть, кто-то сможет поднять его и таким образом получить новые идеи.

Другие вопросы по тегам