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

2024-03-08 15:04

本文主要是介绍Cisco IOS 使用 IP SLA 状态作为静态路由的开关,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

本文涉及 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 1icmp-echo 198.51.100.1 source-interface GigabitEthernet1request-data-size 1200tos 184data-pattern C15C0105vrf ISP-Atag ping-TESTNET-2threshold 40timeout 80frequency 10history distributions-of-statistics-kept 5history lives-kept 2history filter all
    !
    ip sla 2icmp-echo 203.0.113.1 source-interface GigabitEthernet1request-data-size 1200tos 184data-pattern C15C0105vrf ISP-Atag ping-TESTNET-3threshold 100timeout 200frequency 10history distributions-of-statistics-kept 5history lives-kept 2history 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 1delay down 31 up 61
    !
    track 2 ip sla 2delay down 31 up 61
    !
    track 3 list threshold percentageobject 1object 2threshold percentage down 24 up 49
    !
    track 10 ip route 0.0.0.0 0.0.0.0 reachabilityip vrf ISP-A
    !
    track 11 list boolean andobject 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

这篇关于Cisco IOS 使用 IP SLA 状态作为静态路由的开关的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/787475

相关文章

Mysql中RelayLog中继日志的使用

《Mysql中RelayLog中继日志的使用》MySQLRelayLog中继日志是主从复制架构中的核心组件,负责将从主库获取的Binlog事件暂存并应用到从库,本文就来详细的介绍一下RelayLog中... 目录一、什么是 Relay Log(中继日志)二、Relay Log 的工作流程三、Relay Lo

使用Redis实现会话管理的示例代码

《使用Redis实现会话管理的示例代码》文章介绍了如何使用Redis实现会话管理,包括会话的创建、读取、更新和删除操作,通过设置会话超时时间并重置,可以确保会话在用户持续活动期间不会过期,此外,展示了... 目录1. 会话管理的基本概念2. 使用Redis实现会话管理2.1 引入依赖2.2 会话管理基本操作

Springboot请求和响应相关注解及使用场景分析

《Springboot请求和响应相关注解及使用场景分析》本文介绍了SpringBoot中用于处理HTTP请求和构建HTTP响应的常用注解,包括@RequestMapping、@RequestParam... 目录1. 请求处理注解@RequestMapping@GetMapping, @PostMappin

springboot3.x使用@NacosValue无法获取配置信息的解决过程

《springboot3.x使用@NacosValue无法获取配置信息的解决过程》在SpringBoot3.x中升级Nacos依赖后,使用@NacosValue无法动态获取配置,通过引入SpringC... 目录一、python问题描述二、解决方案总结一、问题描述springboot从2android.x

SpringBoot整合AOP及使用案例实战

《SpringBoot整合AOP及使用案例实战》本文详细介绍了SpringAOP中的切入点表达式,重点讲解了execution表达式的语法和用法,通过案例实战,展示了AOP的基本使用、结合自定义注解以... 目录一、 引入依赖二、切入点表达式详解三、案例实战1. AOP基本使用2. AOP结合自定义注解3.

Python中Request的安装以及简单的使用方法图文教程

《Python中Request的安装以及简单的使用方法图文教程》python里的request库经常被用于进行网络爬虫,想要学习网络爬虫的同学必须得安装request这个第三方库,:本文主要介绍P... 目录1.Requests 安装cmd 窗口安装为pycharm安装在pycharm设置中为项目安装req

使用Python将PDF表格自动提取并写入Word文档表格

《使用Python将PDF表格自动提取并写入Word文档表格》在实际办公与数据处理场景中,PDF文件里的表格往往无法直接复制到Word中,本文将介绍如何使用Python从PDF文件中提取表格数据,并将... 目录引言1. 加载 PDF 文件并准备 Word 文档2. 提取 PDF 表格并创建 Word 表格

使用Python实现局域网远程监控电脑屏幕的方法

《使用Python实现局域网远程监控电脑屏幕的方法》文章介绍了两种使用Python在局域网内实现远程监控电脑屏幕的方法,方法一使用mss和socket,方法二使用PyAutoGUI和Flask,每种方... 目录方法一:使用mss和socket实现屏幕共享服务端(被监控端)客户端(监控端)方法二:使用PyA

Python使用Matplotlib和Seaborn绘制常用图表的技巧

《Python使用Matplotlib和Seaborn绘制常用图表的技巧》Python作为数据科学领域的明星语言,拥有强大且丰富的可视化库,其中最著名的莫过于Matplotlib和Seaborn,本篇... 目录1. 引言:数据可视化的力量2. 前置知识与环境准备2.1. 必备知识2.2. 安装所需库2.3

Prometheus+cpolar如何在手机上也能监控服务器状态?

《Prometheus+cpolar如何在手机上也能监控服务器状态?》本文强调了通过Cpolar这一内网穿透工具,轻松突破Prometheus仅限于局域网访问的限制,实现外网随时随地访问监控数据,教你... 目录前言1.安装prometheus2.安装cpolar实现随时随地开发3.配置公网地址4.保留固定