WSL2のマルチ仮想ネットワークインタフェース

WSL2のマルチ仮想ネットワークインタフェース

私の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ドキュメント

  • sit0IPv4を介してIPv6パケットを転送するには(参照)この回答詳細は)。繰り返しますが、これは私たちのほとんどには起こりません。

Microsoft WSLでは、3つのモジュールがすべて有効になっていることがわかります。カーネルの設定座るリンク)。

  • tunl:私のシステムにはtunlインターフェイスがないので、initWSLプロセス中に作成されたと思います。 init他の多くの作業の中で、WSLネットワークインタフェースの起動を担当するのは残念ながらブラックボックスです(私の知る限り、Microsoftはソースコードを公開していません)。おそらくシステムにVPNがあり、そのインターフェイスがマッピングされる可能性がありますinit

もしそうなら、本当にしたい場合はそれらを削除できますか?その可能性は高いですが、上記のリンクソースコードを使用して独自のLinuxカーネルを構築する必要があります。個人的には、「対処しないでください」というアプローチを取りたいと思います。それにもかかわらず、事実は私たちができるIMHOは、必要に応じて独自のWSLカーネルをカスタマイズしてコンパイルできることは驚くべきことです。

おすすめ記事