
因为计算机网络的知识缺乏,而且网上搜索答案大多是讲原理,花了大概8h才知道怎么解决,这样和我有一样需求的话,就不用走我的弯路了。
先放下我家的网络拓扑图

先说操作,很简单,用到的是静态路由。在一级路由(主路由即:192.168.1.1)wifi管理界面设置静态路由规则,如下

操作完成之后还是无法ping通,可能和防火墙规则有关,建议把防火墙关闭后再测试。
ps:更简单的方案是把子网统一网段,也就是把二级路由器的dhcp关掉,ip分配通通让一级路由器来干。不过我的需求就是实现不同子网的设备通讯,所以不谈统一网段的操作。
背景
两个无线路由器,两个子网,通常什么都没设置的情况下,二级网络的n1能ping通一级网络的所有设备(遵循nat规则),而反过来则不行。但是我一楼的n1想要用到二楼的n1提供的http服务,在这种情况下要实现两个n1盒子的相互连接。
原理“粗俗”解释
既然解决方案和背景都提及了,最后说说我对主路由ping不通子网设备(反过来却可以)的“粗俗”理解(如有不对希望能告知,相互学习)。
首先,一个路由器里面,有广域网(wan)和局域网(LAN),通常每个设备都只有一个局域网ip。如果在这个原本只有一个路由器a的网络里,再增加一个路由器b,并把路由器b作为a的子网,这个时候路由器b,既是作为a的局域网一员(LAN ip),也是b生成子网络里面的大哥大(WAN ip)。
因此,b子网络里面的‘人’都知道要打电话给a网络里的‘人’的话,要先通过路由器b这个大哥大。
但是反过来,a网络里的‘人’,压根不知道b子网络的存在,为什么不知道?因为路由器b在a网络里就是老老实实的一员,而b产生子网在a整个网络里,是一个没有标注的地方。
结果静态路由的作用就来了,告知a网络的居民,其实路由器b他还是个b子网的大哥大!!
参考链接
https://baijiahao.baidu.com/s?id=1668291056220994279&wfr=spider&for=pc