主路由无法设置静态路由,如何让一级路由访问二级路由网段

1 天前
 comlewin

背景:

主路由为红米 AX5400 ,ip:192.168.31.1 ,设备网段:192.168.31.0/24

双十一组了一套主机,目前安装了 pve ( pve 真的很赞),pve 管理 ip:192.168.31.10 ,创建了一个虚拟机 OpenWrt 用来做 DHCP ,OpenWrt 的 wan 口接入 vmbr0 ,ip 地址:192.168.31.5 ,lan 口网段:10.0.8.0/24 。

[img]https://i.imgur.com/BqOZoKF.png[/img]

设置 nat 后,目前 10.0.8.0/24 可以正常上网,可以到 192.168.31.0/24 。但是 192.168.31.0/24 无法访问 10.0.8.0/24 。

主路由目前是红米 AX5400 ,没有静态路由的设置,也无法获取 ssh (已经找过相关资料和找过客服),请问各位大佬还有什么办法吗?

补充:目前是路由器拨号,改成光猫拨号的话,红米 ax5400 可以获取并下发 ipv6 ,但是上网时会转成路由器的 Ipv6 。

659 次点击
所在节点    宽带症候群
23 条回复
Pillanangel
1 天前
不知道 OP 的网络需求为什么给 OpenWRT 放到二级路由上,可以设置成旁路网关模式,那不影响目前网络配置,而且可以同网段下设备互访。
如果 OpenWRT 作二级路由无法静态路由是没有好办法的,除非用其他打洞比如 Zerotier ,或者加个旁路网关做静态。
comlewin
1 天前
@Pillanangel 放二级主要是虚拟机太多了,想让真实的设备的都在 192.168.31 这个网段里面,虚拟机的放在子网 10.0.8 里面,这样路由器 app 里面看起来也清爽,不然米家设备,虚拟机那就可太多了
winterbells
1 天前
咱俩几乎是一样的需求😂

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

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

AX5400 可以开 ssh 的,照着做就行

不过我对 iptables 之类的命令不熟不想搞了,之前存过一份静态路由的设置,想不起来在哪儿了
hefish
1 天前
跑路由协议啊,用 unbound 。。。
comlewin
1 天前
@winterbells 我是 ax5400 ,不是电竞版的,固件版本号也不一样,不知道能不能搞,我在看看还有其他方案没,这小米真的服,高级设置里面 vpn 端口转发都有,就是没有路由表功能
winterbells
1 天前
@comlewin 不需要是电竞版,我就是普通的
TESTFLIGHT2021
1 天前
家用设备就别折腾了
ccoming077
1 天前
三个方法
1. 主路由 DHCP 下发网关改为 Openwrt ,也就是通常说的旁路由使用的方法
2. 需要访问 10 网段的设备上配置静态路由,下一跳指向 Openwrt 的地址(如果终端设备也不支持配置静态路由那么 GG )
3. 主路由和 Openwrt 搭 VPN ,下发相关路由(不清楚支持的 VPN 种类,不一定可行)
comlewin
1 天前
@hefish github 上搜了下,没看懂/(ㄒoㄒ)/~~
comlewin
1 天前
@ccoming077 方法 2 应该可以,到时尝试下
ranaanna
1 天前
@comlewin @ccoming077 按照 OP 的连线方式( openwrt 的 wan 在 192.168.31.0/24 ),方法 1 和 2 都还不行,还需要在 openwrt 上设置 SNAT ,或者 port forwarding ,而且即使这样也只能访问 10.0.8.0/24 特定终端的特定端口。感觉 OP 的设置有点自找麻烦。都在一个局域网内不完美吗?多几个终端而已。如果想要隔离用 VLAN 。终端多不是用所谓的“二级路由”的理由。第一个回复 @Pillanangel 即是正解
Pillanangel
1 天前
@comlewin 如果 OP 是米家设备用户,有一些强迫症想要帮助米家一统天下,我是能理解这种心情。因为米家的路由目前没有一个原厂固件能自定义 Vlan 多 WIFI SSID 的配置,因为这个需求实在不是家用的普遍刚需,即便是硬件本身有这个基础能力。不过就目前的描述需求,那几乎就是只能换设备的方向了,上级访问下级除了静态木有太好办法。
@ranaanna 感谢支持。
datoujiejie221
1 天前
我的小米路由器支持 ssh ,一开始配的静态路由,折腾了半天还把路由器端口暴露在公网了,最后放弃静态路由,直接端口映射+openvpn 了
ccoming077
1 天前
@ranaanna openwrt 在 192 的广播域内,为什么方法一和二不行?
我看不到任何需要做 SNAT 和端口转发的地方。

非要说需要补充什么的话,无非就是需要注意在 openwrt 上开放 192 到 10 的转发防火墙而已
ranaanna
1 天前
@ccoming077 对于 openwrt 你的 192 是 wan ,10 是 lan 。openwrt 默认会通过 SNAT 或 masquerade 将 10 地址转换为 192 地址,这就是为什么 10 网段能访问 192 以及 internet 的原因。如果想要 192 网段能访问 10 网段的特定终端的特定端口,需要设置 DNAT 或 port forwarding 并且用路由器的 wan 地址来访问(抱歉之前写错了应是 DNAT ),这是普通路由器从 wan 访问 lan 的办法。或者在 openwrt 设置通过 SNAT 或 masquerade 同时也将 192 地址转换为 10 地址(这不是普通路由器能办到的,openwrt 或许能?),才能互通。或许这就是 OP 所说的“转发防火墙”?
ranaanna
1 天前
@ccoming077 续#15 ,看下来一事不懂想问明白,对于 openwrt 的那个路由器:

ip forwarding 默认打开是无疑的,所以 wan 和 lan 接口是可以互相到达的,

路由器默认打开的 SNAT 规则是:所有到达 wan 接口的数据包都伪装成 wan 地址和端口出去

OP 需要打开的 SNAT 规则是:所有到达路由器(其实就是 lan 接口)的数据包都伪装成 lan 地址和端口出去

出于安全以及内网地址的考虑普通路由器都不会做后者。抑或 openwrt 默认就有,或者可以设置?这好像不是设置静态路由可以解决的
comlewin
12 小时 58 分钟前
@ranaanna 数据到达网关后 192.168.31.1 (主路由),主路由会解析数据包头部,获取目的 IP 地址 10.0.8.x ,查找路由表,如果路由表找到了,就发给下一跳,大概就是这样子
ranaanna
12 小时 16 分钟前
@comlewin 可能要请 OP 了解一下 routing 和 NAT 的区别。终端和主路由当然可以而且必须要设置 10.0.8.0/24 的下一跳,最后跳到 openwrt 的 wan 地址 192.168.31.5 。但如果是普通路由器,并不会反向地作 NAT 与其内网通信。openwrt 或许可以,因为是基于 linux ,因为如果是 linux ,增加一条 nftables nat 链 postrouting 的规则即可
ranaanna
11 小时 34 分钟前
@comlewin 所以 @Pillanangel 是终极解决方案,openwrt 这个“旁路网关”让 10.0.8.0/24 可以连到 192.168.31.0/24 ,还需要再增加一个“旁路网关”让 192.168.31.0/24 可以连到 10.0.8.0/24 。在此基础上才可以有静态路由
comlewin
9 小时 34 分钟前
@ranaanna openwrt 本身就是路由,它把 10.0.8.0/24nat 后到上一级,上一级发送数据到 openwrt ,他在发给下面 vm ,vm 设备的网关就是 openwrt 本身 ip 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1093348

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX