このページの本文へ

前へ 1 2 次へ

Windows Info 第184回

Windows Subsystem for Linux 2におけるネットワークの改良

2019年08月04日 10時00分更新

文● 塩田紳二 編集● ASCII編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

 現在プレビューが実施されている、Windows 10 Ver.2003となる20H1には、WSL2(Windows Subsystem for Linux 2)が搭載される予定だ。このWSL2では、Build 18945での改良で、Win32側からlocalhostでアクセスできるようになった。これで、WSL2側でHTTPサーバーなどを動かしたとき、Win32側からはWin32のネットワークサービス同様にlocalhostでアクセスが可能になる。

WSL2で簡単なhttpサーバーを作り、Win32側のEdgeからアクセスさせてみた。今回の改良により、Win32側からWSL2側のネットワークサービスにlocalhostでアクセスが可能になった

WSL2でのネットワークはどうなっている?

 WSL2は、Linuxカーネルを仮想環境(軽量ユーティリティ仮想マシン)で実行するので、“ほぼLinux”として振る舞うことができる。WSL1には、Linuxカーネルは存在せず、LXSSと呼ばれるシステムが、Linuxのカーネル機能呼び出しをWindowsのAPIに変換していた。このため、WSL1のネットワークはすべてWin32側で処理されていた。

 TCP/IPのネットワークスタックでは、接続管理のために複数のTCP/IPスタックを同一アドレスで同時に動かすことはできない。絶対に不可能かというとそうでもないのだが、2つのTCP/IPスタックソフトウェアが通信してお互いの状態を同期させるなどの処理では、ネットワークスタックとしての動作が遅くなってしまう。

 そうなるとシステム全体の処理の足を引っ張ってしまい、性能がかなり低下する可能性が高い。それではあまり実用的ではないし、こうした実装をするなら、既存のTCP/IPスタックを完全に置き換える必要もあり、コストを考えると現実的には不可能な手法といえる。

 というわけで、WSL2ではLinuxカーネルが持つTCP/IPスタックがそのまま使われる。となると、Win32と同じIPアドレスを持つことはできない。一般に仮想マシンでは、ネットワークインターフェースを仮想化し、仮想的なネットワークに接続させることが多い。Hyper-Vでも、仮想ネットワークインターフェースと仮想ネットワークを作って、こ実際の物理ネットワークインタフェースが接続する物理ネットワークの間でルーティングやブリッジを行なう。

 WSL2も同じような構成になっている。WSL2を動かすと、「イーサーネットアダプター vEthernet(WSL)」という仮想ネットワークインターフェースが出現する。これが、仮想ネットワークのWin32側の接続点であり、WSL2側のデフォルトネットワークインターフェース(eth0)と同じ仮想ネットワークに接続している。

WSL2のネットワークインターフェースは、仮想ネットワークを介して、Win32側の仮想イーサーネットデバイスと通信が可能。ただし、ネットワークアドレスやインターフェースのアドレスは起動のたびに新たに割り当てられるので、一定にはならない

 こうした構成であるため、Build 18945より前のWSL2では、WSL2側のネットワークサービスに接続する際には、WSL2の仮想ネットワークインターフェース(eth0)のIPアドレスを指定する必要があった。しかし、仮想ネットワークに接続する仮想イーサーネットインターフェースのIPアドレスは、再起動するたびに毎回違ったIPアドレスが割り当てられていた。このため、接続の指定をスクリプトなどに記述しておくことが困難だった。

