【51CTO.com 独家特稿】在51CTO论坛中看到一篇悬赏帖,帖子是讲路由器双线接入NAT后的数据分流问题的。之所以编辑成本文,主要是由于目前大家都比较关注如何利用路由器进行合理的数据分流。记者也查阅了一些资料,整理一些解决此类问题的知识点,希望对51CTO.com广大的网络工程师有所贡献。闲话少说,请看原帖悬赏内容:
拓扑和设备简单描述:
思科2811路由器一台,三个FE口,f0/0接ISP1,f0/1接ISP2(ADSL),f1/0接内网交换机
问题呈现:
ISP1专线有公网IP,下载可以,但开网页不行,第一次联站点要5秒,后面就对了;
ISP2是ADSL,开网页比ISP1快多了,下载速度不行。
帖主分析:估计ISP1开网页慢是因为DNS解析慢的原因。
帖主为了优化,想实现如下需求:
让DNS解析只通过ISP2来走,PC在从ISP2得到正确外网域名IP地址后,再通过ISP1跑所有数据,在ISP2不能解析地址时,再自己解析。
ISP2在ISP1失效时,所有数据走自己。
帖主分析难点:这里的难点在于内网通过ISP1或2访问外网时作了NAT复用,端口就有变化了,怎么去控制内网的访问呢?
在解决这个问题之前,我们先来了解一些知识点:
NAT(Network Address Translation)的功能,就是指在一个网络内部,根据需要可以随意自定义的IP地址,而不需要经过申请。在网络内部,各计算机间通过内部的IP地址进行通讯。而当内部的计算机要与外部internet网络进行通讯时,具有NAT功能的设备(比如:路由器)负责将其内部的IP地址转换为合法的IP地址(即经过申请的IP地址)进行通信。
通常NAT用于两种情况:一个企业不想让外部网络用户知道自己的网络内部结构,可以通过NAT将内部网络与外部Internet 隔离开,则外部用户根本不知道通过NAT设置的内部IP地址,其次是一个企业申请的合法Internet IP地址很少,而内部网络用户很多。可以通过NAT功能实现多个用户同时公用一个合法IP与外部Internet 进行通信。
而要达到这些目的,需要设置NAT功能的路由器至少要有一个内部端口(Inside),一个外部端口(Outside)。内部端口连接的网络用户使用的是内部IP地址。并且内部端口可以为任意一个路由器端口。外部端口连接的是外部的网络,如Internet 。外部端口可以为路由器上的任意端口。另外提醒一点,设置NAT功能的路由器的IOS应支持NAT功能。有关NAT更多的介绍,请参阅《路由器NAT功能配置简介》一文。
现在我们来看看怎样解决刚才提到的几个问题:
解决思路:
ISP2的nat匹配DNS解析
ISP1的nat匹配其他
或者
ISP2跑http
其他的跑ISP1
配置实例:
interface FastEthernet0/0 --------假设该端口为ISP 2接入端口 |
通过这样的配置,基本问题已经解决了!通过这个帖子,或许我们能够清晰的看到,当路由器作为双线出口时,一个基本的流控思路就是将双线做合理分工,再加上 NAT后的ACL列表来实现基于端口的数据分流。这里面的重点问题,就像帖主所提到的,当端口变化后,如何控制内网主机访问。相信各种实际情况的不同,具体处理方式可能会略有不同,但总的来说,道理一定是通的。在此,也感谢51CTO.com的两位网友,他们的ID是:tibetit和 lgq2358132134。论坛原帖地址:http://bbs.51cto.com/thread-678368-1.html