静态路由+SLA故障检测

静态路由+浮动路由+递归路由

静态路由

静态路由就是一条一条手写打上的路由条目

浮动路由

浮动路由(路由备份)主要运用的场所是需要一个主线路和一个备线路,主线路断了切换到备线路。一般企业里面备份线路一般是用于做点对点

浮动路由原理就是在原有的情况之下去修改原有的默认路由的管理距离,以实现确定哪个线路为主,哪个线路为备

配置案例:配置左边的为主线路,右边的为备线路
image.png

//GW
en
conf ter
ip route 0.0.0.0 0.0.0.0 100.1.1.1
ip route 0.0.0.0 0.0.0.0 200.1.1.1 10 //”10“为这个静态路由的管理距离,管理距离越小越好
end
//GW
show ip route

image.png
此时路由表内只有一条默认路由,因为路由表里面只存放最优的条目

我们现在把GW的e0/0接口down掉,看线路是否切换到备线路上

//GW
en
conf ter
int e0/0
shutdown
end
show ip route

image.png
此时发现确实实现了一个备份链路的切换,并且默认路由的管理距离为10,此时如果我们又把GW的e0/0接口重新开启,线路又将会切换回来

如果我们不配置浮动路由,就需要写两条默认路由指向联通和电信,但是如果直接写两跳默认路由的话就会有一个等价负载均衡,左右两边同时走

递归路由

递归路由指的是路由的查询方式
典型案例

//GW
en
conf ter
ip route 123.1.1.1 255.255.255.255 10.1.1.1
ip route 10.1.1.1 255.255.255.255 20.1.1.1
ip route 20.1.1.1 255.255.255.255 30.1.1.1
ip route 30.1.1.1 255.255.255.255 40.1.1.1
ip route 40.1.1.1 255.255.255.255 100.1.1.1
end
//GW
show ip route

image.png

此时当我们要去往123.1.1.1这个目的的时候,路由器会先查逐条查询,去往123.1.1.1的下一条为10.1.1.1。然后又查询去往10.1.1.1的下一跳为20.1.1.1,路由器会按照这种递归查询的方式依次查询,最后查询到去往123.1.1.1这个地址去往100.1.1.1。每一个数据包的查询都得通过递归查询的方式查询路由表。这会导致数据转发非常慢。

这个时候就有了CEF表(cisco express forwarding)思科快速转发表,华为里面类似的是FIB(forwarding information base)
CEF表里面记录的是去往的目的地址直接对应的接口,默认CEF表是打开的。只有关闭了CEF表才查路由表,CEF表是根据路由表动态进行更新的

SLA故障检测

静态路由+SLA故障检测

问题引入

基于上方浮动路由的配置,如果我们此时中断的是电信的e0/0接口,GW会检测不到导致链路无法切换。在实际的工作当中,我们的网关设备跟运营商之间不可能是一根线直接连接的,中间肯定有很多的中转设备

这时候就需要用到常规的检测方式,常规的检测方式都是通过icmp的echo包(ping过去的包就属于icmp的echo包)来进行检测,包括BFD都是一样的

SLA功能就是链路故障检测服务等级保障,保障整个链路是否是通的。注意:SLA是思科私有的。SLA有不同的版本,不同型号的设备它使用的SLA的版本可能会有所不通,导致命令也不一致

应用配置

配置案例:基于上面浮动路由的配置,我们接着配置SLA,假设lo 0模拟的是百度服务器的地址
image.png

ping过去的包(echo),ping回来的包(echo-reply)

在配置SLA检测的时候,我们检测的是电信的e0/0接口,如果检测的是百度服务器的地址,会导致当我们电信这边的e0/0接口down了,它就会切换到联通这条路去往百度,当联通这条路去往百度通了之后又会切换回去往电信这条路,然后切换到电信这条路之后又不通了,接着又切换到联通,来回反复切换。这样就导致了链路抖动

所以如果使用SLA检测,一定是检测对端的ip地址,比如电信接口的地址,不能直接去检测去往目的的地址

//GW
en
conf ter
//老版本命令
ip sla monitor 123 //开启一个名为SLA的监控进程,”123“仅仅是一个编号
type echo protocol ipicmpEcho 100.1.1.1 //设定具体检测的ip地址为100.1.1.1,检测方式为echo包
frequency 5 //设置检测频率(SLA检测频率是以秒为单位,所以最快的检测时间为1s;但是新版的思科设备支持毫秒检测,几乎可以达到无缝切换),表示5检测一次
exit
ip sla monitor schedule 123 start-time now life forever //让123这个监控进程立即生效,并让它持续到永远
end

//新版本命令
ip sla 123
icmp-echo 100.1.1.1
frequency 5 
exit
ip sla schedule 123 start-time now life forever
end

