V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
Kalan
V2EX  ›  OpenWrt

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

  •  
  •   Kalan · 14 天前 · 419 次点击

    背景

    • 光猫桥接;
    • 主路由拨号,设备连接后可以通过 ipv6 test ;
    • 二级路由(华硕 AC88U 刷了 ImmortalWrt 官方固件),配置 ipv6 中继模式,电脑可以获取到 ipv6 地址,但无法访问 ipv6 站点(连接主路由 wifi 可以访问);

    二级路由配置

    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: 网上看了很多类似配置教程,基本都不生效,不知如何解决。

    7 条回复    2024-05-26 10:05:50 +08:00
    czita
        1
    czita  
       13 天前
    https://www.right.com.cn/forum/thread-8340715-1-1.html 最近更了固件也是 IPV6 出不来,试了很多 参照这个成了
    Kalan
        2
    Kalan  
    OP
       13 天前
    @czita 如果是旁路由的话,openwrt 用 lan 口连接 lan 口,我这是可以获取到的 ipv6 的。
    yjzll
        3
    yjzll  
       7 天前
    二级路由的 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
        4
    yjzll  
       7 天前
    如果没有 /lib/functions/network.sh ,就只能手动添加
    ip -6 route replace "240e:XXX:3e00::/64" dev "br-lan" metric "127"
    yjzll
        5
    yjzll  
       7 天前
    ipv6 路由表要自己维护,上级主路由不会自动维护下级华硕的路由表
    ipv4 路由表是自动维护的,不需要自己管理
    说明上级路由器获得的 ipv6 是 64 位后缀的,意思是上级路由器只管理到上级路由器的 lan 侧设备(也就是二级路由器华硕的 wan 侧),华硕的 lan 侧下设备如何上网,需要在华硕的 ipv6 路由表来自己定义
    yjzll
        6
    yjzll  
       7 天前
    上级路由器获得的 ipv6 ,如果是小于 64 位后缀的,就可以再分配到华硕路由器,使得华硕路由器直接获得 64 位后缀,就可以管理华硕 lan 侧的 ipv6 地址,总之,64 位是最后的分配了,只能管理本身 lan 侧
    yjzll
        7
    yjzll  
       7 天前
    为什么是 64 位的,原因很简单,服务器只管到光猫,光猫下面的设备人家不管,所以就给 64 位,如果给了 56 位,那么,光猫后面的路由器,运营商就要背管理的黑锅
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2410 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 07:12 · PVG 15:12 · LAX 00:12 · JFK 03:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.