NAT技术在校园网中的应用word版本.docx
《NAT技术在校园网中的应用word版本.docx》由会员分享,可在线阅读,更多相关《NAT技术在校园网中的应用word版本.docx(22页珍藏版)》请在冰豆网上搜索。
NAT技术在校园网中的应用word版本
NAT技术在校园网中的应用
长沙理工大学计算机与通信工程学院
《计算机网络》课程设计报告
网络地址转换技术在校园网中的应用
院系计算机与通信工程专业通信工程
班级&&&&&&&学号&&&&&&&
学生姓名&&&指导教师&&
课程成绩完成日期2015年7月10日
课程设计成绩评定
院系计算机与通信工程专业&&&&
班级&&&&&&&学号&&&&&&&
学生姓名&&指导教师&&
指导教师对学生在课程设计中的评价
评分项目
优
良
中
及格
不及格
学习态度与遵守纪律情况
课程设计完成情况
课程设计报告的质量
指导教师成绩指导教师签字年月日
课程设计答辩组对学生在课程设计中的评价
评分项目
优
良
中
及格
不及格
课程设计完成情况
课程设计报告的质量
课程设计答辩
答辩组成绩答辩组长签字年月日
课程设计综合成绩
注:
课程设计综合成绩=指导教师成绩×60%+答辩组成绩×40%
课程设计任务书
计算机与通信工程学院通信工程专业
课程名称
计算机网络
时间
2014~2015学年第二学期18~19周
学生姓名
指导老师
&&
题目
网络地址转换技术在校园网中的应用
主要内容:
(1)学习校园网及NAT的相关知识;
(2)结合一个实例,在模拟器中模拟实现NAT的配置;
(3)验证、分析其结果。
要求:
(1)按要求编写课程设计报告书,能正确阐述设计结果。
(2)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。
(3)学会文献检索的基本方法和综合运用文献的能力。
(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。
应当提交的文件:
(1)课程设计报告。
(2)课程设计附件(各类图纸、设备配置清单、报告等)
网络地址转换技术在校园网中的应用
学生姓名:
&&指导教师:
&&
摘要:
当Internet迅速发展,合法的IP地址资源日益短缺,网络地址转换技术即NAT(NetworkAddressTranslation)目前是解决IPv4地址短缺、被广泛使用的主要方法。
本课程设计在CiscoPacketTracer5.0模拟器上模拟了NAT技术在校园网中的应用,并且分析了NAT过程中可能存在的一些潜在问题,给出了相应的解决方案。
设计结果表明,内部本地网络可以通过NAT,转换成合法内部全局地址后,与外部网络成功通信。
关键字:
NAT;IP地址;校园网;CiscoPacketTracer5.0
1引言
20世纪90年代以来,随着互联网的迅速发展,我国的教育和科研计算机网也得到了长足的发展,大多数高校都建起了校园网,并实现了在教育和科研计算机网内及与internet的互联互通,使信息透明化程度更高,资源共享更广泛。
但是,由于目前所使用的IPv4固有的缺限——地址匮乏,造成了在校园网中IP地址使用的极度紧张。
人们采用了相当多的方法来缓解这种矛盾,网络地址转换(NAT)技术即为其一。
本文主要是探讨NAT技术,并用一个在CiscoPacketTracer仿真软件上的例子来说明NAT技术在校园网中的应用。
1.1本文主要内容
本文介绍了NAT技术的基本原理,还有NAT技术的几种类型,以及在CiscoPacketTracer仿真软件上模拟NAT技术在校园网中的应用和实现。
1.2设计平台
本课程设计是在Windows操作系统通过上完成的,通过CiscoPacketTracer仿真软件模拟的简单的校园网NAT技术应用。
CiscoPacketTracer是由Cisco公司发布的一个辅助学习工具,为学习思科网络课程的初学者去设计、配置、排除网络故障提供了网络模拟环境。
用户可以在软件的图形用户界面上直接使用拖曳方法建立网络拓扑,并可提供数据包在网络中行进的详细处理过程,观察网络实时运行情况。
2NAT技术概述
2.1NAT技术的基本概念
NAT英文全称是“NetworkAddressTranslation”,中文意思是“网络地址转换”,它是一个IETF(InternetEngineeringTaskForce,Internet工程任务组)标准,允许一个整体机构以一个公用IP(InternetProtocol)地址出现在Internet上。
顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。
因此我们可以认为,NAT在一定程度上,能够有效的解决公网地址不足的问题。
简单的说,NAT的功能就是在内部网络的私有地址需要与外部通信时,把内部私有地址转换成合法的全局IP地址。
NAT可以在两个方向上隐藏地址,为了支持这种方案,NAT在两个方向上都要翻译原地址和目的地址。
目前NAT的功能通常被集成到路由器、防火墙等设备中。
NAT设备维护一个NAT映射表,用它来实现全局到本地和本地到全局的地址转换。
2.2NAT技术的分类
NAT有三种类型:
静态NAT(StaticNAT)、动态地址NAT(PooledNAT)、网络地址端口转换NAPT(Port-LevelNAT)。
(1)静态NAT是最简单的一种转换方式,它在NAT表中为本地地址和全局地址建立一个固定的一对一的映射。
这种方式主要用于服务器,以确保外部对服务器的正确访问。
(2)动态NAT是较灵活的一种转换方式,它在本地和全局地址之间建立一个动态的映射,这时必须建立一个全局地址池,由路由器从全局地址池中选择一个未使用的地址对本地地址进行转换。
每个转换条目在连接建立时动态建立,而在连接终止时被回收。
这样,网络的灵活性增强,所需要的全局地址减少。
必须注意的是:
当全局地址池全部被占用以后,以后的地址转换申请将被拒绝,这样会造成网络连通性的问题,所以应使用超时操作选项来回收全局地址池中的地址。
【对于只向外访问而不允许外部网络访问的内部主机,就采用动态地址转换。
】
(3)端口地址转换(PAT或NAPT或地址超载)将多个内部地址映射为一个合法地址,用不同的端口号区分各个内部地址。
这种方法只需要一个合法IP地址。
路由器支持的PAT会话数是有限制的,所以使用PAT的局域网,其网络的规模不应该太大。
在端口复用技术中,用端口区分的不是一台主机,而是一个网络连接(会话),当一台主机同时建立了多个会话时,它的每个会话会占用一个端口映射。
假如一台路由器支持4000个会话,那么它支持的主机数量会远少于4000台。
NAPT是使用最普遍的一种转换方式,在HomeGW中也主要使用该方式。
它又包含两种转换方式:
SNAT和DNAT。
源NAT(SourceNAT,SNAT):
修改数据包的源地址。
源NAT改变第一个数据包的来源地址,它永远会在数据包发送到网络之前完成,数据包伪装就是SNAT的例子。
目的NAT(DestinationNAT,DNAT):
修改数据包的目的地址。
DestinationNAT刚好与SNAT相反,它是改变第一个数据懈的目的地地址,如平衡负载、端口转发和透明代理就是属于DNAT。
2.3NAT术语
在NAT中,有4个地址术语是必须正确理解的,它们是InsideLocalAddress、InsideGlobalAddress、OutsideLocalAddress和OutsideGlobalAddress。
在这些术语中,
Inside(内部)是指那些不能在Internet上进行路由,从而也就不能直接用于对Internet的访问,必须通过网络地址的转换,以合法IP的身份来访问Internet。
前者即InsideLocalAddress,后者则为InsideGlobalAddress。
LocalAddress即本地地址或私有地址,是不能在Internet上通信的IP地址。
GlobalAddress即全局地址或合法地址,是能够在Internet上通信的地址。
4个地址的定义如下。
InsideLocalAddress:
内部局部地址,指一个网络内部分配给网上主机的IP地址,此地址通常不是Internet上合法的地址,即不是网络信息中心(NIC)或Internet服务提供商(ISP)所分配的IP地址。
InsideGlobalAddress:
内部全局地址,用来代替一个或多个内部本地IP地址的、对外的、Internet上合法的IP地址(由ISP提供)。
OutsideLocalAddress:
外部局部地址,一个外部主机相对于内部所用的IP地址,此地址需要是Internet上合法的地址,但是从内部网可以进行路由的地址空间中进行分配。
OutsideGlobalAddress:
外部全局地址,由主机拥有者分配给在外部网上主机的IP地址。
此地址是从一个从全局可路由的地址或网络空间中分配的【1】。
3NAT技术基本原理
3.1地址转换
NAT的基本工作原理是,当私有网主机和公共网主机通信的IP包经过NAT网关时,将IP包中的源IP或目的IP在私有IP和NAT的公共IP之间进行转换。
如下图3-1所示。
图3-1NAT网关
图3-2转换示意图
NAT网关有2个网络端口,其中公共网络端口的IP地址是统一分配的公共IP,为202.20.65.5;私有网络端口的IP地址是保留地址,为192.168.1.1。
私有网中的主机192.168.1.2向公共网中的主机202.20.65.4发送了1个IP(Dst=202.20.65.4,Src=192.168.1.2)。
当IP包经过NAT网关时,NATGateway会将IP包的源IP转换为NATGateway的公共IP并转发到公共网,此时IP包(Dst=202.20.65.4,Src=202.20.65.5)中已经不含任何私有网IP的信息。
由于IP包的源IP已经被转换成NATGateway的公共IP,WebServer发出的响应IP包(Dst=202.20.65.5,Src=202.20.65.4)将被发送到NATGateway。
这时,NATGateway会将IP包的目的IP转换成私有网中主机的IP,然后将IP包(Des=192.168.1.2,Src=202.20.65.4)转发到私有网。
对于通信双方而言,这种地址的转换过程是完全透明的。
转换示意图如图3-2。
如果内网主机发出的请求包未经过NAT,那么当WebServer收到请求包,回复的响应包中的目的地址就是私网IP地址,在Internet上无法正确送达,导致连接失败。
3.2连接跟踪
在上述过程中,NATGateway在收到响应包后,就需要判断将数据包转发给谁。
此时如果子网内仅有少量客户机,可以用静态NAT手工指定;但如果内网有多台客户机,并且各自访问不同网站,这时候就需要连接跟踪(connectiontrack)。
如图3-3所示:
图3-3连接跟踪1
在NATGateway收到客户机发来的请求包后,做源地址转换,并且将该连接记录保存下来,当NATGateway收到服务器来的响应包后,查找TrackTable,确定转发目标,做目的地址转换,转发给客户机。
3.3端口转换
以上述客户机访问服务器为例,当仅有一台客户机访问服务器时,NATGateway只须更改数据包的源IP或目的IP即可正常通讯。
但是如果ClientA和ClientB同时访问WebServer,那么当NATGateway收到响应包的时候,就无法判断将数据包转发给哪台客户机,如图3-4所示。
图3-4连接跟踪2
此时,NATGateway会在ConnectionTrack中加入端口信息加以区分。
如果两客户机访问同一服务器的源端口不同,那么在TrackTable里加入端口信息即可区分,如果源端口相同,那么在时行SNAT和DNAT的同时对源端口也要做相应的转换,如图3-5所示。
图3-5连接跟踪3
4NAT在校园网中的应用实现
4.1静态NAT的配置
静态 NAT 为内部地址与外部地址的一对一映射,静态 NAT 对于必须具有一致的地址、可从 Internet 访问的 Web 服务器或主机特别有用。
这些内部主机可能是企业服务器或网络设备,静态 NAT 允许外部设备发起与内部设备的连接。
配置静态 NAT 转换很简单,首先需要定义要转换的地址,然后在适当的接口上配置 NAT。
从指定的 IP 地址到达内部接口的数据包需经过转换。
外部接口收到的以指定 IP 地址为目的地的数据包也需经过转换。
本例网络拓扑图如图4-1,主机1为校园机房中的某一台,R0为处于校园与外网边界上的路由,具有NAT转换,R1为外网路由器,外网主机为注册了合法IP的主机。
图4-1静态NAT网络拓扑图
(1)配置R1
Router(config)#hostR1//修改路由器名字
R1(config)#interfaceFastEthernet0/0
R1(config-if)#ipadd222.0.2.1255.255.255.0//fa0/0接口ip地址
R1(config-if)#noshut//打开接口
R1(config)#interfaceSerial0/3/0
R1(config-if)#ipadd222.0.1.1255.255.255.0//s0/3/0接口ip地址
R1(config-if)#noshut//打开接口
R1(config)#iproute192.168.1.0255.255.255.0222.0.1.2//配置静态路由
(2)配置R0
Router(config)#hostR0//修改路由器名字
R0(config)#interfaceFastEthernet0/0
R0(config-if)#ipadd192.168.1.1255.255.255.0//fa0/0接口ip地址
R0(config-if)#noshut//打开接口
R0(config)#interfaceSerial0/3/0
R0(config-if)#ipadd222.0.1.2255.255.255.0//s0/3/0接口ip地址
R0(config-if)#noshut//打开接口
R0(config-if)#clockrate64000//配置时钟频率
R0(config)#iproute222.0.2.0255.255.255.0222.0.1.1//配置静态路由
R0(config)#interfaceFastEthernet0/0
R0(config-if)#ipnatinside//设为内部网络接口
R0(config)#interfaceSerial0/3/0
R0(config-if)#ipnatoutside//设为外部网络接口
R0(config-if)#exit
(3)R0(config)#ipnatinsidesourcestatic192.168.1.2222.0.1.3//NAT转换映射关系
(4)查看命令showipnattranslations,结果如图4-2。
R0#shipnatt//查看NAT转换映射关系
图4-2NAT转换映射关系
图4-2显示内部局部地址192.168.1.2映射为内部全局地址222.0.1.3。
(5)在主机1上ping222.0.2.2,显示结果如图4-3,表明连接畅通。
图4-3主机1ping222.0.2.2结果
(6)Ping后再查看NAT转换映射关系,如图4-4。
R0#shipnatt
图4-4NAT转换映射关系
图4-4显示了此次通信完成了ip地址的映射转换。
4.2动态NAT的配置
动态NAT是指将内部网络的私有IP地址转换为公用IP地址时,IP地址对是不确定的,是随机的,所有被授权访问Internet的私有IP地址可随机转换为任何指定的合法IP地址。
也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。
动态转换可以使用多个合法外部地址集。
当ISP提供的合法IP地址略少于网络内部的计算机数量时。
可以采用动态转换的方式。
主要命令如下:
ipnatpoolpool-namestart-addressend-addressnetmasksubnet-mask
定义一个IP地址池,pool-name是地址池的名字,start-address是起始地址,end-address是结束地址,subnet-mask是子网掩码。
地址池中的地址是供转换的内部全局合法地址。
access-listaccess-list-numberpermitaddresswildcard-mask
定义一个访问控制列表,access-list-number是表号,address是地址,wildcard-mask是通配符掩码,限定内部本地地址的格式,只有和这个列表匹配的地址才会进行NAT转换。
ipnatinsidesourcelistaccess-list-numberpoolpool-name
定义动态NAT,access-list-number是访问列表的表号,pool-name是地址池的名字。
它表示把和列表匹配的内部本地地址,用地址池中的地址建立NAT映射。
本例网络拓扑图如图4-5,主机1和主机2为校园机房的两台主机,R0为边界路由,ISP给校园分配了了2个合法的ip。
图4-5动态NAT网络拓扑图
(1)配置R0
R0(config)#interfaceFastEthernet0/0
R0(config-if)#ipadd192.168.1.1255.255.255.0
R0(config-if)#noshut
R0(config)#interfaceSerial0/3/0
R0(config-if)#ipadd200.1.1.1255.255.255.0
R0(config-if)#noshut
R0(config-if)#clockrate64000
R0(config)#iproute200.1.2.0255.255.255.0200.1.1.2
(2)配置R1
R1(config)#interfaceFastEthernet0/0
R1(config-if)#ipadd200.1.2.1255.255.255.0
R1(config-if)#noshut
R1(config)#interfaceSerial0/3/0
R1(config-if)#ipadd200.1.1.2255.255.255.0
R1(config-if)#noshut
R1(config)#iproute192.168.1.0255.255.255.0200.1.1.1
(3)R0#shiproute//查看路由接口状态,如图4-6。
图4-6R0接口状态
(4)用主机1Pingweb服务器,或者直接访问web服务器,检测是否连通,如图4-7,4-8。
图4-7主机1访问web服务器
图4-8主机1Ping一下web服务器
(5)在R0上查看nat转换状态,显示为空,如图4-9。
图4-9NAT转换状态
(6)动态NAT配置
R0(config)#interfaceFastEthernet0/0
R0(config-if)#ipnatinside
R0(config)#interfaceSerial0/3/0
R0(config-if)#ipnatoutside
R0(config)#access-list1permit192.168.1.00.0.0.255//定义允许转换的内部本地网络地址范围
R0(config)#ipnatpoolyang200.1.1.3200.1.1.4netmask255.255.255.0//定义内部全局地址池
R0(config)#ipnatinsidesourcelist1poolyang//为内部本地地址调用转换内部全局地址池
(7)再用主机1和主机2访问web服务器之后,查看nat转换状态,如图4-10。
图4-10NAT转换状态
由上图可见,两台内部主机分别映射到了不同的合法全局ip地址200.1.1.3和200.1.1.4,进而访问外部服务器。
4.3接口动态NAPT的配置
NAPT(NetworkAddressPortTranslation),即网络端口配置,是人们比较熟悉的一种转换方式,实现<内部地址+内部端口>与<外部地址+外部端口>之间的转换,它可以将中小型的网络隐藏在一个合法的IP地址后面。
NAPT也被称为“多对一”的NAT,或者叫PAT(PortAddressTranslations,端口地址转换)、地址超载(addressoverloading)。
NAPT的主要优势在于,能够使用一个全球有效IP地址获得通用性。
主要缺点在于其通信仅限于TCP或UDP。
当所有通信都采用TCP或UDP,NAPT允许一台内部计算机访问多台外部计算机,并允许多内部主机访问同一台外部计算机,相互之间不会发生冲突。
access-listaccess-listnumberpermitaddresswildcard-mask
定义一个访问控制列表,access-listnumber是表号,address是地址,wildcard-mask是通配符掩码。
它的作用是限定内部本地地址的格式,只有和这个列表匹配的地址才会进行NAT转换。
ipnatinsidesourcelistaccess-list-numberinterfaceinterface-idoverload
定义动态NAPT,access-list-number是访问列表的表号,interfaceinterface-id指定了内部全局地址所在的接口,一般是outside接口。
它表示和列表匹配的内部本地地址,都用该接口的IP地址建立NAPT映射。
overload关键字表示启用端口复用。
从以上配置可以看出,配置接口动态NAPT时可以不配置地址池。
在接口动态NAPT的配置中,只是指定了映射时使用哪个接口的IP地址,当该接口的IP地址改变时,不需要重新定义。
本例网络拓扑图与上例相同,即如图4-4所示,但ISP只分配了1个合法ip。
(1)配置R0
R0(config)#interfaceFastEthernet0/0
R0(config-if)#ipadd192.168.1.1255.255.255.0
R0(config-if)#noshut
R0(config)#i