现在, 亚马逊已经扩展了对VPC的IPv6支持,包括eu-west-1在内的全球大部分地区,我试图让我的实例连接起来。 不幸的是我不能路由工作。
我遵循迁移指南中的步骤,即我已经将IPv6 CIDR关联到我们的VPC,将其一部分分配给我们的“公共”子网,更新了VPC路由表以通过igw发送::/0互联网网关),确保将路由表分配给公有子网,并从控制台为新的Ubuntu 16.04实例分配IPv6地址。
然后,我通过将iface eth0 inet6 dhcp添加到networking设置并重新启动,将Ubuntuconfiguration为通过DHCPv6获取分配的地址。
当我重新启动实例时,启动需要几分钟的时间,但最终我可以login并显示ip as显示configuration的IPv4和全局IPv6地址。
但是,v6networking不工作:
# ping6 www.google.com connect: Network is unreachable
路由表确实缺less默认路由:
# ip -6 route 2001:DB8:1234:1234:1234:1234:1234:1234 dev eth0 proto kernel metric 256 fe80::/64 dev eth0 proto kernel metric 256 mtu 9001
手动添加默认的v6路由,通过ip -6 route add default dev eth0导致一个路由表,看起来是正确的:
# ip -6 route 2001:DB8:1234:1234:1234:1234:1234:1234 dev eth0 proto kernel metric 256 fe80::/64 dev eth0 proto kernel metric 256 mtu 9001 default dev eth0 metric 1024
不幸的是,这导致了一个不同的错误:
# ping6 www.google.com PING www.google.com(dh-in-x6a.1e100.net) 56 data bytes From dh-in-x6a.1e100.net icmp_seq=1 Destination unreachable: Address unreachable From dh-in-x6a.1e100.net icmp_seq=2 Destination unreachable: Address unreachable From dh-in-x6a.1e100.net icmp_seq=3 Destination unreachable: Address unreachable
是不是DHCPv6客户端应该照顾添加默认路由? 那为什么我还不能到达外面的世界?
你的路由表看起来不正确。 这条线看起来非常错误:
default dev eth0 metric 1024
这条线说,整个互联网直接连接到你的eth0接口,而不需要通过任何中间路由器。 这将导致您的系统发送neighor发现请求到LAN上为它尝试达到的每个主机。 如果该主机没有直接连接到您的局域网,它将不会看到邻居发现请求。
所以你不能期望任何东西与该路由表一起工作。 使用某些路由器,可以configuration邻居路由器来解决您的configuration错误。 但是你不应该指望它。 相反,你应该找出正确的网关地址,并configuration它。
下面是一个具有function连接的特定机器上的路由表项的例子:
default via fe80::1 dev eth0 metric 1024 advmss 1220
via fe80::1部分是缺less你的东西。 您应该使用的地址可能与fe80::1不同,您需要询问您的提供商使用的网关地址,如果他们没有告诉您的话。 我主要看到的提供商select寻址网关的两种方式是fe80::1或/64前缀后跟::1 ,在你的情况下将变成2001:DB8:1234:1234::1 。
advmss 1220部分不是绝对必要的,但我将它包括在内,因为它可以解决一些MTU问题。
一旦修复了路由表条目,接下来要testing的步骤就是validation路由器是否显示在邻居caching中。 然后使用traceroute6或mtr来查看在丢失数据包之前你能得到多less数据包。
原来我错过了移植指南中的一步。
当在现有的VPC上启用IPv6时,如果您对默认设置进行了修改,则必须手动更新某些内容,如路由表和安全组。
我已经更新了我们的路由表(按照http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-migrate-ipv6.html#vpc-migrate-ipv6-routes )和安全组(按照http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-migrate-ipv6.html#vpc-migrate-ipv6-sg-rules ),但忘记了更新我们的networkingACL,如上所述相同的页面。
所以,我有效地防火墙所有的IPv6stream量。 为::/0添join站和出站ALLOW规则解决了我的问题为Ubuntu 16.04 。
对于Ubuntu 14.04 ,在Amazon的迁移指南中实际上存在一个错误,该错误已经被修复。 将iface eth0 inet6 dhcp添加到/etc/networking/interfaces.d/eth0.cfg的build议不起作用,导致configuration的IPv6地址,但缺less默认路由。
相反,当接口出现时,我必须启动dhcp-client,如下所示: up dhclient -6 。 我在/etc/networking/interfaces.d/eth0.cfg文件中结束了以下工作configuration:
# The primary network interface auto eth0 iface eth0 inet dhcp up dhclient -6 -v -pf /run/dhclient6.$IFACE.pid -lf /var/lib/dhcp/dhclient6.$IFACE.leases $IFACE
看来亚马逊已经更新了他们的迁移指南来说类似的东西( http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-migrate-ipv6.html#ipv6-dhcpv6-ubuntu-14 )。