虽然目前各家运营商已经开始着手配置ipv6-pd,但是在很多地区推行进度缓慢以及各种大内网套娃的复杂网络环境,导致拨号路由及下级设备可以正常下发ipv6,但是多层路由后的设备无法获取ipv6
而我家的环境大概是这样的……….
方法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即可使用
openwrt最后大概是这样显示的,lan口不会显示公网ipv6
方法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”
大功告成!
顺带一提:如果你是openwrt需要将路由器下的设备暴露在外网,则需要进入
网络->防火墙->通信规则->新建
这样才能在外网访问ipv6设备
你好,我照着你的方法实现了穿透,但是多个设备连接时,只有前三个连上的设备能实现穿透,其他设备没法连接上ipv6.请问楼主有遇到相似的情况吗
这个标题切换太骚了
感谢大佬!!!!
用路由拨号后下级设备能获取到ipv6但是获取不到ipv6的dns是什么原因
大佬,请问中继模式lan口有办法获取wan口前缀的IP吗?不能获取是什么原因呢?我的和你的一样,只能获取到唯一本地地址,按理说lan口在网络中就能获取到吧?毕竟lan口的上级(wan口)和下级(lan口下的主机)都能获取到公网IP,没道理lan口获取不到,难道是因为lan口是中继?
最后还是再请教,中继模式下有解吗?
这个图片的水印很棒,求分享这个水印软件!!!
你好,按照你relay方式配置后(没配置优先ipv6解析),二级路由下设备能获得ipv6,但不能使用ipv6访问是为什么?