datacom-MLD

MLD

  • 概述
    • 前言
      • MLD(Multicast Listener Discovery) 组播侦听发现协议,是IPv6路由器所使用的一种协议,用以发现在其直连网络上的组播侦听者(即希望接收组播数据的节点)的存在,并且能明确发现这些邻居节点所感兴趣的组播组地址。
      • 本章介绍不同版本MLD协议的基本原理及相关配置命令。
    • 目标
      • 了解MLD的作用及基本原理
      • 了解MLDv1, v2之间的区别
      • 了解SSM Mapping的作用
      • 掌握MLD的基本配置命令
    • MLD协议概述
      • MLD协议概述
        • MLD(Multicast Listener Discovery)组播侦听发现协议,用于IPv6组播中组成员管理。
          • 组播侦听发现协议MLD(Multicast Listener Discovery)用于IPv6组播中的组成员管理
          • 其基本原理和功能与IGMP相似。
          • MLD的目的是使能每个IPv6路由器发现在其直连网络上的组播侦听者(即希望接收组播数据的节点)的存在
          • 并且能明确发现这些邻居节点所感兴趣的组播地址。
          • 然后提供这些消息给路由器所使用的组播路由协议
          • 以确保组播数据转发至存在接收者的所有链接。
          • MLD是非对称协议
          • 明确了组播侦听者与路由器的不同行为。
          • 对路由器本身正在侦听的组播地址来说,路由器扮演协议的两种角色,包括对自己的消息作出回应
          • 如果路由器有不止一个接口在同一网络上,它只需要在其中一个接口上运行此协议。
          • 对侦听者来说,则必须在所有接口运行此协议以便上层协议从接口接收所需要的组播数据。
          • 所有MLD版本都支持ASM (Any-Source Multicast)模型。
          • MLDv2可以直接应用于SSM (Source-Specific Multicast) 模型
          • 而 MLDv1 则需要 SSM-Mapping 技术的支持。
        • MLD有两个版本
          • MLDv1 版本(由 RFC 2710 定义),对应 IGMPv2。
          • MLDv2 版本(由 RFC 3810 定义),对应 IGMPv3。
        • MLDv1主要基于查询和响应机制完成对IPv6组播组成员的管理。
        • MLDv2的原理与 MLDv1基本相同,并新增了以下特性
          • 对 IPv6 组播源的过滤;
          • IPv6 组播组状态跟踪;
          • 接收者主机的状态侦听。
        • MLD协议用途
          • 组播侦听发现协议MLD用于IPv6路由器在其直连网段上发现组播侦听者。
          • 路由器通过MLD协议,可以了解到在自己的直连网段上是否有组播组的侦听者,并在数据库里做相应记录。同时,路由器还维护与这些组播地址相联系的定时器信息。
          • 配置MLD的路由器使用IPv6单播链路本地地址作为源地址发送MLD报文。
          • MLD使用ICMP来携带消息所有的MLD报文被限制在本地链路上,跳数为1。
          • 组播侦听者是希望接收组播数据的主机节点。
        • MLDv1
          • MLDv1报文格式

 

  • 类型(Type)
    • 组播侦听查询(类型值=130),可分为两种子类型:
      • 普遍查询:用于获得在所连网络上具有侦听者的组播地址。
      • 特定组播地址查询:用于获得在所连网络上对一特定组播地址是否存在侦听者。
    • 组播侦听报告(类型值=131)
    • 组播侦听离开( MulticastListener Done)(类型值=132)
  • 代码(Code)
    • 发送时设置为1;接收时忽略。
  • 校验和(Checksum)
    • 标准的ICMPv6校验和,覆盖所有MLD消息以及IPv6首部区域中的伪首部。
  • 最大响应延迟(Maximum Response Delay)
    • 最大响应延迟值只在查询报文消息中有意义,它指定了发送响应报文的最大允许时间延迟,单位为毫秒。
    • 在其他报文消息中,发送时设置为零,接收时忽略。
  • 保留(Reserved)
    • 发送者设为零
    • 接收者忽略。
  • 组播地址(Multicast Address)
    • 在查询报文中,当发送普遍查询时,组播地址值设为零;
    • 当发送特定组查询时,设为特定的IPv6组播地址。
    • 在报告或离开报文中,组播地址值分别设为报文发送者要侦听或者停止侦听的特定IPv6组播地址。
  • 查询器选举机制

 

  • 所有MLD路由器在初始时都认为自己是查询器,并向本地网段内的所有主机和路由器发送MLD普遍组查询(GeneralQuery)报文(目的地址为 FF02::1)。
  • 本地网段中的其它MLD路由器在收到该报文后,将报文的源IPv6地址与自己的接口地址作比较。通过比较,IPv6地址最小的路由器将成为查询器,其它路由器成为非查询器(Non-Querier)。
  • 所有非查询器上都会启动一个定时器(即其它查询器存在时间定时器 OtherQuerierPresent Timer)。在定 时器超时前,如果收到了来自查询器的 MLD查询报文,则重置该定时器;否则,就认为原查询器失效, 并发起新的查询器选举过程。
  • 组成员加入过程

 

  • VRP遵循RFC2710来实现MLDv1。MLDv1基于查询/响应(Query/Response)机制完成组播组成员的管理。
  • MLDv1有两种类型的查询消息(QueryMessage):
    • 普遍查询(GeneralQuery):查询直连链路上是否有组播组的侦听者。
    • 指定组播组查询(Multicast-address-specificQuery):查询直连链路上是否有某个指定组播地址的侦听者。
  • 如果共享网段上存在配置MLD的多个组播路由器,将触发查询路由器(Querier)选举机制,由网段上IPv6地址最小的路由器充当查询器(也称MLD查询器),其他路由器充当非查询器(Non-Querier)。
  • 以普遍查询为例,主机加入组播组的基本过程是:
    • 1、MLD查询器周期性地向共享网段上的所有本地链路主机以组播方式(目的地址为FF02::1)发送普遍查询消息。
    • 2、网段上的所有主机都接收到该普遍查询消息。如果主机HostB和HostC希望加入某组播组G1,则设置定时器延时来响应。
    • 3、希望加入的主机在定时器超时后以组播方式向网段上的所有主机和路由器发送报告消息(ReportMessage)来响应查询,此消息包含组播组G1的地址信息。
    • 4、网段上的所有主机和路由器接收到此报告消息后,也就获得了关于G1的组播信息。此时网段中其他也希望加入组播组G1的主机将不再发送相同的报告消息,如果主机HostA希望加入另一个组播组G2,就会发送包含组播组G2地址的报告消息以响应普遍查询消息来加入G2。
    • 5、在查询/报告过程后,MLD查询器可以了解到在自己的直连网段上是否有组播组G1的接收者,生成形式为(*,G1)组播路由项,*表示任意的组播源。
    • 6、通过组播路由机制,MLD查询器接收到组播源发来的组播信息。如果直连网段上有接收者,就在网段上转发此数据,加入组播组的主机接收该数据。
  • 组成员离开过程

 

  • 当主机想离开组播组,就以组播地址(目的地址是FF02::2)向链路上发送一个离开消息(DoneMessage),并且在其组播地址域携带要停止侦听的地址。
  • 当查询器从链路上收到离开消息时,如果要离开的组播报文地址在此链路上查询器的侦听者地址列表中,查询器就会发送LastListener Query Count次组播地址特定查询,每次间隔时间为LastListener Query Interval。组播地址特定查询一般将LastListener Query Interval设定为MaximumResponse Delay,如果最后查询的响应延迟时间过后,没有此组播地址的报告在此链路上发送给查询器,因此此地址就从侦听者列表中删除。
  • MLDv2
    • MLDv2消息报文格式
      • MLDv2查询消息报文格式

 

  • 头192bits部分是和MLDv1的消息格式相同的部分。
  • 标志位S(SuppressRouter-side Processing):
    • 表示路由器接收到查询消息后是否对定时器更新进行抑制。
  • 查询器的健壮性变量QRV(Querier’sRobustness Variable):
    • 健壮性变量值QRV是最后侦听者查询次数的缺省值,也就是路由器在确定没有剩余侦听者存在之前而发送的特定组播地址查询的次数。
  • 查询器发送普遍查询消息的查询间隔QQIC(Querier’sQuery Interval Code)。
  • 源数目(Numberof Sources):
    • 普遍查询或指定组播组查询中,此字段设置为0。
    • 指定组播源-组查询中,此字段表示查询消息中包含的源地址个数。
  • 源地址(SourceAddress):
    • 指定查询的组播源地址。
  • MLDv2报告消息报文格式

 

  • 主机通过发送MLD报告消息来汇报当前的组播侦听状态。
  • 类型(Type):
    • Type=143
  • 保留(Reserved):
    • 发送时设置为0;接收时忽略。
  • 校验和(Checksum):
    • 标准的ICMPv6校验和,覆盖所有MLD消息以及IPv6首部区域中的伪首部。
  • 组播地址记录的个数(Number of Multicast Address Records )
  • 组播地址记录(Multicast Address Records ):
    • 表示主机在接口上侦听到的每个组播地址信息,包括记录类型、组播地址、源地址等。
  • 指定组播源-组查询

 

  • MLDv2兼容MLDv1,原理与MLDv1相同。MLDv2支持源列表和过滤模式,可以指定源地址加入,用于实现SSM。
  • 对IPv6 组播源的过滤:MLDv2是在指定组播组查询的基础上增加关于组播源的过滤模式:Include或Exclude。
    • 如果主机加入组播组时,只要求接收某些指定源如S1、S2、……发来的组播组报文,MLD报告消息中可以设置为IncludeSources (S1, S2, …)。
    • 如果主机加入组播组时,拒绝接收某些指定源如S1、S2、……发来的组播报文,则可以设置从指定源外的源地址接收组播组报文,MLD报告消息中可以设置为ExcludeSources (S1, S2, …)。
  • IPv6组播组状态跟踪:运行MLDv2协议的组播路由器按每条直连链路上的组播地址(permulticast address per attached link)来保持组播组的状态。组播组状态包括:
    • 过滤模式:保持对Include或Exclude的状态跟踪。
    • 源列表:保持对新增或删除组播源的跟踪。
    • 定时器:例如表示组播地址超时后切换到Include模式的过滤定时器、关于源记录的源定时器等。
  • 接收者主机的状态侦听:运行MLDv2协议的组播路由器通过侦听接收者主机的状态,记录和维护网段上加入到源-组的主机的信息。
  • MLD配置实例
    • 举例

 

  • 接收者通过组播方式接收视频点播信息,不同组织的接收者组成末梢网络,每个末梢网络中都存在一到多台接收者Host。
  • HostA和HostC为两个末梢网络中的组播信息接收者。PIM网络中的RouterA通过GE1/0/0接口连接末梢网络N1,通过POS2/0/0接口连接PIM网络中的其它设备;RouterB和RouterC路由器通过各自的GE1/0/0接口连接末梢网络N2,分别通过POS2/0/0接口连接PIM网络中的其它设备。
  • RouterA和末梢网络N1之间运行MLDv1。
  • RouterB、RouterC和末梢网络N2之间运行MLDv2。
  • 配置
    • 配置RA

 

  • system-view /进入系统视图
  • multicast ipv6 routing-enable /使能IP组播路由
  • interface interface-type interface-number /进入接口视图
  • mld enable /使能MLD
    • 配置了MLD的路由器必须在接口上使能MLD来侦听所有的IPv6组播地址。
    • 在需要建立和维持组播组成员关系的接口上使能MLD。
    • 查询器在直连网段上周期性发送MLD查询消息来维持组播侦听者的信息。当接收到组成员报告消息时,组播路由器刷新相关的组成员信息。
  • mld /进入MLD视图
  • version { 1| 2} /配置全局性MLD版本
  • interface interface-type interface-number /进入接口视图
  • mld version { 1| 2} /配置接口级IGMP版本
    • MLD版本号的配置是可选的。缺省情况下,使用MLDv2版本。
    • 当接口下没有配置新值时,缺省采用MLD视图下配置的值;假如接口下配置了新值,则接口视图下的取值优先被选择。
  • 配置RB

 

  • 缺省情况下使用MLDv2。
  • RouterC的配置与RouterB类似。
  • 在这样一个网络上需要选举查询器,那一台路由器将被选举成查询器呢?
  • 查看查询器
    • 可以看到,Router B是查询器,这是因为同一网段上组播路由器Router B的GE1/0/0的IPv6地址较小

 

  • SSMMapping
    • 概述

 

  • SSM(Source-Specific Multicast)称为指定源组播
  • 要求路由器能了解成员主机加入组播组时所指定的组播源。
  • 如果成员主机上运行MLDv2,可以在MLDv2 报告报文中直接指定组播源地址。
  • 但是某些情况下,用户主机只能 运行MLDv1,为了使其也能够使用 SSM 服务,路由器上需要提供MLD SSM Mapping 功能。
  • 配置完成后,当 RouterA 收到来自主机的 MLDv1 报告报文时,首先检查该报文中所携带的 IPv6 组播组地址 G, 然后根据检查结果的不同分别进行处理
    • 如果G 不在IPv6 SSM 组地址范围内,则提供ASM 组播服务。
    • 如果G 在IPv6 SSM 组地址范围内:
    • 若RouterA上没有 G对应的 MLDSSM Mapping 规则,则无法提供 SSM组播服务,丢弃该报文;
    • 若 RouterA上有 G对应的 MLDSSM Mapping 规则,则依据规则将报告报文中所包含的(*,G)信息映射为(G,INCLUDE,(S1,S2…))信息,可以提供SSM 组播服务。SSM映射功能使采用MLDv1版本的主机无须升级MLD版本就能顺利接收SSM的数据报文。此功能不影响采用MLDv2的主机
  • 映射策略可以多次配置,实现同一个组到多个源的映射。
  • 在一台路由器上,转发且仅转发映射表中的指定源-组报文。
  • 配置MLD SSM Mapping
    • 在配置SSM Mapping之前,需完成以下任务
      • 配置某单播路由协议,使整个组播域连通
      • 使能IPv6组播路由
    • 数据准备

 

  • 在配置SSM Mapping之前,需准备数据。
  • 执行命令
    • 执行命令system-view,进入系统视图。
    • 执行命令interfaceinterface-type interface-number,进入接口视图。
    • 执行命令mldenable,使能MLD功能。
    • 执行命令mldversion 2,配置MLD版本号为2。为保证该网段内运行任意版本MLD的用户主机都能得到SSM服务,建议在路由器接口上运行MLDv2。
    • 执行命令mldssm-mappingenable,使能SSMMapping功能。
    • 执行命令system-view,进入系统视图。
    • 执行命令mld,进入MLD视图。
    • 执行命令ssm-mappingipv6-group-address ipv6-group-mask-length ipv6-source-address,配置组到源的映射。多次执行该命令,可以实现同一个组到多个源的映射。
  • 配置MLD SSM Mapping实例

 

  • 使能组播功能,并在主机侧接口上使能MLD功能。
  • 在RouterA上使能组播功能,并在GE1/0/0接口上使能MLD功能,配置MLD版本为1。
  • 思考题
    • MLD的主要功能是什么?
      • 组播侦听发现协议MLD(Multicast Listener Discovery)用于IPv6组播中的组成员管理,其基本原理和功能与IGMP相似。
      • MLD的目的是使能每个IPv6路由器发现在其直连网络上的组播侦听者(即希望接收组播数据的节点)的存在,并且能明确发现这些邻居节点所感兴趣的组播地址。
      • 然后提供这些消息给路由器所使用的组播路由协议,以确保组播数据转发至存在接收者的所有链接。
    • MLDv2和MLDv1有哪些主要区别?
      • MLDv2兼容MLDv1,原理与MLDv1相同。
      • MLDv2支持源列表和过滤模式,可以指定源地址加入,用于实现SSM。
    • SSMMapping的主要作用是什么?
      • 发送MLDv1格式的报告消息的主机,不能接收到SSM组范围内的数据报文。
      • SSM映射功能使采用MLDv1版本的主机无须升级MLD版本就能顺利接收SSM的数据报文。
      • 此功能不影响采用MLDv2的主机
    • 总结
      • MLD的用途
      • MLDv1的工作原理
      • MLDv2的改进
      • SSMMapping的作用

