OpenWrt 二级路由获取ipv6及其下的设备获取公网IPv6地址
设置教程查看下面的非常详细设置方法
OpenWrt二级路由及其下的设备获取公网IPv6地址,可以通过以下步骤实现:
步骤1:修改OpenWrt的WAN口配置。
在OpenWrt的网络设置中,将WAN6协议修改为静态地址,并手动设置与之前猫路由功能自动分配的IPv4参数相同。
步骤2:修改OpenWrt的LAN口配置。
类似于WAN口设置,将LAN口协议修改为静态地址,并在DHCP服务器IPv6设置中将路由通告模式、DHCPv6服务、NDP代理均设置为中继模式。
步骤3:修改IPv6 ULA前缀。
在接口列表页面的全局网络选项/IPv6 ULA前缀处,将默认值全部删除并留空。
步骤4:修改网络配置。
使用SSH连接到OpenWrt路由器,并打开/etc/config/dhcp文件。
在dhcp 'wan'配置下方添加一行:
option master '1'
。保存文件后,回到路由器管理页面上点击保存并应用使其生效。
步骤5:放开IPv6 DNS解析。
在PC的控制面板\网络和Internet\网络连接处,右键禁用网卡再启用。使用ipconfig命令可以检查PC是否获取到了公网IPv6地址。
检查OpenWrt路由器网络设置中的DHCP/DNS高级设置,确保未勾选禁止解析IPv6 DNS记录。
以上方法可以使得OpenWrt二级路由及其下的设备获得公网IPv6地址。但请注意,这种方法可能会导致IPv6和IPv4之间产生割裂,访问权限不统一。另外,如果运营商分配的不是/64前缀且猫支持修改配置,可以考虑继续划分子网或使用NAT6来解决。
非常详细设置方法
在不动(带路由功能的)光猫拨号的情况下,如何使得后面接入的 OpenWrt 二级路由及其下的设备拿到公网 IPv6 地址呢?
为什么会有这种奇怪的需求
前提条件
和不认识的人合租,为了保证其他人的正常使用,没事儿不要去动猫,更不可能像自己家一样猫改桥接用路由器拨号。
猫坏了上不了网,那是大家的事,若是改桥接后上不了网,就是拨号路由器机主的事,不利于邻里关系。
客观需要
我有一些内网的 Docker 机器,安装了 PT 软件等需要公网 IP 的服务,为了提高可连接性,每个设备一个公网 IP 还是很有必要的,不管是 IPv4 还是 IPv6。
技术分析
运营商一般会分配一个公网 IPv6 网段(链路前缀),本地网关(一级路由)开启 DHCP-PD 后,就可以给设备派发公网地址。
普通路由拿到了前缀,会将其作为 /64 子网使用(不能再分子网),通过 DHCP-PD 协议,其下每个设备都能得到一个公网 IPv6 地址。
关于前缀子网的详细解释:https://zhuanlan.zhihu.com/p/362151770
由于已经是 /64 不能再分子网了,所以二级路由没有机会得到一个公网 IPv6 网段,因此只有路由 WAN 口能得到一个公网地址,其下设备拿到的都是本地链路地址(fe80 等),路由器不会将这种地址的数据转发到外部去。
解决方法一:路由器当交换机(不推荐)
路由器关闭 LAN 口的 DHCP 功能,之后将猫后面的 LAN 口接到路由器 LAN 口上,路由器其他 LAN 口接设备,这样设备 IP 就由猫(的路由功能)分配,自然就能获取到公网 IPv6 地址。
上述做法的技术细节参见大学的《计算机网络》课本,简略点来说就是路由器几个 LAN 口默认互通,设备都接 LAN 口的话路由器相当于交换机,客户机能与猫(上的路由)相互通讯,二者自然就能收发 DHCP 报文,完成 IP 分配与数据传输。
此方法简单易操作,但极度依赖猫的稳定性与性能,一旦猫挂掉,你的设备就互相失联了。同时,你还会浪费一个宝贵的全速 LAN 口,得不偿失。
解决方法二:OpenWrt IPv6 中继
本方法通过中继的方式,直接将一级路由的 IPv6 PD 中继给下级,使得设备可以获取公网 IPv6 地址。虽然本方法也依赖猫的稳定性,但只有 IPv6 依赖它,因此即使猫挂了,同一内网中的 IPv4 还是能互相访问。
当然这也造成了一个问题:IPv6 和 IPv4 产生割裂。IPv6 设备在一级路由处同级,而 IPv4 却在二级路由处同级,访问权限不统一,前文知乎文章中也提到了这一点。
步骤1:修改 WAN 口配置
首先检查 OpenWrt 的“WAN6” 的协议是否是 DHCPv6 客户端。
小知识:WAN6 和 WAN 默认情况下是同一个物理接口
之后切换到“WAN”设置界面,将 WAN 的协议修改为静态地址,并根据情况手动设置相关 IPv4 参数(与之前上级路由功能自动分配的 IP 相同即可)。
当 WAN 协议修改为静态地址后,同页面最下面将出现”IPv6″设置,请将其“路由通告模式”、“DHCPv6服务”、“NDP代理”均设置为“中继模式”,如下图所示:
至于 WAN 接口其他选项,保持默认即可。修改完成后,点击保存并应用。
步骤2:修改 LAN 口配置
提醒:此步骤可能导致路由器重启,若更改了 LAN 口 IP 地址,则后续需要使用新的 IP 地址登录路由器。
LAN 口设置与 WAN 口设置相似,即协议修改为静态地址后,其下 DHCP 服务器 IPv6 设置中的“路由通告模式”、“DHCPv6服务”、“NDP代理”均设置为“中继模式”。
修改完成后,点击保存并应用。
步骤3:修改 IPv6 ULA 前缀
接口列表页面,在页面下部的全局网络选项/IPv6 ULA 前缀处,将默认值全部删掉留空。
删除后,点击保存并应用。
步骤4:修改网络配置
使用 ssh 连接到 Dropbear 插件提供的 ssh 远端(几乎所有 OpenWrt 固件都安装了此插件):
#@后是路由器 LAN 口地址
ssh root@192.168.3.1
输入 root 密码(同网页登录密码),即可成功连接 ssh,如下图所示:
使用 vim 打开 /etc/config/dhcp 文件:
vim /etc/config/dhcp
打开后,找到 dhcp ‘wan’ 配置,在其下多加一行:
option master '1'
保存后,回到路由器管理网页上,随意找一个保存并应用按钮,点击使其生效。
步骤5:放开 IPv6 DNS 解析
在 PC控制面板\网络和 Internet\网络连接处,右键网卡禁用,再启用,如果得法,使用 ipconfig 命令,可以发现 PC 已经获取到了公网 IPv6 地址:
但当你兴冲冲打开 test-IPv6.com 时,却发现得分为 0,显示无 IPv6 地址:
明明有了 IPv6 地址,为啥还连接不上呢?此时请检查路由器网络\DHCP/DNS\高级设置中,是否勾选了禁止解析 IPv6 DNS 记录,许多固件在默认情况下,会勾选此项,换取网站打开速度的提升(某些设备优先 IPv6 解析,等待 IPv6 解析失败,之后才去解析 IPv4)。
想要通过 test-ipv6 网站的测试,请务必取消勾选此项:
之后点击“保存并应用”按钮即可。
方法三:继续划分子网或 NAT6
如果运营商分配的不是 /64 前缀,且你的猫也支持修改配置,则可各级路由继续划分子网,过程参考本文开头引用的知乎文章:IPV6 DHCPv6-PD 前缀子网简单拆解。
考虑到操作难度和猫隔段时间强制重新拨号换 IP的特性,家庭环境意义不大。
至于 NAT6,太乱了,算了吧。
结尾
说句题外话,本人用的路由器为 K2p,前前后后刷了好几个固件,这些固件都自称什么漂亮主题、最新内核、自动编译、纯净、独创功能等等,结果没一个稳定的,动不动就是网络断开、路由器卡死等等。
后来换成了一个恩山老用户做的 OpenWrt 的固件,虽然很久没更新过了,但该有的软件包一个不少,并且跑起来那叫一个稳定。
看来固件这玩意,不是描述字数多、用户评分高,就一定好用。真正哪个好用,还是要自己试一试。
点击链接加入群聊三群:751529538
点击链接加入群聊二群:376877156
点击链接加入群聊【路由器交流群:622891808已满】
本站附件分享,如果附件失效,可以去找找看
饿了么红包