前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网络地址转换 (NAT) 概述 (RFC 3022/2663)

网络地址转换 (NAT) 概述 (RFC 3022/2663)

作者头像
dpdk-vpp源码解读
发布2024-05-15 18:25:20
4180
发布2024-05-15 18:25:20
举报
文章被收录于专栏:DPDK VPP源码分析DPDK VPP源码分析

近期,项目开发任务驱使我需要深入了解NAT网关的核心特性。为此,我搜集了一些网络上的NAT技术干货,并计划通过本公众号逐步推送翻译内容。若对此话题抱有浓厚兴趣,欢迎持续关注我们。当然,读者也可以直接拉至文末,点击“阅读原文”。

当前,电信运营商广泛采纳了网络地址转换(NAT)技术,几乎涵盖所有接入网络类型,唯独排除了有线网络如光纤到户(FTTH)、以太网及DSL服务。

在第三代与长期演进(3G/LTE)网络架构中,大规模NAT(LSN)装置被置于GGSN或P-GW之后,作为核心网络的一部分,此LNS技术也被俗称为“运营商级NAT(CGN)”。

至于Wi-Fi热点场景,NAT功能直接内置于热点接入点(AP),实现了无缝地址转换。

至于居民家庭宽带领域,无论是电信运营商提供的租赁型家用AP,还是用户自主选购的市售产品(例如D-Link DIR系列),NAT均作为标准配置存在,确保了私有IP向公共IP的有效映射。

无论是3G/LTE用户、Wi-Fi热点用户还是家庭无线网络用户,均被分配私有IP地址。当他们访问互联网时,这些私有地址通过NAT转换为公有IP地址,从而实现对外通信。

NAT技术为电信运营商带来的优势包括:

1. 公有IP地址的高效利用:通过NAT,多个设备的私有IP地址被映射到单一公有IP下,实现互联网访问时的地址共享,极大减少了公有IP的需求量。

2. 强化网络安全屏障:在3G/LTE网络配置大规模NAT(LSN),能有效阻隔外部对移动设备及网络的直接侵袭。企业也能借由私有地址配置(类比防火墙机制),构建起防御外界威胁的坚固防线。

接续此话题,我将依据关键规范RFC 3022(传统NAT概述)与RFC 2663(IP NAT术语与考量要点),进一步阐述NAT相关的专业术语,以便深入理解。

关键术语解析

