首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >源NAT和目标NAT

源NAT和目标NAT
EN

Network Engineering用户
提问于 2017-01-01 16:26:21
回答 2查看 3.8K关注 0票数 1

也许我没有正确地理解这两件事,但源NAT不总是要求目标NAT工作吗?

比如说,我们有两个电台:

A: 192.168.0.10 B: 192.168.0.20

一个具有公共IP: 10.11.12.13的路由器正在执行Source NAT,因此它将所有数据包的源地址从A和B更改为10.11.12.13。

但他们怎么能得到回应呢?

我的家庭路由器不是同时做源和目标NAT吗?

EN

回答 2

Network Engineering用户

发布于 2017-01-01 22:28:06

也许我没有正确地理解这两件事,但源NAT不总是要求目标NAT工作吗?

这完全取决于你如何定义这些术语。

对于NAT来说,在数据包级别上,属于特定连接的分组的转换必须是对称的。如果传出数据包的源地址(和可能的端口)发生更改,则对这些数据包的响应必须更改其目的地地址(和可能的端口)。

在管理和状态跟踪级别上处理这一问题有多种方法。

iptables在linux (家庭/SMB路由器和其他地方使用的一个常见实现)上采取的方法是面向连接的。新连接的第一个数据包通过"nat“表中的链。基于这些表,将设置应用于连接的所有数据包的映射。以后,属于连接的数据包不会通过"nat“表中的链。

因此,当您的机器连接到Internet上的服务器时,会发生以下情况。

  1. 你的客户发送到初始数据包。
  2. 路由器获取初始数据包,确定它与新连接相关,并通过"nat表“中的链传递它。该数据包与SNAT规则匹配。
  3. 路由器修改源地址。如果规则请求随机源端口,或者如果需要消除返回通信量的歧义,它也可以修改源端口。
  4. 路由器在其连接跟踪表中创建一个条目,描述新连接及其上执行的转换。
  5. 路由器将数据包发送到互联网上。
  6. 服务器按正常方式制作回复,交换源和目标IP和端口。
  7. 路由器获取应答包,在其连接跟踪表中查找它,并确定它与现有连接相关。它会更改目标IP并可能更改端口。
  8. 客户端使用预期的地址和端口获取它的回复。
  9. 与连接有关的进一步分组继续基于连接跟踪表中的信息进行翻译。
票数 2
EN

Network Engineering用户

发布于 2017-01-01 20:50:21

一个人的来源是另一个人的目的地。

但说真的,术语来源和目的是相对于一些参考,在这种情况下,它是设备进行翻译。所以从路由器的角度来看,源是它的内部网络。

票数 1
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/37700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档