K2 OpenWrt配置Ipv6之穿透模式

前提条件

  • 光猫拨号并且 k2 路由器 WAN 口能获取到 ipv6 公网地址
  • 斐讯 k2 已刷入 OpenWrt-19.07.1 版本
想要让路由器下的设备获得 IPv6 地址通常有三种方式:relay(中继)、NAT(地址转换)、Passthrough(穿透)这里主要讲穿透方式

k2 没刷入 OpenWrt-19.07.1 的,可点击以下链接下载并刷入:
https://downloads.openwrt.org/releases/19.07.1/targets/ramips/mt7620/openwrt-19.07.1-ramips-mt7620-psg1218a-squashfs-sysupgrade.bin

穿透模式(Passthrough)

Passthrough 的原理是将内外网进行桥接,然后对 IPv4 流量采用 NAT 方式进行转发,稳定性相当好,唯一的缺点就是路由器自身会失去 IPv6 的访问,因此如果想在路由器上做离线下载等功能就会非常麻烦。

配置如下

ssh 连接路由器

安装 ebtables 和 kmod-ebtables-ipv6 模块

$ opkg update
$ opkg install ebtables kmod-ebtables-ipv6

设置 IPv4 转发

$ interface=`ip -6 route | grep "default from" | 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

进入路由器管理界面,打开 网络 -> 接口 -> LAN -> 编辑 -> DHCP服务器 -> IPV6设置

路由通告服务: 服务器模式
DHCPv6 服务: 服务器模式
NDP 代理: 已禁用
DHCPv6 模式: 无状态 + 有状态
总是通告默认路由: √

保存并应用

到这里路由器下的设备应该就获取到 ipv6 公网地址了,打开 http://www.test-ipv6.com/ 测试一下。没有的可以试试重连路由器

到这里还没完,路由器重启后部分设置会失效,所以我们需要设置一下启动脚本

打开 系统 -> 启动项 -> 本地启动脚本

写入以下命令:

# ipv6 setting START
sleep 10
interface=`ip -6 route | grep "default from" | awk '{print $7}'` 
ebtables -t broute -A BROUTING -p ! ipv6 -j DROP -i $interface
brctl addif br-lan $interface
# ipv6 setting END

保存

重启路由器试试看路由器下的设备能否获得公网 ipv4 地址

参考文章

https://i-meto.com/openwrt-ipv6/#comments
http://blog.kompaz.win/2017/02/22/OpenWRT%20IPv6%20%E9%85%8D%E7%BD%AE/
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=213889

已有 3 条评论
  1. gree gree

    我之前用ac1900P梅林系统里的passthrough模式可以直接用ipv6,用了openwrt发现没有这个选项,用你这个可以吗

  2. 这个方法确实比较稳定。建议用 openwrt 的 hotplug 机制,在 wan6 ifup 和 ifdown 的时候调用对应脚本来配置。这样大概会更好?

  3. 干掉零评论

添加新评论