1. トップ
  2. 新着ニュース
  3. IT
  4. パソコン

Windows Subsystem for Linuxガイド 第34回 ミラードネットワークモード

マイナビニュース / 2024年4月9日 13時48分

画像提供:マイナビニュース

Windows Subsystem for Linux(WSL)には、2023年9月のアップデートで搭載されたネットワークモードという機能がある。今回は、このネットワークモードについて解説する。ネットワークモードでは、従来のWSLのネットワークをNATネットワークモード(以下NATモード)と呼ぶ。これに対して新しく作られたのがMirroredネットワークモード(同Mirroredモード)である。簡単にいうとMirroredモードでは、WSL側へのLAN側からのアクセスが可能になる。反面、制限も生じるため利用方法によってどちらかを選択する必要がある。
NATモードとは?

WSL2では、仮想マシンが使われているため、WSL側に独自のネットワークアドレスが割り当てられ、Win32側とは独立したネットワークになっていた。これを「NATモード」と呼ぶ。Mirroredモードを解説する前に、確認の意味でNATモードの挙動に関して解説しておく。

NATモードでは、Win32側とWSL側は、「仮想スイッチ」(仮想的なスイッチングハブ)を介して接続しており、お互いに相手のIPアドレスを使うことで通信が可能だった(図01)。このとき、仮想スイッチは、Win32側にしか接続しておらず、通常状態のWindowsは、LAN側から来たWSL向けのパケットをルーティングしない。このため、WSLは、LAN側のネットワークノードとは通信することができなかった。

ただし、Win32側でポート・フォーワーディングの設定を行うことで、LAN側とWSL側のパケット転送が可能だった。しかし、ポートフォワーディングの設定は、ポート単位で、双方向で必要なため、かなり面倒な設定だった。

NATモードには、localhostForwardingと呼ばれる機能がある。これは、Win32側で、宛先のホスト名としてlocalhostを使ったときに、WSL側へのアクセスを行うものだ。

設定は、“.wslconfig”ファイルの「localhostForwarding」で行う。同設定がtrueになっていたとき、Win32側でホスト名「localhost」によるアドレス指定とポート指定の組み合わせでWSL側へのアクセスを許可していた。

たとえば、WSL側で、ポート8080でHTTPサーバーを動作させたとき、Win32側からは、「http://localhost:8080/……」といったURLで、WSL側のHTTPサーバーにアクセスが行える。ただし、アドレス指定としては、“localhost”(ホスト名)または“[::1]”(IPv6 ローカルループバック・アドレス)で指定する必要がある。逆に“127.0.0.1”では、常に自分自身(Win32側からWin32側)になる。このあたりをまとめたのが(表01)である。この表にある0.0.0.0は、Linuxでは、「ローカルマシン上のすべてのIPv4アドレス」として扱われるようである。Windowsでは、ルーティングテーブルのデフォルトルートを表す目的でしか使っておらず、送り先アドレスとしては無効なようである。

この記事に関連するニュース

トピックスRSS

ランキング

複数ページをまたぐ記事です

記事の最終ページでミッション達成してください