4

Mac OS X ввела новое ключевое слово «dummynet-anchor» в файле pf.conf , которое не используется во FreeBSD и OpenBSD. ipfw был удален в Mac OS X 10.10, как использовать «dummynet-anchor»?

ОБНОВЛЕНИЕ: Какая часть набора правил будет выполняться "dummynet-anchor"?

1 ответ1

0

Вот что я узнал об этой теме:

Вы настройки вашей конфигурации 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

Итак, вы видите, что есть разные виды якорей, принадлежащих к различным разделам правил. Откуда эти правила действительно загружены, для меня до сих пор остается загадкой. В macOS есть каталог /etc/pf.anchors но он содержит только один файл com.apple и этот файл относится только к нескольким якорям:

#
# AirDrop anchor point.
#
anchor "200.AirDrop/*"

#
# Application Firewall anchor point.
#
anchor "250.ApplicationFirewall/*"

Поиски за 250.ApplicationFirewall не находит никаких файлов или папок с таким именем в моей системе.

Извините, это не совсем ответ на ваш вопрос, я тоже не знаю ответа. Тем не менее, этому вопросу уже более 3 лет, и никто на него вообще не ответил, поэтому я подумала, что поделюсь своими выводами здесь, и, может быть, кто-то сможет поднять его и получить некоторые новые идеи таким образом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .