光猫桥接模式下使用openwrt路由器访问光猫配置教程

warning: 这篇文章距离上次修改已过854天,其中的内容可能已经有所变动。

更新

2023-04-10 13:32:46

2023年再来更新一些说明:

  • 后记中的内容缺乏实践,暂时没有测试环境,暂时不去求真了
  • 如果你看到本文是为标题而来,为了实现需求,请着重看 正文Reference 引用部分即可,其他的不用看

2021-05-15 11:51:43

20210515115118.png

如果新建 ToModem 这个接口的时候设置了 255.255.255.0的掩码,并且接口 ip 地址就是 192.168.1.254 (或者其他,主机位只要不是0、1、255 这三个就行),则不需要添加静态路由了,因为从上图你可以发现,创建好这个接口(这个接口绑定物理网卡是 eth4 也就是 wan 那个)后这个系统中就已经存在到达 192.168.1.0/24 这个网络的路由表项了,所以数据包从 10.10.10.x192.168.1.1 肯定是可达的。

在局域网中的电脑跟踪一下路由看看

# 这是局域网中的机器,这台机器的 ip 是 10.10.10.168
# traceroute 192.168.1.1
traceroute to 192.168.1.1 (192.168.1.1), 64 hops max, 52 byte packets
 1  dkrouter.lan (10.10.10.1)  8.376 ms  1.864 ms  1.820 ms
 2  192.168.1.1 (192.168.1.1)  3.227 ms  2.668 ms  2.465 ms

正文

一般光猫的 ip 地址默认都是 192.168.1.1

我的局域网的 ip 地址通常设置成 10.10.10.0/24 这个网络,openwrt 软路由的ip地址是 10.10.10.1,作为 AP 使用的 K2P 的 ip 地址是 10.10.10.2,作为服务器一直运行着的 thinkpad t400 的地址是 10.10.10.3,然后其他连接到软路由或者 k2p 上的设备 ip 都是 10.10.10.x

现在光猫已经作为桥接模式运行了,openwrt 拨号使用,这样对于 pt 的上传会有好处。

如何不改光猫的ip(改成 10.10.10.x)实现openwrt路由器(乃至于局域网中的其他设备)访问光猫呢?

很简单

  1. 新建一个接口 tomodem,接口名称随意定义,新接口协议必须是静态地址,包括的接口是路由器上的 wan 接口,比如我这里的是 eth4,要求ip和光猫同网段(比如说设置成192.168.1.254,不能和光猫ip冲突),子网掩码设置成 255.255.255.0
  2. 设置使用网关跃点 100
  3. 防火墙选择 wan tomodem

tomodem1.png

创建接口的详细图片解释

下面创建一条静态路由

  1. 接口选择刚刚创建的 tomodem
  2. 对象是 192.168.1.1 也就是光猫的ip地址。由于对象是一个host 而不是network 所以掩码可以不用填
  3. IPv4 网关是 tomodem 接口的ip地址,这里是192.168.1.254
  4. 跃点数填100
  5. mtu使用默认的1500
  6. 路由类型使用默认的 unicast 都填好了点击下面的「保存&应用」

20210423150006.png

到这里就设置好了。建议重启网络

/etc/init.d/network restart

ssh 进 openwrt

我这机器上共有5个网口,eth0 到 eth3 都是桥接后的 lan,接口名称叫 br-lan 它的ip地址是 10.10.10.1 连接到家里设计的局域网的设备ip都是 10.10.10.x

# ifconfig br-lan
br-lan    Link encap:Ethernet  HWaddr A0:36:9F:85:95:2C  
          inet addr:10.10.10.1  Bcast:10.10.10.1  Mask:255.255.255.0
          inet6 addr: fe80::a236:9fff:fe85:952c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:49893245 errors:0 dropped:0 overruns:0 frame:0
          TX packets:51913772 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:109981699938 (102.4 GiB)  TX bytes:39671384074 (36.9 GiB)

看看 wan 这个接口,新增的接口 tomodem 也使用的这个物理接口。可以看到 ipv4 地址是 192.168.1.254

# ifconfig eth4
eth4      Link encap:Ethernet  HWaddr 00:E0:70:2A:3F:59  
          inet addr:192.168.1.254  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:98646352 errors:0 dropped:119900 overruns:0 frame:0
          TX packets:289134781 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:47923955741 (44.6 GiB)  TX bytes:281272600802 (261.9 GiB)

跟踪一下路由看看。

# traceroute 192.168.1.1
traceroute to 192.168.1.1 (192.168.1.1), 30 hops max, 46 byte packets
 1  192.168.1.1 (192.168.1.1)  0.831 ms  0.762 ms  0.671 ms

可以了耶。ping 一下看看

# ping 192.168.1.1 -c 4
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: seq=0 ttl=64 time=1.124 ms
64 bytes from 192.168.1.1: seq=1 ttl=64 time=0.941 ms
64 bytes from 192.168.1.1: seq=2 ttl=64 time=0.941 ms
64 bytes from 192.168.1.1: seq=3 ttl=64 time=0.934 ms

--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.934/0.985/1.124 ms

使用浏览器访问 http://192.168.1.1 嗯,可以访问啦!这样配置的目的就是方便了桥接光猫的用户更便捷的管理/登录 光猫的配置管理系统,查看配置也是极其方便的~~~

Reference

https://www.right.com.cn/forum/thread-400002-1-1.html

后记

因为从 wan 到光猫的线路只有一个目的地址,目标只是一台主机,而不是一个网络,所以理论上 tomodem 接口的 ipv4 不需要设置成 192.168.1.x 这个网段的,掩码也不需要填写,设置静态路由的时候,只需要在网关那里设置成 tomodem 的 ipv4 地址即可。

比如 tomodem 接口地址设置成 172.16.90.1,然后不设置掩码,关键的步骤在创建静态路由时,目标对象设置成 192.168.1.1,然后 ipv4 网关设置为 172.16.90.1,最后重启网络应该也是可行的~

end.

已有 13 条评论

  1. luffy luffy

    这样配置的时候光猫和路由必须是不同网段吗

  2. qinghuan qinghuan

    感谢,成功访问到光猫

  3. 后记172.16.90.1。我试了一下 是不行的。可能是我哪里设置有问题

    1. 理论上我觉得这样能行,但是未经实践我就发出来了……

      感兴趣可以研究下。否则只要能实现目标就好(摆烂.gif

  4. qqq qqq

    后记里的我测试了一下,并不能访问,不知你是否测试过

    1. 这个我也没试过,但按理说是可以的(如果真的不行就是我认知上的错误了),如果不行再看看路由表项,以及几个接口的配置。

  5. qqq qqq

    另外 为什么目标是一个网络就必须是同网段IP 而目标是一台主机就不需要同网段IP

    1. 因为如果目标是一个网络需要用到掩码 netmask,会有个网络号、主机号与计算,算出目标 IP,家用路由子网掩码一般都是 255.255.255.0,也就是 24 个 1 后面跟上 8 个 0。

      如果是目标 IP 写死了的话,路由表的灵活性会大大降低,但静态路由常常这么做,因为需求很明确,目标 IP 只有一个,都不需要广播地址。

  6. qqq qqq

    有点疑惑
    1按照你的思路如果让它自动添加路由表 是不是tomode地址就必须是192.168.1.x
    2反过来如果tomode不想填写192.168.1.x网段地址就必须要自己手动添加路由
    是这个意思吗

    1. 对,总之要让路由表中生成能到达光猫 IP 192.168.1.1 的记录。

  7. kami kami

    太厲害了,跟著操作成功了

添加新评论