无法从外部访问 IPv6 VPC 中的 EC2 - 为什么?

0

【以下的问题经过翻译处理】 大家好,

我在eu-west-1区域设置了一个支持IPv6的测试服务器(t2.small),运行的是Ubuntu 16.04.1。VPC分配了IPv6,子网也有IPv6的/64地址范围。NAT互联网网关和IPv6出口互联网网关都已设置在主路由表中,分别适用于0.0.0.0/0和::/0前缀。

与子网相关联的网络ACL允许从::/0进出的流量。同样,与实例关联的安全组允许从::/0进入的流量访问tcp:80、tcp:443端口以及来自::/0的IPv6 ICMP流量。

附加到虚拟机的网络接口有一个永久分配的IPv6地址(2a05:d018:n:n::23)。

从正在运行的实例中,我可以通过tcpdump看到IPv6流量正常传输,例如:

10:56:42.285595 IP6 2a05:d018:n:n::23.123 > 2001:67c:1560:8003::c7.123: NTPv4, Client, length 48 10:56:42.296728 IP6 2001:67c:1560:8003::c7.123 > 2a05:d018:n:n::23.123: NTPv4, Server, length 48

然而,尝试通过其IPv6地址从互联网访问服务器时 - 无论是通过诸如https://www.sprint.net/lg/lg_start.php的在线测试工具ping,还是尝试从家中访问网站(具有长期有效的、无过滤的IPv6连接性),都会失败。

通过tracepath6,到服务器的某些跳中断:

9: 2600:9000:eee::1c7 40.986ms asymm 18 10: 2a01:578:0:10::c 40.118ms asymm 17 11: no reply 12: 2a01:578::1 40.245ms asymm 14 13: no reply 14: 2a01:578::13 41.313ms 15: 2a01:578:0:10::8

而且VM的tcpdump中甚至没有显示ping和http请求。

我目前陷入困境,无法确定哪些配置可能错了,或者是什么原因导致了连接失败。希望能得到有益的帮助。

最好的问候, Dominik

profile picture
EXPERTE
gefragt vor 5 Monaten47 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 好的,我进行了一些测试,以下是结果。

我决定使用我的Windows 2012服务器实例,并确定IPv6在该实例上工作正常。然后我查看了该Windows机器上的默认路由(在我的Ubuntu实例中缺失):

> route print […] IPv4 Route Table

Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 172.31.16.1 172.31.xx.xx 10 […] IPv6 Route Table

Active Routes: If Metric Network Destination Gateway 12 266 ::/0 fe80::be:a9ff:fede:cc05

由于我的两个实例都在同一个子网上,我相信相同的网关IPv6地址也适用于我的Ubuntu实例,因此我输入了以下命令:

$ route -A inet6 add default gw fe80::be:a9ff:fede:cc05 eth0

$ route -A inet6 | grep eth0 2600:xx:xx:xx::1:1/128 :: U 256 0 0 eth0 fe80::/64 :: U 256 0 0 eth0 ::/0 fe80::be:a9ff:fede:cc05 UG 1 0 0 eth0 ff00::/8 :: U 256 2 0 eth0

$ ip -6 route show 2600:xx:xx:xx::1:1 dev eth0 proto kernel metric 256 fe80::/64 dev eth0 proto kernel metric 256 default via fe80::be:a9ff:fede:cc05 dev eth0 metric 1

现在一切都正常:我可以从我的实例访问IPv6互联网主机,我的实例也可以被IPv6互联网客户端访问。我在启用IPv6的测试站点上放了一个测试CGI脚本:

http://www.kadifeli.name.tr/cgi/sysinfo.pl

您可以在脚本输出的末尾看到客户端和我的服务器IPv6地址(REMOTE_ADDR和SERVER_ADDR)。

--

DominikN,

我认为您的问题在于您正在使用“仅出口互联网网关”( Egress Only Internet Gateway)。我删除了我的“仅出口互联网网关”,目前只使用我的“互联网网关”(Internet Gateway,IGW),也不需要“NAT互联网网关”。

我的路由表如下:

Destination Target Status Propagated 172.31.0.0/16 local Active No 2600:xx:xx:xx::/56 local Active No 0.0.0.0/0 igw-xxxx Active No ::/0 igw-xxxx Active No

(注意:IPv4和IPv6使用相同的IGW网关!)

网络ACL允许“::/0”的入站和出站流量。

实例的安全组允许“::/0”的“全部流量”(出站规则)。入站规则基于协议/端口/源的基础上是允许的,例如:

HTTP (80) TCP (6) 80 ::/0 HTTPS (443) TCP (6) 443 ::/0 All ICMP - IPv6 IPv6-ICMP (58) ALL ::/0

最后一句话: 当eth0启动并且我不得不手动添加它时,我仍然困惑于为什么默认的IPv6路由没有自动添加到我的Ubuntu 14.04.5 LTS实例中...

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen