私のWSLインスタンスでは、出力ip addr
は次のようになります。
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 62:7d:94:c7:52:0b brd ff:ff:ff:ff:ff:ff
3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether aa:20:18:64:a4:89 brd ff:ff:ff:ff:ff:ff
4: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
5: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:f7:c6:4d brd ff:ff:ff:ff:ff:ff
inet 172.25.42.162/20 brd 172.25.47.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fef7:c64d/64 scope link
valid_lft forever preferred_lft forever
これらは何ですか?私は何かを知っていlo
ますeth0
。しかし、他のものは何ですか?私は彼らにどうすればいいですか?
答え1
私は何をすべきですか?
「アベンジャーズ4:エンドゲーム」の一文を借りると――「私たちはそれを扱わないことでそれを処理します。」 つまり、これらのインターフェイスについて心配しないでください。彼らは無害で、おそらく必要ではないでしょう。詳しくは下記をご覧ください。
これらは何ですか?
私は決してカーネルの専門家ではありませんが、私が知っていることのほとんどは、Linuxカーネルモジュールによって生成されたかなり標準的なインターフェースです。私は、Microsoftが構成からそれを削除せずにコンパイルに保持することを選択した2つの考えられる理由があると思います。
- 互換性 - 存在すると仮定するいくつかのアプリケーションがあり、少なくともそのアプリケーションがあれば、よりシームレスなWSL体験を提供できます。
- 開発者の使用 - WSLはLinux開発者向けに設計されているため、特定のアプリケーションをテストするためにこれらのインターフェースを提供すると便利です。
インターフェース自体:
bond0
リンク速度やフェイルオーバーを高速化するために複数のインターフェイスをまとめて使用し、両方ともWSLでは機能しません。つまり、理論的には、Hyper-V(Windows Pro以降を使用している場合)を使用して追加の仮想NICを作成してボンディングできます。私たちのほとんどはこのユースケースに遭遇する可能性が低いですが、一部の開発者はこの機能をテストする必要があるかもしれません。dummy0
また、一般的には、次のようにテスト目的で使用されます。このRed Hatドキュメント。sit0
IPv4を介してIPv6パケットを転送するには(参照)この回答詳細は)。繰り返しますが、これは私たちのほとんどには起こりません。
Microsoft WSLでは、3つのモジュールがすべて有効になっていることがわかります。カーネルの設定(座る、リンクと偽)。
tunl
:私のシステムにはtunlインターフェイスがないので、init
WSLプロセス中に作成されたと思います。init
他の多くの作業の中で、WSLネットワークインタフェースの起動を担当するのは残念ながらブラックボックスです(私の知る限り、Microsoftはソースコードを公開していません)。おそらくシステムにVPNがあり、そのインターフェイスがマッピングされる可能性がありますinit
。
もしそうなら、本当にしたい場合はそれらを削除できますか?その可能性は高いですが、上記のリンクソースコードを使用して独自のLinuxカーネルを構築する必要があります。個人的には、「対処しないでください」というアプローチを取りたいと思います。それにもかかわらず、事実は私たちができるIMHOは、必要に応じて独自のWSLカーネルをカスタマイズしてコンパイルできることは驚くべきことです。