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

相关文章

python使用库爬取m3u8文件的示例

《python使用库爬取m3u8文件的示例》本文主要介绍了python使用库爬取m3u8文件的示例,可以使用requests、m3u8、ffmpeg等库,实现获取、解析、下载视频片段并合并等步骤,具有... 目录一、准备工作二、获取m3u8文件内容三、解析m3u8文件四、下载视频片段五、合并视频片段六、错误

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

Windows下C++使用SQLitede的操作过程

《Windows下C++使用SQLitede的操作过程》本文介绍了Windows下C++使用SQLite的安装配置、CppSQLite库封装优势、核心功能(如数据库连接、事务管理)、跨平台支持及性能优... 目录Windows下C++使用SQLite1、安装2、代码示例CppSQLite:C++轻松操作SQ

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(