NAT 是否总是转换数据包的目标地址?

网络工程 纳特
2021-07-14 22:24:24

来自https://www.cisco.com/c/en/us/support/docs/ip/network-address-translation-nat/13770-1.html

本文档提供了使用 ip nat outside source list 命令的示例配置,并简要说明了 NAT 过程中IP 数据包发生的情况您可以使用此命令来转换从网络外部传输到网络内部的IP 数据包源地址此操作转换以相反方向传输的 IP 数据包目标地址-从网络内部到外部

一个包从外网到内网的NAT过程中,包的目的地址不应该被转换,为什么写“源地址”?

在从私有网络内部传输到外部的数据包的 NAT 过程中,它写入数据包的目标地址已转换,我同意这一点。

谢谢。

2个回答

您可以翻译内部地址或外部地址,或两者兼而有之。

我们都在我们的家庭(和许多商业)网络上使用私有地址,因此我们将内部地址转换为公共地址。

有时公司必须与具有重叠地址的其他实体进行通信,因此我们将外部地址转换为非重叠范围

有时,我们需要两者兼而有之。

对于网络连接,数据包双向流动。通常,公共地址和私有地址之间的任何网络连接都需要转换——公共 IP 端无法发送到私有 IP 地址。[*]

因此,当从私有连接到公共时,您需要源 NAT,而当从公共连接到私有时,您需要目标 NAT。在这两种情况下,“转换方向”都是建立连接的方向。

SNAT 首先将请求的源 IP 地址转换为公共 IP,当响应返回时,其(公共)目标 IP 被转换回之前的(私有)源 IP。

DNAT 的工作方式正好相反:请求的目标 IP 被转换为私有 IP,响应的源 IP 被转换回之前的(公共)目标 IP。

请注意,“请求”和“响应”只是在连接建立方向或相反方向发送的数据包的占位符。即使对于像 UDP 这样的无连接协议,NAT 路由器也需要像有连接一样处理流。

另请注意,最常见的 NAT 变体是NAPT,它将传输层协议及其端口包含在转换中。

[*] 在某些情况下,您实际上可以混合使用私有 IP 地址和公共 IP 地址,尤其是当公共主机是您的并且具有进入您的私有网络的特定路由时。