用Route Map实现多ISP Internet接入不中断服务

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介:

继我发的用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版本号为:image,如果有需要的,可以找我要,大小有36M

我们现在面对的环境是这样的,路由器PolicyRouter分别接入ispA与ispB,并从不同的ISP获得相应的IP地址池,现在我们要对这个网络实现高可靠,高可用性,其技术细节我们要做到对链路智能判断与切换,ip 分组负载,策略NAT并设计相应的策略路由。难的不是单个技术实现,是组合技术,实现完美的方案。

image

policyroute配置:

SNAGHTML144c24e8

以上配置了每个端口的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

SNAGHTML145dfc24

上面功能实现了一个非基于动态路由协议、非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

image

这里定义了一个策略路由,用来实现一个对链路的智能切换,它用了SLA的监测结果,它将匹配到的流量发送到set ip 指定的接口或下一跳。在这里由于用了SLA技术,那么ROUTE-MAP将根据监测结果,来决定执行与否命令。如果检测结果是不可达,那么将拒绝执行此SET命令,匹配下一条SET语句,这个基本功能就实现了。如果有多个内部网络,可以在每个接口上执行这个策略,这个东西是非常灵活的,要看你怎么用。如果单单使用Set ip next-hop verify-availability ,它是基于CDP协议判断工作的。 
=================================================================

image

这里就是NAT策略了,如果原本发送到ISPA的流量被转换成地址池ISPA,现在ISPA不可达了,那么策略ROUTE-MAP allan 就会将流量发送到ISPB,如果NAT没有一个判断,这样造成一个NAT错误 源转换,为了实现其智能功能,这里我们将NAT的源变成ROUTE-MAP策略源。

================================================

image

最后在策略路由上开启监控策略/NAT转换的详细状况/IP数据包

我们关闭ISPA f0/0口,随便ping一个不存在的IP,我们假设此ip就是要去访问外网的,我们可以发现g=172.16.1.1,可以证明ISPA那边出问题的时候会自动走ISPB出去的,匹配的也是对应的ISPB的地址池

image

可以看到因为PolicyRouter有目标网络的路由条目,所以策略被拒绝执行。

image





     本文转自allanhi 51CTO博客,原文链接:http://blog.51cto.com/allanfan/725052,如需转载请自行联系原作者





相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
5月前
|
Dart
Dart之集合详解(List、Set、Map)
Dart之集合详解(List、Set、Map)
|
2月前
|
Go 定位技术 索引
Go 语言Map(集合) | 19
Go 语言Map(集合) | 19
|
2月前
|
存储 前端开发 API
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
该文章详细介绍了ES6中Set和Map数据结构的特性和使用方法,并探讨了它们在前端开发中的具体应用,包括如何利用这些数据结构来解决常见的编程问题。
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
|
1月前
|
存储 分布式计算 Java
Stream很好,Map很酷,但答应我别用toMap():Java开发中的高效集合操作
在Java的世界里,Stream API和Map集合无疑是两大强大的工具,它们极大地简化了数据处理和集合操作的复杂度。然而,在享受这些便利的同时,我们也应当警惕一些潜在的陷阱,尤其是当Stream与Map结合使用时。本文将深入探讨Stream与Map的优雅用法,并特别指出在使用toMap()方法时需要注意的问题,旨在帮助大家在工作中更高效、更安全地使用这些技术。
42 0
|
3月前
|
存储 安全 Java
java集合框架复习----(4)Map、List、set
这篇文章是Java集合框架的复习总结,重点介绍了Map集合的特点和HashMap的使用,以及Collections工具类的使用示例,同时回顾了List、Set和Map集合的概念和特点,以及Collection工具类的作用。
java集合框架复习----(4)Map、List、set
|
3月前
|
Java
【Java集合类面试二十二】、Map和Set有什么区别?
该CSDN博客文章讨论了Map和Set的区别,但提供的内容摘要并未直接解释这两种集合类型的差异。通常,Map是一种键值对集合,提供通过键快速检索值的能力,而Set是一个不允许重复元素的集合。