AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

iptables を使用して Amazon EC2 インスタンスをターゲットとする Gateway Load Balancer をテストする方法を教えてください。

所要時間3分
0

iptables を使用して、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスをターゲットとする Gateway Load Balancer をテストしたいと考えています。インスタンスは Amazon Linux 2023 を実行します。

簡単な説明

Amazon Linux 2023 を実行している Amazon EC2 インスタンスで iptables ルールを設定して、Gateway Load Balancer が環境内でどのように機能するかをテストします。Iptables ルールは、ファイアウォールの接続問題を特定するのにも役立ちます。Gateway Load Balancer がインスタンス経由でトラフィックを正常にルーティングしている場合は、接続の問題はファイアウォールに関連するものです。

iptables は、Gateway Load Balancer のテストにのみ使用してください。

解決方法

Gateway Load Balancer の IP アドレスを書き留めておきます。

iptables ルールで変数を設定するには、Gateway Load Balancer のエラスティックネットワークインターフェイス用の IP アドレスおよび、そのアベイラビリティーゾーンが必要です。

IP アドレスを特定するには、次の手順を実行します。

  1. Amazon EC2 コンソールを開きます。
  2. ナビゲーションペインで、[ネットワークインターフェイス] を選択します。
  3. [検索] を選択し、ドロップダウンリストから [説明] を選択します。
  4. [Description =] フィールドにお使いの Gateway Load Balancer の名前を入力してから、該当する Gateway Load Balancer を選択します。

Gateway Load Balancer で有効な各サブネットのネットワークインターフェイスのリストが表示されます。各ネットワークインターフェイスには、IP アドレスとアベイラビリティーゾーンが関連付けられています。

iptables ルールを設定する

SSH を使用して、Gateway Load Balancer の背後でターゲットまたはファイアウォールとして使用する EC2 インスタンスにアクセスします。以下のコマンド例では、Availability Zone A はソースゾーンであり、Availability Zone B と C は、そのソースゾーンがトラフィックを送信する先のゾーンです。

Gateway Load Balancerと EC2 インスタンスの IP アドレスを設定する

Gateway Load Balancerとインスタンスの IP アドレスを入力します。

export GWLB_IP_A=<GLWB ENI IP from Availability Zone A>  
export INSTANCE_IP=<EC2 instance's IP>

注: Availability Zone A の GLWB IP および EC2 インスタンスの IP は、お使いのもので置き換えてください。

(オプション) クロスゾーントラフィック用の追加テーブルの設定

クロスゾーントラフィックを有効にした場合は、次のコマンドを実行します。

export GWLB_IP_B=<GLWB ENI IP from Availability Zone B>  
export GWLB_IP_C=<GLWB ENI IP from Availability Zone C>

注: Availability Zone B GLWB ENI IP および Availability Zone C の GLWB ENI IP は、実際の値で置き換えてください。すべてのターゲット EC2 インスタンスにあるすべてのアベイラビリティゾーンに、Gateway Load Balancer のネットワークインターフェイス用の iptables ルールが必要です。

iptables を設定する

iptables をインストールして有効にするには、次のコマンドを実行します。

sudo sysctl -w net.ipv4.ip_forward=1  
sudo yum install -y iptables-services  
sudo systemctl enable iptables  
sudo systemctl start iptables

各組み込みチェーンのデフォルトポリシーを ACCEPT に設定する

デフォルトポリシーを設定するには、次のコマンドを実行します。

sudo iptables -P INPUT ACCEPT  
sudo iptables -P FORWARD ACCEPT  
sudo iptables -P OUTPUT ACCEPT

NAT をフラッシュし、テーブル、チェーンを破棄し (-F)、設定を削除する

NAT テーブルをフラッシュし、テーブル、チェ-ンをフラッシュし、設定を削除するには、次のコマンドを実行します。

sudo iptables -t nat -F  
sudo iptables -t mangle -F  
sudo iptables -F  
sudo iptables -X

トラフィックを Gateway Load Balancerに再ルーティングするように NAT テーブルを設定する

トラフィックを再ルーティングするには、次のコマンドを実行します。

sudo iptables -t nat -A PREROUTING -p udp -s $GWLB_IP_A -d $INSTANCE_IP -i enX0 -j DNAT --to-destination $GWLB_IP_A:6081  
sudo iptables -t nat -A POSTROUTING -p udp --dport 6081 -s $GWLB_IP_A -d $GWLB_IP_A -o enX0 -j MASQUERADE,/code>

(オプション) NAT ルールを追加してクロスゾーントラフィックを管理する

クロスゾーントラフィックの NAT ルールを追加するには、次のコマンドを実行します。

sudo iptables -t nat -A PREROUTING -p udp -s $GWLB_IP_B -d $INSTANCE_IP -i enX0 -j DNAT --to-destination $GWLB_IP_B:6081  
sudo iptables -t nat -A POSTROUTING -p udp --dport 6081 -s $GWLB_IP_B -d $GWLB_IP_B -o enX0 -j MASQUERADE  

sudo iptables -t nat -A PREROUTING -p udp -s $GWLB_IP_C -d $INSTANCE_IP -i enX0 -j DNAT --to-destination $GWLB_IP_C:6081  
sudo iptables -t nat -A POSTROUTING -p udp --dport 6081 -s $GWLB_IP_C -d $GWLB_IP_C -o enX0 -j MASQUERADE

iptables を保存する

iptables を保存するには、以下のコマンドを実行します。

sudo service iptables save

状態を確認する

iptables ルールが正しく設定されていることを確認するには、以下のコマンドを実行します。

sudo service iptables status

Gateway ロードバランサーのヘルスチェックを実行する

Gateway ロードバランサーの正常性を確認するには、次のコマンドを実行します。

sudo su  
yum install -y httpd  
service httpd start  
chkconfig httpd on  
echo "Health check page" >>/var/www/html/index.html  
exit
AWS公式
AWS公式更新しました 6ヶ月前
コメントはありません

関連するコンテンツ