我有 2 个 Debian 路由器和网络设置如下:
|
|
| Internet/Public IP
|
----------
ROUTER A
----------
|
| 10.97.0.1/16
|
| 10.97.64.1/16 --------
+---------------------------------- | Client |
| --------
|
| 10.97.0.2/16
----------
ROUTER B
----------
|
| 10.98.0.1/30
|
| 10.98.0.2/30 --------
+---------------------------------- | Server |
--------
我将路由器 A 设置为客户端的默认网关,以便它可以访问互联网,并且我还在路由器 A 上配置了静态路由,以便可以访问 10.98.0.2 上的服务器,如下所示:
ip route add 10.98.0.0/16 via 10.97.0.2
然后我在路由器 A 上添加了 iptables 规则,以允许客户端访问服务器:
-A FORWARD -s 10.97.0.0/16 -d 10.98.0.0/16 -j ACCEPT
现在我面临的问题是,客户端的这种设置会导致 ICMP 重定向、数据包丢失和 SSH 连接问题(有时可以连接,有时不能),这让我相信其他协议也会出现问题。我当然可以在客户端上手动设置静态路由,并明确指定使用 ROUTER B 进行与 10.98.0.0/16 网络相关的通信,我这样做是为了测试目的,到目前为止它运行正常,但如果可能的话,我想避免这种情况,只使用 ROUTER A,因为最终会有多个客户端,这意味着我需要为每个客户端设置静态路由。
net.ipv4.ip_forward
已启用,除这种情况外,我的路由没有任何问题。
谢谢!
PS:我目前正在虚拟环境中运行此设置,然后再将其部署到真实硬件上。