问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

修改配置文件,给OpenWRT开启IPv6中继

创作时间:
作者:
@小白创作中心

修改配置文件,给OpenWRT开启IPv6中继

引用
少数派
1.
https://sspai.com/post/88698

随着IPv6的普及,越来越多的网络设备开始支持IPv6协议。对于使用OpenWRT路由器的用户来说,如何正确配置IPv6中继功能是一个常见的需求。本文将详细介绍如何通过修改配置文件来开启OpenWRT的IPv6中继功能,使与路由器连接的设备能够获取来自光猫的IPv6地址。

现在IPv6已经成为运营商的标配,默认光猫拨号就是IPv4、IPv6双栈接入,且每个用户都能有一个IPv6的公网地址。使用IPv6的优势有不少,能与互联网基础设施发展的大趋势接轨(目前IPv4地址资源已基本耗竭),还能访问不少仅有IPv6才能访问的资源(例如BT下载时,能连接IPv6的节点)。OpenWRT自然也能充分发挥IPv6的优势。

根据博主LoriLand的科普,IPv6最优的接入方式是PD(Prefix Delegation),这种方式允许用户划分多级子网。但是,由于某些运营商套餐的限制,用户可能只能选择IPv6中继方式,由光猫给子网设备分配IPv6地址。本文就介绍如何开启OpenWRT的IPv6中继功能,使与路由器连接的设备能获取来自光猫的地址。

然而,网络上的教程与实际的OpenWRT界面可能有所不同,有些版本的界面可能缺少必要的设置选项。幸运的是,可以通过修改配置文件的方式来进行。

通常教程的一般步骤

参考一些教程,可以全程通过LuCI界面来配置,一般是这样:

  • 打开“接口”–>“WAN6”,然后找到“DHCP服务器”。有些版本是在界面上方的标签里,“防火墙设置”右侧;另一些版本是在界面底部有单独一栏。
  • 再点击“IPv6”标签,把“路由通告服务”、“DHCPv6服务”和“NDP代理”全部改成“中继模式”。
  • 再打开“LAN”接口的设置,然后同样找到“DHCP服务器”(位于界面下方),点击“IPv6”标签,同样把上述3个选项改为“中继模式”。

然而,问题来了:有些OpenWRT路由器的“WAN6”接口设置里根本就没有“DHCP设置”!就像这样:

另一种方法:修改配置文件

有些设置项在LuCI没有显示,并不代表它不支持,只是可能被屏蔽了。此时,修改配置文件就是首选方案。修改文件不仅仅可以用SSH登录来修改(使用OpenSSH),也可以借助WinSCP等工具。

第一步,通过SSH登录路由器(假设路由器地址为192.168.20.1):

ssh root@192.168.20.1

第二步,用VIM编辑器打开配置文件 /etc/config/dhcp

vim /etc/config/dhcp

第三步,找到 wan 部分(config 'wan')并修改。在设备上,原本仅有interface和ignore两个选项(保持它们不动),那么就在原来基础上添加ra、dhcpv6、ndp和master四个选项。如下面的例子所示:

config dhcp 'wan'
       option interface 'wan'
       option ignore '1'
       option ra 'relay'
       option dhcpv6 'relay'
       option ndp 'relay'
       option master '1'

各个选项的含义如下:

  • ra:路由通告服务,改为relay即“中继模式”。
  • dhcpv6:DHCPv6服务,同样改为relay。
  • ndp:NDP代理,同样改为relay。
  • master:具体含义还要看看文档。根据late哥哥的博客,必须设置为1才能保证IPv6的中继起作用。

第四步,找到 lan 部分(config 'lan')并修改。通常这一部分默认已经有了多个选项,保持其他选项不动,只需要修改 radhcpv6ndpmaster 四个选项(如果没有就自己补)。修改方式同上。如下面的例子所示:

config dhcp 'lan'
       option interface 'lan'
       option start '100'
       option limit '150'
       option leasetime '12h'
       option dhcpv4 'relay'
       option ra_slaac '1'
       list ra_flags 'managed-config'
       list ra_flags 'other-config'
       option ra 'relay'
       option dhcpv6 'relay'
       option ndp 'relay'

当然,LuCI图形界面也有上述设置,所以可以在完成 wan 部分的设置后,到“接口”–>“LAN”中设置。完成设置后,保存文件。

第五步,使设置生效。运行以下命令提交设置:

uci commit dhcp

也可以在LuCI的任意一个设置页面中,点击底部的“保存/应用”按钮生效。

禁用“禁止解析 IPv6 DNS 记录”功能

完成IPv6中继的设置后,还需要留意一个很坑人的功能:“禁止解析IPv6 DNS记录”。它在旧版本(19.07或更早)默认启用,也许是因为在当时,解析IPv6 DNS会造成一些站点无法访问。

但是如今IPv6的DNS服务器已经足够成熟,就不必打开这个功能了,否则路由器将无法解析任何IPv6域名。依次进入“网络”–>“DHCP/DNS”–>“高级设置”,取消勾选“禁止解析IPv6 DNS记录”,然后保存并应用设置即可。

清空 IPv6 ULA前缀

ULA(Unique local address,唯一本地地址)是用于本地网络的IPv6地址。在以fc、fd等地址开头时,属于内网地址,相当于IPv4的192.168,无法通过公网访问。

OpenWRT默认的ULA地址前缀就是以fd开头的内网地址,因此建议将其清空。点击“网络”–>“接口”,找到最下方的“全局网络选项”,将“IPv6 ULA前缀”文本框清空,然后保存并应用设置。

副作用

需要注意的是,启用IPv6中继也有副作用。

如果在OpenWRT运行全局代理、透明代理的应用,可能会导致连接路由器的设备无法访问代理网络。对于需要代理的站点,也只能访问它们的IPv6服务,不能访问IPv4服务。原因可能是这些应用默认会访问IPv6站点,但OpenWRT使用的DNS却无法解析。

这些都需要你做取舍。如果既需要透明代理又需要IPv6,可以考虑多配一台路由器,根据需要连接不同的热点。

拓展阅读

除了中继方式,你还可以使用NAT6来共享IPv6网络访问。可以在相关技术论坛或博客上查找更多关于NAT6的配置方法。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号