传输端口(Transport Ports, TU Ports):TCP与UDP的报文头中均含源端口和目的端口字段,统称为“传输标识符”。在TCP或UDP通信中,目标端口多采用IANA规定的知名端口号(0-1023)或已注册端口号(1024-49191),遵照RFC 1700,例如,HTTP默认使用的TCP端口为80。源端口则是操作系统动态选取的一个高范围值(大约30,000至60,000之间),这类端口被标记为“临时端口”。想深入了解,请参考[维基百科关于临时端口的条目](http://en.wikipedia.org/wiki/Ephemeral_port)。

公共/全局/外部网络:这是指由IANA分配具有全球唯一IP地址的网络,能够跨不同电信运营商网络进行全球路由,通称为“公共IP网络”。

私有/本地网络:这类网络使用IANA未正式分配的IP地址空间,无法直接在互联网上路由,通常被称作“私有IP网络”。IANA为此预设了三组私有地址段:

代码语言:javascript
复制
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16

会话(Session):在数据传输管理中,会话是指作为整体处理的一系列通信,通过源IP、源端口、目的IP和目的端口四元组唯一标识每一个TCP/UDP会话。

应用层网关(Application Level Gateway, ALG):鉴于部分应用程序的数据负载中嵌入了IP地址或端口信息,一些NAT设备集成了ALG功能。ALG能识别并转换负载中的这类信息,使NAT具备对应用层面的洞察力。常见支持的应用包括FTP、SIP、RTSP等。然而,鉴于新应用层出不穷,全面覆盖所有应用的ALG支持难以实现,因此配备ALG的NAT设备并不广泛。

网络地址转换(NAT)简述

网络地址转换(NAT)是一种技术手段,负责将私有IP地址与公共IP地址相互转换,从而使私有网络中的设备能够与公共网络(互联网)进行通信。

在传统的NAT应用中,大多情况下,局域网内的主机能够透明地访问外部网络的资源。这种经典的NAT配置下,会话通常是单向的,即从私有网络向外发起。对于反方向的通信需求,即外部网络尝试访问私网内部特定主机的情况,则可以通过为这些预选的主机设置静态地址映射,作为特例来允许这样的双向会话。(参考RFC 3022)

长久以来,NAT设备的主要用途是连接两个不同的地址空间:一个是使用未注册私有地址的隔离网络环境,另一个则是拥有全球唯一注册地址的外部网络环境,以此实现两者之间的通信桥梁作用。(参考RFC 2663)

在RFC 3022和RFC 2663中定义了两种类型的NAT:基本NAT和网络地址端口转换(NAPT)。尽管两者统称为“传统NAT”,NAPT因能有效节俭IPv4地址,已成为当下主流。因此,日常提及NAT时,多半指向NAPT。目前,所有接入点(AP)均已支持NAPT类型的运作模式。

基本网络地址转换(Basic NAT)是一种透明于终端用户的转换方式,它将一个IP地址组映射到另一个IP地址组。也称作静态转换Static Nat。IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。

网络地址端口转换(NAPT)则是一种更复杂的转换方法,能够将多个网络地址及其关联的TCP/UDP端口,转换为单一的公共网络地址及其对应的TCP/UDP端口。

这两种操作结合,即所谓的“传统NAT”,共同提供了一种机制,使得使用私有地址的内部网络领域能够与拥有全球唯一注册地址的外部网络领域相连接。(引自RFC 3022)

静态NAT

定义和目的 :出于安全目的(如防火墙),企业网络中采用基本 NAT。它提供 IP 地址的一对一转换。这意味着需要与具有私有IP地址的设备相同数量的公共IP地址来访问互联网。

翻译规则 :1:1 转换(1 = 公共 IP,1 = 私有 IP)

映射关系:出站流量:将私有源IP 地址转换为公共源IP 地址;入站流量:将公共目标 IP 地址转换为私有目标 IP 地址。

数据包修改 :以下数据包信息在翻译过程中被替换: 出站流量:源 IP 地址、IP 标头校验和。入站流量:目标 IP 地址、IP 标头校验和。

会话中的三个翻译阶段

  • 地址绑定:基本NAT将公网IP地址与私网IP地址设备发送的每一个出站流量绑定(1:1映射),并在NAT绑定表中生成一条会话表项。
  • 地址查找和翻译:稍后,当NAT 收到出站流量数据包(从用户设备到NAT)时,它会通过引用绑定表将数据包的私有源IP 地址转换为公共源IP 地址,并将其传送到Internet。 当它接收到入站流量数据包(从互联网到NAT)时,它通过参考绑定表将数据包的公共目标IP地址转换为用户设备的IP地址,即私有目标IP地址,并且将其传送到用户设备。
  • 地址解绑:如果没有与生成的会话条目相对应的传入数据包,则 NAT 会从 NAT 绑定表中删除该条目。

网络地址端口转换(NAPT)

定义和目的:NAPT用于保存公共IP地址。它提供 IP 地址的多对一转换。这意味着当多个具有私有IP地址的用户设备访问互联网时,将使用一个公共IP地址。

翻译规则 :1:N 转换(1 = 公共 IP,N = 私有 IP)

映射关系:

  • 出站流量:将{私有源IP 地址、本地TU 源端口}元组转换为{公共源IP 地址、注册TU 源端口}元组
  • 入站流量:将{公共目标IP 地址、注册的TU 目标端口}元组转换为{私有目标IP 地址、本地TU 目标端口}

数据包修改 :以下数据包信息在翻译过程中被替换:

  • 出站流量:源 IP 地址、IP Deader 校验和、TU 源端口、TCP/UDP 标头校验和
  • 入站流量:目标 IP 地址、IP 标头校验和、TU 目标端口、TCP/UDP 标头校验和

会话中的三个翻译阶段

  • 地址绑定:当具有私有IP地址的设备发送出站流量时,NAPT将公有IP地址和TU源端口与设备的私有IP地址和TU源端口绑定(1:N映射)。然后,NAPT 在 NAT 绑定表中为该流量生成一个会话条目。
  • 地址查找和翻译:当 NAPT 收到出站流量数据包(从用户设备到 NAT)时,它会通过引用绑定将数据包的私有源 IP 地址和本地 TU 源端口转换为公共源 IP 地址和注册的 TU 源端口(注册端口是指NAT分配的端口,本地TU源端口也称为“内部端口”,注册TU源端口称为“外部端口”。) 。 当 它接收到入站流量数据包(从 Internet 到 NAT)时,它将数据包的公共目标 IP 地址和注册的 TU 目标端口转换为用户设备的 IP 地址和端口值,即私有目标 IP 地址和本地TU目的端口,通过参考绑定表,下发到用户设备。
  • 地址解绑:如果没有与生成的会话条目相对应的传入数据包,则 NAPT 会从 NAT 绑定表中删除该条目。

参考资料: 1、https://www.rfc-editor.org/rfc/rfc3022 2、https://www.rfc-editor.org/rfc/rfc2663 3、https://www.h3c.com/cn /d_202305/1840921_30005_0.htm#_Toc133616990

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DPDK VPP源码分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
私有网络
私有网络(Virtual Private Cloud,VPC)是基于腾讯云构建的专属云上网络空间,为您在腾讯云上的资源提供网络服务,不同私有网络间完全逻辑隔离。作为您在云上的专属网络空间,您可以通过软件定义网络的方式管理您的私有网络 VPC,实现 IP 地址、子网、路由表、网络 ACL 、流日志等功能的配置管理。私有网络还支持多种方式连接 Internet,如弹性 IP 、NAT 网关等。同时,您也可以通过 VPN 连接或专线接入连通腾讯云与您本地的数据中心,灵活构建混合云。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档