首页 > 其他分享 >14、IS-IS TE

14、IS-IS TE

时间:2024-04-15 16:33:20浏览次数:17  
标签:TE 14 MPLS Shortcut 链路 RouterA TLV

IS-IS TE

传统的路由器选择最短的路径作为主路由,不考虑带宽等因素。这样,即使某条路径发生拥塞,也不会将流量切换到其他的路径上。MPLS TE(Multiprotocol Label Routering Traffic Engineering)解决网络拥塞问题有自己的优势。通过MPLS TE,用户可以精确地控制流量流经的路径,从而可以避开拥塞的节点。同时,MPLS TE在建立隧道的过程中,可以预留资源,保证服务质量。

为了保证服务的连续性,MPLS TE还引入路由备份和快速重路由的机制,可以在链路出现问题时及时进行切换。通过MPLS TE技术,服务提供商能够充分利用现有的网络资源,提供多样化的服务。同时可以优化网络资源,进行科学的网络管理。

MPLS TE为了实现上述目的,需要了解整个网络中所有路由器的TE配置信息,但是MPLS TE缺乏这样一个机制:每个路由器在整个网络中泛洪各自的TE信息,并完成整网TE信息的同步。这个机制恰恰是IS-IS路由协议的一个基本特性,MPLS TE需要借助IS-IS完成TE信息的发布和同步。

IS-IS TE是IS-IS为了支持MPLS TE而做的扩展,它遵循RFC5305和RFC4205中关于IS-IS部分扩展的规定,通过在IS-IS LSP报文中定义新的TLV的方式,携带该路由器MPLS TE的配置信息,通过LSP的泛洪同步,实现MPLS TE信息的泛洪和同步。IS-IS TE把所有LSP中携带的TE信息提取出来,传递给MPLS的CSPF(Constraint Shortest Path First)模块,用来计算隧道路径。IS-IS TE在MPLS TE的流程中扮演着“搬运工”的角色,IS-IS TE和MPLS TE、CSPF的关系可以用图1来概括。 图1 MPLS TE、CSPF和IS-IS TE关系图

IS-IS TE新增TLV

IS-IS TE为了在LSP中携带TE信息,在RFC5305中新定义了如下四种TLV:

  • Extended IS reachability TLV

    此TLV用来替换IS reachability TLV,并采用sub TLV的形式扩展了原来的TLV格式。sub TLV在TLV中的实现方式与TLV在LSP中的实现方式相同。这些sub TLV用来携带配置在物理接口下的TE信息。

    目前支持RFC5305中定义的所有sub TLV以及RFC4124中定义的22号sub TLV。

    表1 Extended IS reachability TLV已经定义的sub TLV

    名称

    类型

    长度(Byte)

    Administrative Group

    3

    4

    管理组

    IPv4 Interface Address

    6

    4

    本端IPv4接口地址

    IPv4 Neighbour Address

    8

    4

    邻居的IPv4接口地址

    Maximum Link Bandwidth

    9

    4

    最大链路带宽

    Maximum Reserved Link Bandwidth

    10

    4

    最大预留链路带宽

    Unreserved Bandwidth

    11

    32

    未预留带宽

    Traffic Engineering Default Metric

    18

    3

    流量工程缺省开销值

    Bandwidth Constraints sub-TLV

    22

    36

    带宽约束TLV

  • Traffic Engineering router ID TLV

    此TLV type为134,包含了四字节的Router ID,在目前实现中就是MPLS LSR-ID。对于MPLS TE来说,Router ID用来唯一的标识一台路由器,它必须要和路由器一一对应。

  • Extended IP reachability TLV

    此TLV用来替换IP reachability TLV,用来携带路由信息。扩展了路由开销值的范围(四个字节),并可以携带sub TLV。

  • Shared Risk Link Group TLV

    此TLV type为138,用来携带共享风险链路组信息。每个共享链路信息为四字节的正整数值,该TLV可以携带多个共享链路信息。

