目录
NAT概述NAT(Network Address Translation),网络地址转换
NAPT[网络地址端口转换[Port-->传输层-端口编号]]
NAT产生背景
- 为了节省IP地址和费用,一般企业内部都是使用私有IP地址
- Internet网路的组成设备,使用的都是公有IP地址
- 企业内网要与internet互通,必须拥有公有IP地址
- 企业内网中的设备,无法使用私有地址与internet互通
分析:
- 在企业网络的边缘设备(路由器)上,配置默认路由,企业内网可以将数据发送到Internet
- 由于Internet设备上没有私有IP地址的路由条目,所以数据无法返回到企业内网
- 在企业网络的边缘设备(路由器)上,使用NAT技术,实现私有地址和公有地址互相转换
NAT概述
NAT(Network Address Translation),网络地址转换
- 主要应用在企业网络的边缘设备上
- 对数据包的私有IP地址和公有IP地址进行转换,实现内网到外网的访问
- 实现企业内网的保护,增强企业内网的安全性。因为外网无法直接访问内部设备的私有IP地址
NAT工作规则
①发送数据时,修改数据的源地址,将私网的地址修改为某个公网地址,然后形成本地的一个映射信息
表,发送数据;
②接收数据时,根据数据的目的地址,在本地的NAT映射信息表中查看是否有该地址的记录,如果有,
则将目的地址修改为NAT映射表中的地址。
标准NAT技术
静态NAT:内部的私网地址和公网地址的1:1的关系,无法解决内部多个私网主机 使用一个公网地址上网的需求。
动态NAT:内部的私网地址和公网地址实现了n:1的关系 内部多个私网地址可以使用一个公网
地址 ,但是无法实现多个地址同时使用一个公网地址进行通信 面对网络的并发流量时,体验感较差。
特点:仅有IP地址参数参与转换,无非就是出私网的时候,源IP改为公网IP,进私网的时候目的IP改为私网IP,如果无法理解,看完后面的实验可以有更好的理解。
NAPT[网络地址端口转换[Port-->传输层-端口编号]]
通信原理:通信时,修改数据中的源地址及源端口信息,形成NAT的映射表,数据回报时,根据映射表中的信息将其顺利转换回来。
- 在动态NAT技术突出的主要矛盾就是:用来进行地址转换的公网地址太少了,并且无法多个地址同时使用一个公网地址进行通信。
- 以后在进行地址转换的时候,不仅仅是转换地址,还转换端口
- 因为一个公网地址,最多可以对应 65536 个端口号
192.168.10.1 - 100.1.1.10:1001
192.168.10.2 - 100.1.1.10:1002
192.168.10.3 - 100.1.1.10:1003
192.168.10.4 - 100.1.1.10:1004
192.168.10.5 - 100.1.1.10:1005
192.168.10.6 - 100.1.1.10:1006
192.168.10.7 - 100.1.1.10:1007
192.168.10.8 - 100.1.1.10:1008
Easy IP——最简单的PAT
如果企业规模很小,经费有限。大概率上企业可能仅仅购买1个公网IP地址。在这种情况下,我们想要实现内网多个主机同时上网的话,就只能用“配置在公网接口”上的这个IP地址进行 NAT 转换。因为这种方式不需要任何的公网地址 此时使用出接口的地址进行转换 即便出接口的地址发生变化,依然不会影响地址的转换。[端口复用]
我们可以看到,私网IP+端口直接转换成了公网接口上的公网IP+端口,所以说他节省了公网IP。
NAT Server
如果想要实现外网到内网的访问那么必须得在公司的边界设(R1)上,提前设置“nat转换条目”并且这种条目,仅仅允许某一种特定的业务的流量。
如上图:
- 企业内部有一个 web 服务器,私有IP地址 192.168.1.100/24
- 希望互联网用户,通过浏览器,访问公网地址 200.10.10.1:80 ,就可以获得我们公司内部的 web 服务器的网站
静态NAT实验
网络拓扑图如下:
实验要求:
1,在路由器上配置静态nat,是的pc1和pc2可以访问外网。
2,主机和服务器的IP地址信息如上图
pc1的配置:
pc2的配置类似就不展示了,接下来展示服务器的配置:
注意:画红圈的地方不要填路由器的IP,不然的话这个服务器就可以ping通我们的私网了。
路由器的配置如下:
给内网接口配个IP
进入公网接口。
1,配置公网IP。
2,在公网接口上配置静态nat——nat static global 100.1.1.3 inside 192.168.1.20。
3,展现本接口的配置信息——dis th。
配置好之后我们在这俩个位置抓包看看报文有什么特点
在pc1接口下的报文如下:
如上图:可以看到,在私网下的报文是私网IP可以和公网IP直接通信,并且可以收到以公网IP为源IP私网IP为目标IP的报文。
然后我们再来看看在路由器下抓到的报文:
如上图:可以看到,原本是192.168.1.10的源IP被替换为100.1.1.2——这也是我们给192.168.1.10做的地址转换,所以服务器无法得知我们的私网IP,只知道在公网上有个叫100.1.1.2的家伙在给我发request。
动态NAT实验
网络拓扑图如下:
实验要求:
1,在路由器上配置动态nat,是的pc1和pc2可以访问外网。
2,主机和服务器的IP地址信息如上图
其他的配置与上面类似,所以这次只展示路由器上g0/0/1接口上的配置。
1,定义要转换的公网地址范围。
2,创建acl——用于抓取允许通过的流量。
3,定义acl规则。
4,进入公网接口。
5,配置公网IP。
6,配置动态nat。
然后我们测试一下;用pc3 ping一下服务器。
NAPT实验
网络拓扑图如下:
实验要求:
1,使用NAPT技术使得主机可以向外通信。
2,client要建立http连接,server为http类型。
首先对server进行配置:
基础配置就不展示了,现在展示服务器信息配置(文件根目录随便选一个文件夹就好)。
路由器的配置如下:
1,定义可以转换到的公网IP(注意这里不是转换到30和40,而是可以转换到30到40之间)。
2,定义acl。
3,定义允许进行通信的私网地址。
4,进入公网接口。
5,配置公网接口的IP。注意:千万记得配IP,我当时就忘了。
6,配置NAPT
7,私网接口的地址就不在此展示了,配个IP就好了。
注意: 如果添加了"no-pat" 则执行动态NAT
如果未添加"no-pat"则执行NAPT技术
注意:我后面改了一下可转换的地址范围,现在私网地址只可以转换为100.1.1.30.
然后是client1配置:
先填上客户端的IP,然后点击获取,
client2也进行如上的操作,当然,client建立http连接之前,首先我在路由器的公网接口抓包,得到信息如下:
从上面我们可以看到,client1和client2都在使用100.1.1.30通信,但是通信的路由器端口不同。
NAT server实验
网络拓扑图如下:
实验要求:
1,将R4作为NAT Server,使得client3可通过访问特定的公网IP+端口访问到私网的服务器。
2,IP地址信息如上图所示。
首先我们来对路由器R4进行配置:
这里我们只展示做了nat server服务接口的配置,其他的IP地址自己配置一下就好:
1,进入公网接口。
2,配置IP地址。
3,外网访问100.1.1.8的80端口相当于在访问192.168.1.1的80端口——nat server protocol tcp global 100.1.1.8 80 inside 192.168.1.254 80。
4,展示一下接口的配置看是否有错误。
5,配置回到200.1.1.0/24网段的路由,不然的话,R4无法回包。
Server配置:
client配置:(其他的部分配置就不过多展示了,就是普通的配置IP。)
然后,我们在client向server发起http连接请求:注意我们这里填写的IP,访问这个IP之后,nat server 会自动访问到私网的192.168.1.254的80端口。
我们在这两个地方抓包看一下:
路由器R4接口g0/0/0下的报文:
路由器R5接口g0/0/1下的报文:
可以看到,我们确实通过访问100.1.1.8:80访问到了私网的192.168.1.254:80。实验成功。
Easy IP实验
网络拓扑图如下:
实验要求:
使用Easy IP技术使得主机和client可以和server通信。
这里我只展示一下路由器R6的配置,其他的接口IP配置和主句ip配置就不展示了。
1,创建acl。
2,定义acl规则用于抓取允许通过的流量。
3&4,进入接口,给接口配置IP。
5,给本接口配置Easy IP。
配置好之后在如下的位置抓包看看。
客户端client先服务器端发起请求,报文如下:
可以看到,直接在使用我们的公网接口IP在通信,这么多主机都是用同一个IP,我们是如何区分的呢?这里和NATP有着异曲同工之妙,我们是通过端口来进行区分的。使用不同的端口来与使用本IP的主机做映射。到此,实验成功。
最后
本次对NAT的介绍就到这里了,如果有讲得不对的或者有所欠缺得地方,欢迎大家来指正与补充,创作不易,还请点个赞再走吧!后面我还会更新其他计算机方面的博客,咱们下篇博客再见!