Cisco IOS 使用 IP SLA 状态作为静态路由的开关

news/2024/7/20 21:15:10 标签: ios, tcp/ip, 网络协议

Cisco IOS 和 IOS XE 作为最普及的路由器和交换机操作系统,内建强大的状态跟踪联动能力。

我们配置网络设备时,希望设备能主动发现网络故障,及时作出相应调整,并将故障状态传递给网络的其他部分,减少故障恢复时的人工干预。

ios-">本文涉及 Cisco IOS 中的三个功能

  1. 静态路由随 track 状态开关
  2. 使用 IP SLA 检查指定 IP 是否响应 ICMP ECHO REQUEST(即 ping)
  3. Enhanced Object Tracking(即前述 track)聚合多个 IP SLA 检查的结果

案例介绍

配置要求

给出一种判断互联网接入链路是否可用的方法,如果此互联网接入链路不可用,从本机路由表中删除对应的默认路由,使得依赖此默认路由的动态路由协议向其邻居撤回默认路由。

基本思路

  1. 持续跟踪互联网上两个 IP 地址的 ICMP 可达性
  2. 如果它们中至少有一个可达,启用默认路由,同时禁用为这两个地址添加的静态主机路由。
  3. 如果两个均不可达,禁用/撤回默认路由。

相关配置

本文使用 192.0.2.1, 198.51.100.1 和 203.0.113.1 作为示例,这三个地址是 RFC 5735 中规定的文档专用地址,不在互联网上使用,读者应该自己选择合适的地址,与地址使用方联系获得许可,避免被误判为拒绝服务攻击流量。

  • 配置两个 IP SLA 测试

    1. 发送的 ICMP 数据报文结构 C15C0105 是 CISCO IOS 的另类拼写,可自定义。
    2. ISP-A 是使用的本机配置的对应此运营商的 VRF 名称,如果在全局路由表使用,可以不写这一行
    3. tag 是对此 IP SLA 测试的别名,用于帮助识别
    4. threshold 40 定义了 40ms 以上的 RTT 时间为超出上限,timeout 80 定义了 80ms 以上的 RTT 时间判为超时错误。
    5. 最后一行 ip sla group schedule 将两个 IP SLA 测试统一启动,每一个周期都是 10 秒,启动间隔 5s,立即启动,永远执行。
    ip sla 1
     icmp-echo 198.51.100.1 source-interface GigabitEthernet1
     request-data-size 1200
     tos 184
     data-pattern C15C0105
     vrf ISP-A
     tag ping-TESTNET-2
     threshold 40
     timeout 80
     frequency 10
     history distributions-of-statistics-kept 5
     history lives-kept 2
     history filter all
    !
    ip sla 2
     icmp-echo 203.0.113.1 source-interface GigabitEthernet1
     request-data-size 1200
     tos 184
     data-pattern C15C0105
     vrf ISP-A
     tag ping-TESTNET-3
     threshold 100
     timeout 200
     frequency 10
     history distributions-of-statistics-kept 5
     history lives-kept 2
     history filter all
    !
    ip sla group schedule 1 1-2 schedule-period 10 start-time now life forever
    
  • 配置调用上述 IP SLA 测试结果的 Tracking

    1. track 1 状态与 IP SLA 测试 1 联动
    2. track 2 状态与 IP SLA 测试 2 联动
    3. 在跟踪的 IP SLA 变为 DOWN 之后 31 秒内不改变 track 自身状态,如果这段等待期内 IP SLA 变为 UP,track 状态不会震荡。同理,若 track 从 DOWN 状态恢复,需要等待 61 秒内没有 IP SLA DOWN 的事件。
    4. track 3 状态取决于前两个跟踪目标(可以配置更多),如果小于 24% 则判为无效,如果大于 49% 则判为有效。在只配置了两个 object 的情况下,一个 object 状态为 UP,则贡献 50%,整体判为有效。
    5. track 10 的状态与 ISP-A 这个 VRF 的路由表中是否存在默认路由联动
    6. track 11 的状态与 track 10 状态相反
    track 1 ip sla 1
     delay down 31 up 61
    !
    track 2 ip sla 2
     delay down 31 up 61
    !
    track 3 list threshold percentage
     object 1
     object 2
     threshold percentage down 24 up 49
    !
    track 10 ip route 0.0.0.0 0.0.0.0 reachability
     ip vrf ISP-A
    !
    track 11 list boolean and
     object 10 not
    
  • 配置与上述 track 联动的静态路由

    1. 两个被测试地址的主机路由与默认路由的相反状态关联,即存在默认路由时,这两条主机路由不会被安装。
    2. 默认路由与链路可用性关联,即可以到达两个被测试地址时,安装默认路由。
    3. 以下配置不会形成震荡的原因是,两个被测试地址可以通过默认路由离开本路由器。
    ip route vrf ISP-A 198.51.100.1 255.255.255.255 192.0.2.1 name TESTNET-1 track 11
    ip route vrf ISP-A 203.0.113.1 255.255.255.255 192.0.2.1 name TESTNET-2 track 11
    ip route vrf ISP-A 0.0.0.0 0.0.0.0 192.0.2.1 name ISP-A-DEFAULT track 3
    

