家庭网络旁路由配置:光猫拨号 + OpenWrt(IPv4/IPv6) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
irrigate2554
V2EX    OpenWrt

家庭网络旁路由配置:光猫拨号 + OpenWrt(IPv4/IPv6)

  •  1
     
  •   irrigate2554/a> 297 天前 3389 次点击
    这是一个创建于 297 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目的

    通过配置光猫的拨号功能和 OpenWrt 旁路由,我们期望实现以下目标:

    1. 自动设置 OpenWrt 为网关:所有接入网络的设备无论是 IPv4 还是 IPv6 ,都自动将 OpenWrt 设置为网关。
    2. 网络优化功能生效:OpenWrt 上部署的各种网络优化功能,比如 Adblock 、QoS 等,在所有流量中有效。
    3. 支持独立公网 IPv6 地址:在宽带提供 IPv6 支持时,终端设备能够分配独立的 IPv6 公网地址。

    IPv4 配置步骤

    以下配置截图说明基于我设备信息如下

    光猫 ipv4 局域网地址为 192.168.31.1 ipv6 本地链路地址为 fe80::1

    Openwrt ipv4 局域网地址为 192.168.31.2 ipv6 本地链路地址为 fe80::8e53:c3ff:fedc:560e

    IPv4 的配置相对简单,因为其地址分配方式只有一种:DHCP 。

    1. 关闭光猫 DHCP 服务

      • 登录光猫的超级管理后台(不同品牌的光猫后台操作略有不同,参考设备手册或相关教程)。
      • 关闭光猫上的 DHCP 服务器。
    2. 配置 OpenWrt 接口

      • 在 OpenWrt 后台,新建接口LAN并设置为静态地址,例如:
        • IP 地址:192.168.31.2
        • 子网掩码:255.255.255.0
        • 网关地址:192.168.31.1
      • 开启 OpenWrt 的 DHCP 服务。
      • 默认情况下,OpenWrt 会分配 IP 地址并将自己设置为网关( Gateway )和 DNS 服务器。

    IPv4 完成后启用效果

    • 所有通过 IPv4 接入网络的设备将自动获取由 OpenWrt 分配的 IP 地址,同时将其设置为默认网关和 DNS 。

    IPv6 配置步骤

    相比 IPv4 ,IPv6 的配置更加复杂,因为 IPv6 有两种地址分配和管理方式:

    • DHCPv6(动态主机配置协议,分配 IPv6 地址)。
    • RA(路由通告,设置默认网关)。

    IPv6 默认行为的问题

    1. 默认情况下,光猫会同时启用DHCPv6RA服务。
      • 如果我们模仿 IPv4 的做法,将 DHCPv6 服务从光猫移到 OpenWrt ,会发现设备仍然会从光猫获取默认 IPv6 路由,这将导致设备的 IPv6 流量绕过 OpenWrt 。
    2. 如果将DHCPv6RA全部迁移到 OpenWrt:
      • 设备无法获取公网 IPv6 地址,因为公网前缀在光猫端,OpenWrt 只能分配局域网范围内的 IPv6 地址。

    IPv6 解决方案

    经过权衡,选择如下策略:

    • 光猫负责 DHCPv6:用于分配公网 IPv6 地址。
    • OpenWrt 负责 RA 服务:用于配置 IPv6 网关。

    配置步骤

    1. 配置光猫

    • 关闭 RA 服务:登录光猫超级管理后台,找到 IPv6 设置,关闭 RA 服务器。
    • 开启 DHCPv6:确保 DHCPv6 服务启用,用于向设备分配公网 IPv6 地址。

    2. 配置 OpenWrt

    2.1 为lan6接口配置 DHCPv6 客户端
    • 新建接口lan6
      • 协议:DHCPv6 客户端
      • 请求 IPv6 地址强制
      • 请求 IPv6 前缀长度禁用(另一种方法是获取前缀再由 OpenWrt 分配设备,但实践中不稳定,因此禁用)。
      • 使用默认网关:勾选。
    2.2 配置lan接口的 RA 和 DHCPv6 中继
    • lan接口设置,在“DHCP 服务器”中配置:
      • RA 服务:设置为服务器模式
      • DHCPv6:设置为中继( Relay )
    • 在“IPv6 RA 设置”中:
      • 默认路由器( Default Router ):强制其他默认
      • RA 标记:受管配置(M), 这样设备会尝试使用 DHCPv6 获取 IP 地址,但是其他配置使用 RA 的。

    配置截图参考

    以下是相关配置的截图:

    光猫 RA 配置

    光猫 RA 配置

    光猫 DHCPv6 配置

    光猫 DHCPv6 配置

    OpenWrt lan6接口设置

    lan6 接口配置

    OpenWrt lan接口 RA 服务设置

    lan 接口 RA 服务设置 1 lan 接口 RA 服务设置 2


    验证配置效果

    检查设备获取的 IPv6 地址和路由

    通过配置,可以得到以下结果:

    1. 客户端设备通过 DHCPv6 从光猫获取独立的公网 IPv6 。
    2. 客户端设备通过 RA 服务将 OpenWrt 设置为默认网关。
    3. 全部 IPv6 流量经过 OpenWrt ,完成网络优化和其他功能的部署。

    以下是示例验证截图:

    客户端 IPv6 地址和路由

    Windows

    Windows 效果

    Linux

    Linux 效果


    总结

    通过上述步骤,我们成功实现了光猫拨号+OpenWrt 旁路由的家庭网络配置目标:

    1. IPv4 流量:通过关闭光猫 DHCP 和启用 OpenWrt DHCP ,所有 IPv4 流量通过 OpenWrt 网关。
    2. IPv6 流量:通过光猫分配公网 IPv6 地址、OpenWrt 负责 RA 服务,确保设备流量集中通过 OpenWrt 网关。

    这一配置方案在家庭环境中可实现高效的网络控制以及完整的 IPv6 支持。

    上述方案是我踩坑很久一点点摸索出来的,如有问题希望各位指正。 当然用 Openwrt 当主路由拨号方便拉,但是现在的光猫性能也不算太差,只做猫有点浪费。

    10 条回复    2025-08-05 21:27:41 +08:00
    ruxuan1306
        1
    ruxuan1306  
       297 天前
    学习了,才意识到 IPv6 的默认网关只能从 RA 下发,不像 IPv4 是 DHCP 下发
    povsister
        2
    povsister  
       297 天前 via iPhone
    大佬开始玩旁漏油了,期待更牛逼的方案
    wske
        3
    wske  
       297 天前
    irrigate2554
        4
    irrigate2554  
    OP
       297 天前
    @wske 结尾也说了主路由当然更好了,但是我这弱电箱塞不下另一个路由器了,还有网线等原因,只能旁路由了,这篇文章不提供旁路由方案的。我就是这文章里面说的:`强烈建议使用主路由环境,抛弃旁路由。旁路由出问题自己想办法,谁教你用旁路由的你去找谁,不要提问。`
    WhatTheBridgeSay
        5
    WhatTheBridgeSay  
       297 天前
    很好的方案,之前网关与 NAT 设备不一致时,4 跟 6 的路由很难走到一起去,楼主这也不失为一个解决方案
    core12
        6
    core12  
       297 天前
    ipv6 的透明网关可以提高 ra 的优先级来实现,openwrt 或者随便一台 linux 服务器都行,不要下发 ipv6dns 就行。
    y1y1
        7
    y1y1  
       297 天前
    @povsister 嘲讽拉满
    JH13
        8
    JH13  
       229 天前
    光猫没有彻底关闭 RA 的地方怎么办
    guugg
        9
    guugg  
       127 天前
    最近刚好遇到光猫跟路由器的问题。

    本来想考虑跟你一样使用旁路由作为 DHCP 服务的。后面刚好看到[单线复用]( https://blog.vcvit.me/2024/05/27/shanghai_vlan/ "上海联通,单线复用,VLAN ,Openwrt 相关设置")

    ## 单线复用

    - 光猫 + OpenWrt 路由器。

    > 我有多余的路由器,但是客厅用不了这么多`lan 口`,光猫剩下的`lan 口`刚好满足我的使用。


    1. 光猫把桥接`VLAN ID`绑定全部`lan 口`,可以实现盲插桥接。其余`lan 口`利用起来作为交换机( IPTV ,其他网络。)
    2. OpenWrt 负责拨号 DHCP 服务。
    * 网络>接口>设备>添加设备配置;添加网桥设备,设备名称 vlan ,接口选上 2 个物理接口(不要选之前的 wan 口)。
    irrigate2554
        10
    irrigate2554  
    OP
       127 天前
    @guugg 按着这个配置了,确实可以,vlan 网桥只选择连接光猫的一个物理接口就可以
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3797 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 05:21 PVG 13:21 LAX 21:21 JFK 00:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86