在光猫拨号的情况下,openwrt 可以上网,也可以直接访问光猫的管理页面,也可以直接访问光猫下面连接的其他设备。
但在光猫桥接模式下,即 openwrt 进行拨号,则无法直接访问光猫的管理页面,需要连接光猫的 wifi 或者网线才能对访问光猫界面。
在光猫设置为桥接模式的情况下,通过在 openwrt 设置一些必要的路由规则和防火墙规则,即可以实现两个子网互通,则可以通过 openwrt 直接访问光猫的管理页面。
一般前提
- 本文基于 openwrt 23.05, 24.10 进行设置。不同版本的界面和细节可能略有不同,但原理都是相同的。
- 本文假设光猫和 openwrt 使用不同的网段(例如光猫的网段为
192.168.1.*,openwrt 的网段为192.168.200.*)。 - 本位假设你已经在 openwrt 中完成 pppoe 拨号上网的设置。
- 假设 wan 口的设备(device)名为
wan,接口(interface)名为wan及wan6
步骤 1. 设备选择
笔者尝试使用 2 种方法配置 openwrt 让其可以同时访问光猫和互联网。经测试 2 种方法均可以正常使用。2 种方法的主要区别在于网卡设备选择上,其他的设置大同小异。
方案 1 - macvlan
设备设置
- 首先需要安装
macvlan软件包。 - 在 network - interfaces - devices 页面中新增 1 个 macvlan 设备,基础设备(base device)选择
wan设备。名字可以自定,例如默认是wanmac111。mac 地址可以留空(每次启动时会自动生成),或自行指定不同的 mac 地址。
新建接口
在 步骤 2
中新建接口时,将设备(device)设置为这个 macvlan 设备,例如 wanmac111 。
方案 2 - 双线接入
如果有富余的网线和端口,则可以考虑采用双线接入的方式,例如:
- openwrt 的
wan口连接光猫的lan111口,用于拨号上网。 - openwrt 的
lan444口连接光猫的lan222口(也可以是其他端口,自行规划),用于访问光猫网络。
设备设置
- 在光猫超级管理界面的宽带设置中,将
lan222解绑(也可以是其他端口,自行规划)。 - 在 openwrt 的 network - interfaces - devices 页面,编辑
br-lan设备的桥接端口,取消 openwrt 的lan444口(也可以是其他端口,自行规划)。 - 用网线连接 openwrt 的
lan444口和光猫的lan222口。
新建接口
在 步骤 2
中新建接口时,设备(device)选择这个 lan444 口。
步骤 2. 接口设置
新建接口
在 network - interfaces 页面中 新增一个 接口 (interface):
- 名字(name):自行命名,例如:
i_modem。 - 协议(protocol):建议选择“静态地址”。
- 设备(device):根据 步骤 1 选择相应的设备。
接口设置
IP 地址设置
在 i_modem 接口的基本设置中,填入 ipv4 地址、掩码、网关。
这里说的 ip 地址、掩码、网关是 openwrt 相对光猫而言的,例如:
- 光猫的网段是
192.168.1.*,那么地址应该192.168.1.114514(自行设定)。 - 网关是光猫的地址,一般是
192.168.1.1。 - 掩码一般为
/24即255.255.255.0。
网关设置
在 i_modem 接口的高级设置中,取消勾选“使用默认网关”(Use default gateway)。
- 网关设置不当,可能会导致无法访问互联网。
- 如果使用 DHCP 协议,建议取消勾选“对端通告的 DNS 服务器”。
跃点设置
在 i_modem 接口的高级设置中,网关跃点(Use gateway metric)和DNS 权重(DNS weight),设置一个比 lan 接口的跃点大、比 wan 接口的跃点小的数字,
例如:
- 将
lan的跃点设置为0, - 将
i_modem接口的跃点设置为5, - 将
wan接口的跃点设置为10。
防火墙区域设置
在 i_modem 接口的防火墙设置中,建议新建一个区域,例如 z_modem 。
步骤 3. 防火墙设置
打开 network - firewall 页面,
编辑 z_modem 区域设置:
- 覆盖网络(Covered networks):选择前面建立的
i_modem接口。 - 伪装(Masquerading):开启。(不开也行,但需要在光猫中设置路由表)
- MSS 钳制(MSS clamping): 建议开启。
- 入站(Input):根据自己的需求进行设置。建议“拒绝”或者“丢弃”,表示不允许光猫及光猫下的其他设备访问 openwrt 本身。
- 出站(Output):根据自己的需求进行设置。可选择设置“接受”。表示是否允许 openwrt 本身访问光猫及光猫下的设备。
- 区域内部转发(Intra zone forward):“拒绝”或者“丢弃”。
- 允许从源区域转发(Allow forward from source zones):勾选
lan区域。表示lan区域(即 openwrt 下的设备)可以访问光猫及光猫下的其他设备。 - 允许转发到目标区域(Allow forward to destination zones):根据自己的需求进行设置。可选择设置
lan区域。表示光猫及光猫下的其他设备可以访问lan区域(即 openwrt 下的设备)。
完成设置
完成设置后,openwrt 路由器下的设备就可以直接访问光猫的管理页面了。
在电脑上,
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在 Windows 系统中,可以通过
tracert指令可以查看路由情况:在 Linux 系统中,可以使用
traceroute指令查看路由情况: