网络地址转换(NAT)

NAT原理与穿越技术

From: http://tech.sina.com.cn/s/2004-11-05/0956454245.shtml

 

什么是 NAT?
网络地址转换 (NAT) 是一个 Internet 工程任务组 (Internet Engineering Task Force,IETF) 标准,用于允许专用网络上的多台 PC (使用专用地址段,例如 10.0.x.x、192.168.x.x、172.x.x.x) 共享单个、全局路由的 IPv4 地址。IPv4 地址日益不足是经常部署 NAT 的一个主要原因。

NAT 设备上的输出数据包
NAT 设备将截获该输出数据包,然后利用目标 IP 地址 (服务器)、目标端口、NAT 设备的外部 IP 地址、外部端口、网络协议及客户机的内部 IP 地址和端口来创建端口映射。

NAT 设备将维护这些映射组成的表,并将该端口的映射存储在表中。外部 IP 地址和端口就是该数据通信用于取代内部客户机 IP 地址和端口的公共 IP 地址和端口。

NAT 设备随即将来自客户机专用内部 IP 地址和端口的数据包的源字段转换为 NAT 设备的公共 IP 地址和端口,从而对这些数据包进行转换。

然后,数据包将通过外部网络发送出去,并最终到达目标服务器。


NAT 设备上的输入数据包
NAT 从服务器那接收到这些数据包,然后将数据包与其端口映射表进行比较。如果 NAT 发现某个端口映射的远程主机 IP 地址、远程端口、外部端口及网络协议与输入数据包的源 IP 地址、源端口、目标端口和网络协议匹配,NAT 就会进行反向转换。NAT 将把数据包目标字段中的外部 IP 地址和外部端口替换为客户机的专用 IP 地址和内部端口。

然后,NAT 将内部网络上的数据包发送给客户机。然而,如果 NAT 找不到对应的端口映射,它就会丢弃输入数据包并中断连接。


什么是“NAT 穿越”?
“NAT 穿越”是这样一组功能:它允许网络应用程序能明确自己位于 NAT 设备的后面,获得外部 IP 地址,并将端口映射配置为将 NAT 外部端口的数据包转发给应用程序所用的内部端口,而所有这些都是自动完成的,因此用户不必手动配置端口映射或其他类似的方面。


NAT 穿越 API
当网络应用程序需要检测是否存在 NAT 设备并调整该设备的行为时,该应用程序可以使用 Windows 中提供的“NAT 穿越 API”(完整记录在 Platform SDK 中) 来实现下列功能:
- 判断 NAT 是否存在
- 获取 NAT 的外部 IP 地址。
- 获取特定外部端口的静态端口映射信息 (如果已映射)。
-添加静态端口映射 (除非已分配外部端口)。
- 启用或禁用特定的端口映射而不删除
- 编辑静态端口映射的界面友好描述
- 删除静态端口映射
- 获取局域网静态端口映射的列表。


结论
NAT 是得到 IETF 认可的解决方案,针对的是 IPv4 名称空间耗用问题。使用 NAT 的 Internet 网关经常用于家庭和小型企业。之所以使用它们,是因为它们价格便宜,易于管理,无需用户安装特殊的软件。

使用 NAT 的不足在于会破坏许多聊天、多人游戏和对等应用程序。这是因为它们的网络协议对网络体系结构所做的假定已不成立。

“NAT 穿越”为应用程序提供了一条查找 NAT 设备、发现可全局路由的共享 IP 地址并配置静态端口映射以解决某些连接问题的途径。NAT 穿越解决方案无法解决与 NAT 有关的所有问题,但可以缓解部分问题。

<think>好的,用户需要查找关于网络地址转换NAT的实验指导或教程。首先,我需要确认用户的具体需求。他们可能是在学习计算机网络,需要实际操作NAT配置的步骤,或者作为网络工程师希望提升技能。根据用户提供的引用内容,有几个关键点需要注意:静态NAT、动态NAT、PAT的区别,配置步骤,以及可能遇到的问题如延迟和应用兼容性。接下来,我需要整理引用中的信息。引用[1]提到了实验指南的下载地址和涵盖的内容,包括静态NAT、动态NAT和PAT。引用[2]详细说明了项目核心功能,区分了不同类型的NAT。引用[3]解释了NAT的分类和配置方法,而引用[4]讨论了NAT的缺点和对应用的影响。用户可能需要一个结构化的实验流程,比如实验目标、环境准备、具体步骤等。此外,考虑到用户可能对NAT的原理不太熟悉,简要的理论部分会有帮助。同时,引用中提到的实验后恢复初始配置也很重要,需要提醒用户注意。需要确保回答符合用户的要求,提供清晰的步骤和资源链接。同时,生成的相关问题应该覆盖NAT的配置细节、优缺点比较以及实际应用场景,帮助用户深入理解。还要注意使用正确的中文表达和LaTeX格式,但根据用户的问题,可能不需要太多数学公式,但如果有涉及方程的地方,比如转换规则,需要正确应用格式。最后,验证所有引用标记是否正确对应,确保信息准确无误。总结实验指南的结构,并推荐提供的项目地址,方便用户获取详细资料。</think>### 网络地址转换NAT)实验教程 #### 一、实验目标 1. 掌握静态NAT、动态NAT和PAT(端口地址转换)的配置方法[^2]。 2. 理解NAT在私有网络与公网间的地址映射原理[^3]。 3. 分析NAT网络性能及特定应用的影响[^4]。 --- #### 二、实验环境准备 - **设备**:支持NAT功能的路由器(如Cisco或华为设备)、PC终端、服务器。 - **网络拓扑**:私有局域网(内网)与模拟公网(外网)连接。 - **工具**:网络模拟器(如GNS3、Packet Tracer)或真实物理设备。 --- #### 三、实验步骤 ##### 1. **静态NAT配置** - **原理**:一对一固定映射(如内网服务器需对外提供固定公网IP)。 - **操作**: ```bash # Cisco设备示例 ip nat inside source static 192.168.1.10 203.0.113.5 interface GigabitEthernet0/0 ip nat inside interface GigabitEthernet0/1 ip nat outside ``` - **验证**:通过`show ip nat translations`查看映射表[^3]。 ##### 2. **动态NAT配置** - **原理**:从地址池动态分配公网IP(多对多映射)。 - **操作**: ```bash # 定义地址池 ip nat pool DYNAMIC_POOL 203.0.113.10 203.0.113.20 netmask 255.255.255.0 # 配置ACL允许转换的内网范围 access-list 1 permit 192.168.1.0 0.0.0.255 # 应用动态NAT ip nat inside source list 1 pool DYNAMIC_POOL ``` ##### 3. **PAT(端口复用)配置** - **原理**:多对一映射,通过端口号区分不同会话[^3]。 - **操作**: ```bash ip nat inside source list 1 interface GigabitEthernet0/1 overload ``` --- #### 四、关键问题分析 - **性能影响**:NAT会增加数据包处理延迟,尤其在端口转换时可能导致TCP/UDP校验和重新计算[^4]。 - **应用兼容性**:IP电话、P2P应用可能因NAT破坏端到端通信而异常,需配置ALG(应用层网关)或UPnP辅助[^4]。 --- #### 五、实验资源推荐 - **详细教程**:[网络地址转换NAT实验配置指南](https://gitcode.com/Open-source-documentation-tutorial/2b8ee) 包含静态/动态NAT、PAT的完整配置案例及拓扑图[^1][^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值