IS-IS TE工作流程

IS-IS TE主要有两个流程:

  • 响应MPLS TE的配置消息流程

    只有使能了MPLS TE,IS-IS TE特性才能运行。

    根据MPLS TE的配置,更新IS-IS LSP报文中的TE信息。

    将MPLS TE的配置传递给CSPF模块。

  • 处理LSP中TE信息的流程

    提取收到的IS-IS LSP报文中的TE信息,传递给CSPF模块。

IS-IS TE的典型应用是协助MPLS TE建立TE隧道。如图2组网,建立一条从RouterA到RouterD的TE隧道。

图2 IS-IS TE组网示意图

RouterA、RouterB、RouterC和RouterD上使能MPLS TE,并在RouterA上使能MPLS TE CSPF计算隧道路径。

RouterA、RouterB、RouterC和RouterD运行IS-IS协议实现网络互通,并且使能IS-IS TE功能。

这样,RouterA、RouterB、RouterC和RouterD的IS-IS协议在各自发布的LSP报文中,分别携带各自路由器上配置的TE信息。RouterA根据收到的LSP报文,获得RouterB、RouterC和RouterD的MPLS TE配置,从而得到整网的TE信息。CSPF模块可以利用这些信息来计算满足隧道要求的路径。

TE隧道接口的路由计算方式

IS-IS Shortcut(AA)&Advertise(FA)是使用TE Tunnel接口来计算路由的两种方式。对于到达特定路由的流量,相比不可靠的IP转发,由MPLS来保证转发更适合。通过IS-IS Shortcut(AA)&Advertise(FA)这两种方式,让TE Tunnel接口参与路由计算,成为转发表中特定路由的出接口,这样就可以进行MPLS转发了。

图3 IS-IS Shortcut(AA)and Advertise(FA)基本原理示意图

IS-IS Shortcut(AA)与IS-IS Advertise(FA)的不同点包括:

  • IS-IS Advertise(FA)支持将TE tunnel的链接信息发布到其它中间系统,IS-IS Shortcut(AA)则不支持。

    图3所示,如果TE tunnel是IS-IS Advertise(FA)类型的,则RouterA会把RouterC作为邻居发送出去(邻居信息携带在22号TLV中,并且不含子TLV,即不含TE信息)。如果TE tunnel是IS-IS Shortcut (AA)类型的,RouterA则不会发布这样的消息。

  • IS-IS Advertise(FA)会影响到其它路由器的SPF树,IS-IS Shortcut(AA)则不会影响。

    无论TE Tunnel存在与否,IS-IS Shortcut(AA)不影响IS-IS的SPF树的原有结构,即RouterA到RouterB和RouterB到RouterC的链路还在,只是多了一条RouterA到RouterC的带Shortcut标记的链路。计算路由的时候,这条带Shortcut标记的链路将参与路由计算。

    如果TE tunnel是IS-IS Advertise(FA)类型的,RouterA将把“RouterC是RouterA的邻居”这条消息发布到全网,其它路由器会认为RouterC是RouterA的邻居,并在SPF树中添加其信息,并且不会打上Shortcut标记。

  • IS-IS Shortcut(AA)支持相对度量,IS-IS Advertise(FA)则不支持。

    IS-IS Shortcut(AA)的度量分为绝对度量和相对度量两种。

    绝对度量表示TE Tunnel在IS-IS层面的度量值是固定的。相对度量表示TE Tunnel在IS-IS层面的度量值是相对的,其开销值为物理链路值加相对度量值之和。如图3所示,如果配置相对度量为1,则RouterA到RouterC通过TE Tunnel的开销就是10+10+1=21。如果配置为0,则表示TE Tunnel和普通物理链路作为等价出接口,如果小于0,则优选TE Tunnel作为出接口。

  • IS-IS Shortcut(AA)仅需要单向的Tunnel链路连通,而IS-IS Advertise(FA)需要双向TE tunnel链路才能算通。

 

