在涉及 NAT 的情况下需要帮助

网络工程 路由 转变 ospf 鼻涕虫
2022-02-08 15:29:54
                   DST Host
                    |
                    |
             +-------------+
             |             |
             |    RTR3     |
             |             |
             +-------------+
              |           |
              |           |
             RTR1--------RTR2
               | e0       |e1
               |          |
               | e0       |e1
  (Loopback1) SW1        SW2 (loopback2)
                          |
                          |
                         SRC HOST

在上述拓扑中,SW1 和 SW2 在 e0 和 e1 接口上运行 ospf。他们还在 Loopback 1 和 Loopback2 上运行 ospf passive。RTR1 和 RTR2 也在 e0 和 e1 上运行 OSPF。假设 SRC HOST 正在向 DST HOST 发送数据。我想在 SW2 中应用 NAT 规则,以便发往 DST HOST 的数据包应将其源 IP 转换为 Loopback1 的 IP 地址。这个数据包会到达 DST HOST 吗?此数据包可能会发生以下任何情况: 1. RTR2 可以丢弃此数据包吗?2、这个包会不会触发RTR2的L2表中的错误学习,使得RTR2认为到达nexthop,SW1'e0 IP地址,目的mac是SW2的e1的MAC?

提前致谢。

1个回答

如果您使用的是 Cisco 交换机,那么您当然不能对它们进行 NAT。思科声称 NAT 需要硬件辅助,而且它只在路由器上提供。

此外,当您对源地址进行 NAT 时,会将返​​回流量设置到该目标。如果来自交换机 2 的流量获得交换机 1 环回的源地址,则任何返回流量都将被定向到交换机 1 的环回,而交换机 1 不知道如何处理该流量,因此它被丢弃。

听起来您希望交换机 1 和 2 共享一个 NAT 表,但它不是这样工作的。转换后的流量需要返回到具有转换表的设备,以便进行反向转换并将其发送回正确的设备。

您似乎也将第 2 层 (MAC) 寻址与第 3 层 (IP) 寻址混淆了。二层交换机将仅根据帧头中的 MAC 地址交换流量;他们不查看帧,甚至查看包头中的第 3 层地址。路由器将剥离帧,丢失 MAC 地址,以便到达第 3 层数据包,并根据第 3 层目标地址做出路由决策,为路径中的新接口创建新帧目的地。

由于您想使用 NAT 更改源地址,因此目标主机将使用该地址作为任何返回流量的目标地址,并且一个网络上的主机不知道原始第 2 层地址是什么。