桥接模式下让 openwrt 可以访问光猫和互联网

在光猫拨号的情况下,openwrt 可以上网,也可以直接访问光猫的管理页面,也可以直接访问光猫下面连接的其他设备。 但在光猫桥接模式下,openwrt 进行拨号,则无法直接访问光猫的管理页面。这时如果需要设置光猫就比较麻烦,需要连接光猫的 wifi 或者网线连接到光猫进行配置。

通过在 openwrt 进行一些设置,则可以通过 openwrt 直接访问光猫的管理页面。

一般前提

  • 本文基于 openwrt 23.05 进行设置。不同版本的界面可能有所不同,但原理是相同的。
  • 本文假设光猫和 openwrt 使用不同的网段(例如光猫的网段为 192.168.1.*,openwrt 的网段为 192.168.2.*),方便进行设置。
  • 本位假设你已在 openwrt 中完成 pppoe 拨号上网的设置。
  • 假设 wan 端口的设备名为 wan,接口名为 wanwan6

步骤 1. 设备选择

笔者尝试使用 4 种方法配置 openwrt 让其可以同时访问光猫和互联网。经测试 4 种方法均可以正常使用。4 种方法的主要区别在于接口设置中的设备选择上,其他的步骤大同小异。

方案 1 - 使用 wan 设备

直接使用 wan 设备最简单,无需新增设备。

缺点是在 网络 - 接口 页面中,wan 接口 和 to_modem 接口显示的使用流量相同,不便于查看,并不影响使用。而后面 3 种方案均没有这个问题。

在步骤 2 中新建接口时,设备(device)直接选择 wan 设备即可。

方案 2 - macvlan + macvlan

  1. 首先需要安装 macvlan 软件包。
  2. 在 network - devices 页面中新增 2 个 MAC VLAN 设备,基础设备(base device)选择 wan 设备。名字可以自定,默认是 wanmac0wanmac1。mac 地址可以留空(每次启动时自动生成),或自行指定 2 个不同的 mac 地址。

2 个 MAC VLAN 设备,一个用于 pppoe 拨号上网,另一个用于连接光猫。

注意:要在接口设置中,将接口 wanwan6 的设备(device)设置为其中一个 MAC VLAN 设备,例如 wanmac1 设备。 在步骤 2 中新建接口时,将设备(device)设置另一个 MAC VLAN 设备,例如 wanmac0 设备。

方案 3 - vlan + macvlan

适合光猫启用了 vlan 绑定的情况,例如单线复用。本文假定你已完成了 vlan 的相关设置,故 vlan 的设置本文不赘述。

  1. 首先需要安装 macvlan 软件包。
  2. 与方案 2 类似,在 network - devices 页面新增 1 个 MAC VLAN 设备。基础设备(base device)选择 wan。名字可以自定,默认是 wanmac0。mac 地址可以留空(每次启动时启动生成),或自行指定 1 个 mac 地址。

vlan 设备用于 pppoe 拨号上网,MAC VLAN 设备则用于连接光猫。

在步骤 2 中新建接口时,设备(device)选择这个 MAC VLAN 设备,例如 wanmac0

方案 4 - 双线接入

如果有富余的网线和端口,则可以考虑采用双线接入的方式,例如 openwrt 的 wan 口连接光猫的 lan1 口,用于拨号上网。openwrt 的 lan1 口连接光猫的 lan2 口(也可以是其他端口,自行设置),用于访问光猫网络。

  1. 在光猫管理界面的宽带设置中,将 lan2 解绑(也可以是其他端口,自行设置)。
  2. 在 openwrt 的 network - devices 页面将 br-lan 设备的桥接端口中,取消 openwrt 的 lan1 口(也可以是其他端口,自行设置)。
  3. 用网线连接 openwrt 的 lan1 口和光猫的 lan2 口。

在步骤 2 中新建接口时,设备(device)选择这个 lan1 口。

步骤 2. 接口设置

新建接口和设备选择

