Ground Sunlight

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

ユーザ用ツール

サイト用ツール


wsl2:interop

差分

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

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

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