Ubuntu 18.04LTSでAWS EC2のNATインスタンスを構築する

Ubuntu 18.04LTSでAWS EC2のNATインスタンスを構築する:


前提条件(事前準備)

  • Ubuntu 18.04LTS がインストールされたEC2インスタンスを用意します。

    • インスタンスタイプは最初はt2.nanoやt2.microで問題ありません。(パフォーマンスが出ない場合は、上位のインスタンスタイプへ変更します)
    • ストレージは8GB(デフォルト)で十分足ります。
    • 無くても動きますが、必要に応じてSWAPも追加します。
  • NATインスタンスを配置するVPCサブネットに関連付けられたルートテーブルの0.0.0.0/0には、インターネットゲートウェイをアタッチしておきます。


sysctl.confの設定

IPv6の無効化と、IPフォワーディングの有効化を行います。

# echo "net.ipv4.ip_forward = 1 >> /etc/sysctl.conf" 
# echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf 
# echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf 
# sysctl -p 


iptablesの設定

NAPT(IPマスカレード)の設定を行います。

最初に、iptablesの設定永続化のために、iptables-persistentをaptインストールします。

# apt update && apt install -y iptables-persistent 
次に、以下のコマンドを実行します。

iptables -t nat -A POSTROUTING -o eth0 -s <IPv4 CIDR> -j MASQUERADE 

  • <IPv4 CIDR>には、VPC全体のIPアドレス範囲を、IPアドレス(ネットワークアドレス)/サブネットマスク(マスクbit数) の初期で指定します。例えば、10.0.0.0/16というVPCが存在する場合は、それを<IPv4 CIDR>として指定します。
  • NATインスタンス経由で通信させたいサブネットを限定したい場合は、AWSマネジメントコンソールのVPCダッシュボードの「ルートテーブル」で次の通り設定を行います。

    • 「ルート」で、送信先を0.0.0.0/0、ターゲットをNATインスタンスのEC2 インスタンスIDとするルートを追加します。
    • 「サブネットの関連付け」で、 NATインスタンス経由で通信させたいサブネットの関連付けを行います。
設定完了後、iptablesに正しく設定されたことを以下のコマンドを実行して確認します。

# iptables --list 
あわせて、他のインスタンスより、NATインスタンス経由で通信が行える(インターネット側のリソースにアクセスできる)ことを確認します。

最後に、以下のコマンドを実行し、設定を保存します。

# service netfilter-persistent save 


参考

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2020-12-01 09:41:49 RSSフィード2020-12-01 09:00 分まとめ(69件)