Como usar a nova palavra-chave dummynet-anchor no pf.conf do Mac OS X

4

O Mac OS X introduziu uma nova palavra-chave “dummynet-anchor” no arquivo pf.conf , que não é usado no FreeBSD e no OpenBSD. O ipfw foi removido no Mac OS X 10.10, Como usar o "dummynet-anchor"?

ATUALIZAÇÃO:  Qual parte do conjunto de regras será executada por "dummynet-anchor"?

    
por Yaocl 01.02.2015 / 10:06

1 resposta

0

Aqui está o que eu descobri até agora sobre esse tópico:

Você configura sua configuração de dummynet usando a ferramenta de linha de comando dnctl para obter detalhes. Confira man dnctl . Essa ferramenta permite que você configure pipes e filas. Cada pipe / fila tem um nome numérico, bem como um conjunto de propriedades (por exemplo, uma largura de banda, um atraso, uma taxa de queda de pacotes, etc.)

Exemplo da página man:

dnctl pipe 1 config bw 14Kbit/s queue 10Kbytes

Isso cria um canal chamado 1 com uma largura de banda máxima de 14 kbps e um buffer de reserva de 10 KB (ou talvez 10 KiB, a página não está clara sobre isso).

Agora você precisa apenas de uma maneira de informar ao sistema quais pacotes de rede devem passar por esse canal e isso é feito usando pf :

dummynet in all pipe 1

Isso redirecionará todo o tráfego de entrada para o pipe chamado 1 .

Mesmo que documentado em nenhum lugar, a opção -s de pfctl também conhece um parâmetro dummynet . Por exemplo. para ver as entradas dummynet que o Condicionador de Link de Rede (ncl) das Dev Tools da Apple está configurando, apenas execute:

sudo pfctl -a com.apple.nlc/base -s dummynet

Aqui está um exemplo de saída:

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

Agora, vamos procurar os canais configurados:

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

Isso corresponde exatamente ao que configurei: Ok,oqueéumdummynet-anchor?Bem,euachoqueéapenasumanchormasumparadummynetregras,semelhantecomoexistemnat-anchorsparaasregrasNAT(NetworkAddressTranslation).Executando:

sudopfctl-sa

Eureceboestasaída:

TRANSLATIONRULES: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

Então você vê que existem diferentes tipos de âncoras pertencentes a diferentes seções de regras. De onde essas regras são realmente carregadas ainda é um mistério para mim. Existe um diretório /etc/pf.anchors no macOS, mas este contém apenas um único arquivo com.apple e este arquivo só se refere a mais âncoras:

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

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

Uma pesquisa por 250.ApplicationFirewall não encontra nenhum arquivo ou pasta com esse nome no meu sistema.

Então, desculpe, isso não é realmente uma resposta para sua pergunta, eu também não sei a resposta. No entanto, essa pergunta tem mais de 3 anos e ninguém respondeu a ela, então eu pensei em compartilhar minhas descobertas aqui e talvez alguém possa entender e obter algumas novas percepções dessa maneira.

    
por 05.04.2018 / 22:43