路由基础设施疑问。这是功能设计吗?

网络工程 路由 网络 联网 路线 下一跳
2022-02-08 17:11:30

我设计了以下网络图,但我不知道它是否会导致网络出现问题: 在此处输入图像描述

关于基础设施的一些细节:

  • 网络连接 Ext rtr A、Int rtr B 和 C 为 172.16.0.0/24(是此网络的默认网关)

    • 外部 rtr A IP 172.16.0.1/24
      • Ext rtr A 通过 172.16.0.2/24 路由​​到 172.16.100.0/24
      • Ext rtr A 通过 172.16.0.3/24 路由​​到 172.16.200.0/24
    • Int rtr B IP 172.16.0.2/24
    • Int rtr C IP 172.16.0.3/24
  • B岛的网络是172.16.100.0/24

    • 岛 IP 172.16.100.1/24 中的分机 B(是此网络的默认网关)
      • Ext rtr B 通过 172.16.100.254/24 路由​​到 172.16.0.0/24
      • Ext rtr B 通过 172.16.100.254/24 路由​​到 172.16.200/24
    • 岛上的 Int rtr B 有 IP 172.16.100.254/24
      • Int rtr B 通过 172.16.0.3/24 路由​​到 172.16.200.0/24
  • C岛的网络是172.16.200.0/24

    • 岛 IP 172.16.200.1/24 中的分机 B(是此网络的默认网关)
      • Ext rtr C 通过 172.16.100.254/24 路由​​到 172.16.0.0/24
      • Ext rtr C 通过 172.16.100.254/24 路由​​到 172.16.100/24
    • 岛上的 Int rtr C 有 IP 172.16.100.254/24
      • Int rtr C 通过 172.16.0.2/24 路由​​到 172.16.100.0/24

该网络上的包将遵循以下流程: 第一个场景:

  • 服务器 172.16.0.50/24 打开与服务器 172.16.100.10/24 的连接:
    • 包将默认网关(172.16.0.1/24)作为其下一跳,一旦到达此路由器,包将重定向到新的下一跳(172.16.0.2)以到达正确的网络,之后将到达主机上的目的地172.16.100.10。对该包的回答将从默认网关 (172.16.100.1) 的下一跳开始,一旦到达此路由器,包将重定向到他的下一跳以到达正确的网络 (172.16.100.254),之后将再次到达主机 172.16.0.50

第二种情况:

  • 网络 172.16.100.60/24 中的服务器打开与服务器 172.16.200.80/24 的连接:
    • 包将默认网关 (172.16.100.1/24) 作为其下一跳,一旦到达此路由器,包将重定向到新的下一跳 (172.16.100.254),此处包再次使用最终路由器 172.16 更改下一跳。 0.3 之后到达目的地 172.16.200.80/24 对这个包的回答将从下一个跃点开始到默认网关 (172.16.200.1) 一旦到达这个路由器得到重定向到他的下一个跃点 (172.16.200.254) 到达正确的网络,一旦到达内部路由器,他的新下一个希望是 172.16.0.2,然后再次到达目的地

现在的问题是:发送和响应包中的跃点之间的差异会导致通信上的任何问题吗?

2个回答

第一个场景:

服务器 172.16.0.50/24 打开与服务器 172.16.100.10/24 的连接:

包将默认网关(172.16.0.1/24)作为其下一跳,一旦到达此路由器,包将重定向到新的下一跳(172.16.0.2)以到达正确的网络,之后将到达主机上的目的地172.16.100.10。对该包的回答将从默认网关 (172.16.100.1) 的下一跳开始,一旦到达此路由器,包将重定向到他的下一跳以到达正确的网络 (172.16.100.254),之后将再次到达主机 172.16.0.50

我认为你在这里的理解是有缺陷的。172.16.0.50/24默认网关发送的数据包172.16.0.1/24将不会被路由回其起源的同一网络。路由器可能会向原始主机发送 ICMP 重定向(出于安全原因,这在今天已被弃用),但路由器不会从网络路由回同一网络。实际上,您将在源主机中设置路由表以指向目标网络的正确路由器。对于发起主机不知道路由器的任何目的地,默认网关是最后的手段。

第二种情况:

网络 172.16.100.60/24 中的服务器打开与服务器 172.16.200.80/24 的连接:包将默认网关 (172.16.100.1/24) 作为其下一跳,一旦到达此路由器,包将重定向到新的下一个跃点 (172.16.100.254) 此处的包再次更改下一跃点,最终路由器为 172.16.0.3,然后到达目的地 172.16.200.80/24 )一旦到达此路由器,则重定向到他的下一跳(172.16.200.254)以到达正确的网络,一旦到达内部路由器,他的新下一个希望是172.16.0.2,然后再次到达目的地

同样,您的主机应该为内部目标网络配置正确的路由器,并且只使用默认路由器作为未知目标的最后手段。

不会。只要 TTL 没有过期,跳数就没有区别。路由器跳数对终端主机是不可见的。

以下是其他一些观察结果:

  • 我认为您在 Network C 下有一个错字:我认为您的意思是说 Int-C 和 Ext-C。
  • 您没有描述 Ext-A 与 Int-B 和 Int-C 之间的较低连接。
  • 我假设您打算在这些设备上配置静态路由。路由协议会​​让事情变得更容易,并给你一些冗余。正如您所描述的,即使您有冗余连接,链接故障也会导致事情中断。
  • 理想情况下,Int-b 和 Ext-b 将使用 FHRP,如 VRRP 或 HSRP。Int-C 和 Ext-C 相同