Labs 导读
随着网络应用的增多,家庭设备的增加,IPv4地址枯竭的问题越来越严重。尽管IPv6可以从根本上解决IPv4地址空间不足问题,但目前众多网络设备和网络应用大多是基于IPv4的,因此在IPv6广泛应用之前,使用一些过渡技术(如CIDR、私网地址等)是解决这个问题的主要方式。
Part 01、 NAT技术简介
NAT(Network Address Translation,网络地址转换)是将IP数据报文头中的IP地址转换为另一个IP地址的过程。在实际应用中,NAT主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公网IP地址代表较多的私网IP地址的方式,将有助于减缓可用IP地址空间的枯竭。
(一)NAT的类型
根据NAT转换是对报文中的源地址进行转换还是对目的地址进行转换,NAT可以分为源NAT、目的NAT和双向NAT,下面我们分别介绍这三种NAT类型。
1.源NAT
源NAT在NAT转换时,仅对报文中的源地址进行转换,主要应用于私网用户访问公网的场景。当私网用户主机访问Internet时,私网用户主机发送的报文到达NAT设备后,设备通过源NAT技术将报文中的私网IPv4地址转换成公网IPv4地址,从而使私网用户可以正常访问Internet。
2.目的NAT
目的NAT在NAT转换时,仅对报文中的目的地址和目的端口号进行转换,主要应用于公网用户访问私网服务的场景。当公网用户主机发送的报文到达NAT设备后,设备通过目的NAT技术将报文中的公网IPv4地址转换成私网IPv4地址,从而使公网用户可以使用公网地址访问私网服务。
3.双向NAT
双向NAT指的是在转换过程中同时转换报文的源信息和目的信息。双向NAT不是一个单独的功能,而是源NAT和目的NAT的组合。双向NAT是针对同一条流,在其经过设备时同时转换报文的源地址和目的地址。双向NAT主要应用在同时有外网用户访问内部服务器和私网用户访问内部服务器的场景。
(二)NAT支持的特殊协议
NAT不仅实现了一般的地址转换功能,同时提供了完善的地址转换ALG (Application Layer Gateway,应用级网关)机制,使其可以支持一些特殊的应用协议,而不需要对NAT平台进行任何的修改,具有良好的可扩充性。这些特殊协议的报文载荷里携带了地址或端口信息,该信息也可能需要进行地址转换。可支持的特殊协议包括:FTP(File Transfer Protocol,文件传输协议)、PPTP(Point-to-Point Tunneling Protocol,点到点隧道协议)、ICMP(Internet Control Message Protocol,因特网控制消息协议)、DNS(Domain Name System,域名系统)、ILS(Internet Locator Service,Internet定位服务)、RTSP(Real Time Streaming Protocol,实时流协议)、H.323、SIP(Session Initiation Protocol,会话发起协议)、NetMeeting 3.01、NBT(NetBIOS over TCP/IP,基于TCP/IP的网络基本输入输出系统)等。
(三)NAT日志
NAT日志是NAT设备在进行NAT转换时生成的一种系统信息。该信息包括报文的源IP地址、源端口、目的IP地址、目的端口、转换后的源IP地址、转换后的源端口以及用户执行的操作等。它只用于记录内网用户访问外部网络的情况,不记录外部用户对内网服务器的访问。内网用户通过NAT设备访问外部网络时,多个用户共用一个外网地址,从而无法定位访问网络的用户。利用日志功能可以实时跟踪、记录内网用户访问外部网络的情况,增强网络的安全性。
Part 02、NAT技术在云网关中的应用
目前中国移动正在大力推进云网关的研发和落地,其中一种方案为将云网关作为BRAS后一个网元部署在移动云上。
如图1所示,该网络架构使用VXLAN隧道对用户报文进行接入和终结,即每个白盒网关(ONU)会和云网关之间创建一条VXLAN隧道,分配到唯一的VNI标识,终端的报文在白盒网关(ONU)被封装上VXLAN隧道并转发到云网关,云网关对报文解封装获取到内层原始报文,根据报文的类型进行不同的处理,该云网关架构把传统家庭网关大部分控制面的功能以及增值业务都上移到了BRAS之后的云网关系统进行统一处理。
简单来说,在云网关场景下用户上网过程为:
1、白盒网关发起PPPOE拨号,从BRAS获取到可上网的IP;
2、以PPPOE拨号获取的IP作为local IP,以及预先分配好的VNI值,和云网关之间创建VXLAN隧道;
3、用户终端(如手机、PC等)发起DHCP请求,在白盒网关封装上VXLAN隧道转发到云网关,VXLAN报文在云网关被解封装并将原始报文透传到云网关控制面,DHCP服务器分配一个内网地址给终端;
4、终端用户正常上网(包括DNS),报文到达云网关,通过策略判断是否订购了增值业务:
(4.1)非增值业务用户,使用公网IP做NAT,进行公网卸载转发;
(4.2)增值业务用户,发送到业务服务器,根据具体订购的业务进行后续处理,对报文进行丢弃、加速或者回注等操作。
云网关使用NAT场景主要分两部分:
- 云网关导流到业务服务器,云网关根据用户VXLAN ID即(VNI)做源NAT,将源IP、源端口转换为业务服务器可识别的源IP、源端口;
- 云网关卸载到公网,云网关根据卸载网口公网IP,做源NAT,将源IP、源端口转换为公网IP和端口。
Part 03、总结
NAT功能既可以部署在路由器、防火墙和核心三层交换机等网络硬件设备上,还可以部署在各种软件代理服务器上,如Proxy等。相对而言,NAT部署在网络硬件设备上时,具有处理速度快、安全性高等特点,适用于大中型企业;而部署在软件代理服务器上时,成本较低、转换速度较慢,适用于小型企业。目前,中国移动智慧家庭运营中心已经完成基于NAT技术的云网关自研,并在多省完成试点部署,形成了完整的端到端解决方案。