注意:frequency后面的参数最小只能配置5,配置1会报错,因为SLA有一个timeout时间(比如说发送echo包,对面会给我回复echo-reply,我最多等待5s的回复时间,我发现中断了但是我依然会等待5s的时间再进行切换),默认情况下,他是不能小于5。如果修改timeout的时间就能够修改

此时SLA虽然生效了,但是SLA和静态路由没有任何关系,需要跟静态路由进行关联,这就需要用到track的跟踪功能

//GW
en
conf ter
//老版本命令
track 321 rtr 123 //"rtr"叫做响应时间计时器(代表它是挂钩SLA的时间倒计时),“321”是track追踪进程的编号,“123”是刚才写的sla进程的编号
exit
ip route 0.0.0.0 0.0.0.0 100.1.1.1 track 321 //把tarck编号321挂接在静态路由上,一个静态只能挂接一个track
end


//新版本命名
track 321 ip sla 123
exit
ip route 0.0.0.0 0.0.0.0 100.1.1.1 track 321
end

当配置完成之后,GW一直ping123.1.1.1,然后down掉联通的e0/0接口并观察实验现象,会发现链路会在5s的时间实现一个链路切换

注意:按理来说在真机的环境之中,两台直连的设备如果一端的接口down掉了,另外一段也会down(除了Serial线路),但是这个模拟器不会,按理来说应该在GW和电信或联通的中间增添一台设备

查看SLA的状态

//GW
//老版本命令
show ip sla monitor statistics


//新版本命名
show ip sla statistics

image.png

Number of successes表示成功发送的检测包
Number of failures表示发送失败的检测包
timeout表示接口是不通的状态

查看track的状态

//GW
show track

image.png
state is Donw表示SLA进程123是down的状态

当我们重新开启GW的e0/0接口,线路又会切换回来

//GW
show track

image.png

SLA的HTTP探测功能

问题引入

HTTP探测主要是用来检测域名的连通性,再实际工作中,服务器可能是没问题的,但是服务器里面的某一项服务挂掉了(例如tomcat挂掉了),导致服务器的80端口连接不上,网站打不开

还有一种情况需要用到这个检测功能,如果运营商那边是禁ping,导致设备ping不通,我们就无法用到SLA中的echo包来进行检测,这个时候直接检测运营商的服务端口

实际网络设备中,设备是默认开启http服务的,https服务是默认关闭的

//GW
en
conf ter
ip http server //开启http服务
ip http secure-server //开启https服务
end

应用配置

配置案例:路由器桥接到物理电脑,经过物理电脑用来上公网
image.png

//R1
en
conf ter
int e0/0
ip address dhcp //配置ip自动获取
exit
ip dns server //开启dns服务
ip name-server 10.34.5.253 //指定DNS服务器
ip route 0.0.0.0 0.0.0.0 192.168.134.2 //指定网关

测试ping baidu.com
image.png

现在服务器测试可以ping同百度

//R1
en
conf ter
ip sla 1 //建立SLA1
http get http://www.hh010.com/index.html //测试网页连通性
exit
track 1 ip sla 1 state //track关联sla
ip route 0.0.0.0 0.0.0.0 192.168.134.2 tarck 1 //静态关联track
exit
ip sla schedule 1 life forever start-time now //监控现在开始永不超时
end

SLA链路抖动解决方案

问题引入

在实际的工作中,数据传输丢一个包是很正常的,不可能我丢一个包就进行一个链路的切换,切换之后又会切换回去。这样会导致整个链路的抖动

此时我们就可以设置允许数据传输丢三个包,或者四个包再进行线路切换。这时间我们就可以配置延迟down,让它过了多少s之后再down掉接口

实际中的线路切换时间肯定会和理论上的时间有所误差,减少误差的方式:可以适当缩短时间的频率。当然接口down掉也不可能实现一个线路的马上切换,它也会有一个ARP表的建立过程

应用配置

配置案例:在上面静态路由+SLA故障检测的基础之上我们接着配置
image.png

//GW
en
conf ter
//老版本命令
track 321 rtr 123
delay down 15 //SLA检测设置的是5s检测一次,timeout时间默认也为5s,5s如果没收到echo-reply包不会立即把接口down掉,而会等待这15s设置的时间如果没收到echo-reply才会把接口down掉,所以接口down的时间大概为15s+5s=20s
end

//新版本命名
track 321 ip sla 123
delay down 15
end

此时我们进行测试:在电信开启debug功能,当收到电信收到GW发来的echo检测包的时候,马上把联通的e0/0接口down掉,并让GW一直ping123.1.1.1,掐表计算等待时间

en
debug ip icmp

实验总共的时间大概为25s(GW给联通发送检测包的5s时间+GW等待echo-reply回复包的5s时间+15s额外等待时间)

注意:debug再工作岗位上不能随便使用,即使我们undebug all关闭了,它依然会把没显示完成的再命令行中显示出来,会导致设备一直刷屏,严重的会导致设备宕机