参考资料

IP SLA 和 Tracking 的选项及其丰富,读者可参考

  1. IP SLAs Configuration Guide, Cisco IOS XE 16
  2. IP Application Services Configuration Guide, Cisco IOS XE 16 - Configuring Enhanced Object Tracking

http://www.niftyadmin.cn/n/5422883.html

相关文章

为了跳槽或提升自己,你会先学习哪一门编程语言?

通过多个调查表的分析,发现大家对于GO语言的兴趣和需求非常高。GO语言是一种由Google开发的静态类型、编译型语言,最初于2007年问世。这门语言的设计者是Robert Griesemer、Rob Pike和Ken Thompson,他们的初衷是为了弥补C和Java在大规模软件工…

力扣每日练习3.10

3. 无重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 解题思路: 1.不含重复字符,可以…

Cassandra 安装部署

文章目录 一、概述1.官方文档2. 克隆服务器3.安装准备3.1.安装 JDK 113.2.安装 Python3.3.下载文件 二、安装部署1.配置 Cassandra2.启动 Cassandra3.关闭Cassandra4.查看状态5.客户端连接服务器6.服务运行脚本 开源中间件 # Cassandrahttps://iothub.org.cn/docs/middleware/…

torch.cuda.is_available()=False

问题: 显示torch.cuda.is_available()False 解决办法:说明这个虚拟环境不可用,删除虚拟环境,重建一个新的虚拟环境 1、删除原来的虚拟环境,假如原虚拟环境为pytorch-old,输入以下命令,先退出当…

第一次Python小练习题目

1.打印某学校的校训,具体内容如下所示: ****************************** 勤奋 严谨 求实 创新 ****************************** 注意: 第一行和最后一行各有 30 个*号。 答案: school_strs "勤奋 严谨 求实 创新&q…

SpringBoot项目中同时支持https和http协议

实用干货!看壹哥如何在SpringBoot项目中同时支持https和http协议_springboot http htpps共存-CSDN博客

乐观锁、悲观锁、库存表、sql优化

一、乐观锁和悲观锁乐观锁和 悲观锁 的机制 1. 乐观锁是一种思想,具体实现是,表中有一个版本(version)字段,首先获取到这个字段的值。 处理完业务逻辑 开始更新的时候,需要在where条件中限制该字段的值是否和获取的时候…

位运算#蓝桥杯

位运算#蓝桥杯 文章目录 位运算#蓝桥杯1、小蓝学位运算2、异或森林3、位移4、笨笨的机器人5、博弈论 1、小蓝学位运算 #include<bits/stdc.h> using namespace std; using LL long long; const LL N 1e97; template<int kcz> struct ModInt { #define T (*this)…