Ground Sunlight

Windowsで作る - PHPプログラミングの開発環境

ユーザ用ツール

サイト用ツール


wsl2:interop

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
wsl2:interop [2020/12/25 09:54]
y2sunlight [WLS2の仮想ネットワーク]
wsl2:interop [2020/12/27 20:17] (現在)
y2sunlight [WLS2の仮想ネットワーク]
行 79: 行 79:
 {{ :wsl2:interop:wsl2-network01.svg |}} {{ :wsl2:interop:wsl2-network01.svg |}}
  
-  * TODO1 +WSL2は、[[https://ja.wikipedia.org/wiki/Hyper-V|Hyper-V]]が管理する仮想マシン環境で動作します。このとき物理ハードウェアの上で動いているOSをホストOS、仮想マシン内で動作しているOSをゲストOSと呼ぶ事にします。そして、ホストマシンには物理NICが、仮想マシンには仮想NICが提供されています。
-  * TODO2 +
-  * TODO3 +
-  * TODO4+
  
-WSL2は、[[https://ja.wikipedia.org/wiki/Hyper-V|Hyper-V]]が管理する仮想マシン環境で動作します。このとき物理ハードウェアの上で動いているOSをホストOS、仮想マシン内で動作しているOSをゲストOSと呼ぶ事にします。そして、ホストOSとゲストOSの間にはHyper-Vの仮想ネットワークが構築され、仮想マシンにて仮想NICが提供されます。+ホストマシンとゲストマシンの間にはHyper-Vの仮想ネットワークが構築されます。この仮想的ネットワークはホストマシンと仮想マシンが共接続た状態を作ります。
  
-> TODO:こから+WSL2を起動すると、「vEthernet(WSL)」という仮想ネットワークに接続するホスト側のネットワークアダプター(NIC)が作られますが、仮想ネットワークを構成している仮想スイッチは、ホストOSのネットワーク機能で見るとはできません。
  
-このスイッチは、いわゆるスイッチングハブのことだ。仮想スイッチには3つのタイプがある。物理的なネットワークアダプターを利用する「外部ネットワーク」、純粋な仮想ネットワークとなる「内部ネットワーク」「プライベートネッワーク」3つである+仮想ネットワークのIPドレスはプライベートアドレスが割り当てられ、ホスOS再起動によって変更されます
  
 +> 複数のWSL2ディストリビューションは同じネットワーク名前空間を使用し、ネットワークの分離はありません。''参考'' https://github.com/microsoft/WSL/issues/4304
  
->ここから+=== WSL2のリスニングポート ===
  
 +WSL2では、仮想マシン側でリスニングされているポート番号と同じポート番号を、ホスト側で動作しているwslhost.exeがリスニングします。
  
-外部ネットワクは、物理的なネッワークカード仮想化し、ホスト側を含めて、仮想ネッワークアダプターて、物理的なネットワークに接続これに対して、内部ネットワークとプライベートネットワークは、ホストWindows接続しているネットワークとは別物理的な存在のない仮想的なネッワークとして作られ。内部プライベートの違いは、ホストWindowsが参加しているかどうか違いである。プライベートネットワークは仮想マシンだけが接続るネットワークだ+例えば、仮想マシン側でポート80リスニングていると、ホスト側でも wslhost.exe がポー80リスニングす。して、 wslhost.exe は、受け取ったパケットを仮想ホスト側の同じポート番号に転送します。つまり、ホストlocalhost(仮想ホス側がリスニングしてると同じ)ポート番号にアクセスすると仮想ホストのネットワークサービスから、eth0からのアクセスのように見えます。
  
-このうちWSL 2が使っているのは、「内部ネットワーク」だ。内部ネットワークには、ホストWindowsも参加する。+=== localhost ===
  
-Hyper-Vの仮想スイッチの1つ「内部ネットワーク」では、仮想的なネットワークに仮想マシンとホトWindows共に接続た状態を作る。またWindows NAT(WinNAT)機能設定ことで、仮想マシン側からホストWindowsのインターネット接続を利用することも可能だ+IPv4では、ネットワークアドレス ''127.0.0.0'' が localhost の数値表現とて扱われ慣例的に末尾 1 の ''127.0.0.1'' 自分自身のIPアドレスの名前として使用されま。localhostという名前は、どんな名前解決システムも使うことなく 127.0.0.1 に解決出来ます。IPv6では''::1'' だけが localhost の数値表現として扱われ、IPv4のようにlocalhostはホスト名でありネットワークの表現ではありません
  
-WSL 2を起動すると、[コルパネル]-[ネッワークと共有セ]-[設定の変更]に、「vEthernet(WSL)」という「Hyper-V Virtual Ethernet Adapter」が表示されるようになる。これがWSL 2用の内部ネッワークに接続するホスWindows側ネットワークーにる。+WSL2が稼働していると仮想マシ上の特定のポート番号をリスニグしている、HTTPサバなどのTCP/IPアプリケション対してホスマシン側からは、localhost を接続先として指定れば( http://localhost:<ポー番号>/ )、そのアプリケションアクセスすことが出来ます
  
-WSL 2を起動するとWin32側(ホストWindows側)に「vEthernet(WSL)」という仮想ネットワークアダプターが表示されるようになる。 +\\
- Hyper-Vの仮想ネットワークや仮想スイッチ自体は、ホストWindowsのネットワーク関連の機能では見ることができない。そもそもWindows 10には、Windows VistaやWindows 7にあったネットワーク(ネットワークフルマップ)を表示させる機能がなく、ネットワークに接続しているNIC(ネットワークアダプター)のみが見える状態だ。+
  
-また、内部ネットワークに関しては、Windows NAT(WinNAT)を設定することで、仮想マシンからのインターネットアクセスが可能になる。 
  
-なお、Hyper-Vの仮想ネットワークでは、デフォルトで「プライベートアドレス」が割り当てられる。プライベートアドレスとは、インターネット側には参加できないものの、社内LANのような組織内部のネットワークで自由に使用できる、特別なIPアドレスである。複数の仮想マシンが個別の仮想スイッチを使う可能性があるため、Windows 10のHyper-Vでは、IPv4アドレスとして「172.16.0.0~172.31.255.255」までのプライベートアドレスを使い、これを複数に分割して利用している。 
- 
- 
-> 複数のWSL2ディストリビューションは同じネットワーク名前空間を使用し、ネットワークの分離はありません。''参考'' https://github.com/microsoft/WSL/issues/4304 
- 
-\\ 
  
 ==== WLS2側からWindows側のネットワークにアクセスする ==== ==== WLS2側からWindows側のネットワークにアクセスする ====
行 126: 行 117:
 \\ \\
  
-==== localhost ==== 
- 
-> TODO: 
- 
-\\ 
  
 ===== WindowsからのLinuxコマンドを実行する ===== ===== WindowsからのLinuxコマンドを実行する =====
wsl2/interop.1608857644.txt.gz · 最終更新: 2020/12/25 09:54 by y2sunlight