Как использовать новое ключевое слово dummynet-anchor в pf.conf в Mac OS X

845
Yaocl

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

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

4
Вы смотрели [на этот сайт / страницу] (http://krypted.com/mac-security/a-cheat-sheet-for-using-pf-in-os-x-lion-and-up/)? JakeGould 9 лет назад 0
@JakeGould Спасибо, я не посмотрел на этой странице ничего об использовании dummynet с pf в osx 10.10 Yaocl 9 лет назад 2

1 ответ на вопрос

0
Mecki

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

Вы настраиваете свою 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 

Это точно соответствует тому, что я настроил: enter image description here Хорошо, что это dummynet-anchor? Ну, я думаю, что это всего лишь правило anchorдля dummynetправил, подобное тому, которое есть для правил nat-anchorsNAT (преобразование сетевых адресов). Бег:

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.anchorsmacOS есть каталог, но он содержит только один файл, com.appleи этот файл относится только к нескольким якорям:

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

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

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

Якорь может быть добавлен приложением, поэтому он может отсутствовать в любом конфигурационном файле. Yaocl 6 лет назад 0