当前位置: 首页 > news >正文

华为Easy IP和NAT Server实现原理

本文接上篇,继续介绍华为路由器另两种NAT实现方式的工作原理。

6.1.3 Easy IP实现原理

Easy IP方式的实现原理与上节介绍的地址池NAPT转换原理类似,可以算是NAPT的一种特例,不同的是Easy IP方式可以实现自动根据路由器上WAN接口的公网IP地址实现与私网IP地址之间的映射无需创建公网地址池)。

Easy IP主要应用于通过路由器WAN接口IP地址作为要被映射的公网IP地址的情形,特别适合小型局域网接入Internet的情况。这里的小型局域网主要指中小型网吧、小型办公室等环境,一般具有以下特点:内部主机较少、出接口通过拨号方式获得临时(或固定)公网IP地址以供内部主机访问Internet。图6-3描述Easy IP方式的实现原理,具体过程如下:

图6-3 Easy IP实现原理示意图

1)假设私网中的Host A主机要访问公网的Server服务器,首先向Router发送一个请求报文(即Outbound方向),此时报文中的源地址是10.1.1.100,端口号1540

2Router在收到请求报文后自动利用公网侧WAN接口临时或者固定的公网IP地址:端口号162.10.2.8:5480),建立与内网侧报文IP地址:源端口号间的Easy IP转换表项(也包括正、反两个方向),并依据正向Easy IP表项的查找结果将报文转换后向公网侧发送。此时转换后的报文源地址和源端口号由原来的(10.1.1.100:1540)转换成了(162.10.2.8:5480)。

3Server服务器在收到请求报文后需要向Router发送响应报文(即Inbound方向),此时只需要将收到的请求报文中的源IP地址、源端口号和目的IP地址、目的端口号对调即可,即此时的响应报文中的目的IP地址、目的端口号为(162.10.2.8:5480)。

4Router在收到公网侧Server的回应报文后,根据其目的IP地址:目的端口号查找反向Easy IP表项,并依据查找结果将报文转换后向内网侧发送。即转换后的报文中的目的IP地址为10.1.1.100,目的端口号为1540,与Host A发送请求报文中的源IP地址和源端口完全一样。

如果私网中的Host B也要访问公网,则它所利用的公网IP地址与Host A一样,都是路由器WAN口的公网IP地址,但转换时所用的端口号一定要与Host A转换时所用的端口不一样。

6.1.4 NAT Server实现原理

NAT Server用于外网用户需要使用固定公网IP地址访问内部服务器的情形。它通过事先配置好的服务器的“公网IP地址+端口号”与服务器的“私网IP地址+端口号”间的静态映射关系来实现。图6-4描述了NAT Server的实现原理,具体过程如下(要先在Router上配置好静态的NAT Server转换映射表):

图6-4  NAT Server实现原理示意图

1Router在收到外网用户发起的访问请求报文后(即Inbound方向),根据该请求的目的IP地址:端口号查找NAT Server转换映射表,找出对应的私网IP地址:端口号,然后用查找的结果直接替换报文的目的IP地址:端口号,最后向内网侧发送。如本示例中外网主机发送的请求报文中目的IP地址是209.102.1.68,端口号80,经Router转换后的目的IP地址和端口号为(192.168.1.68:80)。

2)内网服务器在收到由Router转发的请求报文后,向Router发送响应报文(即Outbound方向),此时报文中的源IP地址、端口号与目的IP地址、端口号与所收到的请求报文中的完全对调即可,即响应报文中的源IP地址和端口号为前面的(192.168.1.68:80)。

3Router在收到内网服务器的回应报文后,又会根据该响应报文中的IP地址:源端口号查找NAT Server转换表项,找出对应的公网IP地址:端口号,然后用查找结果替换报文的IP地址:源端口号。如本示例中内网服务器响应外网主机的报文的源IP地址和端口号是(192.168.1.68:80),经Router转换后的源IP地址和端口号为(209.102.1.68:80)。

【经验之谈】从以上NAT Server实现原理可以看出,由外网向内网服务器发送的请求报文中转换的仅是其目的IP地址和目的端口号(源IP地址和源端口号不变),即仅需关心目的IP地址和目的端口号;而从内网向外网发送的响应报文中转换的仅是其源IP地址和源端口号(目的IP地址和目的端口号不变),即仅需关心源IP地址和源端口号。两个方向所转换的IP地址和端口号是相反的。

再综合前面介绍的6.1.1节和6.1.2节可以得出,NAT中 凡是由内网向外网发送的报文 (不管是请求报文,还是响应报文), NAT路由器上转换的都是源IP地址 (或者同时包括源端口号),而 凡是由外网向内网发送的报文 (也不管是请求报文,还是响应报文), NAT路由器上转换的都是目的IP地址 (或者同时包括源目的口号)。

以上内容摘自笔者刚刚出版上市,在各大书店全面热销的 《华为路由器学习指南 一书:http://item.jd.com/11513567.html。本书的 配套视频课程 :http://edu.51cto.com/course/course_id-1173.html。与本书配套的图书是 《华为交换机学习指南》:http://item.jd.com/11355972.html ,其配套视频课程为:http://edu.51cto.com/course/course_id-1166.html(全实验、实战演示

相关文章:

  • 实验:华为MUX VLAN配置与管理
  • 【深入理解计算机网络】“数制”视频课程-王达-专题视频课程
  • 累并快乐的2014年
  • 贺CSDN学院上线,新课程低价真情回馈
  • 【深入理解计算机网络】入门计算机网络基础视频课程(上)-王达-专题视频课程...
  • 【深入理解计算机网络】入门计算机网络基础视频课程(下)-王达-专题视频课程...
  • 【深入理解计算机网络】讲师解读计算机网络原理视频课程(上)-王达-专题视频课程...
  • 【直通华为HCNA/HCNP系列S篇1】Sx7系列交换机主要特性及选型-王达-专题视频课程...
  • 【直通华为HCNA/HCNP系列S篇2】VRP系统使用、维护与管理-王达-专题视频课程
  • 【直通华为HCNA/HCNP系列R篇3】路由器接口配置与管理-王达-专题视频课程
  • 【直通华为HCNA/HCNP系列R篇4】WAN接入配置与管理-王达-专题视频课程
  • 华为认证这么热,你不能错过的官方推荐课程
  • VTP中VLAN配置信息不同步故障排除
  • 【直通华为HCNA/HCNP系列R篇5】DHCP服务配置与管理-王达-专题视频课程
  • 【直通华为HCNA/HCNP系列R篇6】NAT服务原理及配置与管理-王达-专题视频课程
  • [译] 怎样写一个基础的编译器
  • CentOS从零开始部署Nodejs项目
  • CSS实用技巧
  • E-HPC支持多队列管理和自动伸缩
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Git的一些常用操作
  • nginx 负载服务器优化
  • Python socket服务器端、客户端传送信息
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • web标准化(下)
  • 阿里研究院入选中国企业智库系统影响力榜
  • 工作手记之html2canvas使用概述
  • 关于List、List?、ListObject的区别
  • 后端_ThinkPHP5
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 开发基于以太坊智能合约的DApp
  • 使用 @font-face
  • 使用common-codec进行md5加密
  • 正则表达式小结
  • 白色的风信子
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • !!Dom4j 学习笔记
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (4)STL算法之比较
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转) ns2/nam与nam实现相关的文件
  • .gitignore文件—git忽略文件
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .net反混淆脱壳工具de4dot的使用