web-dev-qa-db-ja.com

Mac OSXのpf.confで新しいキーワードdummynet-anchorを使用する方法

Mac OS Xでは、pf.confファイルに新しいキーワード「dummynet-anchor」が導入されました。これはFreeBSDおよびOpenBSDでは使用されていません。 ipfwはMacOS X 10.10で削除されました。「dummynet-anchor」の使い方は?

更新:ルールセットのどの部分が「dummynet-anchor」によって実行されますか?

5
Yaocl

これが私がそのトピックについてこれまでに見つけたものです:

詳細については、コマンドラインツールdummynetを使用してdnctl構成をセットアップします。 man dnctlをチェックしてください。このツールを使用すると、パイプとキューを構成できます。すべてのパイプ/キューには、数値名と一連のプロパティ(帯域幅、遅延、パケットドロップ率など)があります。

Manページからの例:

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

これにより、最大帯域幅が14kbpsでバックログバッファが10KB(または、おそらく10 KiB、ページが明確ではない)の1という名前のパイプが作成されます。

これで、どのネットワークパケットがそのパイプを通過する必要があるかをシステムに通知する方法のみが必要になります。これは、pfを使用して行われます。

dummynet in all pipe 1

これにより、すべての着信トラフィックが1という名前のパイプにリダイレクトされます。

どこにも文書化されていませんが、pfctl-sオプションはdummynetパラメーターも認識しています。例えば。 Appleの開発ツールのネットワークリンクコンディショナー(ncl)が設定しているダミーネットエントリを確認するには、次のコマンドを実行します。

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(ネットワークアドレス変換)ルール用のnat-anchorsがあるのと同じです。 。 ランニング:

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がありますが、これには1つのファイルcom.Appleしか含まれておらず、このファイルはより多くのアンカーのみを参照しています。

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

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

250.ApplicationFirewallを検索しても、その名前のファイルまたはフォルダーはシステム上に見つかりません。

申し訳ありませんが、これはあなたの質問に対する答えではありません。私も答えがわかりません。しかし、この質問は3年以上前のものであり、誰も答えていないので、ここで私の発見を共有し、誰かがそれを拾い上げて、その方法でいくつかの新しい洞察を得ることができると思いました。

0
Mecki