假设网络设置如下,
Router1 (192.168.1.1) ─┬─ (192.168.1.2) Ubuntu Samba+SSH Server
├─ (192.168.1.3) Router2 (192.168.2.1) ─┬─ (192.168.2.X) GuestPC1
├─ (192.168.1.X) AdminPC1 ├─ (192.168.2.X) GuestPC2
├─ (192.168.1.X) AdminPC2 ├─ (192.168.2.X) GuestPC3
: :
: :
└─ etc. └─ etc.
我希望从 AdminPC1 登录到路由器 2 的 Web 管理页面,http://192.168.2.1
就像通常从 GuestPC1 登录一样。
在 Router1 上,我尝试添加静态路由,将 192.168.1.3(Router2)设置为网络 192.168.2.0 的网关。但是,我仍然无法从 Router1 网络(192.168.1.X)上的任何客户端访问 Router2 的管理页面。此外,由于某种原因,我无法从 AdminPC1 ping 任何 GuestPC。我可以从 AdminPC1 ping Router2(通过在 AdminPC1 上调用 ping 192.168.1.3)。
我做错了什么吗?应该如何配置路由器 1 和 2?
答案1
问题是“路由器 2 是如何设置的”,在弄清楚之前,我们只能猜测答案。您没有告知您使用的路由器,也没有告知 AdminPC1 是否能够 ping GuestPC1 - 这些都是非常重要的事情。
您最有可能遇到的问题是,您尝试从路由器的外部接口访问路由器,但您可能会发现路由器出于安全考虑禁用了此功能。您可以在该路由器上对此访问进行编程。
另一个问题可能是您尝试通过 192.168.2.1 访问它,但该网络可能无法从管理 PC 访问。简单的解决方案是尝试通过外部接口访问路由器(从您的图表来看,该接口是 192.168.1.3)。
更复杂的解决方案是“修复路由” - 但这样做并非易事 [假设您提出的问题反映了一定的知识水平],并且涉及向服务器添加多条路由。除非您为每个路由器提供子网掩码和路由表,并确认 Router2 没有执行 NAT(它很可能是开箱即用的,并且会使您要做的事情 - 即连接到 192.168.2.1 - 变得不可能),否则我无法对此发表有意义的评论
获得更多信息后更新答案
为了让 192.168.1.x 网络中的设备能够看到 192.168.2.x 网络,您不需要将 Router2 变成交换机,但您需要执行以下操作 -
关闭 NAT。NAT 正在将地址从 192.168.2.x 重写为 192.168.1.3,因此显然确认数据包无法从 192.168.2.x 返回到 192.168.1.x
(这有点猜测您的设置)。使用静态 IP 地址对路由器 2 的外部接口进行编程(即不使用 DHCP)。您要确保此 IP 地址在 192.168.1.x 范围内,但在为 NAT 预留的块之外。192.168.1.254 可能有效,但为确保万无一失,您应该检查路由器 1 中为 DHCP 预留的 IP 地址池。您需要在路由器 2 上配置 192.168.1.1 的默认网关
在路由器 1 上,您需要配置从 192.168.2.0 到 192.168.2.0 的静态路由,网络掩码 255.255.255.0 网关 192.168.1.254(假设 192.168.1.254 是路由器 2 的外部接口)
这应该可行,但如果你经常使用 Ubuntu Samba+SSH 服务器,添加静态路由可能会提高性能,这样它就可以直接看到路由器 2,而不是将流量路由到路由器 1,然后再路由回路由器 2。你可以使用以下命令执行此操作
路由添加-net 192.168.2.0 网络掩码 255.255.255.0 网关 192.168.1.254
(假设 192.168.1.254 已配置为路由器 1 上的外部接口),但只有在其他所有操作都正常后才能执行此操作。此外,您可以将该命令添加到 /etc/rc.local(“exit 0”行之前)以使其在启动时自动运行。
您可以使用多种工具(Windows 和 Linux 等效工具)来帮助找出哪里出了问题以及流量如何流动。Windows 上使用的基本工具是 tracert、ping、winMTR,Linux 下有等效工具 traceroute、ping 和 mtr)。如果您想了解技术,还可以使用“arp”,它显示 IP 地址到 mac 地址(以太网接口)的映射。