继我发的用Route Map实现多ISP Internet接入问题请高手赐教http://allanfan.blog.51cto.com/520839/217602 近期收到WILDLEE兄弟给我的留言:今天看了下你的那个关于ISP,NAT-,ROUTE-MAP一文,不知道现在你弄清楚没有,没有的话,加我Q,可以一起了解下,他问我有没有解决此题,告诉我他已经成功实现了,看到留言很开心立即加Q聊了起来,上了LEE兄的博客我按照他的步骤亲自测试了一下,期间遇到了一些问题,LEE兄很热心地帮我远程协助调试,指出我的配置错误的地方,在这里真的要非常感谢LEE兄的真诚帮助
这里是LEE兄博客原文:http://www.wildlee.org/2011_11_1767.html
经我和LEE兄的共同努力,才有了此篇博文,我这里基本按照他的步骤以及文字描述来做,注意由于IOS版本的不同,启用IP SLA所使用的命令有点区别,可以看到我这里和LEE兄所用的IOS是不一样,所以用的命令有所区别,这也里LEE兄告诉我的经验,哈哈!我这里按照详细的配置步骤全记录下来,清晰明了,大家可以按照我的步骤来做,记得最好跟我所用的IOS版本一样才能确保你所用的命令都能全部实现,我所用的IOS版本号为:,如果有需要的,可以找我要,大小有36M
我们现在面对的环境是这样的,路由器PolicyRouter分别接入ispA与ispB,并从不同的ISP获得相应的IP地址池,现在我们要对这个网络实现高可靠,高可用性,其技术细节我们要做到对链路智能判断与切换,ip 分组负载,策略NAT并设计相应的策略路由。难的不是单个技术实现,是组合技术,实现完美的方案。
policyroute配置:
以上配置了每个端口的IP地址,进行NAT必须的INSIDE与OUTSIDE指定,最后还定义了一个ACL语句,用来补获网络中的特定流量,至于ISPA和ISPB只在需要在相应的端口上启用IP即可.
===================================================
ip sla monitor 5
启用SLA并给它配置一个编号
type echo protocol ipIcmpEcho 10.1.1.1 source-ipaddr 10.1.1.2
这个是用来探测网络可达性的SLA策略,我用了ICMP技术,如果链路正常,那么将收到ICMP回复报文。
timeout 250 这个值是ICMP往返时间也是规则,如果在此时间内没有收到报文,可认为是链路DOWN.这个值单位是MS.
frequency 30 执行这个ICMP请求的频率时间,单位是S,这样如果链路正常,那目标定义的目标IP,将在每30S收到一个ICMP请求.
ip sla monitor schedule 5 life forever start-time now 全局下定义执行,定义这个SLA监测策略怎么个执行法life forever说它将永远进行这个动作,这个上面定义的目标IP将永远会每隔30S收到一个ICMP请求,START-TIME指明了什么时候执行这个策略,就个应该是对TRACK说的。
ip sla monitor 6
type echo protocol ipIcmpEcho 72.16.1.1 source-ipaddr 172.16.1.2
timeout 250
frequency 30
ip sla monitor schedule 6 life forever start-time now
TRACK策略执行者,同时表明了目的,对网络可达性判断。输入这个触发了路由器向目标发送ICMP,然后TRACK提供相关的结果被监测模块分析结果得到网络可达与否。
track 5 rtr 5 reachability
track 6 rtr 6 reachability
上面功能实现了一个非基于动态路由协议、非KEEPALIVE、非CDP协议的对链路的可达性的一个判断功能
================================================================
route-map allan permit 10
match ip address 1 这个1代表最开始我们上面写的那个访问控制列表
set ip next-hop verify-availability 10.1.1.1 5 track 5
set ip next-hop verify-availability 172.16.1.1 6 track 6
interface fastethernet 2/0 在网关的接口上应用此策略
ip policy route-map allan
这里定义了一个策略路由,用来实现一个对链路的智能切换,它用了SLA的监测结果,它将匹配到的流量发送到set ip 指定的接口或下一跳。在这里由于用了SLA技术,那么ROUTE-MAP将根据监测结果,来决定执行与否命令。如果检测结果是不可达,那么将拒绝执行此SET命令,匹配下一条SET语句,这个基本功能就实现了。如果有多个内部网络,可以在每个接口上执行这个策略,这个东西是非常灵活的,要看你怎么用。如果单单使用Set ip next-hop verify-availability ,它是基于CDP协议判断工作的。
=================================================================
这里就是NAT策略了,如果原本发送到ISPA的流量被转换成地址池ISPA,现在ISPA不可达了,那么策略ROUTE-MAP allan 就会将流量发送到ISPB,如果NAT没有一个判断,这样造成一个NAT错误 源转换,为了实现其智能功能,这里我们将NAT的源变成ROUTE-MAP策略源。
================================================
最后在策略路由上开启监控策略/NAT转换的详细状况/IP数据包
我们关闭ISPA f0/0口,随便ping一个不存在的IP,我们假设此ip就是要去访问外网的,我们可以发现g=172.16.1.1,可以证明ISPA那边出问题的时候会自动走ISPB出去的,匹配的也是对应的ISPB的地址池
可以看到因为PolicyRouter有目标网络的路由条目,所以策略被拒绝执行。