我正在为 IPv6 家庭设置而苦恼。说实话,我不太懂网络。
我的 ISP 通知我去年他完全支持 IPv6。
从那时起我就没能在我的路由器上设置它。我告诉他们了,但他们不太在意,因为几乎所有的网络都支持双栈/IPv4。
因此,他们只来过一次检查问题是否出在他们那边:他们声称问题不在于他们,要么是我的操作系统(Windows 10 Pro、Linux Mint 19.0 Cinnamon、Android 7.0)及其设置有问题,要么是路由器设置不当。
问题
由于我确信在上述所有系统中都启用了 IPv6,所以我意识到也许我的路由器老的,请理解为不再支持,型号为:TP-Link Archer C5 v1.2固件已过时2015-04-28。
有时,甚至是今天早上,我都能够从 DHCPv6 获取如下设置:
IP: 2a02:768:7c00:14a:32b5:c2ff:feb9:c8f3/64
Gateway: fe80::225:90ff:fef5:7c13
DNS1: 2a02:768:0:1010::3
DNS2: 2a02:768:0:1010::2
问题(原文)
上述设置在技术上是否正确,我的意思是我认为网关可能是仅限本地的地址,这是我无法浏览仅限 IPv6 的网站的问题吗?
更新-OpenWrt
我对 OpenWrt 还很陌生。请指导我。谢谢。
我已设法将 OpenWrt 18.06.1 上传到我的路由器,并使 Wifi 5G 和 2.4G 均正常工作,并使用公共静态 IPv4 地址。
基本信息
- 型号:TP-Link Archer C5 v1
- 架构: Qualcomm Atheros QCA9558 ver 1 rev 0
- 固件版本:OpenWrt 18.06.1 r7258-5eb055306f / LuCI openwrt-18.06 分支(git-18.228.31946-f64b152)
- 内核版本:4.9.120
我能够通过 SSH 连接到路由器root
。以下是最基本的信息。
# cat /etc/config/network
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fd62:320d:015a::/48'
config interface 'lan'
option type 'bridge'
option ifname 'eth1.1'
option proto 'static'
option ipaddr '192.168.0.1'
option netmask '255.255.255.0'
option ip6addr '2a02:768:7c00:14a:32b5:c2ff:feb9:c8f3/64'
option ip6gw 'fe80::225:90ff:fef5:7c13'
config interface 'wan'
option ifname 'eth0.2'
option proto 'static'
option ipaddr '10.7.113.62'
option netmask '255.255.255.252'
option gateway '10.7.113.61'
option dns '8.8.8.8 10.255.255.10'
config interface 'wan6'
option ifname 'eth0.2'
option proto 'static'
config switch
option name 'switch0'
option reset '1'
option enable_vlan '1'
config switch_vlan
option device 'switch0'
option vlan '1'
option ports '2 3 4 5 0t'
config switch_vlan
option device 'switch0'
option vlan '2'
option ports '1 6t'
# cat /etc/config/dhcp
config dnsmasq
option domainneeded '1'
option localise_queries '1'
option rebind_protection '1'
option rebind_localhost '1'
option local '/lan/'
option domain 'lan'
option expandhosts '1'
option authoritative '1'
option readethers '1'
option leasefile '/tmp/dhcp.leases'
option resolvfile '/tmp/resolv.conf.auto'
option nonwildcard '1'
option localservice '1'
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '150'
option dhcpv6 'server'
option ra 'server'
option force '1'
option ra_management '1'
option leasetime '15m'
option ra_default '1'
config dhcp 'wan'
option interface 'wan'
option ignore '1'
option ra 'server'
option dhcpv6 'server'
option ra_management '1'
list dns '2a02:768:0:1010:0:0:0:3'
list dns '2a02:768:0:1010:0:0:0:2'
config odhcpd 'odhcpd'
option maindhcp '0'
option leasefile '/tmp/hosts/odhcpd'
option leasetrigger '/usr/sbin/odhcpd-update'
option loglevel '4'
回答评论:
你能 ping ipv6.google.com 吗?IP 地址看起来合乎逻辑。还值得一提的是你的 ISP 设置是什么 - 我必须在他们的论坛上找到我的设置,并且设置会根据你使用的是有线还是光纤而有所不同。一些本地知识可能会在这里有用。
无法
ping6
。100%数据包丢失。ISP 设置 - 见下文。
我使用的是普通电缆 = 以太网 = 大约 20/10 Mbit/s。
问我任何事情。
GUI 中的当前状态:
我尝试过使用 DHCPv6,但没有成功。这就是我发布此问题的原因。
互联网服务提供商
名称: Starnet sro
ASN:44489,看这里
IPv6 分配:他们告诉我他们使用采用 DHCPv6 的本机 IPv6。
DHCPv6
ISP 告知我,他们通过 DHCPv6 自动分配前缀,目前无法进行静态配置。
因此,我删除了所有静态设置,并打开了 DHCPv6,并强制请求 64 个前缀。
在我点击申请在 WAN6 部分启用 DHCPv6 之前,它看起来像这样:
network.wan6.proto=dhcpv6
network.wan6.reqaddress=force
network.wan6.reqprefix=64
这并没有改变任何事情,更重要的是,IPv6 上行链路显示为灰色,表示未配置。
鉴于他们想要一大笔钱,却不保证他们的技术人员能替我解决问题,我在此为这个问题提供丰厚的赏金。
我将尝试编辑这个问题,以便您每次问我新问题时都能更清楚地理解。
我连续 3 天每天都浏览 OpenWrt 界面,但也许我发现了一些新的东西(至少对我来说),它被称为 VLAN,我不知道它的用途是什么,所以我发布了它:
互联网服务提供商 StarNet
我发现他们的网站上确实有一些不太有价值的信息:
http://www.starnet.cz/info/ipv6
例如,您可以轻松地通过 Google 进行翻译。
另一件事证实了,我发现他们的Facebook 页面:
前缀是 64。他们还计划制作 56。
Ping6
在当前设置下,直接从 LuCI(GUI)界面,当我尝试时ping6
ipv6.google.com
,我得到:
PING ipv6.google.com (2a00:1450:400d:805::200e): 56 data bytes
ping6: sendto: Permission denied
漏洞?
我发现了与我的版本完全相同的错误报告:
https://bugs.openwrt.org/index.php?do=details&task_id=1763
该人建议降级到 17.0.1.5 解决 IPv6 问题,有谁能帮我看一下那个错误报告,我不太明白。
漏洞已确认
该错误报告完全正确,我不明白为什么它没有被分配或者为什么它的优先级很低,但我能够在 17.x 固件上获取 IPv6 地址前缀:
舱口
我没有来自 17.x 固件的互联网连接,只能直接从路由器 ping 和 ping6,请帮我解决这个问题。
IPv6 上游终于上线了!
降级到 17.x 后,客户端无法连接互联网,但升级回 18.x 固件后,IPv6 上游终于打开了。
局域网 IPv6
最后一步应该是为客户端启用 IPv6。我的 Windows / Linux / Android 上没有 IPv6,所以出了点问题,但我不知道是什么问题。
悬赏仍在进行中
我尊重规则,所以不会再取消赏金请求。
为了给予某人提供的 300 分,我为你准备了一些奖励问题。
奖励问题 300 分
有人能向我解释一下有状态的和无国籍IPv6 分配?可能包括安全隐患。请大量引用,谢谢。
您能进一步解释一下 DUID = DHCP 唯一标识符的用途吗?我的意思是它的用途和用法是什么。可能包括安全隐患。请大量引用,谢谢。
答案1
简而言之:
有状态 DHCPv6 IPv6 的自动配置相当于 IPv4 中的 DHCP。DHCPv6 服务为客户端设备提供 IPv6 地址,客户端和服务器都维护该地址的“状态”(即租用时间等)。路由器将在其路由器通告消息中告诉新出现的主机向 DHCPv6 服务器请求所有地址(全局地址、DNS 地址、SIP 代理服务器地址)。
无状态 DHCPv6是客户端设备根据路由器通告自动配置其 IPv6 地址和路由。路由器告诉新上线的主机仅从 DHCPv6 服务器获取 DNS、SIP 代理服务器地址等额外信息,而全局地址则通过路由器通告消息中的前缀提供给主机。路由器提供 64 位前缀,主机使用其 MAC 地址(48 位)转换为 EUI-64 方法获取全局 IPv6 地址。
详细内容见文章 有状态 IPv6 和无状态 IPv6 有什么区别?
IPv6 地址分配选项
静态(手动)地址分配– 与 IPv4 完全一样。
无状态地址自动配置 (SLAAC)– 节点侦听本地链路上的路由器定期发送的 ICMPv6 路由器通告 (RA) 消息,或节点使用 RA 请求消息请求的 ICMPv6 路由器通告 (RA) 消息。然后,它们可以通过将其接口 EUI-64(基于以太网接口上的 MAC 地址)与通过路由器通告获得的链路前缀相结合来创建全局单播 IPv6 地址。这是 IPv6 独有的功能,可提供简单的“即插即用”网络。默认情况下,SLAAC 不会向客户端提供 IPv6 地址和默认网关之外的任何内容。RFC 4862 中对 SLAAC 进行了深入讨论。
无状态 DHCPv6– 使用此选项时,SLAAC 仍用于获取 IP 地址,但 DHCP 用于获取“其他”配置选项,通常是 DNS、NTP 等。这样做的好处是 DHCP 服务器不需要存储任何单个客户端的动态状态信息。对于拥有大量端点的大型网络,实施无状态 DHCPv6 将大大减少地址状态刷新所需的 DHCPv6 消息数量。
有状态 DHCPv6– 功能与 IPv4 DHCP 完全相同,主机从 DHCP 服务器接收其 IPv6 地址和其他参数。与 IPv4 的 DHCP 一样,DHCPv6 基础架构的组件包括请求配置的 DHCPv6 客户端、提供配置的 DHCPv6 服务器以及在客户端位于没有 DHCPv6 服务器的子网中时在客户端和服务器之间传递消息的 DHCPv6 中继代理。您可以在 RFC 3315 中了解有关 IPv6 的 DHCP 的更多信息。
注意:在 IPv6 中获取默认网关的唯一方法是通过 RA 消息。DHCPv6 目前不携带默认路由信息。
DHCP 唯一标识符
这是客户端自己生成的唯一标识符,用于为 DHCPv6 服务器唯一标识客户端。
DHCP 唯一标识符
DHCP 唯一标识符 (DUID) 供客户端从 DHCPv6 服务器获取 IP 地址。它有一个 2 字节的 DUID 类型字段和一个长度可变的标识符字段(最多 128 字节)。其实际长度取决于其类型。服务器将 DUID 与其数据库进行比较,并将配置数据(地址、租约时间、DNS 服务器等)传送给客户端。DUID 的前 16 位包含 DUID 类型,其中有四种类型。其余 DUID 的含义取决于类型。
答案2
因此,存在两个独立的问题:
广域网- IPv6 上行未连接
局域网- 配置错误
对于 #1,即广域网配置,我尝试了 GUI 提供的几乎所有功能,但都没有成功。
由于我最终找到了一个解决方法,因此我将与大家分享:
降级到 17.x 固件。它会保留您的设置,不用担心。
升级回 18.x 固件。
就这样,神奇的是,IPv6 WAN 上游终于连接上了。
对于 #2,即局域网配置,设置如下:
网络 - 接口 - LAN - 通用配置 - 常规设置选项卡 -IPv6 分配长度必须设置为前缀的长度。
网络 - 接口 - LAN - DHCP 服务器基于您的拓扑结构,就我而言,其工作方式如下:
路由器广告-服务:服务器模式
DHCPv6 服务:服务器模式
NDP-Proxy:混合模式
DHCPv6 模式:无状态 + 有状态
如果我在配置中发现更多错误,我会更新这个答案。
我已经在 Windows 10、Linux Mint 19 和 Android 7.0 上测试过http://test-ipv6.com/
我得到了:
使用 IPv4 DNS 记录进行测试
ok (0.267s) using ipv4
使用 IPv6 DNS 记录进行测试
ok (0.168s) using ipv6
使用双栈 DNS 记录进行测试
ok (0.206s) using ipv6
测试双栈 DNS 和大数据包
ok (0.154s) using ipv6
不使用 DNS 测试 IPv4
ok (0.108s) using ipv4
无需 DNS 即可测试 IPv6
ok (0.091s) using ipv6
测试 IPv6 大数据包
ok (0.256s) using ipv6
测试你的 ISP 的 DNS 服务器是否使用 IPv6
ok (0.275s) using ipv6
查找 IPv4 服务提供商
ok (0.128s) using ipv4 ASN 44489
查找 IPv6 服务提供商
ok (0.107s) using ipv6 ASN 44489
这 100% 没问题。这 2 个跳过的测试是由于使用 HTTPS 访问测试站点而导致的,HTTPS 仍处于测试阶段,因此最好使用纯 HTTP:http://test-ipv6.com/
就是这样。我现在需要摆弄防火墙和有状态 + 无状态 IPv6,但这不会改变我已经设法让 IPv6 在家里工作的事实。
我找到了另一个可能有用的测试站点:
仅限 IPv6:http://v6.testmyipv6.com/