Build 18945で進められた改良

 Build 18945では、WSL2への接続に際してIPアドレスをlocalhostとして指定することが可能になった。ただし、localhostは、自分自身のIPアドレスでもあり、Win32側のネットワークサービスに接続する場合にも利用される。そもそもlocalhostや127.0.0.1と呼ばれるIPアドレスは、自分自身を表すIPアドレス、ドメイン名として定義されている。

 ただしTCP/IPでは、接続する場合に接続される側がポート番号で待ち受けする。これを「Listen Port」と呼ぶ。つまり、同じIPアドレスであっても、宛先としてポート番号が指定され、そのポート番号ごとに待ち受けるソフトウェアを指定できる。

 たとえば、httpであれば、80というポート番号が割り当てられている。ウェブブラウザなどでは、URLでポート番号が明示的に指定されない場合、httpプロトコルはポート番号80で待ち受けしていると仮定して接続する。

 ポート番号を指定して待ち受けするには、そのためのAPIを利用して、ポート番号を確保する必要がある。逆にいうとシステムは、どのポート番号が待ち受けに使われているのかを把握できる。WSL2では、これを利用して、WSL2側で待ち受けが行われているポート番号をWin32側で動作しているwslhost.exeが代わって確保して待ち受けする。

 WSL2側でPort Xで待ち受けを行うと、win32側でもwslhost.exeがPort XをListen Portに指定して待ち受けする。つまり、localhostのPortXに対する接続はすべてwslhost.exeが受けることになる。wslhost.exeは、受け取ったパケットをなんらかの方法でWSL2側に転送する。WSL2の挙動をみるに、仮想ネットワーク経由での転送ではなく、WSL2側のネットワークサービスからは、localhostからのアクセスのように見える。

WSL2側でリッスンポートを作ると、WSL2がこれを検出してwslhost.exeに同じポート番号での待ち受けを指示する。wslhost.exeは、WSL2側への接続を受け付け、これをWSL2側に流す

前へ 1 2 次へ

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事
1
【Amazon.co.jp限定】HP ノートパソコン 15-fd 15.6インチ インテル Core 5 120U メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M5PA-AAAI)
【Amazon.co.jp限定】HP ノートパソコン 15-fd 15.6インチ インテル Core 5 120U メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M5PA-AAAI)
¥181,469
2
Apple 2026 MacBook Neo A18 Proチップ搭載13インチノートブック:AIとApple Intelligenceのために設計、Liquid Retinaディスプレイ、8GBユニファイドメモリ、256GB SSDストレージ、1080p FaceTime HDカメラ - シトラス
Apple 2026 MacBook Neo A18 Proチップ搭載13インチノートブック:AIとApple Intelligenceのために設計、Liquid Retinaディスプレイ、8GBユニファイドメモリ、256GB SSDストレージ、1080p FaceTime HDカメラ - シトラス
¥95,768
3
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、日本語キーボード、Touch ID - ミッドナイト
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、日本語キーボード、Touch ID - ミッドナイト
¥177,333
4
【Amazon.co.jp限定】Lenovo Chromebook クロームブック Duet 11 10.95インチ MediaTek Kompanio 838 プロセッサー​搭載 メモリ8GB eMMC 128GB 重量1.0kg 83HH000TJP パソコン
【Amazon.co.jp限定】Lenovo Chromebook クロームブック Duet 11 10.95インチ MediaTek Kompanio 838 プロセッサー​搭載 メモリ8GB eMMC 128GB 重量1.0kg 83HH000TJP パソコン
¥69,300
5
Lenovo ノートパソコン パソコン IdeaPad Slim 3 15.3インチ AMD Ryzen™ 5 7535HS メモリ16GB SSD512GB MS Office搭載 Windows11 バッテリー駆動17.4時間 重量1.59kg ルナグレー 83K700HBJP ノートPC
Lenovo ノートパソコン パソコン IdeaPad Slim 3 15.3インチ AMD Ryzen™ 5 7535HS メモリ16GB SSD512GB MS Office搭載 Windows11 バッテリー駆動17.4時間 重量1.59kg ルナグレー 83K700HBJP ノートPC
¥153,780

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥2,386
2
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
3
CIO フラットスパイラルケーブル CtoC 1m (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps (ライトブラック, 1m)
CIO フラットスパイラルケーブル CtoC 1m (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps (ライトブラック, 1m)
¥1,980
4
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,899
5
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥7,047
6
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
7
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥1,080
8
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
¥1,599
9
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
¥1,299
10
KIOXIA(キオクシア)【日本製】SDカード 32GB SDHC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA032G
KIOXIA(キオクシア)【日本製】SDカード 32GB SDHC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA032G
¥1,381

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン