NAT实验设计与实现

2019-01-23 09:48王霞俊
微型电脑应用 2019年1期
关键词:公网连通性IP地址

王霞俊

(常州轻工职业技术学院 信息工程与技术学院, 常州 213164)

0 引言

NAT(Network Address Translation,网络地址翻译)[1,2]已经成为目前最广泛应用的网络技术之一,是高职院校计算机网络相关专业的必修课程,是信息安全课程和网络工程课程的重要内容[3-5]。高职院校不仅仅强调对专业知识的理论学习,尤其重视学生的动手实践能力的培养与提高[6-7]。因此,其实验/实训实践环节对课程教学尤为重要。

针对目前高职院校计算机网络实验教学的现状和特点,依托华三云实验室(H3C Cloud Lab,HCL又称为H3C模拟器)模拟仿真实验平台,设计并实现了Basic NAT、NAPT、Easy IP、NAT Server 4种实验方案。这样一方面通过这种有机综合性实验可以加深学生对各种NAT相关技术的理解和掌握,另一方面也可以减少昂贵网络设备的投入,提高学生完成实验的效率[8]。同时,对激发学生的学习兴趣[9,10],提高学生实践动手能力和创新能力,提高教师的教学研究水平也具有重要意义。

1 NAT技术

Internet技术的飞速发展,使越来越多的用户加入到互联网,因此IP地址短缺已成为一个十分突出的问题。NAT(Network Address Translation,网络地址翻译)就是在IP地址日益短缺的情况下提出的[11,12]。

NAT现在已经是一个IETF标准,允许一个机构以一个地址出现在Internet上。NAT技术使得一个私有网络可以通过Internet注册公网IP连接到外部世界。其中,位于Inside网络和Outside网络中NAT由器在发送数据包之前,负责把内部私有IP地址翻译成外部合法公网IP地址,反之亦然。NAT技术也可以应用到防火墙技术里,可以有效的隐藏内部局域网中的主机,是一种有效的网络安全保护技术。同时,NAT可以按照用户的需要,在局域网内部提供给外部FTP、WWW、Telnet等服务[13-16],如图1所示。

图1 NAT的基本工作原理

2 实验内容设计

2.1 实验目的

通过设计并实现Basic NAT、NAPT、Easy IP、NAT Server四种实验方案,能够从理论上和实践上更好地理解和掌握各种NAT的分类及实现技术,并且在实际网络中能够灵活使用NAT技术。

2.2 实验拓扑与设备

实验拓扑结构如图2所示。

图2 实验拓扑结构

实验设备包括2台H3C MSR 3600路由器2台、2台H3C S3600系列以太网交换机及多台PC机。

在此拓扑结构中,路由器RTA左侧的网络代表私有IP的内网,路由器RTA右侧以及路由器RTB代表了公网。这里,RTA充当了NAT设备,完成内网、外网IP的转换工作。

2.3 实验过程与主要配置步骤

2.3.1 Basic NAT实验

1) 基本IP地址和路由配置

依据图2实验组网图,完成RTA和RTB命名,各接口IP地址的配置,Client_A、Client_B和上Server上的IP地址配置等。

需要在RTA上配置缺省路由去往公网路由器RTB,完整的路由配置为:

[RTA]ip route-static 0.0.0.0 0 198.76.28.2

2) 检查连通性

分别在Client_A和Client_B上ping Server(IP地址为198.76.29.4),其结果为无法ping通。产生这种结果的原因是在公网路由器上不可能有私网的路由,从Server回应的ping 响应报文到RTB的路由表上无法找到10.0.0.0网段的路由

3) 配置Basic NAT

在RTA上配置Basic NAT:

# 首先,通过ACL定义一条rule,匹配源地址属于10.0.0.0/24网段的数据

[RTA]acl number 2000

[RTA-acl-basic-2000]rule 0 permit source 10.0.0.0 0.0.0.255

# 其次,配置NAT地址池,设置地址池中用于地址转换的地址范围为:198.76.28.11到198.76.28.20,在该命令中,数字1的含义是:地址池的索引号是1

[RTA]nat address-group 1 198.76.28.11 198.76.28.20

# 最后,将地址池与ACL关联,并在正确的接口的正确方向上下发

# 进入接口模式视图

[RTA] interface G0/1

# 将地址池1与acl 2000关联,并在接口出方向上应用NAT

[RTA- G0/1] nat outbound 2000 address-group 1 no-pat

