Mac OS Xでは、pf.conf
ファイルに新しいキーワード「dummynet-anchor」が導入されました。これはFreeBSDおよびOpenBSDでは使用されていません。 ipfw
はMacOS X 10.10で削除されました。「dummynet-anchor」の使い方は?
更新:ルールセットのどの部分が「dummynet-anchor」によって実行されますか?
これが私がそのトピックについてこれまでに見つけたものです:
詳細については、コマンドラインツール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
これは私が設定したものと完全に一致します: さて、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年以上前のものであり、誰も答えていないので、ここで私の発見を共有し、誰かがそれを拾い上げて、その方法でいくつかの新しい洞察を得ることができると思いました。