AzureでNATインスタンスを構成します。
構成手順について、クラシックモデルの時は一部PowerShellによる設定が必要でしたが、ARMになってからはAzureポータルだけで完結するようになりました。

NATインスタンスにするVM作成

まずはVMを立てます。OSとしては何ら特別なことをするわけでもないのでよくあるCentOSで構成してみます。

VM構成

    1. [+新規] > 検索欄に[centos]を入力
    2. [CentOS-based 7.2]を選択します。
    3. デプロイモデルは[リソース マネージャー]を選択し、[作成]ボタンを選択します。
    4. 仮想マシンの作成画面が表示されます。

      設定項目と値は下記のようにしてみました。

      項目
      名前 nat01
      VM disk type
      ○ Premium(SSD)
      ● Standard
      ユーザー名
      azure-user
      認証の種類 ○パスワード
      ●SSH鍵
      Password
      SSH public key 公開鍵の中身を貼り付け
      サブスクリプション 無料試用版
      リソースグループ 既存のものを使用
      リソースグループ名 rg_cns
      場所 東日本

    5. VMの性能を決める選択肢が提示されますが、NAT目的だけにしてはちょっとお高いので[すべて表示]。

      F1S Standardが安いですね。
      このFシリーズもDv2シリーズと同じく、2.4 GHz Intel Xeon® E5-2673 v3 (Haswell)を使っているやつで性能良いようです。
      Aシリーズは安いんですけどコアあたりのCPU性能はコレの半分程度です。要注意。
      Virtual Machinesの価格

    6. インスタンスタイプを選択すると、オプション機能の構成画面が表示されます。ネットワーク セキュリティ グループを作成済みのものに切り替えます。


    7. 拡張機能も使うと色々できて嬉しそうです。
      Acronis、 Deep Security、Chef等見慣れたものから、DataDogとかクラウドサービスと連動するものまで。
    8. 一通り設定したので[OK]ボタンを選択します。
    9. 検証に成功したら[OK]ボタンを選択します。
    10. 仮想マシンのデプロイが開始されます。
    11. デプロイが完了すると仮想マシンの概要が表示されます。

VMへのSSH接続

    1. TeraTermでパブリックIPに接続します。
    2. VM作成時に指定した公開鍵に対応する秘密鍵を指定して接続します。
    3. 接続できました!

NATインスタンスとしての設定

VMは出来たので、ここからが本文です。OS設定は勿論行いますが、ネットワークインターフェースに対して、NATインスタンスならではの設定が必要です。

OS設定

    1. まずはIPフォワード設定を実施します。
      sysctl -w net.ipv4.ip_forward=1
      echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.d/ip_forward.conf
      
    2. 続いてファイアウォール設定です。
      systemctl start firewalld
      systemctl enable firewalld
      firewall-cmd --set-default-zone=external
      firewall-cmd --reload
      

静的IP設定

    1. NATインスタンスのIPを静的IPに変更します。
      [すべてのリソース] > [NATインスタンス] > [ネットワーク インターフェース] > [ネットワーク インターフェースの名前]と選択します。
    2. [IP configurations]を選択すると、IP 転送設定画面が表示されるので、IP 転送を[無効]に設定します。次いで名前を選択するとプライベート IP アドレスの設定画面が表示されるので、割り当てを[静的]に設定します。後はそれぞれ[保存]ボタンを選択します。

ルートテーブル設定

    1. [すべてのリソース] > [rt_private](プライベートサブネット向けのルートテーブル)と選択し、続いて[ルート]を選択します。
    2. [+追加]を選択し、NATインスタンス向けのルートを追加します。

      項目
      ルート名 nat
      アドレスプレフィックス 0.0.0.0/0
      次ホップの種類 仮想アプライアンス
      次ホップアドレス NATインスタンスのプライベートアドレス

NAT試験

    1. プライベートセグメントに立てた仮想マシンからインターネットアクセスに成功することを確認します。
      curl -I http://www.cns.co.jp
      HTTP/1.1 200 OK