方法1: relay (中继模式 )
一般来说,较新的openwrt都已经内置了 Orelay 协议 !
优点:貌似是最优解的ipv6下发方式,且无需自行安装配置环境,且路由器本体也可以获得ipv6
缺点:可能会出现隔一段时间自行更换ipv6公网,导致ddns等服务更新不及时掉线
操作流程:首先ssh连上路由
vi /etc/config/dhcp
将配置中的lan、wan,wan6 三部分分别替换为如下文本,完成后:wq保存配置
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '150'
option leasetime '12h'
option ra 'relay'
option ndp 'relay'
option dhcpv6 'relay'
option ra_management '1'
config dhcp 'wan'
option interface 'wan'
option ignore '1'
config dhcp 'wan6'
option interface 'wan'
option ra 'relay'
option ndp 'relay'
option dhcpv6 'relay'
option master '1'
如果你需要内网设备优先解析ipv6,则还需:
vi /etc/config/network
config globals 'globals'
option ula_prefix 'f***:****:****::/48'
将option ula_prefix (ipv6 ula前缀设置)中的f***:****:****::/48
改为 d***:****:****::/48
重启设备reboot即可使用
方法2: Passthrough ( 穿透模式 )
Passthrough就是不处理ipv4,直接将ipv6穿透至上级路由中去
优点:稳定不掉线,而且貌似是兼容性最强的玩法,你甚至可以做几级路由全部这样设置都能获取到,华硕路由器自带此功能
缺点:需要安装模块支持,很多固件可能会opkg安装不上,需要编译作者支持,且路由器本身无法获取到ipv6
opkg update
opkg install ebtables kmod-ebtables-ipv6
IPv4 转发
interface=`ip -6 route | grep "default" | awk '{print $7}'`
ebtables -t broute -A BROUTING -p ! ipv6 -j DROP -i $interface
桥接至外网
brctl addif br-lan $interface
关闭odhcpd
/etc/init.d/odhcpd stop
/etc/init.d/odhcpd disable
进入openwrt管理页面,进入编辑 LAN 接口,在IPv6设置 选项卡中选上“始终通告默认路由”或者叫做“Always announce default router”