1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Azure VM 内に Hyper-V で作成した VM へ RDP で接続 (Hyper-V 仮想ネットワーク (Inetrnal NAT) の備忘)

Posted at

実施内容

以下図のような、Azure VM 上に Hyper-V VM を作成して検証などを行う際、他の Azure VM または Azure外から直接 Hyper-V VM に対してRDPで接続できるようにします。
Azure VM 上で 仮想スイッチの作成とInetrnal NATを行い、Hyper-V上に作成した VM へ 外部から RDP で接続できるように構成していきます。

●作成するHyper-V仮想ネットワークのイメージ
ネットワーク構成.png

●NATのイメージ
ネットワーク構成2.png

Hyper-V(Nested) on Azure な環境を構成する方法自体は、以前記載しています。
その際には Skip した、Hyper-V仮想ネットワークの構成を今回行います。
https://qiita.com/ueda_it/items/70412a9392a57b738150

参考ドキュメント

参考ドキュメントは以下です。
Hyper-V 上に構成した VM が外部と疎通ができるように、NATを構成してあげます。
https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/user-guide/setup-nat-network

具体的には以下で紹介されている手順に沿って進めていきます。
https://techcommunity.microsoft.com/t5/itops-talk-blog/how-to-setup-nested-virtualization-for-azure-vm-vhd/ba-p/1115338

仮想スイッチの作成

Azure VM 上で、PowerShell で以下を実行します。

$switchName = "InternalNAT"
New-VMSwitch -Name $switchName -SwitchType Internal

または、GUIで作成する場合は以下です。

  • 仮想スイッチの作成
    • [ Hyper-V マネージャー] を開き、サーバを右クリックして、 [ 仮想スイッチ マネージャー ] を選択する。
    • [ 内部 ] を選択して [ 仮想スイッチの作成 ] を行います。
    • 作成された仮想スイッチに名前やメモを設定できます。

image.png
image.png

仮想NICの設定

  • 1.ホスト(Azure VM)側仮想NICの設定
    New-NetNat を使用し、NAT ネットワークを構成します。
    また、ホスト側仮想NIC(NAT ゲートウェイとなります)の設定を行います。
New-NetNat -Name $switchName -InternalIPInterfaceAddressPrefix 192.168.0.0/24

$ifIndex = (Get-NetAdapter | ? {$_.name -like "*$switchName)"}).ifIndex
New-NetIPAddress -IPAddress 192.168.0.1 -InterfaceIndex $ifIndex -PrefixLength 24

image.png

  • 2.ゲスト(Hyper-V VM)側仮想NICの設定のためのDHCPの構成
    個別にゲストVMのNICにIPを割り当てることも可能ですが、今回はホスト(Azure VM)側で DHCP を構成し、ゲスト(Hyper-V VM)側へのIPを自動割り当てするようにしておきます。
    この手順は前提として、DHCPの役割を追加する必要がありますので、追加されていない場合には追加します。
Install-WindowsFeature -Name DHCP -IncludeManagementTools

DHCPの設定

Add-DhcpServerV4Scope -Name "DHCP-$switchName" -StartRange 192.168.0.50 -EndRange 192.168.0.100 -SubnetMask 255.255.255.0
Set-DhcpServerV4OptionValue -Router 192.168.0.1 -DnsServer 168.63.129.16
Restart-service dhcpserver

GUIでも、DHCPの設定が追加されていることを確認できます。
image.png

image.png

Hyper-V VMを作成し、DHCPで構成すると、以下の通りDHCPで払い出されています。
image.png

これで仮想スイッチの作成と、各VMのNICの構成が完了したので、仮想マシンを作成していけます。
Hyper-V上での仮想マシンの作成については省略します。
ここまでで以下の構成が完成しています。

ネットワーク構成.png

なお、ホスト(Azure VM)のNICを確認してみると、Azure側と接続しているNIC(Ethernet 10) と vSwitch側と接続しているNIC(vEthernet(InternalNAT))が確認できます。

image.png

NAT を構成する

外部⇒内部VMへRDPさせるため、NATを構成します。
RDPの既定のポート番号は3389です。
ホストのAzure側IPアドレスにポート番号3389で接続した場合はホスト自身へのRDPとなります。
別途、ポート番号60001と60002番を使って、
ホストのAzure側IPアドレスにポート番号60001で接続をした場合 → RDP②:192.168.0.50 ポート番号3389 へNAT
ホストのAzure側IPアドレスにポート番号60002で接続をした場合 → RDP③:192.168.0.51 ポート番号3389 へNAT
するように構成します。

ネットワーク構成2.png
Add-NetNatStaticMapping -NatName "InternalNAT" -Protocol TCP -ExternalIPAddress 0.0.0.0 -InternalIPAddress 192.168.0.50 -InternalPort 3389 -ExternalPort 60001
Add-NetNatStaticMapping -NatName "InternalNAT" -Protocol TCP -ExternalIPAddress 0.0.0.0 -InternalIPAddress 192.168.0.51 -InternalPort 3389 -ExternalPort 60002

これでNATが構成されました。
image.png

RDP の確認

Azure VM へ、ポート番号 60001, 60002 で RDP して動作を確認します。
なお、パブリックIPアドレスが付与されているのであれば、パブリックIPアドレス宛にRDPすることも可能です。

パブリックIPアドレス宛に、ポート番号60001を指定してRDPを試します。
image.png

接続できました。
DHCPで構成され、IPアドレス 192.168.0.50 を持つ Hyper-V VM へ接続できています。
image.png

なお、繋がらない場合は、以下のようなうっかりがないか確認します。
●Azure VM への通信をNSGで制御している場合には、受信ポートの許可規則を忘れず追加します。
image.png

image.png

●また、Hyper-V VM側での RDP の許可も忘れずに行います。
image.png

PowerShell サンプル

# 
# Hyper-V と DHCP 役割追加
#
Install-WindowsFeature -Name DHCP,Hyper-V -IncludeManagementTools

# 
# 一度再起動
# 
Shutdown -R

# 
# 仮想スイッチの作成
#
$switchName = "InternalNAT"
New-VMSwitch -Name $switchName -SwitchType Internal
New-NetNat -Name $switchName -InternalIPInterfaceAddressPrefix 192.168.0.0/24
$ifIndex = (Get-NetAdapter | ? {$_.name -like "*$switchName)"}).ifIndex
New-NetIPAddress -IPAddress 192.168.0.1 -InterfaceIndex $ifIndex -PrefixLength 24

# 
# DHCPの有効化
# 
Add-DhcpServerV4Scope -Name "DHCP-$switchName" -StartRange 192.168.0.50 -EndRange 192.168.0.100 -SubnetMask 255.255.255.0
Set-DhcpServerV4OptionValue -Router 192.168.0.1 -DnsServer 168.63.129.16
Restart-service dhcpserver

# 
# NAT設定の追加
# 
Add-NetNatStaticMapping -NatName "InternalNat" -Protocol TCP -ExternalIPAddress 0.0.0.0 -InternalIPAddress 192.168.0.50 -InternalPort 3389 -ExternalPort 60001

参考リンク

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?