路由:为什么我需要在第二个路由器中添加额外的路由

路由:为什么我需要在第二个路由器中添加额外的路由

网络图

考虑以下网络^^^。

Azure 中的虚拟网络设置: 10.10.0.0/16包含 1 个子网10.10.0.0/16和一个网关子网10.10.1.0/29

Azure 知道我们的网络是什么样的,2 个地址空间: 192.168.101.0/2410.246.0.0/16通过一个额外的路由器。

我想要实现与 Azure 之间的双向通信。

目前,我们在本地机器(具有 IP 192.168.101.36)上进行了设置,该机器运行带有 RRAS 的 Windows Server 2012 R2。它拨入 Azure,并且我们已建立连接。

RRAS 上的第一个路由是10.10.0.0/16。这确保本地网络 ( 192.168.101.0/24) 中的任何计算机都可以访问 Azure 网络。第二个路由是192.168.101.0/24,这是为了确保 Azure 可以与我们通信。问题:这里的网关应该是什么:192.168.101.1(DHCP 服务器)还是192.168.101.36(RRAS 服务器)

第三条路由确保进入 RRAS 服务器且想要与网络通信的任何流量都10.246.0.0/16被转发到192.168.101.103G 调制解调器/路由器。

现在我们缺少一个部分,但让我先解释一下什么是有效的:

  • Azure 中的计算机可以 ping 任何192.168.101.0/24
  • 我们本地网络 ( 192.168.101.0/24) 中的一台机器可以 ping Azure 中的任何内容 ( 10.10.0.0/24)。
  • 我们内部网络中的一台机器 ( 192.168.101.0/24) 可以 ping 3G 调制解调器后面的任何东西 ( 10.246.0.0/24)。

但是(这是我的下一个也是最重要的问题)Azure 中没有机器可以 ping 通 3G 网络除非我在 3G 调制解调器/路由器上添加了一条静态路由,内容是:10.10.0.0/16到网关192.168.101.36

为什么 3G 调制解调器/路由器不知道如何将流量重定向回192.168.101.36,毕竟它有那个特定的 IP 作为网关。

是因为10.*.*.*192.168.*.*不可路由吗?

更新:查看了 3G 路由器/调制解调器,发现了以下情况:

#> display route

 Route Table:

 Destination         Gw              Refs Mhome Iface    mtu  hops ttl         flags
 0.0.0.0/0           10.246.52.3     1    0     mobile0  1500 1    INF         UGS
 10.10.0.0/16        192.168.101.36  2    0     eth0     1500 1    INF         UGS
 10.246.52.0/29      *               1    0     mobile0  1500 0    INF         UC
 127.0.0.0/8         127.0.0.1       1    0     LOOPBACK 1500 1    INF         UGJS
 127.0.0.1/32        127.0.0.1       6    0     LOOPBACK 1500 0    INF         UH
 192.168.101.0/24    *               1    0     eth0     1500 0    INF         UC

看起来第一个“吃掉”了所有网络,第二个(即我添加的静态路由)解决了这个问题。最后一个是因为他知道自己在网络上192.168.101.0/24。但奇怪的是那里没有网关地址。

答案1

如果您需要在 RRAS 服务器上为 192.168.101.0/24 设置静态路由,我会感到惊讶,因为它是一个“直接连接”网络 - RRAS 服务器应该知道如何在没有配置静态路由的情况下到达该网络。无论如何,将 192.168.101.0/24 的网关设置为该网络上的 RRAS 服务器的 IP 是可行的,正如您所发现的(这实际上是将接口连接到子网的默认操作),但如果该网络上的 RRAS IP 发生变化,则会中断,因此删除静态路由可能更容易。

如果没有配置路由,3G 路由器就无法识别 10.10.0.0/16 子网,因为它不是直接连接的接口,因此无需任何进一步的指令,就会通过其默认网关将流量发送到该子网(最有可能直接发送到互联网)。如果没有默认网关,流量将无处可去。

3G 路由器上需要静态路由来告诉它 10.10.0.0/16 的流量必须定向到 192.168.1.36 上的 RRAS 服务器,因为这是该子网的正确网关。

如果没有该路由,Azure 机器就无法 ping 10.246.0.0/24 中的机器,原因是虽然 Azure 机器可以到达 10.246.0.0/24 子网(该方向的路由配置正确),但如果反向路由配置不正确,这些 ping 的答复就无法返回。

我们来举一个两个 IP 之间的 icmp echo 请求的例子:
10.10.1.20 向 10.246.10.10 发送 echo。
Azure 设置知道 RRAS 是 10.246.0.0/16 的网关
RRAS 知道 3G 路由器是 10.246.0.0/16 的网关
3g 路由器将数据包发送到 10.246.10.10 的 10.246.0.0/16 网络
10.246.10.10 接收并生成回复
10.246.10.10 具有 3g 路由器的默认网关,因此它将其发送到 3g 路由器
3g 路由器没有到 10.10.0.0/16 的路径,因此丢弃数据包或将其发送到最后的默认网关(显然不是 RRAS 服务器,或者另一条路由覆盖了默认网关)- 数据包丢失

相关内容