
現在、2 つのパブリック IP をポイントしたい ec2 インスタンスが 1 つあります。割り当てられた EIP が 2 つあり、EIP がアタッチされているネットワーク インターフェイスが 2 つあり、どちらも ubuntu 14.04.2 LTS を実行している単一の EC2 インスタンスにアタッチされています。2 つ目の EIP とネットワーク インターフェイスは最近追加されたもので、確かに がポップアップeth1
表示されますが、現在は を手動で実行する必要がありますがdhclient
、それが問題ではありません。問題は、パケットがまったく通過しないことです。セキュリティ グループを 3 回確認しましたが、すべてどの IP アドレスからでもポート 80 を許可しています。ただし、次のようなバイト カウンター ルールを iptables に追加すると、iptables -A INPUT -i eth1
2 つ目のインターフェイスを介してマシンに到達しているパケットが 0 個であることがわかります。
私は見つけて読んだこれしかしそれは役に立ちません。
何が足りないのでしょうか? クリックし忘れたボタンがあるのでしょうか?
答え1
2つのプライベートIPアドレスと2つのEIPが接続された正常に動作するEC2インスタンスがありますが、2番目のIPには別のネットワークインターフェースではなくサブインターフェースを使用しました。
/etc/network/interfaces の内容 (debian wheezy)
auto lo
iface lo inet loopback
auto eth0 eth0:0
iface eth0 inet dhcp
post-up ifconfig eth0:0 172.31.xx.yy netmask 255.255.240.0 up
eth0:0に手動でIPアドレスを割り当てた理由は覚えていませんが、この設定は機能します。また、
curl --interface PRIVATE_IP ifconfig.me
eth0 および eth0:0 からの送信トラフィックが実際に正しい EIP から開始されていることがわかります。
答え2
1年以上経って、ようやく解決しました!この記事。 要約すれば:
まだ実行していない場合は、新しいインターフェースで dhclient を実行します。
# dhclient eth1
次に、新しいプライベートIPアドレスを確認します。EC2コンソールで確認するか、次のコマンドを実行します。
ip addr
ゲートウェイ IP も知っておく必要があります。ほとんどの場合は ですyour.ip.0.1
が、念のため次のコマンドを実行します。
ip route
次のような画面が表示されます:
default via 12.34.0.1 dev eth0
12.34.0.1
この場合はゲートウェイです。デモではプライベート IP が であると仮定します12.34.56.78
。次に (root として) を実行します。
ip rule add from 12.34.56.78 table 1000
ip route add default via 12.34.0.1 dev eth1 table 1000
ip route flush cache
構成をテストするには:
curl --interface 12.34.56.78 ifconfig.me
次に、変更を永続的にするには、/etc/network/interfaces
次のコマンドとその反対のコマンドを追加します。
auto eth1
iface eth1 inet dhcp
up ip rule add from 12.34.56.78 table 1000
up ip route add default via 12.34.0.1 dev eth1 table 1000
down ip rule del from 12.34.56.78 table 1000
down ip route del default via 12.34.0.1 dev eth1 table 1000
注意: 何か問題が発生してインスタンスにアクセスできなくなる場合に備えて、永続的なネットワーク設定を変更する前に、インスタンスのスナップショットがあることを確認してください。