NAT技术的基本原理


NAT技术通过对IP报文头中的源地址或目的地址进行转换,可以使大量的私网IP地址通过少量的公网IP地址来访问公网。

NAT是将IP数据报文报头中的IP地址转换为另一个IP地址的过程。从实现上来说,一班的NAT转换设备(实现NAT功能的网络设备)都维护者一张地址转换表,所有经过NAT转换设备并且需要进行地址转换的报文,都会通过这个表做相应的修改。地址转换的机制分为如下两个部分:

  • 内部网络主机的IP地址和端口转换为NAT转换设备网布网络地址和端口
  • 外部网络地址和端口转换为NAt转换设备内部网络主机的IP地址和端口

也就是<私有地址+端口>与<公有地址+端口>之间的相互转化。


NAT分类

  • 源NAT(Source NAT):用来使多个私网用户能够同时访问Internet:

    • 地址池方式:采用地址池中的公网地址为私网用户进行地址转换。
    • 出接口地址方式(Easy IP):内网主机直接借用公网接口的IP地址访问Internet,特别适用于公网接口IP地址是动态获取的情况。
  • 服务器映射:用来使外网用户能够访问私网服务器:

    • 静态映射(NAT Server):公网地址和私网地址一对一进行映射,用在公网用户访问私网内部服务器的场景。
    • 目的NAT(Destination NAT):用来使手机上网的业务流量送往正确的WAP网关。主要用在转换手机用户WAP网关地址,使手机用户可以正常上网的场景。

NAT的优点与缺点

优点:

  • 实现IP地址复用,节约宝贵的地址资源
  • 地址转换过程对用户透明
  • 对内网用户提供隐私保护
  • 可实现对内部服务器的负载均衡

缺点:

  • 网络监控难度加大
  • 限制某些具体应用

源NAT配置

基于源IP地址的NAT是指对发起连接的IP报文头中的源地址进行转换。它可以实现内部用户访问外部网络的目的,通过将内部主机的私有地址转换为公有地址,使一个局域网中的多台主机使用少数的合法地址访问外部资源,又掉的隐藏了内部局域网的主机IP地址,起到了安全保护作用。

源NAT配置命令