在该命令中,参数no-pat的含义是:表示不使用TCP/UDP端口信息实现多对多地址转换,也即表示使用一对一地址转换,只转换数据包的地址而不转换端口信息。

4) 检查连通性、NAT表项

从Client_A、Client_B分别ping Server,其结果是可以Ping通。

在RTA上通过display nat session命令查看NAT会话信息,依据该信息输出,可以看到该ICMP报文的源地址10.0.0.1已经转换成公网地址198.76.28.12,目的端口号和源端口号均为1024。源地址10.0.0.2已经转换成公网地址198.76.28.11,目的端口号和源端口号均为512。(注意:每次实验中显示的转换后的公网地址和端口号可能不同,这是正常现象。)五分钟后再次通过该命令查看表项,发现NAT表项全部消失,产生这种现象的原因是NAT表项具有一定的老化时间(aging-time),一旦超过老化时间,NAT会删除表项。可以通过display nat aging-time命令查看路由器的NAT默认老化时间。

2.3.2 NAPT实验

私网客户端Client_A、 Client_B需要访问公网服务器Server,但由于公网地址有限(例如只有一个公网IP地址),因此动态给各客户端分配不同公网IP地址是不可行的,需要配置NAPT(Network Address Port Translation,网络端口地址转换),动态地为Client_A、Client_B分配一个公网IP地址和协议端口。

1) 基本IP地址和路由配置

与2.3.1 Basic NAT实验任务同样,配置RTA和RTB相关接口的IP地址以及路由。

2) 检查连通性

从Client_A、Client_B上 ping Server(IP地址为198.76.29.4),其结果是不能ping通的。

3) 配置NAPT

在RTA上配置NAPT:

#首先,通过通过ACL定义一条rule,匹配源地址属于10.0.0.0/24网段的数据

[RTA]acl number 2000

[RTA-acl-basic-2000]rule 0 permit source 10.0.0.0 0.0.0.255

#其次,配置NAT地址池1,地址池中只放入一个地址198.76.28.11

[RTA-acl-basic-2000]nat address-group 1 198.76.28.11 198.76.28.11

#在接口视图下,将NAT地址池与ACL绑定并下发

[RTA] interface G0/1

[RTA- G0/1] nat outbound 2000 address-group 1

注意,这里NAPT配置命令中,不需要携带no-pat参数,意味着NAT要对数据包进行端口的转换。

4) 检查连通性、NAT表项

从Client_A、Client_B上分别ping Server,其结果是可以ping通。

在RTA上通过display nat session命令查看NAT会话信息,依据该信息输出,可以看到源地址10.0.0.1和10.0.0.2转换成的公网地址分别为198.76.28.11和198.76.28.11,10.0.0.1转换后的端口为12289,10.0.0.2转换后的端口为12288。当RTA出接口收到目的地址为198.76.28.11的回程流量时,正是用当初转换时赋予的不同的端口来分辩该流量是转发给10.0.0.1还是10.0.0.2。NAPT正是靠这种方式,对数据包的IP层和传输层信息同时进行转换,显著地提高公有IP地址的利用效率。

2.3.3 Easy IP实验

私网客户端Client_A、Client_B需要访问公网服务器Server,但没有公网IP地址可用。所以,只能用路由器公网接口IP地址动态为Client_A、Client_B分配公网地址和协议端口。

1) 基本IP地址和路由配置

与2.3.1 Basic NAT实验任务同样,配置RTA和RTB相关接口的IP地址以及路由。

2) 检查连通性

从Client_A、Client_B ping Server(IP地址为198.76.29.4),其结果是无法ping通。

3) 配置Easy IP

在RTA上配置Easy IP:

#首先,通过通过ACL定义一条rule,匹配源地址属于10.0.0.0/24网段的数据

[RTA]acl number 2000

[RTA-acl-basic-2000]rule 0 permit source 10.0.0.0 0.0.0.255

#然后在接口视图下,将ACL与接口关联,并在出方向上应用NAT

[RTA] interface G0/1

[RTA- G0/1] nat outbound 2000

4) 检查连通性、NAT表项

从Client_A、Client_B分别ping Server,其结果是能够ping通。

在RTA上通过display nat session命令查看NAT会话信息,依据该信息输出,可以看到源地址10.0.0.1和10.0.0.2转换成的公网地址分别为198.76.28.1和198.76.28.1(也就是路由器RTA的公网接口IP地址)。

2.3.4 NAT Server实验

