Azure

AzureでNAT設置パターンを考える。構築編、これでルートテーブルも大丈夫かもよ。

はじめに

くどうです。
前回の投稿では概要だけ説明しました。
AzureでNAT設置パターンを考える。これでAWSからも移行できますね。

今回は、実際にNATを設置する方法えお、解説していきます。
鍛えられたAzurerさん達は見なくても大丈夫!

概要

概要を説明します。

プライベートセグメントから外部へ通信する場合、NATを利用して外部との通信を行います。
そのため、NATを設置しルーティングによりプライベートセグメントからのデフォルトルートをNATにします。
NATをデフォルトルートに設定する場合、UDRを設定します。UDRを設定する場合、仮想ネットワークへ所属している必要があります。制限事項になります。

今回、大きく分けて手順はい以下になります。
①仮想ネットワーク
②NATの構築
③ルーティングの設定

仮想ネットワーク

仮想ネットワークは1つ作成します。
その中でSubnetを3つ作成します。

以下の構成で作成していきます。

  • 仮想ネットワーク:vnet-1 日本(東) 10.0.0.0/16
  • Subnet1:Private-1 10.0.0.0/24
  • Subnet2:Private-2 10.0.1.0/24
  • Subnet3:Public-1 10.0.2.0/24
  • DNSは指定しない

1、左メニューからネットワークを開きます。下部「新規」から作成するか、右ペイン「仮想ネットワークの作成」をクリックします。

net_udr000

2、[名前]に[vnet-1]を入力します。[場所]に[日本(東)]を選択します。

net_udr001

3、[DNSサーバーおよびVPN接続]画面での変更点はありません。DNSで変更が必要な場合は変更してください。設定後でも変更は可能です。

net_udr002

4、[想ネットワーク アドレス空間]画面でCIDRを[/16(65536)]へ変更します。
サブネットに以下を入力します。
[Private-1] [10.0.0.0] [/24(256)]
[Private-2] [10.0.1.0] [/24(256)]
[Public-1] [10.0.2.0] [/24(256)]

net_udr003

5、以上で仮想ネットワークの作成が出来ました。
net_udr004

NATの構築

ここからは、NATを作成します。
以下の構成で作成します。

  • 各仮想マシンは仮想ネットワーク(vnet-1)に属します
  • NAT仮想マシン:lv69nat 10.0.2.10(IPアドレス固定)
  • 確認マシン1:lv69src1
  • 確認マシン2:lv69src1
  • クラウドサービスDNS名:lv69demo
  • 可用性セット:lv69ha(lv69src1とlv69src2が属します)
  • 各仮想マシンはCentOS7ベースのOpenLogic7.1を利用します
  • 各仮想マシンはBASIC A0サイズを利用します(確認のため)

NAT仮想マシンは、パブリックのセグメント(public-1)に配置します。デプロイ後ログインしNATの設定を行います。

1、左メニューから「仮想マシン」を選択します。「仮想マシンを作成する」をクリックします。
net_udr005

2、[ギャラリー]を選択します。
net_udr006

3、[イメージの選択]画面で、OpenLogic 7.1を選択します。6系を使いたい方はご自由に設定を行ってください。ここでは説明しません。
net_udr007

4、[仮想マシン名]に[lv69nat]と入力します。BASIC A0を選択します。認証では、キーの作成を行っていないのでパスワードを指定します。通常はキーを利用することをお勧めします。
net_udr008

5、[仮想マシンの構成]では[クラウドサービスDNS名]に[lv69demo]を入力します。[仮想ネットワーク]は[vnet-1]を選択します。[仮想ネットワーク サブネット]ではpublic-1を選択します。ストレージアカウントは事前に作成したものでも、自動作成された物でも構いません。制限事項ではありません。
net_udr009
net_udr010

6、VMエージェントは変更せずに完了します。以上で、NAT仮想マシンの作成は完了です。
net_udr011

7、デプロイ完了後、ダッシュボードを開きます。右ペインから、[SSH の詳細]を確認します。接続するための情報になります。Tera Term 等で接続します。
net_udr018

8、接続後、設定を行います。
IP Forwarding を有効にします。

再起動後も有効になるように /etc/sysctl.d/ip_forward.conf に設定します。

NATを有効にします。
CentOS7系ではiptablesは利用しません。Firewalldを利用します。
下記では、元々マスカレードの設定がされているzoneに変更します。

以上でNATの設定は完了です。
次に、NATするプライベートセグメントに確認用仮想マシンを設置します。

9、確認用仮想マシンの設置します。作成手順は1~3を繰り返します。[仮想マシンの構成]画面で、[仮想マシン名]を[lv69src1]を入力します。
net_udr012