datacom-路由import&control

路由import&control

  • 概述
    • 前言
      • 在复杂的IP网络中,根据实际组网需求,往往需要实施一些策略,通过改变路由属性(包括可达性)来改变网络流量所经过的路径,实现路由过滤和路由属性设置等功能,如控制路由的接收和发布、控制路由的引入、设置特定路由的属性等等。
      • 本文主要介绍网络中常用的路由选择工具、路由策略、策略路由的原理与配置。
    • 目标
      • 掌握包括ACL、IP-Prefix等路由选择工具
      • 掌握路由策略的原理与配置
      • 掌握策略路由的原理与配置
      • 运用路由策略及策略路由进行路由控制及报文转发
    • 路由选择工具
      • 概述
        • ACL 访问控制类表
          • 匹配报文信息
          • ACL是由permit或deny语句组成的一系列有顺序规则的集合。
          • 通过匹配报文的信息实现对报文的分类。
          • 路由器根据ACL定义的规则判断哪些报文可以接收,哪些报文需要拒绝,从而实现对报文的过滤。
          • ACL通过配置的一系列匹配规则对特定的数据包进行过滤,从而识别需要过滤的对象。
          • 然后,根据预先设定的策略允许或禁止相应的数据包通过。
          • 同时,ACL可以作为基础配置被其他功能模块引用。
        • IP-Prefix 前缀列表
          • 匹配路由信息
          • ip-prefix将路由条目与前缀过滤列表的每一项进行匹配,然后根据定义的匹配模式进行过滤,达成路由筛选的目的。
          • ip-prefix不能用来过滤数据包,只能过滤路由信息。
        • As-Path-Filter AS路径过滤器
          • 针对AS路径指定匹配条件
          • BGP的路由信息中,包含一个自治系统路径域。
          • As-path-filter就是针对自治系统路径域指定匹配条件。
          • AS路径过滤器仅应用于BGP协议。
        • Community-Filter 团体属性过滤器
          • 针对团体属性指定匹配条件
          • BGP的路由信息中,可以携带一个或多个团体属性
          • 团体属性过滤器就针对团体属性域指定匹配条件。
        • ACL
          • ACL基本原理
            • 定义

 

  • 访问控制列表ACL(AccessControl List)是由一条或多条规则组成的集合。
    • 所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。
  • ACL本质上是一种报文过滤器,规则是过滤器的滤芯。
    • 设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。
  • ACL编号:用于标识ACL,表明该ACL是数字型ACL
    • 根据ACL规则功能的不同,ACL被划分为基本ACL、高级ACL、二层ACL和用户ACL这几种类型,每类ACL编号的取值范围不同。
    • 除了可以通过ACL编号标识ACL,设备还支持通过名称来标识ACL,就像用域名代替IP地址一样,更加方便记忆。这种ACL,称为命名型ACL。
    • 命名型ACL实际上是“名字+数字”的形式,可以在定义命名型ACL时同时指定ACL编号。如果不指定编号,则由系统自动分配。
  • 规则:即描述报文匹配条件的判断语句
    • 规则编号
      • 用于标识ACL规则。
      • 可以自行配置规则编号,也可以由系统自动分配。
      • ACL规则的编号范围是0~4294967294
      • 所有规则均按照规则编号从小到大进行排序。
      • 所以,图1中的rule 5排在首位,而规则编号最大的rule15排在末位。
      • 系统按照规则编号从小到大的顺序,将规则依次与报文匹配,一旦匹配上一条规则即停止匹配。
    • 动作:包括permit/deny两种动作,表示允许/拒绝。
      • 包括permit/deny两种动作,表示允许/拒绝。
    • 匹配项
      • ACL定义了极其丰富的匹配项。
      • 除了图中的源地址和生效时间段,ACL还支持很多其他规则匹配项。
      • 例如,二层以太网帧头信息(如源MAC、目的MAC、以太帧协议类型)、三层报文信息(如目的地址、协议类型)以及四层报文信息(如TCP/UDP端口号)等。
    • 如果规则存在,则系统会从ACL中编号最小的规则开始查找。
      • 如果匹配上了permit规则,则停止查找规则,并返回ACL匹配结果为:匹配(允许)。
      • 如果匹配上了deny规则,则停止查找规则,并返回ACL匹配结果为:匹配(拒绝)。
      • 如果未匹配上规则,则继续查找下一条规则,以此循环。
      • 如果一直查到最后一条规则,报文仍未匹配上,则返回ACL匹配结果为:不匹配。
    • ACL分类
      • ACL类型根据不同的划分规则可以有不同的分类:基于ACL标识方法的划分、和基于ACL规则定义方式的划分和基于IPv6的ACL
      • 基于ACL标识方法的划分
        • 数字型ACL
        • 命名型ACL
      • 基于ACL规则定义方式的划分
        • 基本ACL(编号范围2000-2999)
          • 仅使用报文的源IP地址、分片信息和生效时间段信息来定义规则
        • 高级ACL(编号范围3000-3999)
          • 既可使用IPv4报文的源IP地址,也可使用目的IP地址、IP协议类型、ICMP类型、TCP源/目的端口、UDP源/目的端口号、生效时间段等来定义规则
        • 二层ACL(编号范围4000-4999)
          • 使用报文的以太网帧头信息来定义规则,如根据源MAC(Media Access Control)地址、目的MAC地址、二层协议类型等
        • 用户ACL(编号范围6000-6031)
          • 既可使用IPv4报文的源IP地址,也可使用目的IP地址、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则
        • 基于IPv6的ACL
          • 基本ACL6
            • 可使用IPv6报文的源IPv6地址、分片信息和生效时间段来定义规则。
          • 高级ACL6
            • 可以使用IPv6报文的源IPv6地址、目的IPv6地址、IPv6协议类型、ICMPv6类型、TCP源/目的端口、UDP源/目的端口号、生效时间段等来定义规则。
          • ACL匹配顺序
            • ACL的匹配顺序
              • 一个ACL 可以由多条“deny | permit”语句组成,每一条语句描述一条规则,这些规则可能存在重复或矛盾的地方(一条规则可以包含另一条规则,但两条规则不可能完全相同)。
              • 设备支持两种匹配顺序,即配置顺序(config)和自动排序(auto)。当将一个数据包和访问控制列表的规则进行匹配的时候,由规则的匹配顺序决定规则的优先级,ACL通过设置规则的优先级来处理规则之间重复或矛盾的情形。
              • 缺省的ACL匹配顺序是config模式。
            • 配置顺序(config)
              • 按ACL规则的编号(rule-id)按照从小到大的顺序进行匹配
              • 如果配置规则时指定了规则编号,则规则编号越小,规则插入位置越靠前,该规则越先被匹配。
              • 如果配置规则时未指定规则编号,则由系统自动为其分配一个编号。该编号是一个大于当前ACL内最大规则编号且是步长整数倍的最小整数,因此该规则会被最后匹配
            • 自动排序(auto)
              • 使用“深度优先”的原则进行匹配,常用ACL的匹配顺序如下

 

  • 自动排序(auto)使用“深度优先”的原则进行匹配。
  • “深度优先”即根据规则的精确度排序,匹配条件(如协议类型、源和目的IP 地址范围等)限制越严格越精确。例如可以比较地址的反掩码,反掩码越小,则指定的主机的范围就越小,限制就越严格。
  • 若“深度优先”的顺序相同,则匹配该规则时按rule-id从小到大排列。
  • IPv6 ACL
    • IPv6ACL对根据配置的规则对IPv6报文进行分类,其实现原理和ACL基本相同。
    • IPv6ACL简称ACL6。
    • ACL6的分类

 

  • ACL6和ACL命令行不同,而对应的编号可以相同,二者互不影响
  • 配置举例
    • [RouterA] acl ipv6 number 3001
    • [RouterA-acl6-adv-3001] rule denyipv6 source 3001::2/64
    • [RouterA] acl 3001
    • [Router-acl-adv-3001] rule permit ip source 202.169.10.5 0.0.0.0
  • IP-Prefix
    • 概述
      • 用于过滤IP前缀,能同时匹配前缀号和掩码长度
      • 不能用于数据包过滤
      • 缺省情况下,存在最后一条默认匹配模式为deny
      • 当引用的前缀过滤列表不存在时,默认匹配模式为permit
      • 详细说明
        • 每个地址前缀列表可以包含多个IP-Prefix条目,每个IP-Prefix条目对应一个索引号(index)。
        • 路由将按照索引号从小到大依次检查IP-Prefix列表,任意一个IP-Prefix匹配成功,将不再检查其余项。
        • 若所有IP-Prefix都匹配失败,路由信息将被过滤。
        • 根据匹配的前缀不同,前缀过滤列表可以进行精确匹配,也可以进行在一定掩码长度范围内匹配。
        • 前缀过滤列表可以进行精确匹配或者在一定掩码长度范围内匹配,可以通过配置关键字greater-equal和less-equal指定待匹配的前缀掩码长度范围。
          • 如果没有配置关键字greater-equal或less-equal,前缀过滤列表进行精确匹配,即只匹配掩码长度为前缀过滤列表掩码长度的相同IP地址路由;
          • 如果只配置了关键字greater-equal,则待匹配的掩码长度范围为从greater-equal指定值到32 位长度;
          • 如果只匹配了关键字less-equal,则待匹配的掩码长度范围为从指定的掩码到关键字less-equal指定值。
          • greater-equal-value与less-equal-value的取值限制:mask-length<=greater-equal-value<=less-equal-value<=32。
        • ip-prefix特点
          • 当所有前缀过滤列表均未匹配时,缺省情况下,存在最后一条默认匹配模式为deny。
          • 当引用的前缀过滤列表不存在时,默认匹配模式为permit。
        • IP-Prefix示例
          • ip ip-prefix FILTER index 10 permit 1.1.1.024
            • 该ip-prefix为精确匹配,只有1.1.1.1/24才能permit
          • ip ip-prefix FILTER index 10 permit1.1.1.0 24 less-equal 32
            • 掩码范围在24-32之间的网络1.1.1.0才能permit
          • ip ip-prefix FILTER index 10 permit1.1.1.0 24 greater-equal 26
            • 掩码范围在26-32之间的网络1.1.1.0才能permit
          • ip ip-prefix FILTER index 10 permit1.1.1.0 24 greater-equal 26 less-equal 32
            • 掩码范围在26-32之间的网络1.1.1.0才能permit
          • ip ip-prefix FILTER index 10 permit0.0.0.0 0 greater-equal 8 less-equal 32
            • 所有掩码长度在8到32的路由都被permit
          • ip ip-prefix FILTER index 20 permit 0.0.0.0 0 less-equal 32
            • 所有路由均被permit
          • IPv6-Prefix
            • IPv6-Prefix根据配置的规则对IPv6报文进行分类,其实现原理和IP-Prefix基本相同。
            • IPv6地址前缀列表用于过滤IPv6地址。
              • 同一个地址前缀列表可包含多个表项,每个表项指定一个地址前缀范围。
              • 此时,各表项之间是“或”的关系
              • 即只要通过其中一个表项就认为已通过该地址前缀列表的过滤
              • 所有表项都没有通过则意味着没有通过该地址前缀列表的过滤。
            • 默认所有未匹配的路由将被拒绝通过过滤列表。
              • 如果所有表项都配置成deny模式,则任何路由都不能通过该过滤列表。
              • 因此,需要在多条deny模式的表项后定义一条permit:: 0 less-equal 128的表项,以允许其它所有IPv6路由信息通过。
            • IPv6-Prefix示例
              • 允许掩码长度在32位到64位之间的地址通过。
                • [Huawei] ip ipv6-prefix abc permit :: 0 greater-equal 32 less-equal 64
              • 拒绝前缀为3FFE:D00::/32,且前缀长度大于32位的地址通过,允许其他的IPv6路由通过。
                • [Huawei] ip ipv6-prefix abc deny 3FFE:D00:: 32 less-equal 128
                • [Huawei] ip ipv6-prefix abc permit :: 0 less-equal 128
              • 配置名为p3的地址前缀列表,拒绝::1~::FFFF:FFFF范围内的所有路由通过,允许其他路由通过。
                • [Huawei] ip ipv6-prefix p3 index 10 deny :: 96 match-network
                • [Huawei] ip ipv6-prefix p3 index 20 permit :: 0less-equal 128
              • As-Path-Filter
                • AS-Path-Filter
                  • AS路径过滤器
                  • 以BGP中的AS_Path属性为匹配条件
                    • 将BGP中的AS_Path属性作为匹配条件的过滤器,只有BGP在收发路由的时候才能使用
                    • 由于AS_Path属性记录AS号是将最后经历的AS号放在AS_Path记录中的最左侧,所以在配置as-path-filter时需要格外注意。
                      • 如果一条路由起源于AS100,然后依次经过AS300, AS200, AS500,最后到达AS600。那么在AS600里,路由的AS-PATH属性表示为(500 200 300 100)。
                    • 使用正则表达式进行定义
                      • 常用的正则表达式

 

  • 实例
    • ip as-path-filter 10 permit .*
      • 匹配所有AS-PATH属性
    • ip as-path-filter 10 permit _100$
      • 匹配从AS100发起的路由
    • ip as-path-filter 10 permit ^100_
      • 匹配从AS100接收的路
    • ip as-path-filter 10 permit _100|200$
      • 匹配从AS100或200发起的路由
    • Community-Filter
      • Community-Filter
        • 团体属性过滤器
        • 以BGP中的community属性为匹配条件
          • 将BGP中的团体属性作为匹配条件的过滤器
          • 只有BGP在收发路由的时候才能使用
          • 团体属性包括基本basic团体属性和extended团体属性
            • 自定义团体属性和公认团体属性均属于basic团体属性。
            • MPLS VPN中的RT和SOO均属于extended团体属性。
          • 示例
            • ip community-filter 1 permit 100:1
              • 匹配community属性为100:1
            • ip community-filter 1 permit no-export
              • 匹配community属性为no-export
            • 路由策略与策略路由
              • 路由策略
                • 路由策略
                  • 主要用于路由过滤和路由属性设置等,从而影响流量所经过的路径。
                    • 路由策略主要实现了路由过滤和路由属性设置等功能,它通过改变路由属性(包括可达性)来改变网络流量所经过的路径
                  • 主要通过route-policy实现
                • 路由策略原理
                  • 路由策略

 

  • 一个Route-Policy由多个节点构成,路由进入路由策略后,按节点序号从小到大依次检查各个节点是否匹配。
  • 一个节点包括多个if-match和apply子句。
  • if-match子句用来定义该节点的匹配条件,apply子句用来定义通过过滤的路由行为。
  • if-match子句的过滤规则关系是“与”,即该节点的所有if-match子句都必须匹配。
  • Route-Policy节点间的过滤关系是“或”,即只要通过了一个节点的过滤,就可通过该Route-Policy。
  • 如果没有通过任何一个节点的过滤,路由信息将无法通过该Route-Policy。
  • 对于同一个Route-Policy节点,在匹配的过程中,各个if-match子句间是“与”的关系,即路由信息必须同时满足所有匹配条件,才可以执行apply子句的动作。
  • 但命令if-match route-type和if-match interface除外,这两个命令的各自if-match子句间是“或”的关系,与其它命令的if-match子句间仍是“与”的关系。
  • 路由策略常用场景
    • 控制路由的引入
      • 在对路由做相互引入时,为了防止次优路径或者环路,可以使用路由策略加以解决。

 

  • 上面拓扑为双点双向重发布的示意图,如果不加控制,将会发生次优路由和环路等故障
    • 在拓扑中,R1将网段10.0.0.0/24及2000::/64引入到OSPF。R2/R3分别将该路由引入ISIS,正常情况下,R2/R3将路由引入ISIS会有先后,假设R3先于R2将该路由引入到IS-IS。那么R2就会同时从OSPF和IS-IS学到10.0.0.0/24及2000::/64的路由。于是R2会根据路由协议的优先级优选通过IS-IS学到的路由(OSPF的外部路由优先级为150,IS-IS的路由优先级为15)。于是,当R2访问10.0.0.0/24及2000::/64网段时,会使用R4-R3-R1这条次优路径。为了避免出现这种情况,可以在路由器R2上使用route-policy修改OSPF ASE路由的优先级,使得OSPF ASE的路由优先于从IS-IS学到的路由,使得R2选择正确的路由。
    • 当R1连接网络10.0.0.0/24及2000::/64的接口断掉之后,虽然该条外部LSA会在OSPF区域内老化,但是由于R2通过IS-IS已经学习到了10.0.0.0/24及2000::/64网络,所以R2会将该网络引入到OSPF,进而使R1和R3会通过R2学习到了网络10.0.0.0/24及2000::/64。当R2访问访问网络10.0.0.0/24及2000::/64时,流量会沿R4-R3-R1-R2的路径发送,从而引发环路。为避免这种情况,我们可以通过给路由条目添加标记tag标签,然后对特定标签进行过滤的方法来避免环路的发生。
  • 控制路由的接收和发布
    • 根据网络需求,接收或者发布特定的路由。

 

  • R4将网络10.0.X.0/24及2000::/64&3000::/64引入到OSPF中。
  • 根据业务需要,R1只能接收网络10.0.0.0/24和2000::/64;
  • 而R2只能接收网络10.0.1.0/24和3000::/64。
  • 对于这种需求,可以通过filter-policy加以实现。
  • 可以接收指定的路由,从而优化路由表项
  • 一般通过filter-policy实现
  • 只接收必要、合法的路由信息,以控制路由表的容量,提高网络的安全性
  • 路由策略 – 设置特定路由的属性
    • 可以通过路由策略修改路由的属性,以对网络进行优化、调整。
    • 使用路由策略为特定的路由设置相应的属性

 

  • 通过route-policy修改BGP中的Local_Pref属性
  • 进而影响流量走向。
  • R2将从EBGP学到的10.0.0.0/24和2000::/64路由的Local_Pref设为300
  • R3将从EBGP学到的该路由的Local_Pref设置为200
  • R1/R2/R3相互之间通过IBGP交互各自的路由
  • 最终将选择以R2作为本AS去往网络10.0.0.0/24和2000::/64的出口。
  • 路由策略 – Filter-Policy
    • 路由策略 – Filter-Policy(OSPF)
      • Filter-policy Import
        • 对接收的路由设置过滤策略,只有通过过滤策略的路由才被添加到路由表中,没有通过过滤策略的路由不会被添加进路由表,但不影响对外发布出去。
        • OSPF的路由信息记录在LSDB中,filter-policy import命令实际上是对OSPF计算出来的路由进行过滤,不是对发布和接收的LSA进行过滤。
      • Filter-policy Export
        • 通过命令import-route引入外部路由后,为了避免路由环路的产生,通过filter-policy export命令对引入的路由在发布时进行过滤,只将满足条件的外部路由转换为Type5、7 LSA并发布出去。
        • 通过指定protocol或process-id对特定的某一种协议或某一进程的路由进行过滤。
        • 如果没有指定protocol和process-id,则OSPF将对所有引入的路由信息进行过滤。
        • 由于Type5、7 LSA是有ABSR产生的,因此,本命令仅在ASBR上配置。
      • 路由策略 – Filter-Policy(IS-IS)
        • Filter-policy Import
          • Filter-policy import命令用来配置IS-IS路由加入IP路由表时的过滤策略
            • 配置该命令后,不会影响本地设备的LSP的扩散和LSDB的同步,只会影响本地的IP路由表。
          • IS-IS的路由表项需要被成功下发到IP路由表中,才能用来指导IP报文转发。
          • 如果IS-IS路由表中有到达某个目的网段的路由,但是并不希望将该路由下发到IP路由表中,可以使用该命令结合基本ACL、IP-Prefix、路由策略等方式,只将部分IS-IS路由下发到IP路由表中。
        • Filter-policy Export
          • Filter-policy export命令用来配置IS-IS对已引入的路由在向外发布时进行过滤的过滤策略。
            • 配置该命令后,不会影响本地设备的路由,只会将引入的部分外部路由发布给IS-IS邻居。
          • 当网络中同时部署了IS-IS和其他路由协议时,如果已经在边界设备上引入了其他路由协议的路由,缺省情况下,该设备将把引入的全部外部路由发布给IS-IS邻居。
          • 如果只希望将引入的部分外部路由发布给邻居,可以使用filter-policy export命令实现。
        • 路由策略 – Filter-Policy(BGP)
          • Filter-policyImport
            • filter-policy import命令用来配置对接收的路由信息进行过滤。
            • 该命令可以对BGP设备全局接收的路由进行过滤,决定是否将路由添加到BGP路由表中。
          • Filter-policyExport
            • filter-policy export命令用于对设备全局发布的路由信息进行过滤。
            • 只有通过过滤的路由才被BGP发布。
            • 如果指定protocol参数,将只对引入的这种协议产生的路由进行过滤,对引入的其他协议产生的路由不受影响。
            • 如果没有指定protocol参数,对引入的任何一个协议产生的路由都要进行过滤
            • 对于通过import-route (BGP)命令引入的路由,配置了这个命令后,BGP会在引入这些路由之前就进行过滤,只有通过过滤的路由才能加入BGP本地路由表,并被BGP发布。
          • 策略路由
            • 策略路由基本概念
              • 概念
                • 传统的路由转发原理是首先根据报文的目的地址查找路由表,然后进行报文转发。
                • 而策略路由使网络管理者不仅能够根据报文的目的地址,而且能够根据报文的源地址、报文大小和链路质量等属性来制定策略路由,以改变数据包转发路径,满足用户需求。
              • 优点
                • 可以根据用户实际需求制定策略进行路由选择,增强路由选择的灵活性和可控性。
                • 可以使不同的数据流通过不同的链路进行发送,提高链路的利用效率。
                • 在满足业务服务质量的前提下,选择费用较低的链路传输业务数据,从而降低企业数据服务的成本。
              • 与路由策略的不同
                • 策略路由的操作对象是数据包,在路由表已经产生的情况下,不按照路由表进行转发,而是根据需要,依照某种策略改变数据包转发路径。
                • 路由策略的操作对象是路由信息。路由策略主要实现了路由过滤和路由属性设置等功能,它通过改变路由属性(包括可达性)来改变网络流量所经过的路径。
              • 策略路由的分类
                • 本地策略路由
                  • 本地策略路由仅对本机下发的报文进行处理,对转发的报文不起作用。
                  • 可配置多个本地策略路由,每个本地策略路由称为一个节点,报文按照本地策略路由节点顺序进行匹配。

 

  • 匹配顺序
    • 如果找到了匹配的本地策略路由节点,则按照以下步骤发送报文
      • 查看用户是否设置了报文的优先级
        • 如果用户设置了报文的优先级,首先根据用户设置的优先级设置报文的优先级,然后继续向下执行
        • 如果用户未设置报文的优先级,则继续向下执行
      • 查看用户是否设置了本地策略路由的出接口
        • 如果用户设置了出接口,则将报文从出接口发送出去,不再继续执行下面的步骤
        • 如果用户未设置出接口,则继续向下执行
      • 查看用户是否设置了本地策略路由的下一跳
        • 如果用户设置了策略路由的下一跳,则将报文发往下一跳,不再继续执行下面的步骤;
        • 如果用户未设置下一跳,则按照正常流程根据报文的目的地址查找路由
        • 如果没有查找到路由,则继续向下执行
        • 注意:用户可以设置两个下一跳以达到负载分担的目的
      • 查看用户是否设置了本地策略路由的缺省出接口
        • 如果用户设置了缺省出接口,则将报文从缺省出接口发送出去,不再继续执行下面的步骤
        • 如果用户未设置缺省出接口,则继续执行
      • 查看用户是否设置了本地策略路由的缺省下一跳
        • 如果用户设置了缺省下一跳,则将报文发往缺省下一跳,不再继续执行下面的步骤
        • 如果用户未设置缺省下一跳,则继续执行
      • 丢弃报文,产生ICMP_UNREACH 消息
    • 如果没有找到匹配的本地策略路由节点,按照发送IP报文的一般流程,根据目的地址查找路由
  • 接口策略路由
    • 接口策略路由只对转发的报文起作用,对本地下发的报文(比如本地的Ping报文)不起作用
  • 智能策略路由
    • 智能策略路由是基于业务需求的策略路由,通过匹配链路质量和网络业务对链路质量的需求,实现智能选路
  • 路由策略和策略路由比较

 

  • 路由策略与策略路由配置命令
    • 配置路由引入
      • 配置直连路由引入
        • 案例
          • 公司A网络拓扑如下所示,现根据需求完成如下配置
            • 如RTX与RTY互联,则互联地址为XY.1.1.X与XY.1.1.Y,掩码长度为24位。

 

  • R2、R3和R4运行OSPF,R3、R4和R5运行ISIS;
  • 将与R5直连的网段10.0.X.0/24引入到ISIS。
  • 配置
    • 配置命令

 

  • 命令含义
    • route-policy命令用来创建Route-Policy并进入该Route-Policy视图
  • 参数意义
    • proute-policy route-policy-name { permit | deny } node node
    • route-policy-name:指定Route-Policy名称。
    • permit:指定Route-Policy节点的匹配模式为允许。如果路由匹配所有的if-match子句,该路由可通过过滤并执行此节点apply命令中规定的一系列动作;否则,必须进行下一节点的测试。
    • deny:指定Route-Policy节点的匹配模式为拒绝。如果路由匹配所有的if-match子句,该路由不能通过过滤从而不能进入下一节点的测试。
    • node node:Route-Policy的节点索引
  • 注意事项
    • Route-Policy用于过滤路由信息以及为通过过滤的路由信息设置路由属性。
    • 一个Route-Policy由多个节点构成。
    • 一个节点包括多个if-match和apply子句。
    • if-match子句用来定义该节点的匹配条件。
    • apply子句用来定义通过过滤的路由行为。
    • if-match子句的过滤规则关系是“与”,即该节点的所有if-match子句都必须匹配。
    • Route-Policy节点间的过滤关系是“或”,即只要通过了一个节点的过滤,就可通过该Route-Policy。
    • 如果没有通过任何一个节点的过滤,路由信息将无法通过该Route-Policy。
  • 配置静态路由引入
    • 案例
      • 公司A现需要对R1与R2之间的网络进行部署,需求如下

 

  • R1与R2之间配置静态路由实现互通;
  • 将网络16.X.0/24引入到OSPF中,OSPF域只能学到网络172.16.0.0/24和172.16.2.0/24的路由,请使用filter-policy和ACL命令,并实现最优配置
    • 此处的需求是对之前案例的扩展,在原案例的基础上进行配置。
    • 对于该需求,主要考察对filter-policy和ACL的理解。
    • 所谓最优配置,实际上就是使用最少的命令达到要求的效果。
  • 配置

 

  • 命令含义
    • filter-policy export命令用来按照过滤策略,设置对引入的路由在向外发布时进行过滤
  • 参数意义
    • filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name } export [ protocol [ process-id ]]
    • acl-number:指定基本访问控制列表号。
    • acl-name acl-name:指定访问控制列表名称。
    • ip-prefix ip-prefix-name:指定地址前缀列表名称。
    • protocol:指定发布路由信息的协议。
    • process-id:当发布的路由协议为rip、isis、ospf时,可以指定进程号。
  • 注意事项
    • OSPF通过命令import-route引入外部路由后,为了避免路由环路的产生,通过filter-policy export命令对引入的路由在发布时进行过滤,只将满足条件的外部路由转换为Type-5LSA(AS-external-LSA)并发布出去。
    • 通过指定protocol或process-id对特定的某一种协议或某一进程的路由进行过滤。
    • 如果没有指定protocol和process-id,则OSPF将对所有引入的路由信息进行过滤。
  • 配置双点双向路由引入
    • 案例
      • 公司A需要实现网络的互联互通,现需求如下

 

  • 该案例拓扑和之前的拓扑一致。我们在完成需求后,要充分考虑到是否存在次优路由,是否发生了环路。
  • p在R3和R4上进行双向路由引入
  • 配置

 

  • 通过路由协议的相互引入之后,R4到达网络172.16.X.0/24出现次优路径。
  • 产生次优路径主要是因为R3将OSPF路由先行分发入ISIS协议域,
  • 于是R4从OSPF和ISIS同时学到了172.16.X.0/24的路由,
  • 因为OSPF的外部路由的preference值为150,
  • 而ISIS的preference值为15,
  • 所以R4选择了ISIS路由前往172.16.X.0/24网段,
  • 于是产生次优路由。
  • 优化路由
  • 配置策略路由
    • 配置策略优化路由
      • 现公司A需要对网络进行优化

 

  • 当网络发生变化时,避免环路的产生。
    • 可以通过Tag实现对双点双向路由引入的控制,从而避免环路。
  • 使R4能够通过最优路由访问网络172.16.X.0/24,使路径最优。
    • 需要修正R4访问172.16.X.0/24网段的路由,避免出现经过ISIS区域的次优路由。
  • 配置
    • 使用tag来实现路由相互引入时的限制

 

  • 如果在做路由互相引入的时候不做过滤,那么,在网络发生变化的时候,可能会在网络中导致环路。
  • 为避免环路就要保证路由协议间相互引入的时候只引入各路由域自身的路由。
  • 在上面的配置场景中,使用了tag来实现路由相互引入时的限制。
  • 使用tag的优势是不需要指定具体的路由条目,当路由域内具体的路由项有增减的时候,引入的路由条目和限制会随之变化,不需要手工干预,具有很好的扩展性。
  • 虽然上面的配置场景的路由策略能够很好地避免环路,但是并不能解决次优路由的问题。
  • 解决次优路径

 

  • 次优路由主要是因为双点双向导入时,R3/R4中的某一台路由器会同时从两侧得到172.16.X.0/24路由,而因为OSPF的外部路由preference值大于ISIS的preference值(preference值越小越优先),导致R3/R4(其中一台)选择了次优路由。
  • 要解决此问题,需要修改OSPF外部路由条目的preference值,只要使OSPF_ASE路由的preference值小于ISIS路由的preference值就可以解决此问题。
  • 考虑到合理性问题,不建议将OSPF_ASE路由的preference值设置成比OSPF内部路由的preference值(10)还小。
  • 优化路由
    • 公司A为了优化网络,现需求如下
      • R3和R4在OSPF域中,将网络10.0.X.0/24汇总为10.0.0.0/16,请充分避免环路

 

  • 现象

 

  • 当仅仅进行路由汇总,发现存在两个问题。第一个问题,R5学习到了该汇总路由;第二个问题,在R2 ping一个不存在的地址产生了环路。
  • 第一个问题产生的原因,
    • 主要是由于R3和R4学习到各自产生的汇总路由后,再引入到ISIS域中产生的。
    • 此处,R3首先进行了OSPF汇聚配置,传递到R4,在ISIS引入了该路由后,传递到R3,
    • 因此在R3可以收到从R4过来的OSPF外部路由,也可以收到从R5过来的ISIS路由。
    • 因为ISIS优先级优于OSPF外部路由,
    • 所以在R3的路由表中可以看到10.0.0.0/16路由的下一跳是35.1.1.5,也就是R5。
    • 然后在R4做路由汇聚,路由通过OSPF传递到R3,
    • 还是由于优先级的关系,R3的ISIS引入OSPF路由时,由于路由表中这条路由是ISIS协议产生的,
    • 所以引入不到ISIS中,
    • 这就是R5上看到该路由下一跳是R4的原因。
  • 第二个问题产生的原因,是因为R2将ping包发给R4,R4查路由表又转发给R2,R2又给R4,行成环路。
  • 为了解决上面两个问题,我们需要保证R3和R4既不能学习到对方产生的汇总路由,又不能将该路由引入到ISIS路由域。所以,我们只需在R3和R4上将他们学习到的对方的汇总路由过滤即可。
  • 优化路由配置

 

  • 在R3/R4上增加过滤策略,不从OSPF接收特定的汇聚路由。
  • 保证该汇聚路由不再重新导入到ISIS路由域。
  • 避免了环路。
  • 配置策略路由
    • 现公司A需要进一步优化网络,现需求如下

 

  • 来自0.0.0/24和10.0.1.0/24的流量访问网络172.16.X.0/24时经由R3;
  • 来自0.2.0/24的流量访问网络172.16.X.0/24时,经由R4。
  • 配置

 

  • 命令含义
    • policy-based-route命令用来创建或修改策略路由和策略点。
    • ip local policy-based-route命令用来使能本地策略路由。
  • 参数意义
    • policy-based-route policy-name { permit | deny } node node-id
      • policy-name:指定策略名称。
      • permit:策略点的模式,表示对满足匹配条件的报文进行策略路由。
      • deny:策略点的模式,表示对满足匹配条件的报文不进行策略路由。
      • node-id:指定策略点的顺序号。
    • ip local policy-based-route policy-name
      • policy-name:指定策略路由的名称。
    • 注意事项
      • 在部署策略路由时,如果需要配置报文的出接口,则报文的出接口不能为以太接口等广播型接口
    • 实验结果
      • 在R5上指定不同的源地址对到达相同目的地的数据包进行跟踪,可以发现数据包选用了不同的路径。
      • 注意,ip local policy-based-route命令应用的策略只对路由器本地发起的数据包起作用。
    • 案例分析
      • 案例1
        • 公司B网络部分拓扑如下图所示,现公司B要求如下

 

  • R3、R4和R5属于OSPF区域0,仅将10.0.X.0/24引入到OSPF区域;
  • 在R5上对10.0.X.0/24进行汇总,汇总为10.0.0.0/16;在R3和R4向OSPF区域下发缺省路由;
  • 确保网络没有环路。
  • 需求一:R3、R4和R5属于OSPF区域0,仅将10.0.X.0/24引入到OSPF区域

 

  • 该部分只需要注意R5在做路由引入时,需要精细匹配
  • 需求二:在R5上对10.0.X.0/24进行汇总,汇总为10.0.0.0/16;在R3和R4向OSPF区域下发缺省路由

 

  • 当tracert一个不存在的、但是在网络10.0.0.0/16内的地址时,会发生环路。
  • 该环路的产生主要是由于OSPF产生汇总路由时,不自动生成指向null0的路由所致
  • 需求三:确保网络没有环路

 

  • 在R5上通过命令配置指向null0的静态路由,即可破除环路
  • 案例2
    • 公司B网络在原有配置的基础上对网络进行了扩充,需求如下

 

  • IS-IS基本配置已完成;
  • 结合filter-policy,将172.16.0.0/24和172.16.2.0/24引入到IS-IS中;
  • 在R3和R4上进行路由相互引入,充分避免环路,并消除次优路由;
  • 16.0.0/24网络访问OSPF网络经由S1/0/0, 172.16.0.2/24网络访问OSPF网络经由S1/0/1。
  • 预配:IS-IS基本配置已完成

 

  • 需求一:结合filter-policy,将172.16.0.0/24和172.16.2.0/24引入到IS-IS中

 

  • 通过filter-policy结合ACL,将需求中指定的两个网段导入到ISIS协议中
  • 注意,当使用filter-policy过滤路由协议的导入的时候,使用export方向
  • 需求二:在R3和R4上进行路由相互引入,充分避免环路,并消除次优路由

 

  • l案例中通过在导入路由的时候给路由条目加Tag的方法防止出现路由环路。
  • ISIS路由协议如果需要支持Tag,必须要使用wide类型的开销,否则ISIS路由不能携带Tag标记。
  • 使用Tag标签防止了路由回环,但是不能防止次优路由的产生。
  • 如果要避免次优路由,需要修改相应路由的preference值。

 

  • 本例中的配置将避免路由0.0.0/16在R3/R4上出现次优路由。
  • 因为导入速度的不一致,总会导致R3/R4两台路由器中的一台会从ISIS和OSPF同时学到10.0.0.0/16,如果R3先行导入,那么R4就会同时从ISIS和OSPF学到10.0.0.0/16路由,而R4选择路由时会比较他们的preference,因OSPF外部路由的preference值为150,而isis的preference值为15,所以R4会选择到达经由IS-IS域到达网络10.0.0.0/16,该路径是次优路径。
  • 所以,通过在R4上,修改OSPF外部路由10.0.0.0/16的preference值,使其小于IS-IS的preference值,从而消除次优路径,考虑合理性,建议OSPF的外部路由preference值要大于OSPF的内部preference值(10)。
  • 需求三:16.0.0/24网络访问OSPF网络经由S1/0/0, 172.16.2.0/24网络访问OSPF网络经由S1/0/1

 

  • 思考题
    • 路由控制都包括哪些内容(ABCD)
      • 路由的发布
      • 路由的接收
      • 过滤和控制引入的路由
      • 设置特定路由的属性
    • 前缀列表:ipip-prefixPrefix1 permit 160.0.0.0 8 的含义是(  D  )
      • 前缀的前三个比特必须为”101″,掩码长度必须在8和32之间
      • 前缀的前三个比特必须为”101″,掩码长度必须为8
      • 前缀号必须为”160″,掩码长度必须在8和32之间
      • 前缀号必须为“160”,掩码长度必须为8
    • 以下关于Route-Policy路由策略特性的描述,哪些是正确的(  AB )
      • 由If-match或If-match+apply语句构成
      • Route-Policy路由策略可以有多个不同的节点,只要满足其中一个节点中的所有条件,这条路由就可以被匹配
      • Route-Policy路由策略可以有多个不同的节点,只要满足其中一个节点中的某一个条件,这条路由就可以被匹配
      • 如果匹配了Route-Policy路由策略的第一个节点并且被deny掉,那么如果能够同时匹配第二个节点的话,那么也将会执行第二个节点所定义的动作
    • 总结
      • ACL
      • IP-Prefix
      • As-Path-Filter
      • Community-Filter
      • 路由策略
      • 策略路由