①配置NAT地址池(地址池方式才需要)

  1. 创建地址池,并进入地址池视图
    nat address-group address-group-name

  2. 确定地址池的起始地址和结束地址
    section [section-id | section-name] start-address end-address

  3. 确定是否进行端口转换(pat表示地址转换的同时进行端口转换,no-pat表示地址转换的同时不进行端口转换
    nat-mode {pat | no-pat}

  4. 剔除地址池中某些特殊的IP地址
    exclude-ip ipv4-address1 [to ipv4-address2 | mask {mask-address | mask-length}]

  5. 剔除地址池中某些特殊的端口,端口的取值范围为2048-65535
    exclude-port port1 [to port2]

②系统视图下进入NAT策略视图
nat-policy

③在NAT策略视图下创建NAT规则并进入NAT规则视图
rule name rule-name

④创建NAT策略,进入策略ID视图

  1. 设置源IP地址或目的IP地址(可以使地址集)
    source/destination-address {address-set address-set-name | ipv4-address}

  2. 设置源安全区域或目的安全区域
    source/destination-zone {zone-name | any}

  3. 设置出端口端口号(easy-ip方式才需要)
    egress-interface interface-type interface-number

  4. 设置服务(可选)
    service {service-name | any}

  5. action {nat {{address-group address-group-name} | easy-ip} | no-nat}

注:配置NAT地址池时,应将上网接口地址和地址池配置在同一网段,即和分配的公网IP地址在同一网段;如果不在同一网段,则需要在下一跳路由器上配置到地址池的路由


服务器映射配置(NAT Server)


NAT Server,即内部服务器,NAT隐藏了内部网络的结构,具有“屏蔽”内部主机的作用。需要提供给外部一个访问内部主机的机会。
当外部用户访问内部服务器时,有如下两部分操作

  • 防火墙将外部用户的请求报文的目的地址转换成内部服务器的私有地址
  • 防火墙将内部服务器的回应报文的源地址(私网地址)转换成公网地址

NAT Server配置命令

在系统视图下:
nat server [id] protocol protocol-type global {global-address [global-address-end] | interface inteface-type interface-number} inside host-address [host-address-end] [no-reverse] [vpn-instance vpn-instance-name]

例子:

注:

  • 不带no-reverse:当公网用户访问服务器时,设备能将服务器的公网地址转换成私网地址;同时,当服务器主动访问公网时,设备也能将服务器的死亡地址转换成公网地址。
  • 带no-reverse:表示设备只能将公网地址转换成私网地址,不能将私网地址转换成公网地址。当内部服务器主动访问外部网络时需要执行outbound的NAT策略,引用的地址池里必须是NAT server配置的公网IP得知,否则反向NAT地址与正向访问的公网IP地址不一致,会导致网络连接失败。
  • 多次执行带参数no-reverse的NAT server命令,可以为该内部服务器配置多个公网地址;未配置参数no-reverse则表示只能为该内部服务器配置一个公网地址。

目的NAT(destination NAT)


手机用户需要通过登录WAP(Wireless Application Protocol)网关来实现上网的功能。目前,大量用户使用直接从国外购买的手机,这些手机出厂时,缺省设置的WAP网关地址与本国WAP网关地址不符,且无法自行修改,从而导致用户不能移动上网。为解决这一问题,无线网络中,在WAP网关与用户之间部署防火墙。通过在设备上配置目的NAT功能,使这部分手机用户能够正常获取网络资源。

当手机用户上网时,目的NAT处理过程如下:

  1. 当手机用户上网时,请求报文经过基站及其他中间设备到达防火墙。
  2. 到达防火墙的报文如果匹配防火墙上所配置的目的NAT策略,则将此数据报文的目的IP地址转换为已配置好的WAP网关的IP地址,并送往WAP网关。
  3. WAP网关对手机客户端提供相应的业务服务,并将回应报文发往防火墙。
  4. 回应报文在防火墙上命中会话表,防火墙转换该报文的源IP地址,并将该报文发往手机用户,完成一次通信。

注:这里可将WAP网关理解为代理服务器

目的NAT配置命令

  1. 在系统视图下,进入安全区域视图
    firewall zone [name] zone-name

  2. 在安全区域视图下配置目的NAT
    destination-nat acl-number address ip-address [port port-number]

例子:
[USG] firewall zone trust
[USG-zone-trust] destination-nat 3333 address 202.1.1.2


域间双向NAT


当配置NAT Server时,服务器需要配置到公网地址的路由才可正常发送回应报文。如果要简化配置,避免配置到公网地址的路由,则可以对外网用户的源IP地址也进行转换,转换后的源IP地址与服务器的私网地址在同一网段,这样内部服务器会缺省将回应报文发给网关,即设备本身,由设备来转发回应报文。


域内双向NAT


NAT ALG

NAT ALG(Application Level Gateway,应用级网关)是特定的应用协议的转换代理,可以完成应用层数据中携带的地址及端口号信息的转换

需要NAT ALG的原因:
  • 很多协议会通过IP报文的数据载荷进行新端口甚至新IP地址的协商。协商完成之后,通信双方会根据协商结果建立新的连接进行后续报文的传输。而这些协商出来的端口和IP地址往往是随机的,管理员并不能为其提前配置好相应的NAT规则,这些协议在NAT转换过程中就会出现问题。
  • 普通NAT实现了对UDP或TCP报文头中的的IP地址及端口转换功能,但对应用层数据载荷中的字段无能为力,在许多应用层协议中,比如多媒体协议(H.323、SIP等)、FTP、SQLNET等,TCP/UDP载荷中带有地址或者端口信息,这些内容不能被NAT进行有效的转换,就可能导致问题。而NAT ALG(Application Level Gateway,应用层网关)技术能对多通道协议进行应用层报文信息的解析和地址转换,将载荷中需要进行地址转换的IP地址和端口或者需特殊处理的字段进行相应的转换和处理,从而保证应用层通信的正确性。
  • 例如,FTP应用就由数据连接和控制连接共同完成,而且数据连接的建立动态地由控制连接中的载荷字段信息决定,这就需要ALG来完成载荷字段信息的转换,以保证后续数据连接的正确建立。
  • 为了实现应用层协议的转发策略而提出了ASPF功能。ASPF功能的主要目的是通过对应用层协议的报文分析,为其开放相应的包过滤规则,而NAT ALG的主要目的,是为其开放相应的NAT规则。由于两者通常都是结合使用的,所以使用同一条命令就可以将两者同时开启。
NAT ALG实现原理


通信过程:

  1. 私网主机和公网FTP服务器之间通过TCP三次握手成功建立控制连接。

  2. 控制连接建立后,私网主机向FTP服务器发送PORT报文,报文中携带私网主机指定的数据连接的目的地址和端口,用于通知服务器使用该地址和端口和自己进行数据连接。

  3. PORT报文在经过支持ALG特性的NAT设备时,报文载荷中的私网地址和端口会被转换成对应的公网地址和端口。即设备将收到的PORT报文载荷中的私网地址192.168.1.2转换成公网地址8.8.8.11,端口1084转换成12487。

  4. 公网的FTP服务器收到PORT报文后,解析其内容,并向私网主机发起数据连接,该数据连接的目的地址为8.8.8.11,目的端口为12487(注意:一般情况下,该报文源端口为20,但由于FTP协议没有严格规定,有的服务器发出的数据连接源端口为大于1024的随机端口,如本例采用的是wftpd服务器,采用的源端口为3004)。由于该目的地址是一个公网地址,因此后续的数据连接就能够成功建立,从而实现私网主机对公网服务器的访问。

华为eNSP防火墙NAT配置相关推荐

  1. 华为eNSP防火墙NAT地址转换之NAT-NOPAT

    防火墙NAT地址转换 NAT-NOPAT(一对一) NAT No-PAT 只转换报文的IP 地址,不转换端口,需要上网的私网用户数量省,公网IP地址数量与同时上网的最大私网用户数量基本相同,在NAT ...

  2. 华为eNSP防火墙基本配置命令

    VRP命令行 VRP系统命令采用分级保护方式,命令被划分为参观级.监控级.配置级.管理级4个级别. 参观级:网络诊断工具命令(ping.tracert).从本设备出发访问外部设备的命令(包括:Teln ...

  3. 华为防火墙NAT配置及简介

    华为防火墙NAT策略 一.NAT概述 NAT技术是用来解决当今IP地址资源枯竭的一种技术,同时也是IPv4到IPv6的过渡技术. 二.华为防火墙NAT分类 1.NAT No-PAT:类似于Cisco的 ...

  4. 华为eNSP防火墙USG5500基本配置

    华为eNSP防火墙USG5500基本配置 实验设备 防火墙采用eNSP自带USG5500,不需要导入操作系统:eNSP同时提供防火墙USG6000,它不能打开,提示需要导入防火墙系统.交换机采用的是5 ...

  5. 华为ensp防火墙ipsec

    华为ensp防火墙ips_vpn 1)调试设备IP地址,防火墙有些策略限制会导致即使配置了正确的路由,也不能使得公网通,这就需要我们进行调试设备;一个是关于接口的ping服务是否打开,二是关于安全策略 ...

  6. 华为服务器如何设置网站dns,华为ensp服务器dns配置

    华为ensp服务器dns配置 内容精选 换一换 内网下载镜像失败基本上都是由于DNS配置问题导致的,可以采用以下两种方法进行修改.方法一:编辑"/etc/resolv.conf"文 ...

  7. 华为模拟器eNSP防火墙向导配置

    按照下图配置即可: 配置完成后,只需要在R1上在做一条指向防火墙的缺省路由即可 R1: sys sysname R1 ip route-static 0.0.0.0 0 192.168.0.1 dis ...

  8. 华为防火墙NAT配置与策略管理

    目录 NAT概述 NAT策略与安全策略 NAT处理报文的流程如下: 安全区域介绍 配置开始 区域访问规则 1.设置trust到untrust区域的NAT策略: 2.防火墙控制策略 3.防火墙配置服务器 ...

  9. 华为ensp 防火墙的基础配置

    拓扑图: [FW3-zone-isp1]set priority 12 #配置防火墙优先级 步骤一 #首先进入防火墙需要输入默认账号和密码,必须修改密码. [USG6000V1] undo in en ...

最新文章

  1. Adt 配置注释模板
  2. 阿里巴巴 Java 开发手册之编程规约(一)-------我的经验
  3. BGP路由协议特性和三张表
  4. oracle数据块调用存储过程,VC调用存储过程的通用方法(ORACLE篇)
  5. pythonui自动化测试平台_django+appium实现UI自动化测试平台(开源部分,可定制开发)...
  6. 数据结构学习笔记:利用栈实现进制转换
  7. 点歌台 PHP,MeMusic3.0 PHP在线点歌系统 - 下载 - 搜珍网
  8. 进度管理工具 planner
  9. linux用megacli看raid信息,Linux中使用MegaCli工具查看、管理Raid卡信息
  10. CCNA考试题库中英文翻译版及答案17
  11. 复杂性思维第二版 一、复杂性科学
  12. Lazarus控件安装方法
  13. 你沐浴后的味道,根本让人把持不住!留香24小时,比喷了大牌香水还迷人!...
  14. 用Java正则替换手机号中间4位数
  15. 富人的思维方式(转)
  16. 常用的sql语句,sql使用大全
  17. 【Web技术】网站留言系统开发,及留言信息实时发送至指定邮箱
  18. 正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。
  19. iPhone 6/Plus/5s/三星S5谁的屏幕更好?
  20. vue2.0基于element ui 上月 本月 下月

热门文章

  1. CRS-0215: Could not start resource 'ora.rac.rac2.inst'.
  2. Linux MTD子系统学习(二)
  3. 电脑文件备份到移动硬盘的方法
  4. python使用qq邮箱发邮件
  5. 基于麒麟座开始TIM6操作
  6. 基于麒麟座开发板2.0的MQTT实现例程
  7. python批量读取图片gps位置_某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置!...
  8. 如何避免2.4GHz ISM频段下各种无线设备的干扰
  9. C语言程序设计精髓 第13周——原来内存也可以这么玩,我是指针我怕谁 练兵区——编程题
  10. java课程设计 考试系统,java课程设计考试系统.