Wie richte ich mehrere IP-Adressen, die auf eine Instanz in EC2 verweisen, korrekt ein?

Wie richte ich mehrere IP-Adressen, die auf eine Instanz in EC2 verweisen, korrekt ein?

Ich habe derzeit eine EC2-Instanz, auf die ich 2 öffentliche IPs haben möchte, die darauf verweisen. Mir sind 2 EIPs zugewiesen, 2 Netzwerkschnittstellen, an die die EIPs angeschlossen sind und die beide an die einzelne EC2-Instanz angeschlossen sind, auf der Ubuntu 14.04.2 LTS läuft. Die zweite EIP und Netzwerkschnittstelle wurden vor Kurzem hinzugefügt und es wird tatsächlich ein eth1angezeigt, obwohl ich derzeit manuell ausführen muss dhclient, aber das ist nicht das Problem. Das Problem ist, dass keine Pakete durchkommen. Ich habe meine Sicherheitsgruppen dreimal überprüft, sie alle lassen Port 80 von jeder IP-Adresse aus zu. Das Hinzufügen einer Byte-Zählerregel zu iptables wie beispielsweise iptables -A INPUT -i eth1zeigt jedoch, dass genau 0 Pakete meinen Computer über die zweite Schnittstelle erreichen.

Ich habe gefunden und gelesenDasaber es hilft nicht.

Was übersehe ich? Habe ich vergessen, auf eine Schaltfläche zu klicken?

Antwort1

Ich habe eine ordnungsgemäß funktionierende EC2-Instanz mit 2 privaten IP-Adressen und 2 EIP, die mit ihnen verbunden sind, aber ich habe eine Subschnittstelle für die zweite IP verwendet, keine andere Netzwerkschnittstelle

Inhalt von /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

ich erinnere mich nicht mehr an den Grund, warum ich eth0:0 manuell eine IP-Adresse zugewiesen habe, aber dieses Setup funktioniert. Auch Tests mit

curl --interface PRIVATE_IP ifconfig.me

zeigt, dass ausgehender Datenverkehr von eth0 und eth0:0 tatsächlich vom richtigen EIP initiiert wird.

Antwort2

Mehr als ein Jahr später habe ich es endlich herausgefunden! Danke anDieser Artikel. In Summe:

Sofern Sie dies noch nicht getan haben, führen Sie dhclient auf der neuen Schnittstelle aus:

# dhclient eth1

Finden Sie dann heraus, was Ihre neue private IP-Adresse ist. Sie können entweder in der EC2-Konsole nachsehen oder ausführen

ip addr

Sie müssen auch die Gateway-IP kennen. In den meisten Fällen ist dies der Fall your.ip.0.1, aber um sicherzugehen, führen Sie Folgendes aus:

ip route

Und Sie sollten etwas wie Folgendes sehen:

default via 12.34.0.1 dev eth0

12.34.0.1ist in diesem Fall das Gateway. Zur Demonstration gehe ich davon aus, dass die private IP lautet 12.34.56.78. Führen Sie nun (als Root) Folgendes aus:

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

So testen Sie Ihre Konfiguration:

curl --interface 12.34.56.78 ifconfig.me

Um Ihre Änderungen dauerhaft zu machen, fügen Sie /etc/network/interfacesdiesen Befehlen und ihren Gegensätzen hinzu:

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

HINWEIS: Stellen Sie sicher, dass Sie über einen Snapshot Ihrer Instanz verfügen, bevor Sie die persistenten Netzwerkeinstellungen ändern, für den Fall, dass etwas kaputt geht und Sie nicht auf Ihre Instanz zugreifen können.

verwandte Informationen