カテゴリー
Azure

ASDK上の仮想マシンに直接アクセスするためにNAT設定を追加する

ASDK上に立てた仮想マシンへのアクセス方式として、公式にドキュメントに記載されているのは以下のやり方がある。

  • ASDKホストマシンにリモートデスクトップして、その上でSSH/RDP接続する。
    ただし、ASDKホストマシンはWindows Serverベースのため、標準だと最大2セッションしか接続できないので、多数のユーザから同時にはアクセス出来ない。
  • Azure Stack PowershellおよびAzure Stack ToolsをセットアップしたPCから、ASDKホストマシンにVPN接続する。
    この場合は、リモートデスクトップの2セッション接続制限には引っかからないが、接続元となるPCに上記のツールをセットアップしてVPNを設定する必要がある。(ASDKをデプロイする度にこの設定をユーザにやり直してもらう)

その他、Azureと同様にVPN GatewayをセットアップしてP2S VPNを構成するとかは当然出来る。

ただ、いずれも、オンプレミスっぽい雰囲気でASDK上の仮想マシンを使いたいだけのユーザからするとちょっと……、ハードルが高い。

そのため、お手軽にオンプレミスっぽい感じで接続できるようにASDKホストマシン上でNATを設定して、さもその辺に仮想マシンが居るように見せかけることにした。

Fig. ASDKでNATを構成する概念図

ASDKホストマシンで実施する手順は以下の通り。

  1. NATオブジェクトを作成する
  2. NATオブジェクトに、接続用IPアドレスを追加する
  3. NATルールを作成し、仮想マシンのIPアドレス&Port番号と、接続用IPアドレス&Port番号のマッピングを設定する

NATオブジェクトを作成する

デフォルトで、ASDKとBGPルータの間でVPN接続するための”BGPNAT”という名前のNATオブジェクトが作成されているが、これは華麗に無視して別のNATオブジェクトを作成するのが吉。

New-NetNat -Name global -ExternalIPInterfaceAddressPrefix 192.168.1.0/24

NATオブジェクトに、接続用IPアドレスを追加する

ASDKホストマシンに割り当てられているIPアドレスとは別に、NAT専用のIPアドレスを設定するのが分かりやすいはず。もしASDKが接続されているセグメントに余裕があるなら、仮想マシンと1対1で設定してしまっても良いだろう。

Add-NetNatExternalAddress -NatName global -IPAddress 192.168.1.6 -PortStart 0 -PortEnd 65535

NATルールを作成し、仮想マシンのIPアドレス&Port番号と、接続用IPアドレス&Port番号のマッピングを設定する

Add-NetNatStaticMapping -NatName global -ExternalIPAddress 192.168.1.6 -Protocol TCP -ExternalPort 22 -InternalIPAddress 192.168.102.32 -InternalPort 22

後は、NATルールを作成するだけ。

で、繋いでみると、繋がる!!!
(ちなみにPingに応答しているのはASDKホストマシンのほう。NATルールにないのでASDKホストマシン側に着信している)

「ASDK上の仮想マシンに直接アクセスするためにNAT設定を追加する」への2件の返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です