web-dev-qa-db-ja.com

2番目のIPv4パブリックIPをAmazon Linux EC2インスタンスに追加する方法

EC2インスタンス(Linux OS)があり、それに2番目のネットワークインターフェイスを追加しました。公開Elastic IPを取得し、ネットワークインターフェイスに割り当てました。次に、EC2インスタンスにネットワークインターフェイスを割り当てました。

EC2インスタンスで実行すると

ifconfig

プライベートIPアドレスが正しく割り当てられたeth0およびeth1情報を取得します。 AWSでEC2インスタンスの「IPアドレスの管理」を選択すると、次のようになります。 enter image description here

両方のネットワークインターフェイスが同じサブネットとセキュリティグループに属しています。 eth0のパブリックIPをpingできますが、eth1のパブリックIPをpingできません。

何が欠けていますか?

更新:2番目のパブリックDNS(IP 52.27.x.x)は最初のIP 34.212.x.xとまったく同じであることに気付きました

3
user3299199

WindowsまたはAWS Linuxを使用している場合を除き、インターフェイスを手動で構成する必要があります。

複数のネットワークインターフェイスを持つAmazon LinuxまたはWindows Serverインスタンスを起動すると、インスタンスのオペレーティングシステムでインターフェイス、プライベートIPv4アドレス、およびルートテーブルが自動的に構成されます。

Best Practicesセクションには、同じサブネット上に2つ(またはそれ以上)のインターフェースがあることによる潜在的な問題についての警告もあります。

同じサブネットからインスタンスに2つ以上のネットワークインターフェースを接続すると、非対称ルーティングなどのネットワークの問題が発生する可能性があります。可能であれば、代わりにプライマリネットワークインターフェイスでセカンダリプライベートIPv4アドレスを使用してください。詳細については、「セカンダリプライベートIPv4アドレスの割り当て」を参照してください。

警告次の手順は、下記の2番目の参照、ymmvの解析済みバージョンです。

セカンダリインターフェイスを作成するために実行した手順は次のとおりです。

  1. / etc/sysconfig/network-scripts/ifcfg-eth1ファイルを次のように作成します。

    DEVICE=eth1
    NAME=eth1
    HWADDR=<value of link/ether from "ip a" command>
    BOOTPROTO=dhcp
    ONBOOT=yes
    TYPE=Ethernet
    USERCTL=no
    NM_CONTROLLED=no
    
  2. / etc/sysconfig/networkを編集して以下を追加します:

    GATEWAYDEV=eth0
    
  3. Cloud-initが変更を上書きしないようにするには、/ etc/cloud/cloud.cfgを編集して以下を追加します。

    network:
     ; config: disabled
    
  4. ネットワークを再起動します

    systemctl restart network
    
  5. セカンダリルーティングテーブルを作成する

    ip route add default via <default route ip from "ip route" output> dev eth1 table <new table number>
    
  6. ルートを新しいテーブルに追加する

    ip route add <secondary private ip> dev eth1 table <new table number from above>
    
  7. ポリシーデータベースにルールを設定する

    ip rule add from <secondary private ip> lookup 1000
    
  8. 静的ルートファイル/ etc/sysconfig/network-scripts/route-eth1を作成し、以下を追加します。

    default via <default route IP> dev eth1 table 1000
    <private ip> dev eth1 table 1000
    
  9. Rule-eth1/etc/sysconfig/network-scripts/rule-eth1のルールファイルを作成します。

    from <secondary private ip> lookup <new table number>
    

[〜#〜]ノート[〜#〜]

ステップ4で、ネットワークの再起動中にエラーが発生する場合があります。その場合は、ifcfg-eth0ファイルとpkill dhclientを移動/名前変更してください。次に、再起動時にそれを取得するために、ifcfg-eth0ファイルを元に戻す必要がありました。

参照

https://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/using-eni.html

https://aws.Amazon.com/premiumsupport/knowledge-center/ec2-centos-rhel-secondary-interface/

https://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/MultipleIP.html#ManageMultipleIP

2
kenlukas