Ich versuche, OpenVPN unter Amazon Linux zu verwenden, um das lokale LAN mit einer VPC unter EC2 zu verbinden. Ich habe Datenverkehr von der OpenVPN-Instanz zu einem Computer im LAN, aber andere Computer in der VPC sehen keinen Datenverkehr vom LAN.
Hier ist eine gekürzte Version des Netzwerks:
Local network / EC2 VPC, 10.2.0.*/255.255.255.0
10.1.0.*/ ,'
255.255.255.0 ,'
.'
|
+---------------+ |
| OpenVPN on | |
| firewall XXX | +---------------+
| 10.1.0.1 | XXXX | OpenVPN server|
+------`.-------+ \ XX 10.2.0.10 `-. +-------------+
\ '. +---------------+ `-. Second server
+--------`.---+ | | 10.2.0.12 |
|Local server | \ +-------------+
| 10.1.0.3 | \
+-------------+ \
Vom EC2 OpenVPN-Server:
[root@ip-10-2-0-10 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.2.0.1 0.0.0.0 UG 0 0 0 eth0
10.1.0.0 10.1.2.5 255.255.255.0 UG 0 0 0 tun0
10.1.2.0 10.1.2.5 255.255.255.0 UG 0 0 0 tun0
10.1.2.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.2.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
[root@ip-10-2-0-10 ~]# ping -c 2 10.1.0.3
PING 10.1.0.3 (10.1.0.3) 56(84) bytes of data.
64 bytes from 10.1.0.3: icmp_seq=1 ttl=127 time=488 ms
64 bytes from 10.1.0.3: icmp_seq=2 ttl=127 time=54.9 ms
--- 10.1.0.3 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1056ms
rtt min/avg/max/mdev = 54.925/271.767/488.609/216.842 ms
Von der LAN-Firewall:
root@firewall:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 xxx.xxx.xxx.xxx 0.0.0.0 UG 0 0 0 eth0.2
10.1.0.0 0.0.0.0 255.255.255.0 U 0 0 0 br-lan
10.1.2.0 10.1.2.2 255.255.255.0 UG 0 0 0 tun0
10.1.2.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.2.0.0 10.1.2.2 255.255.255.0 UG 0 0 0 tun0
Vom zweiten Server auf EC2:
[root@ip-10-2-0-12 ~]# ping -c 3 10.1.0.3
PING 10.1.0.3 (10.1.0.3) 56(84) bytes of data.
--- 10.1.0.3 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 12014ms
Hier ist jedoch der Kicker. Wenn Sie einen tcpdump auf dem EC2 OpenVPN-Server ausführen, wird der gesamte Datenverkehr wie folgt angezeigt:
[root@ip-10-2-0-10 ~]# tcpdump -i eth0 -n host 10.1.0.3
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
13:46:58.779826 IP 10.2.0.12 > 10.1.0.3: ICMP echo request, id 21846, seq 1, length 64
13:46:58.852756 IP 10.1.0.3 > 10.2.0.12: ICMP echo reply, id 21846, seq 1, length 64
13:46:59.787467 IP 10.2.0.12 > 10.1.0.3: ICMP echo request, id 21846, seq 2, length 64
13:46:59.847424 IP 10.1.0.3 > 10.2.0.12: ICMP echo reply, id 21846, seq 2, length 64
Tcpdump auf dem zweiten Server in EC2 zeigt nur die Echoanforderung und keine Antworten an.
- IPtables-Firewalls sind auf allen EC2-Instanzen deaktiviert.
- Die IP-Weiterleitung wurde auf dem OpenVPN-Server aktiviert.
- Die EC2-Sicherheitsgruppe, für die sowohl der OpenVPN-Server als auch der zweite Server so eingestellt sind, dass der gesamte Datenverkehr von 10.0.0.0/8 und die Netzwerk-ACLs weit geöffnet sind.
Es scheint, dass dieser Datenverkehr von Amazon gelöscht wird, der außerhalb der VPC stammt, unabhängig von den Einstellungen der Sicherheitsgruppe.
Fehlt mir etwas, das dazu führen würde, dass dieser Verkehr unterbrochen wird?
quelle
Antworten:
Es stellte sich heraus, dass EC2 die weitergeleiteten Pakete vom OpenVPN-Server blockierte.
Im EC2-Dashboard gibt es eine Einstellung unter Netzwerk & Sicherheit -> Netzwerkschnittstellen -> Aktionen -> Quelle / Ziel ändern. Prüfen.
Wenn ich dies auf allen meinen Instanzen deaktiviert habe, fließt der Datenverkehr über das VPN wie beabsichtigt.
Hoffentlich hilft das jemand anderem.
quelle
Du hast mich auf deine eigene Antwort geschlagen, also werde ich es ein wenig erweitern ...
Wenn Sie dies in Ihr Instanz-Bootstrap-Skript einbauen müssen, können Sie dem Benutzerdatenblock Folgendes hinzufügen (beim Starten der Instanz finden Sie unter Schritt 3, Konfigurieren von Instanzdetails ... den Abschnitt Erweiterte Details am Ende der Seite ) für die Instanz ... Aktualisieren Sie Zeile 3 für die richtige Region:
... und wenn es sich um eine NAT-Instanz handelt, können Sie Ihre Routentabelle ändern, indem Sie diese Zeile hinzufügen (aktualisieren Sie die Routentabellen-ID für die von Ihrer VPC verwendete Routentabellen-ID):
Damit dies funktioniert, benötigt Ihre Instanz Rechte, um das Attribut zu aktualisieren und die Route zu ersetzen. Sie können dies mit einer EC2-Rolle mit der folgenden Richtlinienanweisung erreichen und dann den Richtliniennamen im Feld IAM-Rolle (ebenfalls im Feld) angeben Schritt 3 des EC2-Assistenten (Konfigurieren von Instanzdetails):
quelle