资源描述
NAT技术在校园网中的应用
精品文档
目录
1 引言 3
1.1 本文主要内容 3
1.2 设计平台 3
2 NAT技术概述 3
2.1 NAT技术的基本概念 3
2.2 NAT技术的分类 4
2.3 NAT术语 5
3 NAT技术基本原理 5
3.1 地址转换 5
3.2 连接跟踪 7
3.3 端口转换 8
4 NAT在校园网中的应用实现 9
4.1 静态NAT的配置 9
4.2动态NAT的配置 12
4.3接口动态NAPT的配置 15
5 结束语 18
参考文献 19
收集于网络,如有侵权请联系管理员删除
长沙理工大学计算机与通信工程学院
《计算机网络》课程设计报告
院 系 计算机与通信工程 专 业 通信工程
班 级 &&&&&&& 学 号 &&&&&&&
学生姓名 &&& 指导教师 &&
课程成绩 完成日期 2015年7月10日
课程设计成绩评定
院 系 计算机与通信工程 专 业 &&&&
班 级 &&&&&&& 学 号 &&&&&&&
学生姓名 & & 指导教师 &&
指导教师对学生在课程设计中的评价
评分项目
优
良
中
及格
不及格
学习态度与遵守纪律情况
课程设计完成情况
课程设计报告的质量
指导教师成绩 指导教师签字 年 月 日
课程设计答辩组对学生在课程设计中的评价
评分项目
优
良
中
及格
不及格
课程设计完成情况
课程设计报告的质量
课程设计答辩
答辩组成绩 答辩组长签字 年 月 日
课程设计综合成绩
注:课程设计综合成绩=指导教师成绩×60%+答辩组成绩×40%
课程设计任务书
计算机与通信工程 学院 通信工程专业
课程名称
计算机网络
时间
2014~2015学年第二学期18~19周
学生姓名
指导老师
&&
题 目
网络地址转换技术在校园网中的应用
主要内容:
(1)学习校园网及NAT的相关知识;
(2)结合一个实例,在模拟器中模拟实现NAT的配置;
(3)验证、分析其结果。
要求:
(1)按要求编写课程设计报告书,能正确阐述设计结果。
(2)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。
(3)学会文献检索的基本方法和综合运用文献的能力。
(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。
应当提交的文件:
(1)课程设计报告。
(2)课程设计附件(各类图纸、设备配置清单、报告等)
网络地址转换技术在校园网中的应用
学生姓名:&& 指导教师:&&
摘要: 当Internet迅速发展,合法的IP地址资源日益短缺,网络地址转换技术即NAT(Network Address Translation)目前是解决IPv4地址短缺、被广泛使用的主要方法。本课程设计在Cisco Packet Tracer 5.0模拟器上模拟了NAT技术在校园网中的应用,并且分析了NAT过程中可能存在的一些潜在问题,给出了相应的解决方案。设计结果表明,内部本地网络可以通过NAT,转换成合法内部全局地址后,与外部网络成功通信。
关键字:NAT;IP地址;校园网;Cisco Packet Tracer 5.0
1 引言
20世纪90年代以来,随着互联网的迅速发展,我国的教育和科研计算机网也得到了长足的发展,大多数高校都建起了校园网,并实现了在教育和科研计算机网内及与internet的互联互通,使信息透明化程度更高,资源共享更广泛。但是,由于目前所使用的IPv4固有的缺限——地址匮乏,造成了在校园网中IP地址使用的极度紧张。人们采用了相当多的方法来缓解这种矛盾,网络地址转换(NAT)技术即为其一。本文主要是探讨NAT技术,并用一个在Cisco Packet Tracer仿真软件上的例子来说明NAT技术在校园网中的应用。
1.1 本文主要内容
本文介绍了NAT技术的基本原理,还有NAT技术的几种类型,以及在Cisco Packet Tracer仿真软件上模拟NAT技术在校园网中的应用和实现。
1.2 设计平台
本课程设计是在Windows操作系统通过上完成的,通过Cisco Packet Tracer仿真软件模拟的简单的校园网NAT技术应用。
Cisco Packet Tracer 是由Cisco公司发布的一个辅助学习工具,为学习思科网络课程的初学者去设计、配置、排除网络故障提供了网络模拟环境。用户可以在软件的图形用户界面上直接使用拖曳方法建立网络拓扑,并可提供数据包在网络中行进的详细处理过程,观察网络实时运行情况。
2 NAT技术概述
2.1 NAT技术的基本概念
NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。因此我们可以认为,NAT在一定程度上,能够有效的解决公网地址不足的问题。简单的说,NAT的功能就是在内部网络的私有地址需要与外部通信时,把内部私有地址转换成合法的全局IP地址。NAT可以在两个方向上隐藏地址,为了支持这种方案, NAT在两个方向上都要翻译原地址和目的地址。目前NAT的功能通常被集成到路由器、防火墙等设备中。 NAT设备维护一个NAT映射表,用它来实现全局到本地和本地到全局的地址转换。
2.2 NAT技术的分类
NAT有三种类型:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端口转换NAPT(Port-Level NAT)。
(1) 静态NAT是最简单的一种转换方式,它在NAT表中为本地地址和全局地址建立一个固定的一对一的映射。这种方式主要用于服务器,以确保外部对服务器的正确访问。
(2) 动态NAT是较灵活的一种转换方式,它在本地和全局地址之间建立一个动态的映射,这时必须建立一个全局地址池,由路由器从全局地址池中选择一个未使用的地址对本地地址进行转换。每个转换条目在连接建立时动态建立,而在连接终止时被回收。这样,网络的灵活性增强,所需要的全局地址减少。必须注意的是:当全局地址池全部被占用以后,以后的地址转换申请将被拒绝,这样会造成网络连通性的问题,所以应使用超时操作选项来回收全局地址池中的地址。【对于只向外访问而不允许外部网络访问的内部主机,就采用动态地址转换。】
(3) 端口地址转换 (PAT或NAPT或地址超载)将多个内部地址映射为一个合法地址,用不同的端口号区分各个内部地址。这种方法只需要一个合法IP地址。路由器支持的PAT会话数是有限制的,所以使用PAT的局域网,其网络的规模不应该太大。
在端口复用技术中,用端口区分的不是一台主机,而是一个网络连接(会话),当一台主机同时建立了多个会话时,它的每个会话会占用一个端口映射。假如一台路由器支持4000个会话,那么它支持的主机数量会远少于4000台。
NAPT是使用最普遍的一种转换方式,在HomeGW中也主要使用该方式。它又包含两种转换方式:SNAT和DNAT。
源NAT(Source NAT,SNAT):修改数据包的源地址。源NAT改变第一个数据包的来源地址,它永远会在数据包发送到网络之前完成,数据包伪装就是SNAT的例子。 目的NAT(Destination NAT,DNAT):修改数据包的目的地址。Destination NAT刚好与SNAT相反,它是改变第一个数据懈的目的地地址,如平衡负载、端口转发和透明代理就是属于DNAT。
2.3 NAT术语
在NAT 中,有4 个地址术语是必须正确理解的,它们是Inside Local Address 、Inside Global Address、Outside Local Address 和Outside Global Address。在这些术语中,
Inside(内部)是指那些不能在Internet 上进行路由,从而也就不能直接用于对Internet的访问, 必须通过网络地址的转换,以合法IP的身份来访问Internet。前者即Inside Local Address,后者则为Inside Global Address。Local Address即本地地址或私有地址,是不能在Internet上通信的IP 地址。Global Address即全局地址或合法地址,是能够在Internet上通信的地址。4 个地址的定义如下。
Inside Local Address :内部局部地址, 指一个网络内部分配给网上主机的IP 地址, 此地址通常不是Internet 上合法的地址, 即不是网络信息中心(NIC)或Internet 服务提供商(ISP)所分配的IP 地址。
Inside Global Address :内部全局地址, 用来代替一个或多个内部本地IP 地址的、对外的、Internet上合法的IP 地址(由ISP 提供)。
Outside Local Address :外部局部地址,一个外部主机相对于内部所用的IP 地址, 此地址需要是Internet 上合法的地址,但是从内部网可以进行路由的地址空间中进行分配。
Outside Global Address :外部全局地址, 由主机拥有者分配给在外部网上主机的IP 地址。此地址是从一个从全局可路由的地址或网络空间中分配的【1】。
3 NAT技术基本原理
3.1 地址转换
NAT的基本工作原理是,当私有网主机和公共网主机通信的IP包经过NAT网关时,将IP包中的源IP或目的IP在私有IP和NAT的公共IP之间进行转换。如下图3-1所示。
图3-1 NAT网关
图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网关时,NAT Gateway会将IP包的源IP转换为NAT Gateway的公共IP并转发到公共网,此时IP包(Dst=202.20.65.4,Src=202.20.65.5)中已经不含任何私有网IP的信息。由于IP包的源IP已经被转换成NAT Gateway的公共IP,Web Server发出的响应IP包(Dst= 202.20.65.5,Src=202.20.65.4)将被发送到NAT Gateway。
这时,NAT Gateway会将IP包的目的IP转换成私有网中主机的IP,然后将IP包(Des=192.168.1.2,Src=202.20.65.4)转发到私有网。对于通信双方而言,这种地址的转换过程是完全透明的。转换示意图如图3-2。
如果内网主机发出的请求包未经过NAT,那么当Web Server收到请求包,回复的响应包中的目的地址就是私网IP地址,在Internet上无法正确送达,导致连接失败。
3.2 连接跟踪
在上述过程中,NAT Gateway在收到响应包后,就需要判断将数据包转发给谁。此时如果子网内仅有少量客户机,可以用静态NAT手工指定;但如果内网有多台客户机,并且各自访问不同网站,这时候就需要连接跟踪(connection track)。如图3-3所示:
图3-3 连接跟踪1
在NAT Gateway收到客户机发来的请求包后,做源地址转换,并且将该连接记录保存下来,当NAT Gateway收到服务器来的响应包后,查找Track Table,确定转发目标,做目的地址转换,转发给客户机。
3.3 端口转换
以上述客户机访问服务器为例,当仅有一台客户机访问服务器时,NAT Gateway只须更改数据包的源IP或目的IP即可正常通讯。但是如果Client A和Client B同时访问Web Server,那么当NAT Gateway收到响应包的时候,就无法判断将数据包转发给哪台客户机,如图3-4所示。
图3-4 连接跟踪2
此时,NAT Gateway会在Connection Track中加入端口信息加以区分。如果两客户机访问同一服务器的源端口不同,那么在Track Table里加入端口信息即可区分,如果源端口相同,那么在时行SNAT和DNAT的同时对源端口也要做相应的转换,如图3-5所示。
图3-5 连接跟踪3
4 NAT在校园网中的应用实现
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)#host R1 //修改路由器名字
R1(config)#interface FastEthernet0/0
R1(config-if)#ip add 222.0.2.1 255.255.255.0 //fa0/0接口ip地址
R1(config-if)#no shut //打开接口
R1(config)#interface Serial0/3/0
R1(config-if)#ip add 222.0.1.1 255.255.255.0 //s0/3/0接口ip地址
R1(config-if)#no shut //打开接口
R1(config)#ip route 192.168.1.0 255.255.255.0 222.0.1.2 //配置静态路由
(2)配置R0
Router(config)#host R0 //修改路由器名字
R0(config)#interface FastEthernet0/0
R0(config-if)#ip add 192.168.1.1 255.255.255.0 //fa0/0接口ip地址
R0(config-if)#no shut //打开接口
R0(config)#interface Serial0/3/0
R0(config-if)#ip add 222.0.1.2 255.255.255.0 //s0/3/0接口ip地址
R0(config-if)#no shut //打开接口
R0(config-if)#clock rate 64000 //配置时钟频率
R0(config)#ip route 222.0.2.0 255.255.255.0 222.0.1.1 //配置静态路由
R0(config)#interface FastEthernet0/0
R0(config-if)#ip nat inside //设为内部网络接口
R0(config)#interface Serial0/3/0
R0(config-if)#ip nat outside //设为外部网络接口
R0(config-if)#exit
(3)R0(config)#ip nat inside source static 192.168.1.2 222.0.1.3 //NAT转换映射关系
(4)查看命令show ip nat translations,结果如图4-2。
R0#sh ip nat t //查看NAT转换映射关系
图4-2 NAT转换映射关系
图4-2显示内部局部地址192.168.1.2映射为内部全局地址222.0.1.3。
(5)在主机1上ping 222.0.2.2,显示结果如图4-3,表明连接畅通。
图4-3 主机1 ping 222.0.2.2结果
(6)Ping后再查看NAT转换映射关系,如图4-4。
R0#sh ip nat t
图4-4 NAT转换映射关系
图4-4显示了此次通信完成了ip地址的映射转换。
4.2动态NAT的配置
动态NAT是指将内部网络的私有IP地址转换为公用IP地址时,IP地址对是不确定的,是随机的,所有被授权访问Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。主要命令如下:
ip nat pool pool-name start-address end-address netmask subnet-mask
定义一个IP地址池,pool-name是地址池的名字,start-address是起始地址,end-address是结束地址,subnet-mask是子网掩码。地址池中的地址是供转换的内部全局合法地址。
access-list access-list-number permit address wildcard-mask
定义一个访问控制列表,access-list-number是表号,address是地址,wildcard-mask是通配符掩码,限定内部本地地址的格式,只有和这个列表匹配的地址才会进行NAT转换。
ip nat inside source list access-list-number pool pool-name
定义动态NAT,access-list-number是访问列表的表号,pool-name是地址池的名字。它表示把和列表匹配的内部本地地址,用地址池中的地址建立NAT映射。
本例网络拓扑图如图4-5,主机1和主机2为校园机房的两台主机,R0为边界路由,ISP给校园分配了了2个合法的ip。
图4-5 动态NAT网络拓扑图
(1)配置R0
R0(config)#interface FastEthernet0/0
R0(config-if)#ip add 192.168.1.1 255.255.255.0
R0(config-if)#no shut
R0(config)#interface Serial0/3/0
R0(config-if)#ip add 200.1.1.1 255.255.255.0
R0(config-if)#no shut
R0(config-if)#clock rate 64000
R0(config)#ip route 200.1.2.0 255.255.255.0 200.1.1.2
(2)配置R1
R1(config)#interface FastEthernet0/0
R1(config-if)#ip add 200.1.2.1 255.255.255.0
R1(config-if)#no shut
R1(config)#interface Serial0/3/0
R1(config-if)#ip add 200.1.1.2 255.255.255.0
R1(config-if)#no shut
R1(config)#ip route 192.168.1.0 255.255.255.0 200.1.1.1
(3)R0#sh ip route //查看路由接口状态,如图4-6。
图4-6 R0接口状态
(4)用主机1 Ping web服务器,或者直接访问web服务器,检测是否连通,如图4-7,4-8。
图4-7 主机1访问web服务器
图4-8主机1 Ping一下web服务器
(5)在R0上查看nat转换状态,显示为空,如图4-9。
图4-9 NAT转换状态
(6)动态NAT配置
R0(config)#interface FastEthernet0/0
R0(config-if)#ip nat inside
R0(config)#interface Serial0/3/0
R0(config-if)#ip nat outside
R0(config)#access-list 1 permit 192.168.1.0 0.0.0.255 //定义允许转换的内部本地网络地址范围
R0(config)#ip nat pool yang 200.1.1.3 200.1.1.4 netmask 255.255.255.0/ /定义内部全局地址池
R0(config)#ip nat inside source list 1 pool yang //为内部本地地址调用转换内部全局地址池
(7)再用主机1和主机2访问web服务器之后,查看nat转换状态,如图4-10。
图4-10 NAT转换状态
由上图可见,两台内部主机分别映射到了不同的合法全局ip地址200.1.1.3和200.1.1.4,进而访问外部服务器。
4.3接口动态NAPT的配置
NAPT(Network Address Port Translation),即网络端口配置,是人们比较熟悉的一种转换方式,实现<内部地址+内部端口>与<外部地址+外部端口>之间的转换,它可以将中小型的网络隐藏在一个合法的IP地址后面。NAPT也被称为“多对一”的NAT,或者叫PAT(Port Address Translations,端口地址转换)、地址超载(address overloading)。
NAPT的主要优势在于,能够使用一个全球有效IP地址获得通用性。主要缺点在于其通信仅限于TCP或UDP。当所有通信都采用TCP或UDP,NAPT允许一台内部计算机访问多台外部计算机,并允许多内部主机访问同一台外部计算机,相互之间不会发生冲突。
access-list access-list number permit address wildcard-mask
定义一个访问控制列表,access-list number是表号,address是地址,wildcard-mask是通配符掩码。它的作用是限定内部本地地址的格式,只有和这个列表匹配的地址才会进行NAT转换。
ip nat inside source list access-list-number interface interface-id overload
定义动态NAPT,access-list-number是访问列表的表号,interface interface-id指定了内部全局地址所在的接口,一般是outside接口。它表示和列表匹配的内部本地地址,都用该接口的IP地址建立NAPT映射。overload关键字表示启用端口复用。
从以上配置可以看出,配置接口动态NAPT时可以不配置地址池。
在接口动态NAPT的配置中,只是指定了映射时使用哪个接口的IP地址,当该接口的IP地址改变时,不需要重新定义。
本例网络拓扑图与上例相同,即如图4-4所示,但ISP只分配了1个合法ip。
(1)配置R0
R0(config)#interface FastEthernet0/0
R0(config-if)#ip add 192.168.1.1 255.255.255.0
R0(config-if)#no shut
R0(config)#interface Serial0/3/0
R0(config-if)#ip add 200.1.1.1 255.255.255.0
R0(config-if)#no shut
R0(config-if)#clock rate 64000
R0(config)#ip route 200.1.2.0 255.255.255.0 200.1.1.2
(2)配置R1
Router(config)#host R1
R1(config)#interface Serial0/3/0
R1(config-if)#ip add 200.1.1.2 255.255.255.0
R1(config-if)#no shut
R1(config)#interface FastEthernet0/0
R1(config-if)#ip add 200.1.2.1 255.255.255.0
R1(config-if)#no shut
R1(config)#ip route 192.168.1.0 255.255.255.0 200.1.1.1
(3)R1#sh ip route //查看R1路由状态,如图4-11
图4-11 R1路由状态
(4) 用主机1访问web服务器,检测是否连通,如图4-12。
图4-12 主机1访问web服务器
(5)动态NAPT配置
R0(config)#interface FastEthernet0/0
R0(config-if)#ip nat inside
R0(config)#interface Serial0/3/0
R0(config-if)#ip nat outside
R0(config)#access-list 1 permit 192.168.1.0 0.0.0.255
R0(config)#ip nat pool yang 200.1.1.3 200.1.1.3 netmask 255.255.255.0
R0(config)#ip nat inside source list 1 pool yang overload
R0(config)#access-list 1 permit 192.168.1.0 0.0.0.255
R0(config)#ip nat inside source list 1 interface serial0/3/0 overload
(6)R0#sh ip nat t //查看NAT转换状态
图4-13 NAT转换状态
(7)主机1上访问web浏览器,如图4-14。
图4-14主机1访问web服务器
(8)再查看NAT 转换状态,如图4-15。
图4-15 NAT 转换状态
(9)主机2上访问web浏览器,一样能访问,而nat转换表多了一条记录,如图4-16,使用的是同一个合法ip地址的不同端口。
图4-16 NAT 转换状态
5 结束语
通过将近两周的课程设计使我对网络规划,我对NAT技术有了一些了解。知道了NAT技术的基本原理和一些类型。还有怎么去在校园网中实现NAT技术。
本次课程设计的实践使我对原来学到的知识有了更深层次的理解,以前都只是学习书本上的理论知识,这次却是让自己通过运用以前的知识去设计一个校园网的子网划分方案,在设计的过程中也使我对一些概念有了更深刻的认识。
课程设计是培养我们综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,网络已经成为当今计算机发展中空前活跃的领域,在生活中可以说是无处不在,因此作为二十一世纪的计算机专业的大学生来说掌握网络组网技术是十分重要的。
让我再次感受到我们应当把所学知识和实践相结合,才能够超越水平,取得更大的发展。在这次课程设计中,老师给了我们很大的帮助和启发,随时随地为我们答疑,引导我们思考,而不是一味的教我们操作。
最后,在这里,我要感谢学校为我们提供了这次锻炼自己的机会,同时也感谢各位老师对我的指导和同学们帮助,希望这样的锻炼的机会会有下次。
参考文献
[1] Stephen R.Software Engineering with Java. 北京:机械工业出版社, 2005
[2]李雷、周晓宝等. Java网络应用编程. 北京:高等教育出版社, 2004
[3]谢希仁.计算机网络(第四版)[M].北京:电子工业出版社,2003
[4] 龚娟.计算机网络基础,人民邮电出版社,2007.5
[5] 李斌.大型局域网IP 地址的规划与分配[J].科技信息,2009
展开阅读全文