标签:TE,14,MPLS,Shortcut,链路,RouterA,TLV
From: https://www.cnblogs.com/laixufei/p/18136313

相关文章

  • WPF ContextMenu MenuItem style based on
    <Windowx:Class="WpfApp58.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.......
  • 爆火 AI 硬件遭差评,Ai Pin 上市即翻车;Grok 推出首个多模态模型丨 RTE 开发者日报 Vol.
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑......
  • Go 语言中 sync.Mutex 的实现
    锁的获取和释放模式先理解两种不同的锁的获取和释放模式"Barging"和"Handoff",它们影响着等待锁的goroutines的行为。Barging(插队)在Barging模式下,当一个锁被释放时,任何尝试获取该锁的goroutine都有机会立即抢占("插队")并尝试获取锁,而不管是否有其他goroutines正在等待......
  • 洛谷题单指南-数学基础问题-P1414 又是毕业季II
    原题链接:https://www.luogu.com.cn/problem/P1414题意解读:有n个数,从其中选k个数,k=1,2,3......n,使得这k个数的gcd最大。解题思路:如何求k个数的最大公约数呢?暴力法肯定不行。可以从1到n枚举这个最大公约数i,看是否有>=k个数的因数是i具体来说,用桶数组存放所有整数,a[x]表示x的......
  • 14、OSPF Mesh-Group
    OSPFMesh-Group定义OSPFMesh-Group是将并行链路场景中的链路分组,从而洪泛时从群组中选取代表链路进行洪泛,避免重复洪泛而造成不必要的系统压力。缺省情况下,不使能Mesh-Group功能。目的当OSPF进程收到一个LSA或者新产生一个LSA时,会进行洪泛操作。并行链路场景下,OSPF会......
  • IntelliJ IDEA2021.3.1 使用 MybatisCodeHelperPro插件
    摘自:https://blog.csdn.net/weixin_44321065/article/details/132576008一、下载下载破解后的MybatisCodeHelperPro的V3.2.2版本V3.2.2-CSDN或者V3.2.2-Gitee二、应用将下载下来的Zip文件放到电脑上的某个位置(最好放在Idea管理插件的plugins下)然后自行搜索Idea......
  • MindSpore运行报错RuntimeError: Unsupported device target GPU解决方案
    问题背景在运行MindSpore程序时,设置device_target为GPU,结果运行时报错:RuntimeError:UnsupporteddevicetargetGPU.Thisprocessonlysupportsoneofthe['CPU'].PleasecheckwhethertheGPUenvironmentisinstalledandconfiguredcorrectly,andcheckwhethercu......
  • nginx报错:bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a soc
    问题:1.nginx启动失败2.在logs/error.log文件下,出现报错信息:bind()to0.0.0.0:80failed(10013:Anattemptwasmadetoaccessasocketinawayforbiddenbyitsaccesspermissions) 目录:1、cmd输入命令netstat-aon|findstr"80"2.、查看80端口7532对应的任务3、......
  • jmeter 连接 sqlserver 数据库
    1. 将下载好的 jar 包放在 jmeter/lib 目录下,测试计划中导入 jar 包 2.添加 JDBCConnectionConfiguration 配置,参数设置如下 3. 线程组中添加 JDBCRequest,请求中连接名字(test)和步骤2 中自定义的名字(test)保持一致 4. 点击运行,查询出对应的结果 问题回......
  • 4. Kubernetes 之 WebUI管理 Portainer
    1.安装PortainerPortainer是一个轻量级的容器管理工具,可以用来管理Docker和Kubernetes,它提供了一个Web界面来方便我们管理容器,官方网址:https://www.portainer.io/1.使用官方提供的yaml文件安装:在master节点上安装portainer,并将其暴露在NodePort30777上kubectlap......