网络地址转换最初在端点路由器是如何工作的
您问题中的图表没有显示 NAT 的任何使用,因此这不是一个好的选择。如果我们假设 R2 使用源 NAT/NAPT,而 R7 使用目标 NAT 即端口转发,那么
- Alice 将该数据包寻址到 Bob 的公共路由器 R7。Bob 的私人地址对 Alice 来说是未知的并且无用。
- R2 将其公共 IP 地址(其中之一)替换为 Alice 的私有源 IP(并且通常也会更改源 TCP 端口)。
- 数据包通过 Internet/公共 IP 空间转发。
- 根据其 DNAT 映射表,R7 将 Bob 的私有 IP 地址替换为它自己的公共目标 IP(它也可能更改目标 TCP 端口)。
- 数据包被转发给 Bob。
当鲍勃回复时,
- R7 根据其 NAT 表(也可能是源端口),将其自己的公共 IP 替换为 Bob 的私有源 IP。
- 数据包通过 Internet 转发。
- 根据其 NAT 表,R2 将 Alice 的私有 IP 替换为它自己的公共目标 IP。
- 数据包被转发给 Alice。
[编辑] 请注意,Alice 无法直接与 Bob 联系,因为两者都存在于不同的私有地址网络中。TCP/IP 的正确端到端设计需要在端节点之间有一个公共的、明确的地址空间——公共地址和私有地址的混合打破了这一空间。SNAT 和 DNAT 在某种程度上是解决该问题的补救措施,尽管方式有限。
另一种选择是在 R2 和 R7 之间创建一条隧道,允许它们共享一个通用的私有寻址方案。
相比之下,IPv6 的设计要好得多,允许同时使用公共的、明确的和私有的、本地使用的地址,因此不再需要 NAT。
从照片中很难理解场景中发生的 NAT 或 PAT 类型。这使得准确回答您的问题变得困难。
有四种类型的翻译: 静态 NAT、静态 PAT、动态 PAT、动态 NAT。
在这四个中,动态 PAT 是单向的。这意味着只有在流量由内部主机发起时,连接才会流经转换。
其他三种类型的转换是双向的,这意味着 NAT 操作或配置方式固有的,路由器具有用于双向启动的连接的映射。
我在这个答案中讨论了动态 PAT 是单向的(引用如下):
地址转换有四种方式:
- 静态 NAT – 仅转换 IP 地址,管理员在转换后明确定义 IP 地址
- 静态 PAT
– IP 地址和端口的转换,管理员在 转换后明确定义 IP 地址和端口- 动态 PAT – IP 地址和端口的转换,路由器在转换后确定新的 IP 地址和端口
- 动态 NAT – 仅转换 IP 地址,路由器在转换后确定新的 IP 地址
(根据您正在阅读的供应商文档,这些名称不同)
除了其中一种类型的转换之外,所有类型的转换都是双向的——无论是从内部主机还是外部主机启动,流量都可以通过转换进行处理。
不是(动态 PAT)的一个是单向的——只有当内部主机启动流量时,流量才会流动。
您没有明确指出您指的是哪种类型的翻译,但我认为可以肯定地说您正在谈论动态 PAT。为此,您实际上要问的问题是...
为什么动态 PAT 是单向的?
要理解,您必须首先了解动态 PAT 是如何处理流量的。首先,让我们看一下出站流量:
当内部主机通过配置了动态 PAT 的设备发送流量时,设备会转换源 IP 和源端口,然后将数据包发送出去。
原始数据包属性和转换后的数据包属性记录在转换表中。
在返回的路上,返回的数据包与转换表进行匹配,以确定如何“未转换”数据包并将其发送到正确的发起主机:
请注意,原始请求的响应流量被允许通过转换设备(在这种情况下为路由器,但许多设备可以执行动态 PAT)返回,因为转换表中的条目存在。
但是,如果从外部向动态 PAT IP 地址发起流量:
路由器在转换表中没有条目,因此不知道将数据包发送到哪个内部主机(A、B 或 C)。因此,路由器所能做的就是丢弃数据包。