有时,内网的服务器,如Web、E-mail、FTP等,需要为外部用户提供服务,前面介绍的Basic NAT、NAPT、Easy IP三种技术将无法实现。因为在RTA上始终没有私有IP 10.0.0.0/24网段的路由,所以Server直接ping Client_A是不可达的。为了解决私有IP地址无法路由的问题,需要将内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址,也就是这些内网服务器的私有IP地址必须采用静态地址转换成公网IP地址,以便外部用户可以使用这些服务。

1) 基本IP地址和路由配置

实验拓扑结构仍如图2所示,只是Client_A是一个Web服务器,Client_B是一个FTP服务器。

完成RTA和RTB命名、各接口IP地址的配置,Client_A、Client_B和上Server上的IP地址配置等。

需要在RTA上配置缺省路由去往公网路由器RTB,完整的路由配置为:

[RTA]ip route-static 0.0.0.0 0 198.76.28.2

2) 检查连通性

分别在Client_A和Client_B上ping Server(IP地址为198.76.29.4),其结果为无法ping通。

在Server上ping Client_A和Client_B,其结果也为无法ping通。

3) 配置NAT Server

在RTA上配置NAT Server:

# 首先,通过通过ACL定义一条rule,匹配源地址属于10.0.0.0/24网段的数据

[RTA]acl number 2000

[RTA-acl-basic-2000]rule 0 permit source 10.0.0.0 0.0.0.255

# 其次,配置NAT地址池,地址范围为:198.76.28.11到198.76.28.20

[RTA]nat address-group 1 198.76.28.11 198.76.28.20

#进入接口模式,在出接口上将私网服务器地址和公网地址做一对一NAT映射绑定

#将公网地址198.76.28.11与私有地址10.0.0.1一对一NAT映射绑定

[RTA]interface G0/1

[RTA- G0/1]nat server protocol tcp global 198.76.28.11 80 inside 10.0.1.1 80

#将公网地址198.76.28.12与私有地址10.0.0.2一对一NAT映射绑定

[RTA- G0/1]nat server protocol tcp global 198.76.28.12 21 inside 10.0.1.2 21

# 配置Basic NAT,以便其他内网机器可以访问外网

#将地址池1与acl 2000关联,并在接口出方向上应用NAT

[RTA- G0/1] nat outbound 2000 address-group 1 no-pat

4) 检查连通性、查看NAT表项

从Client_A、Client_B分别ping Server,其结果是能够ping通。

从Server主动ping Client_A的公网地址198.76.28.11,其结果是可以ping通。

从Server主动ping Client_B的公网地址198.76.28.12,其结果是可以ping通。

在Server上,通过浏览器访问http://198.76.28.11和ftp://198.76.28.12,也是可行的。

在RTA上通过display nat server命令查看NAT Server表项,表项信息中显示出地址198.76.28.11和地址10.0.0.1,198.76.28.12和地址10.0.0.2的一对一的映射关系。

2.3.5 四种实验方案比较

通过实验分析,可知,Basic NAT实现私网地址与公网地址一对一动态转换。NAPT只定义了一个公网地址,利用不同的端口号来区分,实现私网地址与公网地址的多对一转换,适用于拨号接入Internet或动态获得IP地址的场合。Easy IP工作原理与普通NAPT相同,是NAPT的一种特例。它直接使用路由器出接口的IP地址作为转换后的源地址,不用预先配置地址池,适用于出接口地址无法预知的场合。而NAT Server使公网主机可以主动连接私网服务器获取服务,是一种静态NAT,适合于对外提供服务。

3 总结

本文研究了NAT技术,设计并实现了Basic NAT、NAPT、Easy IP、NAT Server 4种实验方案,并在H3C HCL模拟器仿真环境中给出了详细的实验过程。教学实践表明,这可以使学生从理论上和实践上更好地理解和掌握NAT技术。在此实验方案基础上,可以进一步延伸和丰富实验内容。比如,增加多个内网,添加VLAN、防火墙、ACL、VPN、RIP & OSPF路由协议等。

猜你喜欢
公网连通性IP地址
植被覆盖度和降雨侵蚀力变化对小流域泥沙连通性的影响
超越视野
中国自然保护地连通性的重要意义与关键议题
改进连通性保持的二阶多智能体编队控制
浅析大临铁路公网覆盖方案
某IP端口映射在外网打不开
如何迎接公网对讲的春天
公安网络中IP地址智能管理的研究与思考
《IP地址及其管理》教学设计
基于公网的人民防空应急警报通信系统及应急通信保障工作策略研究