我意识到这可能是一个非常基本的问题,但我似乎找不到对我有意义的答案。我有为 IPv4 配置网络的经验,但 IPv6 完全是另一回事。我正在努力解决这个问题。
我正在尝试将我的笔记本电脑配置为使用 IPv6。我将不得不在工作中开始处理 IPv6,所以我想我应该在本地进行尝试。我有几个关于地址配置的问题。
首先,基于这个网站我的 Linux 内核支持并配置为 IPv6。
$ [ -f /proc/net/if_inet6 ] && echo 'IPv6 ready system!' || echo 'No IPv6 support found! Compile the kernel!!'
IPv6 ready system!
$ lsmod | grep -qw ipv6 && echo "IPv6 kernel driver loaded and configured." || echo "IPv6 not configured and/or driver loaded on the system."
IPv6 kernel driver loaded and configured.
我可以使用 成功 ping 自己ping6 -wlan0 [ip6addr]
。我当前的IP是一个链接本地地址,据我了解我需要一个全局范围访问外部世界(例如 ipv6.google.com)。
- 我可以分配自己的全局范围 IP,还是需要让网络发现/DHCPv6 帮我处理这个问题?
- 如果是后者,我该如何配置我的系统来执行此操作?
- 如果是前者,那么我想我可以遵循这些说明。很像配置 IPv4。除了将前缀设置为 20XX 之外,我应该如何生成地址还有什么韵律或原因吗?
我还意识到我的无线路由器需要配置为 IPv6,但这不是这个问题的一部分。
答案1
Debian、Ubuntu 和其他 Linux 发行版已经为多个版本做好了 IPv6 准备。
- 您无法分配自己的全球 IPv6 地址,就像您无法分配自己的全球 IPv4 地址一样。您需要由您的 ISP 或 IPv6 提供商分配它。如果您连接到 IPv6 网络,您的计算机可能会使用
radvd
公告中的数据进行自动配置。 - IPv6 专为自动配置而设计。您可以通过列出您的 IPv6 地址(您可能有几个)来查看您是否已配置。尝试一下命令
ip -6 addr show
。起始地址fe80:
为链接本地地址。如果您有一个以 开头的地址2xxx:
,那么您就有一个全球 IPv6 地址。 - 有多种方法可以获得全局 IPv6 地址(和网络块):
- 如果您的 ISP 已准备好 IPv6,您应该能够从他们那里获取一个地址和至少一个 /64 网络块。
- 您可以使用 6to4 网络来获取基于 IPv4 地址的 IPv6 网络。这将从 2002 年开始:后面是您的十六进制 IPv6 地址。可以配置
radvd
为从 IPv4 地址派生 IPv6 网络块。 - 您可以使用 6in4 将 IPv6 网络通过隧道连接到隧道代理。在这种情况下,您将从隧道代理获取 IPv6 地址和网络块。如果您的 ISP 尚未准备好 IPv6,这是您的最佳选择。
如果您没有从 ISP 获取地址,那么当您的 ISP 准备好 IPv6 时,您的地址将会更改。使用多个 IPv6 地址和一些路由规则可以顺利完成此转换。
答案2
手动配置IPv6地址与手动配置IPv4地址基本相同。添加类似这样的内容/etc/network/interfaces
:
iface eth0 inet6 static
address 2001:db8:aa:bb::1a2b
netmask 64
gateway 2001:db8:aa:bb::1
如果您不想手动配置 IPv6,那就容易得多:只需确保您有一个具有 IPv6 连接且可以发送路由器通告 (RA) 消息的路由器即可。它们包含您的系统在允许自动配置的情况下进行自我配置所需的所有信息。或者他们会告诉您的系统联系有状态的 DHCPv6 服务器等。它们可以包含许多选项,但正如您所指出的,这不是您问题的一部分。
如果您希望通过 IPv6 连接到互联网,则可以从 ISP 获取 IPv6 地址。如果您只想在本地使用 IPv6 而无需互联网连接,那么您可以使用ULA(唯一本地地址)。您可以按照 RFC 中的说明自行生成这些地址,但您也可以使用 [SixXS ULA 工具[(https://www.sixxs.net/tools/grh/ula/) 或独特的本地 IPv6 生成器。