在 network - interfaces 页面中 新增一个新的 interface (接口):

  • 名字(name)随意,例如:to_modem
  • 协议(protocol)选择“静态地址”。
  • 设备(device)根据步骤 1 选择相应的设备。

接口设置

在基本设置中,填入 ipv4 地址、掩码、网关。这里说的 ip 地址、掩码、网关是 openwrt 相对光猫而言的,例如光猫的网段是192.168.1.*,那么地址应该192.168.1.114514(自行设定)。网关是光猫的地址,一般是192.168.1.1,掩码一般为/24255.255.255.0

高级设置中,取消勾选使用默认网关(Use default gateway)。DNS 权重(DNS weight)和网关跃点(Use gateway metric)设置一个比 lan 接口的跃点大但比 wan 接口的跃点小的数字,例如 lan 的跃点设置 0to_modem 接口的跃点设置 5wan 接口的跃点设置 10.

跃点或网关设置不当,则可能会导致无法访问互联网。

防火墙设置中,可以选择 lan 区域或者 wan 区域。建议新建一个区域,例如modem_zone

步骤 3. 防火墙设置

打开 network - firewall 页面, 编辑 modem_zone 区域设置:

必要的设置

  • 覆盖网络(Covered networks):选择前面建立的 to_modem 接口。
  • 允许从源区域转发(Allow forward from source zones):选择 lan 区域。
  • 开启 伪装(Masquerading)。
  • 开启 MSS 钳制(MSS clamping)。

自定义的设置

  1. 入站(input):根据自己的需求设置。建议拒绝或者丢弃,表示不允许光猫及光猫下的设备访问 openwrt。
  2. 出站(output):根据自己的需求设置。表示是否允许 openwrt 访问光猫及光猫下的设备。一般拒绝或者丢弃即可。
  3. 转发(forward):根据自己的需求设置。表示是否允许光猫及光猫下的设备访问 lan 区域的设备。一般拒绝或者丢弃即可。

步骤 4. 静态路由设置

转到 network - routing 页面,点击添加静态路由:

  • 接口(inteface):选择前面的新建的 to_modem 接口。
  • 目标网络(target):填写光猫的网段及掩码,例如 192.168.1.0/24
  • 网关(gateway):填写 openwrt 路由器在光猫子网中的 ip 地址,即前面在接口设置中设置的静态地址,例如 192.168.1.114514
  • 跃点(Metric):填写一个比 lan 接口的跃点大但比 wan 接口的跃点小的数字,例如笔者将静态路由的跃点设置为 5lan 接口的跃点设置为 0wan 接口的跃点设置 10

End

完成设置后,openwrt 路由器下的设备就可以直接访问光猫的管理页面了。

  • ping 光猫地址可以 ping 通:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    
    > ping 192.168.1.1
    
    正在 Ping 192.168.1.1 具有 32 字节的数据:
    来自 192.168.1.1 的回复: 字节=32 时间=1ms TTL=63
    来自 192.168.1.1 的回复: 字节=32 时间=1ms TTL=63
    来自 192.168.1.1 的回复: 字节=32 时间=1ms TTL=63
    来自 192.168.1.1 的回复: 字节=32 时间=3ms TTL=63
    
    192.168.1.1  Ping 统计信息:
        数据包: 已发送 = 4已接收 = 4丢失 = 0 (0% 丢失)
    往返行程的估计时间(以毫秒为单位):
        最短 = 1ms最长 = 3ms平均 = 1ms
    
  • 在 window 下,可以通过 tracert 指令可以查看路由情况:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    > tracert 192.168.1.1
    
    通过最多 30 个跃点跟踪
     cmcc [192.168.1.1] 的路由:
    
      1     1 ms     1 ms     1 ms  openwrt [192.168.2.1]
      2     1 ms     1 ms     1 ms  cmcc [192.168.1.1]
    
    跟踪完成
    
Built with Hugo
Theme Stack designed by Jimmy