openwrt 二级路由下 ipv6 设置不生效

222 天前
 Kalan

背景

二级路由配置

config dhcp 'lan'                                                                                 option interface 'lan'                                                                     option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option ra 'relay'
        option dhcpv6 'relay'
        option ndp 'relay'

config dhcp 'wan'                                                                                 option interface 'wan'                                                                     option ignore '1'
        option ra 'relay'
        option dhcpv6 'relay'
        option ndp 'relay'
        option start '100'
        option limit '150'
        option leasetime '12h'

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

二级路由防火墙入站出站转发均为接受;

PS: 网上看了很多类似配置教程,基本都不生效,不知如何解决。

1201 次点击
所在节点    OpenWrt
7 条回复
czita
221 天前
https://www.right.com.cn/forum/thread-8340715-1-1.html 最近更了固件也是 IPV6 出不来,试了很多 参照这个成了
Kalan
221 天前
@czita 如果是旁路由的话,openwrt 用 lan 口连接 lan 口,我这是可以获取到的 ipv6 的。
yjzll
215 天前
二级路由的 ipv6 路由表需要自己维护,不维护就是不通
安装计算子网的软件包
opkg install owipcalc

手动在 WAN 口获得 IPv6 地址后添加一条路由表,让整个子网重定向到 LAN 口,编辑下面文件
/etc/hotplug.d/iface/80-reset-route6
内容
#!/bin/sh
wan_dev="wan6"
[ "$HOTPLUG_TYPE" = "iface" ] || exit 0
[ "$INTERFACE" = "$wan_dev" ] || exit 0
RTMETRIC=127
. /lib/functions/network.sh
network_get_physdev lan_dev lan || exit 0
ifup_cb() {
local _lan_dev="$1"
local _metric="$2"
local wan_subnet
network_get_subnet6 wan_subnet "$wan_dev" || return
_wan_network=$(owipcalc "${wan_subnet}" network)
ip -6 route replace "$_wan_network" dev "$_lan_dev" metric "$_metric"
}
ifdown_cb() {
local _lan_dev="$1"
local _metric="$2"
ip -6 route flush dev "$_lan_dev" metric "$_metric"
}
case "$ACTION" in
ifup)
ifup_cb "$lan_dev" "$RTMETRIC"
;;
ifdown)
ifdown_cb "$lan_dev" "$RTMETRIC"
;;
ifupdate)
ifdown_cb "$lan_dev" "$RTMETRIC"
sleep 1
ifup_cb "$lan_dev" "$RTMETRIC"
;;
*)
;;
esac
exit 0

作用就是
#ip -6 route replace "240e:XXX:3e00::/64" dev "br-lan" metric "127"
#路由表添加 240e:XXX:3e00::/64 dev br-lan metric 127 pref medium
yjzll
215 天前
如果没有 /lib/functions/network.sh ,就只能手动添加
ip -6 route replace "240e:XXX:3e00::/64" dev "br-lan" metric "127"
yjzll
215 天前
ipv6 路由表要自己维护,上级主路由不会自动维护下级华硕的路由表
ipv4 路由表是自动维护的,不需要自己管理
说明上级路由器获得的 ipv6 是 64 位后缀的,意思是上级路由器只管理到上级路由器的 lan 侧设备(也就是二级路由器华硕的 wan 侧),华硕的 lan 侧下设备如何上网,需要在华硕的 ipv6 路由表来自己定义
yjzll
215 天前
上级路由器获得的 ipv6 ,如果是小于 64 位后缀的,就可以再分配到华硕路由器,使得华硕路由器直接获得 64 位后缀,就可以管理华硕 lan 侧的 ipv6 地址,总之,64 位是最后的分配了,只能管理本身 lan 侧
yjzll
215 天前
为什么是 64 位的,原因很简单,服务器只管到光猫,光猫下面的设备人家不管,所以就给 64 位,如果给了 56 位,那么,光猫后面的路由器,运营商就要背管理的黑锅

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1041929

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX