{"title":"access the server under the second layer network in OpenWrt route system","type":"blogGist","show":true,"description":"在 OpenWrt 下, 访问 二层网络下的服务器","tag":["openwrt"]}
基于 静态路由
在家庭组网中, 有时不方便把所有的机器部署到一个路由器下, 比如 我的服务器 和 PC 很可能不在一个 房间, 那么这样就需要完成从 PC 访问 二层网络下的服务器.
这里的问题在于 Route A 是 不知道 Route B 下的子网是什么样子的, 甚至 Route A 不知道 Server 的存在.
对于这种情况有两种方案:
Route A和Route B网段相同, 将Route B下的子网并入Route A, 同时Route B做Route A的 DHCP 中继.Route A和Route B网段不同, 在Route A上设置 静态路由表, 让Route A将Route B的 网段的全部数据包都转发给Route B.
方案 1 比较麻烦, 笔者没有搞定 DHCP 中继的问题, 始终没有办法让 Route B 将 Server 的 IP 广播到 Route A. 所以最后选择了 方案 2, 并且 方案 2 可以容纳更多的设备在网络中.
为了方便讲解, 下面假设 Route A 的网段是 192.168.1.0/24, Route B 的网段是 192.168.99.0/24
你可以使用下面若干种方式 让 Route B 加入 Route A 的子网 (其实就是连上 Route A), 详细这里就不赘述了.
- 有线连接
Route B无线连接到Route A- ...
然后记录 Route B 在 Route A 子网的 IP, 这里假设分配到的是 192.168.1.155.
最好可以在这里设置一下 DHCP , 固定 一下 Route B 在 Route A 子网中的 IP
注意, 这里
Route B的 网段不要和Route A的网段相同, 例如Route A的网段是 192.168.1.0/24 , 那么Route B就得设置成 除 192.168.1.0/24 之外的网段.
前往 Route B 的 管理后台, Network -> Interface 页面, 选择 wan , 将 协议改成 静态地址(static address),
然后这里有三个参数要改
- ipv4 地址
- 填上面
Route B在Route A子网 DHCP 分配的 IP . 例如上面假设的192.168.1.155
- 填上面
- 子网掩码
- 一般填 255.255.255.0 , 和你想要管理多大的子网有关.
- ipv4 网关
- 填
Route A的网关地址, 例如Route A分配的 DHCP IP 是192.168.1.155那么, 这里一般都填192.168.1.1
- 填
input 和 forward 都要 打开,
这里就是让
Route A把全部的 关于Route B子网网段的 包 都转发给Route B,你也可以理解成
Route B是这些包的下一跳
来到 Route A 的 Network -> Routes 页面, 添加一条 ipv4 规则,
- Interface
- 选 lan
- Target
- 写
Route B的网段, 例如上面的192.168.99.0/24,
- 写
- ipv4-netmask
- 子网掩码, 根据网段, 这里填
255.255.255.0
- 子网掩码, 根据网段, 这里填
- ipv4-gateway
- 填
Route B在Route A的子网中的地址, 例如上面的192.168.1.155
- 填
别的设置都保持原样即可.
到这里就基本都完成了.
