Ubuntu 18.04LTSでAWS EC2のNATインスタンスを構築する
Ubuntu 18.04LTSでAWS EC2のNATインスタンスを構築する:
IPv6の無効化と、IPフォワーディングの有効化を行います。
NAPT(IPマスカレード)の設定を行います。
最初に、iptablesの設定永続化のために、iptables-persistentをaptインストールします。
次に、以下のコマンドを実行します。
あわせて、他のインスタンスより、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 --list
最後に、以下のコマンドを実行し、設定を保存します。
# service netfilter-persistent save
参考
- Ubuntuでiptablesを再起動後にも保持する方法
- natテーブルを利用したLinuxルータの作成 (2/6)
コメント
コメントを投稿