10、[クラウドサービス]に[lv69demo]を選択します。[仮想ネットワーク]に[Private-1(10.0.0.0/24)]を選択します。[可用性セット]は[可用性セット作成]を選択し、[可用性セット名]に[lv69ha]を入力します。以上の設定で完了です。
net_udr013

12、確認用仮想マシンの設置します。作成手順は1~3を繰り返します。[仮想マシンの構成]画面で、[仮想マシン名]を[lv69src2]を入力します。
net_udr015

13、[クラウドサービス]に[lv69demo]を選択します。[仮想ネットワーク]に[Private-2(10.0.1.0/24)]を選択します。[可用性セット]は[lv69ha]を選択します。以上の設定で完了です。
net_udr016

ルーティングの設定

ルーティングの設定を行います。Azureでルーティングの設定を行う場合はAzure PowerShellを利用します。
Azure PowerShellの設定は完了していることを前提に解説していきます。Azure PowerShellがインストールされていない場合は、Web Platform Installerなどを利用してインストールしてください。

Azureでルーティングの設定は「User Defined Routes(ユーザー定義のルート)」(以下UDR)を利用します。UDR は、サブネットに定義することができます。
ネクストホップとて指定できるものは以下になります。

(以下マイクロソフトより転載:ユーザー定義のルートと IP 転送

  • Local: ローカルの仮想ネットワークを表します。たとえば、同じ仮想ネットワークに 10.1.0.0/16 と 10.2.0.0/16 の 2 つのサブネットがある場合、ルート テーブル内の各サブネットのルートは、次ホップの値が Local になります。
  • VPN Gateway:Azure S2S VPN ゲートウェイを表します。
  • Internet: Azure インフラストラクチャによって提供される既定のインターネット ゲートウェイを表します。
  • Virtual Appliance:Azure Virtual Network に追加した仮想アプライアンスを表します。この場合、転送先のアプライアンスをIP指定します。
  • NULL: ブラック ホールを表します。ブラック ホールに転送されたパケットはまったく転送されません。

今回は、NATのため Virtual Appliance を指定します。

1、PowerShellを開きます。最初に利用する、アカウントを追加します。

2、利用するサブスクリプションを選択します。
使用する、サブスクリプションを確認します。

IsCurrentが Falseをなっており、サブスクリプションが選択されていません。選択します。

Tureになっていること確認します。

3、最初にNAT仮想マシンを静的IPアドレスに変更します。

4、ルートテーブルを作成します。

5、ルートテーブルにルートを追加します。

6、ルートテーブルをサブネットに割り当てます。

実際にVMに適用されているルールを確認します。
natrouteが適用されていることが確認できます。

以上で設定が完了です。

確認作業として、lv69src1、lv69src2へlv69nat経由でログインします。
UDRを設定したため、private-1およびprivate-2のサブネットには直接ログインすることができません。

ログイン後、curlコマンドで確認してみましょう。ICMPは使用できません。
グローバルIPを取得してみます。

問題なく、外部から取得できていることが確認できました。

おわりに

今回は、NAT設置パターンでした。NATを設置するケース、ルートテーブルを設定する場合は多いです。プライベートセグメントのルートを変更する場合、VPNで接続した場合では、そちらに向けたりすることもあります。または、オンプレや他のクラウドサービスからの移行などのケースでも必要だと考えられます。Azureでもできることを覚えておくと良いでしょう。
ではでは、良いAzure Lifeを。

Related post

  1. Azure

    Azure Application Gateway で Let’s Encrypt も使えます。Le…

    はじめにくどうです4/12にLet’s EncryptがG…

  2. Azure

    Power BIはモテると誰かがいっていたのでOMSのデータを表示させてみる。

    はじめにくどうです。Power BIはモテると誰かが言って…

  3. Azure

    WindowsコンテナでWebサーバー!IISだって動きます!

    はじめにくどうです。前回のコンテナの基本的な扱いの続きです。今回は…

  4. Azure

    Azure RemoteApp でローカルのドライブを利用する。

    はじめにくどうです。RemoteAppでもローカル(クライアント)…

  5. Azure

    Azure PowerShell のインストールで注意すること。あれ? Azure Resource…

    はじめにくどうです。最近、PCを入れ替えてAzure PowerS…

  6. Azure

    ルートテーブルもPowerShellではなくポータルで設定できます。

    はじめにくどうです。本日2本目です。以前はルートテーブ…

  1. 未分類

    CentOSにHinemosをインストールする方法(4) クライアント編
  2. Azure

    ユーザーにパスワードリセットさせたいときはAzure Active Direct…
  3. Windows

    Windows Server 2012のパスワードを初期化しよう。
  4. Azure

    MCP 70-534 Architecting Microsoft Azure …
  5. Azure

    Cognitive ServicesでVideo APIを使ってみる。APIひと…
PAGE TOP