如果此时我们发现联通的这条线路又恢复了,我又不想让线路马上切换回来,万一联通线路又出问题了又会导致线路的切换,我们设置联通线路恢复10s之后我们再进行一个线路的切换

//GW
en
conf ter
//老版本命令
track 321 rtr 123
delay up 10 //延迟10s开启接口

//新版本命名
track 321 ip sla 123
delay up 10
end

此时我们进行测试:把联通和电信的e0/0接口都down掉,然后让GW一直ping123.1.1.1的同时把电信的e0/0接口开启,看多少秒进行切换

BFD故障检测

静态路由+BFD故障检测

BFD(Bidirectional Forwarding Detection,双向转发检测)

BFD协议提供一种轻负载、快速检测两台邻接路由器之间转发路径连通状态的方法。协议邻居通过该方式可以快速检测到转发路径的连通故障,加快启用备份转发路径,提升现有网络性能。

通过cisco路由器能使BFD特性使得路由切换达到毫秒级

如果是在静态路由+BFD检测环境下:思科里面BFD必须要双向配置,但是如果是华为设备的话可以配置单臂回声(通常BFD都是需要在两端配置,但是如果遇到对端设备不支持bfd或者对端设备不可控。此时只能配置bfd单臂回声来实现链路监测。单臂回声,顾名思义仅在一端配置BFD即可)

如果是在动态路由+BFD检测情况下:BFD必须在两端建立BFD会话以后,会话的up/down才会影响上层协议的重新重连,单边启用并不会对上层协议造成影响

配置案例

GW配置浮动路由,并且配置BFD故障检测,当去往123.1.1.1时,电信的线路断了自动切换到联通
image.png

//GW
en
conf ter
//配置静态路由
ip route 0.0.0.0 0.0.0.0 e0/0 100.1.1.1
ip route 0.0.0.0 0.0.0.0 e0/1 200.1.1.1 10

//配置BFD
int ran e0/0-1
bfd interval 50 min_rx 50 multiplier 3 //表示每50毫秒发送一次BFD报文,最小接收间隔50毫秒,检测超时倍数为3(最小容错3),参数协议一样才能协商成功
exit

//将BFD挂载在静态路由(配置接口与BFD联动)
ip route static bfd e0/0 100.1.1.1 //e0/0是本设备的接口,100.1.1.1是接口e0/0对应的对端设备接口的ip地址
ip route static bfd e0/1 200.1.1.1
DIANXING
en
conf ter
int e0/0
bfd interval 50 min_rx 50 multiplier 3
exit
ip route static bfd e0/0 100.1.1.2
ip route 0.0.0.0 0.0.0.0 e0/0 100.1.1.2
//LIANTONG
en
conf ter
int e0/0
bfd interval 50 min_rx 50 multiplier 3
exit
ip route static bfd e0/0 200.1.1.2
ip route 0.0.0.0 0.0.0.0 e0/0 200.1.1.2

查看bfd邻居状态

//GW
show bfd neighbors

image.png

此时当我们测试,让GW一直ping123.1.1.1,然后断开电信的e0/0接口会发现线路立马切换,并且路由GW的路由条目切换为了去往200.1.1.1的静态路由,然后当我们把电信的e0/0接口重新打开,它又会切换回去.

  • 32
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
浮动静态路由静态路由的主要区别在于,浮动静态路由可以在默认路由失效时自动切换到备用路由,从而提高网络的可用性。下面是浮动静态路由的配置代码示例: ``` interface GigabitEthernet0/0/0 ip address 192.168.0.1 255.255.255.0 ip nat inside ! interface GigabitEthernet0/1/0 ip address 10.0.0.1 255.255.255.0 ip nat outside ! ip route 0.0.0.0 0.0.0.0 10.0.0.254 track 10 ip route 0.0.0.0 0.0.0.0 192.168.0.254 track 20 ! track 10 ip sla 1 reachability delay down 10 up 60 ! track 20 ip sla 2 reachability delay down 10 up 60 ! ip sla 1 icmp-echo 10.0.0.254 source-interface GigabitEthernet0/1/0 frequency 5 ! ip sla 2 icmp-echo 192.168.0.254 source-interface GigabitEthernet0/0/0 frequency 5 ``` 在这个示例中,假设我们的路由器有两个出口接口,一个内部接口和一个外部接口。我们需要将所有的流量都路由到默认路由器上,但是我们还希望在默认路由器失效时能够自动切换到备用路由器。 我们使用了两个跟踪对象来检测默认路由器和备用路由器的可用性。当默认路由器不可用时,跟踪对象10将会变为不可用状态,路由器将自动切换到备用路由器。当默认路由器恢复可用性时,路由器将自动切换回默认路由器。 我们还使用了IP SLA来定期检测默认路由器和备用路由器的可用性。当一个IP SLA操作失败时,跟踪对象将会变为不可用状态,路由器将自动切换到备用路由器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孑然i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值