Hyper-V で Amazon Linux 2 を試しましたが、数日後に使ったら外部ネットワークに繋がらない。
確認してみると、仮想スイッチで選択した Default Switch の IP アドレスが変わっていました。
調べてみると Default Switch の IP アドレスは自動で振られて変わるんですね。
なので、専用の仮想スイッチを用意することにしました。
仮想スイッチの新規追加
「Hyper-V マネージャ」の「操作」から「仮想スイッチ マネージャー」を選択
「新しい仮想ネットワーク スイッチ」で「内部」を選択して「仮想スイッチの作成」
分かりやすい名前に変更します。
追加した仮想スイッチがネットワーク接続に表示されるので、IP アドレスを設定します。
- IPv4 アドレス (192.168.244.1)
- サブネット マスク (225.225.240.0)
作成済みのゲスト OS の都合に合わせましたが、そういった事情が無ければ全く別のセグメントのアドレスを使用した方が無難だと思われます。(自動割り当てされた過去があるアドレスを取って大丈夫か未確認の為。)
NAT の設定
追加した仮想スイッチは内部ネットワークなので、このままでは外部に繋がりません。
内部ネットワークアドレスを外部ネットワークアドレスに変換する NAT の設定をします。
PowerShell から次のコマンドで設定します。
New-NetNat -Name "amz2nat" -InternalIPInterfaceAddressPrefix 192.168.244.0/20
ちなみに、間違えたときなどで削除したいときは次のコマンド。
Remove-NetNat -Name "amz2nat"
仮想スイッチの再選択
ゲスト OS の設定で、仮想スイッチを変更します。
ゲスト OS の ネームサーバーの設定
ゲスト OS が使用する ネームサーバーの IP アドレスを、ホスト OS が使用しているものと同じにします。
今回のホスト OS の DNS サーバー は 192.168.0.1 なので、ゲスト OS(Amazon Linux 2)の /etc/resolv.conf を修正しました。
nameserver 192.168.0.1
これで外部に繋がるようになりました。
ひと目でわかるHyper-V Windows Server 2022版 (Amazon)コンテナセキュリティ コンテナ化されたアプリケーションを保護する要素技術 (Amazon)
コメント