分类:
2008-05-19 02:04:27
阅读以下关于网络地址转换NAT技术的说明,结合网络拓扑图回答问题1~4。(15分)
【说明】
网络地址转换NAT技术可用来缓解IP地址短缺问题和实现TCP负载均衡功能。IP伪装技术是NAT的一种实现技术,它通过使用边界路由器的IP地址可以把子网中所有主机的IP地址隐藏起来,因此它即可以作为一种安全手段使用,借以限制外部对内部主机的访问;还可以用来实现虚拟主机和虚拟路由,以便达到负载均衡和提高可靠性的目的。在图3-5的网络设计方案中,在边界路由器Router上进行了TCP负载均衡技术的配置,其部分网络地址映射NAT表见表3-10。
图3-5 TCP负载均衡拓扑示意图
表3-10 边界路由器Router的部分NAT表
协 议 |
内部局部地址及端口号 |
内部全局IP地址及端口号 |
外部全局IP地址及端口号 |
TCP |
10.1.1.1:80 |
10.1.1.127:80 |
172.20.7.3:3058 |
TCP |
10.1.1.2:80 |
10.1.1.127:80 |
172.21.7.3:4371 |
TCP |
10.1.1.3:80 |
10.1.1.127:80 |
172.21.7.3:3062 |
TCP |
10.1.1.1:80 |
10.1.1.127:80 |
172.20.7.3:3109 |
TCP |
10.1.1.2:80 |
10.1.1.127:80 |
172.20.7.3:4715 |
【问题1】(5分)
阅读图3-5中给出的网络拓扑结构图,结合边界路由器Router的NAT表,将以下关于主机B向内部网络发出请求时,边界路由器Router实现TCP负载均衡的通信过程填写完整(以NAT表中第1行为例)。
① 外部主机B(172.20.7.3)发出请求,建立主机B到(1)的连接。
② 当边界路由器Router接到这个连接请求后,查询本机中的(2),建立一个新的地址转换映射。如:为虚拟主机(10.1.1.127)分配一个真实主机的IP地址10.1.1.1。
③ 边界路由器用所选真实地址替换目的地址,转发这个修改后的IP数据包。(3)接收到该数据包,并作出应答。
④ 边界路由器接到应答包后,根据(4)和(5),从NAT映射表中查找对应的内部虚拟主机地址及端口号。
⑤ 边界路由器将IP应答数据包中源地址转换为虚拟主机地址,并转发这个修改后的IP应答包;主机B接收到源地址为10.1.1.127的IP应答包。
⑥ 当主机C发出下一个请求时,边界路由器可能为其分配下一个内部局部地址,如10.1.1.2地址。
【问题2】(6分)
以下是图3-5中边界路由器Router的部分配置信息,请在(6)~(11)空缺处填写上合适的命令或参数,以实现TCP负载均衡的配置任务。
router(config)# ip nat pool internal (6) prefix-length 24 type
rotary(关键字type rotary说明使用TCP负载平衡)
router(config)# (7) destination list 2 pool internal
(将虚拟主机地址转换成由映射表中定义的内部地址)
router(config)# (8)
router(config)# interface serial 0
router(config-if)# ip address 172.20.7.129 255.255.255.224
router(config-if)# (9)
router(config-if)# no shutdown
router(config-if)# (10)
router(config-if)# ip address 10.1.1.254 255.255.255.0
router(config-if)#(11)
router(config-if)# no shutdown
【问题3】(2分)
请指出在网络中使用NAT的TCP负载均衡技术将带来哪些缺点?
【问题4】(2分)
如果Intranet网使用IPSec技术进行通信加密,那么如何部署该网络中的NAT设备?
【问题1】(5分):这是一道要求对边界路由器实现TCP负载均衡工作原理有深入理解的试题。解题的关键是仔细阅读所给的网络拓扑图及正确理解“虚机主机”的概念。当内部网络节点共享一个IP地址访问Internet网时,站在Internet网的角度看这个IP地址就相当于一台虚拟的主机。当外网节点要与内部网络节点建立链路连接时,边缘路由器接收到这一外网请求后,就从网络地址转换NAT表中检查上一次的转换条目,并为本次连接分配下面一个条目进行映射,使用下面一个内部地址。当这次连接结束后,下一次的外部请求将被分配到再接下来的一个转换条目。
下面以NAT表中第1行为例,说明图3-5中外网主机B向内部网络发出请求时,边界路由器Router实现TCP负载均衡的通信过程。
① 外网主机B(172.20.7.3)发出请求,准备建立主机B到虚拟主机(10.1.1.127)的链路连接。此IP请求数据包的目的IP地址为10.1.1.127,源IP地址为172.20.7.3。
② 当边界路由器Router接到这个连接请求后,查询本机中的NAT映射表,为虚拟主机(10.1.1.127)分配一个真实主机的IP地址10.1.1.1,从而建立起一个新的地址转换映射。
③ 边界路由器用所选真实主机的IP地址替换主机B发给它的请求数据包的目的IP地址,转换后IP请求数据包中的目的IP地址为10.1.1.1,源IP地址为172.20.7.3。接着边界路由器将修改后的IP数据包转发给IP地址为10.1.1.1的内部主机。该内部主机接收到修改后的IP数据包后,将作出应答。此IP应答数据包的目的IP地址为172.20.7.3,源IP地址为10.1.1.1。
④ 当边界路由器接到应答包后,根据NAT表中第1行内部地址、端口号和外部地址、端口号的映射关系,从表中查找出与IP地址为10.1.1.1内部主机所对应的内部虚拟主机地址10.1.1.127及端口号80。
⑤ 边界路由器将IP应答数据包中源地址转换为虚拟主机地址,转换后IP请求数据包中的目的IP地址为172.20.7.3,源IP地址为10.1.1.127。接着边界路由器向主机B转发该修改后的IP应答包。主机B将接收到源地址为10.1.1.127的IP应答包。
⑥ 当边界路由器接收到外网主机C的下一个请求时,边界路由器可能为其分配下一个内部局部地址,例如10.1.1.2。
【问题2】(6分):这是一道要求在看懂网络拓扑图的基础上,填写相关配置命令的试题。由提示信息“关键字type rotary说明使用TCP负载平衡”,可以判断该行(6)空缺处所填写内容是给真实主机定义一个NAT地址集。查看NAT映射表可知,网络拓扑图中3台主机均属于这个NAT地址集。因此(6)空缺处填入“10.1.1.1 10.1.1.3”。
注意到提示信息“将虚拟主机地址转换成由映射表中定义的内部地址”中“转换成”,可推理(7)空缺处应完成访问控制列表(由该行“list 2”信息得知)与NAT地址集(由该行“pool internal”信息得知)之间的映射。因此填入“ip nat inside”。
由于(8)空缺处试题中未提示任何关键信息,所以留着最后填写。
由“interface serial 0”及(9)空缺处前面的“router(config-if)#”信息可知,(9)空缺处所填写的内容是在端口S0配置子模式下的命令。由于RFC1918文件定义的内网专用地址范围是:10.0.0.0~10.255.255.255,172.16.0.0~172.16.255.255,192.168.0.0~192.168.255.255。而端口S0分配的IP地址是172.20.7.129,不在私网专用地址范围之内,据此判断出端口S0是NAT配置中的外部端口,即该空缺处可能是将端口S0设为NAT的外部端口,因此应填入“ip nat outside”(注意是:outside)。
“router(config-if)# ip address 10.1.1.254 255.255.255.0”配置语句中,“10.1.1.254”属于私网专用地址,由此可判断出(10)空缺处是路由器内网接口的配置内容。因此填入“interface ethernet 0”完成从端口S0配置子模式到端口E0配置子模式的切换。
(11)空缺处的填写思路可参照(9)空缺处,结果是填入在内部端口E0上启用NAT的“ip nat inside”命令。
由于(7)空缺处所在行配置信息中提到了访问控制列表2(list 2),而在所给及所填写后的配置信息中均未对该访问控制列表进行定义,因此(8)空缺处应为虚拟主机定义一个标准的IP访问列表,填入“access-list 2 permit 10.1.1.127”。
以下给出图3-5中边界路由器Router关于NAT的完整配置及命令解释。
router(config)# ip nat pool internal 10.1.1.1 10.1.1.3 prefix-length
24 type rotary(真实主机地址范围从10.1.1.1到10.1.1.3,网络前
缀长度为24,且循环使用该地址集)
router(config)# ip nat inside destination list 2 pool internal
(将虚拟主机地址转换成由映射表中定义的内部地址)
router(config)# access-list 2 permit 10.1.1.127
(为虚拟主机定义一个标准的IP访问列表)
router(config)# interface serial 0 (进入端口S0配置子模式)
router(config-if)# ip address 172.20.7.129 255.255.255.224(设
置S0端口IP地址)
router(config-if)# ip nat outside (在外部端口S0上启用
NAT)
router(config-if)# no shutdown (激活该端口)
router(config-if)# interface ethernet 0 (进入端口E0配置子模式)
router(config-if)# ip address 10.1.1.254 255.255.255.0(设置E0
端口IP地址)
router(config-if)# ip nat inside (在内部端口E0上启用
NAT)
router(config-if)# no shutdown (激活该端口)
最后,提醒注意3条常用的NAT配置命令,①清除NAT转换条目命令clear ip nat translation,②查看或验证NAT配置信息命令show ip nat translations/statics,③NAT排错命令debug ip nat。
【问题3】(2分):在网络中使用NAT的TCP负载均衡技术,首先将会使边界路由器处理数据包的延迟增大。因为边界路由器router的CPU必须对每个数据包进行检查,而且还需要改变每个IP数据包的地址信息,所以这一负载均衡技术会加大边界路由器运行负载。其次,NAT技术隐藏了端到端的IP地址,对IP数据包的路由跟踪变得更加困难,同时也限制了一些内嵌IP地址服务(比如DNS、FTP、ICMP、SNMP等)的应用范围。
【问题4】(2分):利用IPSec VPN进行数据通信时,首先当采用AH进行分组认证,IP头标将成为认证对象,因此不能改变IP头标的地址信息。其次,当只以ESP对分组认证/加密时,虽然IP头标不在认证范围内,但是在多个会话共用一个IP地址的N:1变换场合,ESP分组既不是TCP报文也不是UDP报文,故不能用端口号实现NAT复用变换。另外,在Internet两端的VPN设备所建立的隧道相当于通过WAN的专线连接链路,如果两个VPN设备各自连接的内部网络的地址分配相同,那么就会发生地址冲突现象。
通过以上分析可知,在开放的Internet网上利用IPSec技术进行通信加密,需要把配置了NAT的设备放在受保护的VPN内部,或者使用具有NAT功能的IPSec设备。
对于以上分析中提及的地址冲突问题,其解决方法之一是采用将VPN设备和防火墙组合,建立外侧隧道型的VPN隧道,在防火墙上利用NAT的地址变换功能屏蔽两侧的可能相同的内部IP地址。
表3-11给出本案例问题1至问题4的参考答案,以供读者练习时参考,以便查缺补漏。读者也可依照所给出的评分标准得出自己的测试分数,从而大致评估自己对这一方面知识点掌握程度。
表3-11 参考答案及评分标准表
问题与分值 |
参考答案及评分标准 |
自评分 |
【问题1】 |
(1)虚拟主机(10.1.1.127) (2)NAT映射表 (3)IP地址为10.1.1.1的内部主机 (4)内部地址及端口号 (5)外部地址及端口号(每空1分) |
|
【问题2】 |
(6)10.1.1.1 10.1.1.3 (7)ip nat inside (8)ip nat outside (9)interface ethernet 0 (10)ip nat inside (11)access-list 2 permit 10.1.1.127(每空1分) |
|
【问题3】 |
①使用NAT地址转换会使路由器处理数据包延迟增大(1分) ②NAT隐藏了端到端的IP地址,对IP数据包的路径跟踪变的比较困难(1分) |
|
【问题4】 |
把配置了NAT的设备放在受保护的VPN内部,或者使用具有NAT功能的IPSec设备 (答案类似即可,2分) |