H3C SR8800技术白皮书系列NAT技术白皮书V100.docx
《H3C SR8800技术白皮书系列NAT技术白皮书V100.docx》由会员分享,可在线阅读,更多相关《H3C SR8800技术白皮书系列NAT技术白皮书V100.docx(21页珍藏版)》请在冰豆网上搜索。
![H3C SR8800技术白皮书系列NAT技术白皮书V100.docx](https://file1.bdocx.com/fileroot1/2023-2/2/13139b6e-9e0a-4c43-8490-83e0ea126456/13139b6e-9e0a-4c43-8490-83e0ea1264561.gif)
H3CSR8800技术白皮书系列NAT技术白皮书V100
H3CSR8800技术白皮书系列
――NAT技术白皮书V1.00
HangzhouH3CTechnologiesCo.,Ltd.
杭州华三通信技术有限公司
Allrightsreserved
版权所有XX
声明
Copyright©2008杭州华三通信技术有限公司及其许可者版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本书内容的部分或全部,并不得以任何形式传播。
H3C、Aolynk、
、IRF、H3Care、
、Neocean、
、TOPG、SecEngine、SecPath、COMWARE、VVG、V2G、VnG、PSPT、NetPilot、XGbus均为杭州华三通信技术有限公司的商标。
对于本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
Copyright©2008,HangzhouH3CTechnologiesCo.,Ltd.anditslicensors
AllRightsReserved
NopartofthismanualmaybereproducedortransmittedinanyformorbyanymeanswithoutpriorwrittenconsentofHangzhouHuawei-3ComTechnologyCo.,Ltd.
Trademarks
H3C,Aolynk,
IRF,H3Care,
Neocean,
TOPG,SecEngine,SecPath,COMWARE,VVG,V2G,VnG,PSPT,NetPilot,andXGbusaretrademarksofHangzhouHuawei-3ComTechnologyCo.,Ltd.
Allothertrademarksthatmaybementionedinthismanualarethepropertyoftheirrespectiveowners.
修订记录
日期
修订版本
描述
作者
2007-11-27
1.00
初稿完成
SR8800研发
1
概述
Internet面临着最紧迫的问题是IP地址枯竭。
针对这个问题,有两种解决方案:
NAT和
IPV6。
NAT通过地址重用的方式来满足IP地址的需要,它主要是利用了这样一个事实:
在一些域中(像一个公司的网络),在一段给定的时间内只有很少的主机需要访问域外的网络,80%左右的网络流量都局限于域内部。
因此,这些域内的主机都使用私网IP地址(IANA保留了三个网段作为私网地址:
10.0.0.0/8、172.16.0.0/12、192.168.0.0/16),私网地址无需全球唯一,在不同的私网内可以重复使用,当需要访问域外的网络时,它们的IP地址转换成公网IP地址。
基于MPLS技术的MPLSL3VPN技术既继承了IP选路技术的优点,又集成了MPLS技术转发快、组网灵活多变的特点,已经得到了越来越广泛的应用,特别是在比较大型的企业网中,MPLSL3VPN技术可以使网络构架更清晰,维护更方便,性能更稳定,访问更安全。
如果在MPLSL3VPN中再集成NAT功能,那么可以进一步隐藏掉用户的私有网络,提高用户网络的安全性;同时还可以实现地址重用,为用户节省投资。
NAT多实例实现了NAT功能与MPLSL3VPN完美结合,通过NAT用户不仅可以实现Internet访问,还可以解决VPN间地址冲突的问题,使用私网主机地址转换后可以实现对其他VPN的访问。
2特性介绍
2.1术语
NAT(NetworkAddressTranslation)
网络地址转换:
一种将私网IP地址映射成公网IP地址技术,从而实现私网主机对公网或者公网对私网主机的访问。
NAPT(NetworkAddressandPortTranslation)
网络地址和端口转换:
NAPT利用了TCP/UDP的端口号来区别不同的内部网主机,对于ICMP则是利用ICMP报文的Identifier来区别。
除非特别说明,本文中IP报文的端口号指TCP/UDP的端口号或ICMP报文的Identifier。
采用NAPT技术则可以更加充分地利用IP地址资源,实现更多的内部网主机对Internet的同时访问。
VPN(VirtualPrivateNetworks)
虚拟专用网,可以简单定义为在共享网络中,通过多种技术(如MPLS、隧道、加密等)实现原有专用网络的能力。
本文档内VPN定义,如果没有特别说明,专指三层VPN(BGP/MPLSVPN)。
ALG(ApplicationLayerGateway)
应用层网关:
ALG是NAT设备对特定应用协议报文(如ICMP目的不可达报文,FTP报文,ILS报文等)的特殊NAT转换处理。
应用协议报文需要ALG处理的原因主要是:
某些应用层协议会在客户机和服务器之间协商端口号,NAT转换表项的建立需要根据报文协商的结果确定;
报文的负荷部分有私网IP地址或者端口的信息。
EASYIP
EASYIP即直接使用路由接口的IP地址作为NAT转换的公网地址,其对报文转换使用NAPT方式,能够最大程度的节省IP地址资源。
FTP(FileTransferProtocol)
文件传输协议:
用于文件传输的Internet应用层协议标准,用于将一个完整的文件从一个文件系统复制到另一个系统中。
DNS(DomainNameSystem)
域名系统:
域名系统是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换及有关电子邮件的选路信息。
ILS(InternetLocationService)
互联网定位服务:
ILS是微软公司为Netmeeting用户提供的动态目录服务功能,通过ILS,用户可以存储和查询动态信息(例如IP地址)。
FIB(ForwardingInformationBase)
转发信息表:
FIB是三层转发的核心数据,用于指导IP报文的转发。
ARP(AddressResolveProtocol)
地址解析协议:
ARP为IP地址到对应的MAC地址之间提供动态映射。
NP(NetworkProcessor)
网络处理器:
一种用于数据报文处理的可编程、高性能网络专用处理器。
2.2协议处理机制
2.2.1单实例
1)NAT方式
NAT方式只转换IP地址,对端口号不处理,具体请参见图1:
图1NAT方式基本原理
a.NAT设备接收到私网用户发出的访问公网主机报文。
b.NAT设备从地址池中选择一个没有使用的公网地址、建立NAT转换表项(正反向)。
c.根据私网源IP地址查找正向NAT表项,根据查表结果转换报文,向公网侧发送。
d.NAT设备接收到公网侧的回应报文,根据目的IP地址查找反向NAT表项,根据查表结果转换报文,向私网侧发送。
说明:
NAT方式不能有效解决IP地址短缺的问题,在实际应用中并不常用。
2)NAPT方式
NAPT方式同时转换IP地址和端口号,可以更加充分地利用IP地址资源,实现更多的内部网主机对Internet的同时访问。
NAPT在使用IP地址的同时,使用TCP/UDP的端口号,ICMP报文的标识符域来共同构造转换表项,不支持非TCP/UDP/ICMP的普通IP报文。
图2NAPT方式基本原理
a.NAT设备接收到私网用户发出的访问公网主机报文。
b.如果是私网用户对外发起一个新连接,NAT设备从地址池中选择一对空闲的公网地址和端口,建立NAT转换表项(正反向)。
c.根据私网源IP地址、目标IP地址、源端口号和目标端口号查找正向NAPT表项,根据查表结果转换报文,向公网侧发送。
d.NAT设备接收到公网侧的回应报文,根据报文的源IP地址、目标IP地址、源端口号和目标端口查找反向NAPT表项,根据查表结果转换报文,向私网侧发送。
3)NAT内部服务器
私网的主机使用私有IP地址,无法通过正常的方式被外部网的主机所访问。
出于安全的考虑,大部分内部私网的主机不希望被外部主机所访问,只有小部分私网的服务器有被外部主机所访问的需求。
问题的关键在于首先由公网的用户发起连接,无法动态的建立NAPT转换表项。
解决的方法就是在NAT设备上静态配置NAT内部服务器,即在NAT设备上定义公有IP地址/端口对和私有IP地址/端口对的映射表项。
图3NAT内部服务器基本原理
a.NAT设备接收到公网用户发出的访问私网内部服务器的报文。
b.根据目的IP地址和端口号查找反向NAPT表项,根据查找表结果转换报文,向私网侧发送。
c.NAT设备接收到私网侧的回应报文,根据源IP地址和端口号查找正向NAPT表项,根据查表结果转换报文,向公网侧发送。
4)NATALG处理
某些应用层协议会在客户机和服务器之间协商端口号,然后服务器使用协商出的端口号向客户端发起连接,比如FTP数据通道的建立。
如果NAT设备对两者的协商过程一无所知,那么服务器在向客户机发起连接的时候,就会因为在交换机上找不到〈内部主机地址/端口号←→外部IP地址/端口号〉对应关系而造成连接失败。
下面详细介绍FTP协议ALG处理的过程。
FTP报文的ALG处理
FTP存在CommonFTP和PassiveFTP两种模式。
CommonFTP模式,客户端会指定一个端口,服务器对其发起数据连接,因此当客户端在私网时,NAT设备需要对其进行ALG处理,生成对应的NAT/NAPT表项,服务器通过此表项完成对私网主机的访问。
PassiveFTP模式,服务器指定一个端口,客户端对其发起数据连接,因此当服务器在私网时,NAT设备也需要对其进行ALG处理,其处理流程和上基本相同。
私网客户端使用PassiveFTP模式访问公网服务器,以及公网客户端使用CommonFTP模式访问私网服务器,由于数据连接都是私网发起的,因此NAT不需要对其进行ALG处理。
a.CommonFTP
当私网用户请求访问外部的FTP服务器时,FTP客户和服务器之间将建立两条TCP连接,一个是控制连接,服务器TCP端口号为21,控制连接负责传输控制信息,如客户命令和参数,另一个为数据连接,用来在服务器与客户之间建立一个数据连接,服务器TCP端口号为20。
主要用于传送文件。
图4CommonFTP流程图
在控制连接中,用户需要向FTP服务器发出PORT指令,告诉服务器客户端监听数据连接的端口号和IP地址。
当服务器收到PORT指令后,从本地的20号端口向指定客户地址和端口主动发起TCP数据连接。
对于CommonFTP,当客户端在私网时,由于由公网服务器发起数据连接,需要在NAT设备上预先建立地址映射关系。
所以NAT设备必须监听用户到FTP服务器的控制流。
当收到PORT指令时,根据PORT指令中的地址与端口号,分配新的地址和端口号,并用分配地址和端口号替换PORT指令的对应内容,并使用它们创建对应的NAT/NAPT表项,这样当服务器发起连接时NAT设备才能正确的完成地址端口转换。
b.PassiveFTP
PassiveFTP模式中,控制和数据连接都从Client发起到Server端,Client通过控制通道传送PASV命令通知Server它将发起PassiveFTP模式,而不是commonFTP模式,同样Client采用一个大于1023的端口来传送数据并连接到Server的数据端口上(动态分配,不一定采用20)。
图5PassiveFTP流程图
在passiveFTP模式中,Client向Server发起PASV请求,该命令通知Server在一个数据端口(并非缺省的数据端口)进行侦听,从服务器发出的PASV回应包括了Server侦听的端口和地址,同时等待从客户端发起的数据连接。
下面为从服务器发起的PASV回应:
227EnteringPassiveMode.A1,A2,A3,A4,a1,a2
在该消息中,227表示PASV回应代码,A1,A2,A3,A4为服务器的地址,服务器端口为(a1*256+a2),其表示方法和PORT一致。
当服务器在私网时,由于公网Client会对Server发起数据连接,因此需要在NAT上预先建立地址映射关系。
当NAT设备收到Server的PASV回应时,根据PASV回应中的指令地址与端口,分配新的地址和端口号,并用分配地址和端口号替换PASV指令的对应内容,并使用它们创建对应的NAT/NAPT表项,这样当公网Client发起连接时NAT设备才能正确的完成地址端口转换。
2.2.2多实例
1)NAT方式
NAT多实例和单实例一样,只对私网IP转换,与单实例不同是NAT多实例增加对VPN识别和处理,保证不同VPN私网内相同IP转换成不同的公网IP,具体请参见图6:
图6NAT方式基本原理
a.NAT设备接收到私网用户发出的访问公网主机报文。
b.如果是私网主机首次访问公网,NAT设备从地址池中选择一个没有使用的公网地址、建立NAT转换表项(正反向),其内容包括私网VPN、源IP和分配的地址池地址。
c.根据私网VPN和源IP地址查找正向NAT表项,根据查表结果转换报文,向公网侧发送。
d.NAT设备接收到公网侧的回应报文,根据目的IP地址查找反向NAT表项,根据查表结果转换报文的目标IP,并查找私网VPN对应的路由,对转换后的报文进行转发处理。
2)NAPT方式
NAT多实例和单实例的NAPT方式相比,在原来私网地址和端口转换的基础上,增加了对VPN识别和处理。
图7NAPT方式基本原理
a.NAT设备接收到私网用户发出的访问公网主机报文。
b.如果是私网用户对外发起一个新连接,NAT设备根据私网VPN、源IP地址、目标IP地址、源端口号和目标端口号,从地址池中选择一对空闲的公网地址和端口号、建立NAPT转换表项(正反向),其内容包括私网VPN、源IP地址、目标IP地址、源端口号、目标端口号、转换后的IP地址和端口。
c.根据私网VPN、源IP地址、目标IP地址、源端口号和目标端口号查找正向NAPT表项,根据查表结果转换报文,向公网侧发送。
d.NAT设备接收到公网侧的回应报文,根据目的IP地址、源IP地址、目的端口号和源端口号查找反向NAPT表项,根据查表结果转换报文,并查找私网VPN对应的路由,对转换后的报文进行转发处理。
3)NAT内部服务器
NAT多实例的内部服务器,增加了私网侧对VPN的支持,处理流程与单实例相同。
图8NAT内部服务器基本原理
a.NAT设备接收到公网用户发出的访问私网内部服务器的报文。
b.根据目的IP地址和端口号查找反向NAPT表项,根据查找表结果转换报文,并查找私网VPN对应的路由,对转换后的报文进行转发处理。
c.NAT设备接收到私网侧的回应报文,根据VPN、源IP地址和端口号查找正向NAPT表项,根据查表结果转换报文,向公网侧发送。
4)NATALG处理
NAT多实例和单实例的ALG处理流程基本相同。
不同的是NAT设备创建公网与私网的地址端口映射表项,NAT多实例在私网侧地址和端口基础上增加VPN。
3组网综述
3.1普通的pop点组网
随着Internet规模的扩大,IPv4地址短缺问题日益突出,在大型企业、城域网中使用NAT的需求也开始出现,在高端路由器、核心交换机上提供NAT功能,可以满足企业网、城域网易于维护、易于管理的需求。
普通的pop点组网如图9。
图9普通的pop点组网
3.2使用策略路由的多ISP组网
一些私网可能同时宿主多个ISP,如图10所示。
通过配置策略路由,10.8.1.0/24通过ISP1访问Internet,10.8.2.0/24通过ISP2访问Internet。
在NAT设备上配置地址池1:
205.113.48.1--205.113.48.3和地址池2:
207.36.64.1--207.36.64.3。
地址池1的地址属于ISP1,地址池2的地址属于ISP2。
NAT绑定关系配置为10.8.1.0/24对Internet的访问使用地址池1,10.8.2.0/24对Internet的访问使用地址池2。
这样就使得私网侧的不同网段通过不同的ISP实现对Internet的访问,可以对不同的用户提供不同访问质量。
图10使用策略路由的多ISP组
3.3使用内部服务器组进行负载分担组网
SR8800的内部服务器组功能可以实现简单的服务器负载分担功能。
可以由最多8台服务器组合成一个组,对外看起来像一台服务器。
是一种简单的扩充服务器性能的好方法,服务器的分担采取粘性连接技术,同一个主机发来的连接会选择同一个服务器,保证有连接依赖关系的WEB应用能够正常运行。
图11NAT的内部服务器组
3.4多实例VPN-PublicNAT
每台PE上都有自己的地址池,并分配有独立的地址池地址。
每台PE都可以执行NAT功能,并能支持NAT转换后将报文封装成MPLS格式。
这种组网方式可以用于运营商和大的企业用户,VPN用户可以自己规划IP,而不会影响到其它VPN用户。
图12多实例NAT访问公网
每台PE设备上绑定NAT,VPN各站点内用户直接通过本地PE配置的NAT访问Internet,VPN内不同站点的互访和Internet访问互不影响,同时各VPN发布自己的内部服务器,也互不影响。
VPN用户访问Internet时,报文从CE转发到PE时,PE根据设备上配置NAT规则,如果满足NAT变换规则要求,则对其进行NAT转换后发送到Internet。
如果Internet的用户访问内部服务器,则数据包到达配置内部服务器的PE/NAT设备上时,目的IP和端口转换成VPN内部服务器的IP地址和端口后,在VPN内进行转发,最终到达CE和内部服务器。
3.5多实例VPN-VPNNAT
通常在政务网或大型企业网内,存在不同的机构(部门)之间存在网络隔离和共享的需求,为了达到这个目的,通常采用MPLSL3VPN实现不同机构(部门)之间的网络隔离,同时通过策略引入共享服务器的路由来实现服务器共享访问。
这种方法需要整个网络进行统一的地址和路由规划,共享服务器的路由引入,会带来安全隐患,配置管理也相当复杂。
SR8800的VPNNAT功能提供了另外一种解决方案,它可以提供更高的安全性和灵活性,它有如下显著的特点:
1、组网方便不同机构(部门)不需要统一分配地址,地址可以重叠,网络结构清晰,路由策略简单。
2、可以任意配置共享的服务器,而不需要修改路由设置,而且服务器放置在VPN的位置也不受限制,更改共享服务器,只需简单修改NAT配置,不需要修改路由设置。
3、更高的安全性,可以掩藏真实的IP地址,NAT的具有防火墙单向发起访问的特性,外部设备无法主动对内网设备发起访问,使得访问者不易受到攻击。
4、简单的访问权限管理,可以通过设置不同的共享VPN,实现共享服务器的群组管理,结合NAT规则的设置,可以方便设置各种访问权限
图13VPN间通过NAT共享资源
如图12所示,有VPN1、VPN3和VPN63个VPN,VPN5是地址池的VPN用于发布共享的服务器资源,PE/NAT设备的地址池都使用该VPN。
NAT变换的地址池和内部服务器的公网IP地址都放在VPN5,将VPN5的路由发布给VPN1、VPN3、VPN6等需要访问共享资源的VPN。
如果VPN1的用户10.10.0.1访问VPN3中的WEB服务器10.11.0.2,具体可在PE/NAT1上配置NAT的地址池为VPN5172.168.0.1~172.168.0.64,PE/NAT3上配置内部服务器为VPN5172.168.0.65:
80->VPN3:
10.11.0.2:
80,NAT地址池地址和内部服务器公网地址都在VPN5中,将VPN5的路由发布到VPN1和VPN3。
同样可以配置其它VPN的NAT变换和共享服务器,这样VPN1、VPN3和VPN6的用户就都可以访问这些共享的服务器了。
4H3CSR8800特色介绍
4.1H3CSR8800NAT特色介绍
4.1.1强大的VPNNAT功能
SR8800的NAT最具特色之处在于其强大VPNNAT功能,它不但能够实现普通的多实例NAT功能,实现不同的VPN用户共享一台NAT设备上公网,而且SR8800的NAT还能够支持任意VPN间通过NAT实现资源共享访问,配置简单。
支持同一个设备上实现本地的和远端的多个VPN通过NAT进行资源共享。
4.1.2大容量、高性能
由于采用了高性能NP对普通的数据报文进行NAT处理,SR8800的NAT具有NAT表项容量大,处理能力高的优势。
单块的NAT业务板就能支持的最大会话数可以达到200万以上,新建会话速率可达20万会话/秒,经过2次NAT转换后,64byte包转换速率也能达到5.5Gbps以上。
还可以通过配置多块NAT业务板来线性增加NAT容量和性能。
整个设备还支持高达4K个VPN实例。
4.1.3丰富的ALG功能
SR8800NAT支持的ALG种类丰富,主要有:
FTP、TFTP、DNS、ICMP超时/不可达、H323(RAS,H225,H245)、SIP、NBT、ILS、RTSP、SQLNET等等,对目前网络常用的一些应用软件均能很好支持。
4.1.4高网络安全特性
SR8800的NAT采取的全对称方式的NAPT变换,是安全度最高的一种NAT变换。
当内网主机A的端口PORTA首先访问外网主机B的端口B时,只有外网的主机B的端口B回复的报文才能顺利通过NAT设备,其它设备的发出的报文都不能穿过NAT设备。
图14NAT的行为方式
4.1.5支持入方向和出方向NAT功能
能够在入方向配置NAT或者出方向配置NAT。
如果在内网的公网接口的位置,采取出方向NAT就很容易配置,如果采取入方向NAT,则需要在每个入接口都进行NAT配置,非常麻烦;反之如果在公网路由器的私网接口,在入接口NAT配置就非常方便。
4.1.6支持两次NAT功能
支持对源IP地址的NAT/NAPT变换和对目的IP的NAT/NAPT变换,一次变换的过程中能够一次性完成源和目的IP的NAT/NAPT变换,这样就可以支持地址完全重叠的两个网络的互相访问。
4.1.7支持多链路的快速切换
在私网通过多链路接入公网时,一般不同ISP的链路会分配不同的公网地址池,而同一ISP的不同链路则可能会分配相同的地址池。
对于不同ISP由于链路故障切换时,能够快速切换到新的链路,删除原会话,以新地址池地址重新建立NAT会话。
但对于地址池不变的链路切换,则直接进行路由切换,NAT会话保持不变,可以实现连接不中断的快速切换。
4.1.8内部服务器组功能
支持内部服务器组的功能,能够实现一个服务器组中的多台内部的服务器对应同一个公网的服务器,能够实现服务器组之间的负载分担。
4.1.9网段变换功能
支持按网段进行NAT变换,可以将一个网段的地址直接转换成另一个网段的地址,简单的实现不同地址域的切换。
4.1.10连接数限制