04-隧道策略配置
本章节下载: 04-隧道策略配置 (281.09 KB)
目 录
隧道策略提供了灵活的隧道选择方法,可以满足MPLS VPN对隧道的多种选择要求,例如指定首选隧道、流量在隧道间负载分担等。当MPLS VPN的两个PE(Provider Edge,服务提供商网络边缘)设备之间存在多种隧道、每种隧道都有多条时,如何利用隧道策略合理地选择隧道,不仅有利于服务提供商网络的管理和规划,还可以降低PE设备的处理开销。
MPLS VPN的详细介绍请参见“MPLS配置指导”中的“MPLS L3VPN”、“MPLS L2VPN”和“VPLS”。
隧道策略支持两种实现方式:首选隧道方式和负载分担策略方式。
每条首选隧道对应一个隧道接口。如果对端PE地址与隧道接口的目的地址相同,则通过该隧道转发到达该PE的流量。如果存在多条目的地址相同的首选隧道,则选择配置的第一条首选隧道;如果第一条首选隧道不可用,则选择下一条首选隧道;以此类推。也就是说到达同一个目的地址只能存在一条首选隧道,不会在多条隧道间进行负载分担。该方式为MPLS VPN显式指定了一条隧道,选择的隧道是明确的、可以预期的,便于网络流量规划。推荐使用该方式配置隧道策略。
选择多条隧道,流量在隧道之间进行负载分担:隧道的选择顺序和负载分担的隧道数目用户可配,隧道类型越靠前,其优先级越高。
采用该方式时,单个VPN的流量分担到多条隧道上,不同隧道的延时差别可能很大,设备或上层应用对报文进行排序处理可能会导致比较大的延迟。因此,不推荐使用此方式配置隧道策略。
如果隧道策略中同时配置了上述两种方式,则优先选择首选隧道,即:
· 如果对端PE地址与某条首选隧道的目的地址相同,则采用该隧道转发流量,不会再根据负载分担方式选择隧道。
· 如果不存在隧道目的地址与对端PE地址相同的首选隧道,则根据负载分担方式选择隧道。
隧道策略支持多种类型的隧道,包括:
· MPLS LSP,仅负载分担策略支持。
图1-1 MPLS VPN隧道选择示例图
如图1-1所示,当PE 1和PE 2之间存在多条隧道,且PE 1和PE 2连接多个MPLS VPN时,可以采用负载分担策略方式部署MPLS VPN的流量。
负载分担策略:在隧道策略中指定隧道的选择顺序和负载分担的隧道数目,配置MPLS VPN引用该隧道策略,从而实现每个VPN的流量都在多条隧道之间进行负载分担。
(1) 进入系统视图。
system-view
(2) 创建隧道策略,并进入隧道策略视图。
tunnel-policy tunnel-policy-name
(3) 配置隧道策略。
select-seq [ strict ] { lsp | sr-lsp } * number
缺省情况下,选择的隧道类型优先级依次是LSP、SRLSP,负载分担的隧道数目为1。
在完成上述配置后,在任意视图下执行display命令可以显示配置后隧道策略的运行情况,用户可以通过查看显示信息验证配置的效果。
表1-1 隧道策略显示和维护
|
操作 |
命令 |
|
显示隧道信息 |
display mpls tunnel { all | statistics | [ vpn-instance vpn-instance-name ] destination { ipv4-address | ipv6-address } } |
|
显示隧道策略的信息 |
display tunnel-policy [ tunnel-policy-name ] |
在MPLS L3VPN网络中,隧道策略配置在VPN实例下,VPN实例下的所有路由根据该策略迭代隧道。在跨域VPN-OptionC组网中,对于PE收到的BGP-IPv4/v6标签路由,系统选择的也是LSP隧道。如果需要对隧道的带宽进行保证,只配置隧道策略无法实现。
隧道迭代器的实现步骤如下:
(1) 首先需要创建隧道迭代器。
(2) 然后定义将要实施隧道迭代器的路由信息的特征,即定义一组匹配规则。可以灵活使用过滤器来定义各种匹配规则。
(3) 再为隧道迭代器指定路由应用的隧道策略。
过滤器可以看作是隧道迭代器过滤路由的工具,单独配置的过滤器没有任何过滤效果,只有隧道迭代器的相关命令中应用这些过滤器,才能够达到预期的过滤效果。下面将介绍几种常见的过滤器。
访问控制列表可以指定IP地址和子网范围,用于匹配路由信息的目的网段地址或下一跳地址。
ACL的相关内容请参见“ACL和QoS配置指导”中的“ACL”。
地址前缀列表的作用类似于ACL,但比它更为灵活,且更易于用户理解。使用地址前缀列表过滤路由信息时,其匹配对象为路由信息的目的地址。
一个地址前缀列表由前缀列表名标识。每个前缀列表可以包含多个表项,每个表项可以独立指定一个网络前缀形式的匹配范围,并用一个索引号来标识,索引号指明了在地址前缀列表中进行匹配检查的顺序。
每个表项之间是“或”的关系,在匹配的过程中,路由器按升序依次检查由索引号标识的各个表项,只要有某一表项满足条件,就意味着通过该地址前缀列表的过滤(不再对下一个表项进行匹配)。
地址前缀相关内容请参见“三层技术-IP路由配置指导”中的“路由策略”。
community-list仅用于BGP路由的过滤。BGP路由中包含团体(COMMUNITY)属性,该属性用来标识路由所属的组。community-list就是针对团体属性指定匹配条件。一个团体属性列表可以定义多个表项。在匹配过程中,各表项之间是“或”的关系,即只要路由信息通过该列表中的一条表项,就认为通过该团体属性列表。
团体属性列表的相关内容请参见“三层技术-IP路由配置指导”中的“BGP”。
RD属性列表仅用于BGP路由的过滤。RD属性列表就是针对RD属性信息的匹配条件。RD属性列表通过rd-list-number标识,每个RD属性列表可以包含多个表项,每一个表项会指定一个RD号的范围,并用一个index-number来标识。过滤时通过指定RD属性列表名对其下的表项依次进行匹配。RD属性列表配置的规则之间是“或”的关系,因为每条路由只能有一个RD属性。
隧道迭代器配置任务如下:
(1) 创建隧道迭代器
(2) (可选)配置过滤器
¡ 配置团体属性列表
¡ 配置RD属性列表
(3) 配置隧道迭代器应用的隧道策略
(4) 应用隧道迭代器
设备通过节点号(node-number)来标识一个隧道迭代器中的不同节点,匹配时对一个隧道迭代器中的不同节点根据节点号从小到大依次匹配。
每个隧道迭代器节点都有deny(拒绝)和permit(允许)两种匹配模式。
隧道迭代器节点被指定为拒绝模式时,如果路由项满足该节点的所有if-match子句时被拒绝通过该节点的过滤,并且不会进行下一个节点的匹配;如果路由项不满足该节点的if-match子句,将进入下一个节点继续匹配。
隧道迭代器节点被指定为允许模式时。当路由项满足该节点的所有if-match子句时被允许通过该节点的过滤,如路由项不满足该节点的if-match子句,将继续匹配该隧道迭代器的下一个节点。
(1) 进入系统视图。
system-view
(2) 创建隧道迭代器,并进入隧道迭代器视图。
tunnel-selector tunnel-selector-name { deny | permit } node node-number
过滤器配置任务如下:
(1) 配置匹配规则
¡ 配置团体属性列表
¡ 配置RD属性列表
(2) 配置if-match子句
如果所有表项都是deny模式,则任何路由都不能通过该过滤列表。要允许其它所有IPv4路由通过,需要在多条deny模式的表项后定义一条permit 0.0.0.0 0 less-equal 32表项。
(1) 进入系统视图。
system-view
(2) 配置IPv4地址前缀列表。
ip prefix-list prefix-list-name [ index index-number ] { deny | permit } ip-address mask-length [ greater-equal min-mask-length ] [ less-equal max-mask-length ]
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“路由策略”。
如果所有表项都是deny模式,则任何路由都不能通过该过滤列表。要允许其它所有IPv6路由通过,需要在多条deny模式的表项后定义一条permit :: 0 less-equal 128表项。
(1) 进入系统视图。
system-view
(2) 配置IPv6地址前缀列表。
ipv6 prefix-list prefix-list-name [ index index-number ] { deny | permit } ipv6-address { inverse inverse-prefix-length | prefix-length [ greater-equal min-prefix-length ] [ less-equal max-prefix-length ] }
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“路由策略”。
(1) 进入系统视图。
system-view
(2) 配置团体属性列表。
¡ 配置基本团体属性列表。
ip community-list { basic-comm-list-num | basic basic-comm-list-name } { deny | permit } [ community-number&<1-32> | aa:nn&<1-32> ] [ internet | no-advertise | no-export | no-export-subconfed ] *
¡ 配置高级团体属性列表。
ip community-list { adv-comm-list-num | advanced adv-comm-list-name } { deny | permit } regular-expression
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“路由策略”。
(1) 进入系统视图。
system-view
(2) 配置RD属性列表。
ip rd-list rd-list-number [ index index-number ] { deny | permit } route-distinguisher&<1-10>
在一个隧道迭代器的节点中,可以没有if-match子句,也可以有多个if-match子句。当不指定if-match子句时,如果该节点的匹配模式为允许模式,则所有路由信息都会通过该节点的过滤;如果该节点的匹配模式为拒绝模式,则所有路由信息都会被拒绝。
如果配置了多条相同类型的if-match子句,设备在显示隧道迭代器时,会将这些if-match子句合并为一条if-match子句。如果合并后的if-match子句超过命令行最大长度,则这些相同类型的if-match子句会分成多条显示,这些子句之间是“或”的关系,即满足一个匹配条件,就认为匹配该if-match语句,例如出现多条if-match community子句时,各个子句的团体属性之间是“或”的关系,即满足其中一个团体属性,就认为匹配if-match community子句。
如果一个节点中if-match子句只指定了IPv6 ACL,没有指定IPv4 ACL,所有的IPv4路由信息都会匹配这个节点。如果一个节点中if-match子句只指定IPv4 ACL,没有指定IPv6 ACL,所有的IPv6路由信息都会匹配这个节点。
如果if-match子句对应的ACL不存在,则默认满足该匹配条件。如果if-match子句对应的ACL中没有匹配的ACL规则或者ACL规则处于非激活状态,则默认不满足该匹配条件。
如果if-match子句对应的前缀列表、团体属性列表或RD属性列表不存在,则默认满足该匹配条件。
(1) 进入系统视图。
system-view
(2) 进入隧道迭代器视图。
tunnel-selector tunnel-selector-name { deny | permit } node node-number
(3) 配置通过ACL或IP地址前缀列表匹配路由。
(IPv4网络)
if-match ip { address | next-hop } { acl ipv4-acl-number | prefix-list prefix-list-name }
(IPv6网络)
if-match ipv6 { address | next-hop } { acl ipv6-acl-number | prefix-list prefix-list-name }
缺省情况下,未配置通过ACL或IP地址前缀列表匹配路由。
(4) 配置BGP路由信息的匹配条件。
¡ 配置匹配BGP路由信息的团体属性匹配条件
if-match community { { basic-community-list-number | name comm-list-name } [ whole-match ] | adv-community-list-number }&<1-32>
¡ 配置匹配BGP路由信息的RD属性列表匹配条件
if-match rd-list rd-list-number
缺省情况下,未配置BGP路由信息匹配条件。
如果指定的隧道策略尚未创建,则需要通过tunnel-policy命令创建对应的隧道策略。
隧道策略的详细介绍,请参见“MPLS配置指导”中的“隧道策略”。
(1) 进入系统视图。
system-view
(2) 进入隧道迭代器视图。
tunnel-selector tunnel-selector-name { deny | permit } node node-number
(3) 配置隧道迭代器应用的隧道策略。
apply tunnel-policy tunnel-policy-name
缺省情况下,未配置隧道迭代器应用的隧道策略。
在跨域VPN-OptionC场景中场景中,需要对BGP标签路由应用隧道迭代器,实现通过隧道策略迭代期望类型的隧道。
跨域VPN-OptionC场景中,PE上对去往远端PE的BGP标签路由应用隧道策略。
在OptionC组网中,为了使BGP标签路由在ASBR设备上支持基于隧道迭代的隧道负载分担,可以执行apply tunnel-selector tunnel-selector-name all命令对所有BGP IPv4/v6单播路由(包括标签路由和网段路由)应用隧道迭代器。
删除对BGP VPNv4/v6或者BGP标签路由应用的隧道迭代器,VPN业务有可能因为BGP VPNv4/v6或者BGP标签路由迭代不到隧道而中断。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP地址族视图。请选择其中一项进行配置。
¡ 进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
¡ 请依次执行以下命令进入BGP-VPN IPv4单播地址族视图。
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ BGP IPv6单播地址族视图。
address-family ipv6 [ unicast ]
¡ 请依次执行以下命令BGP-VPN IPv6单播地址族视图。
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
(4) 应用隧道迭代器。
apply tunnel-selector tunnel-selector-name [ all ]
缺省情况下,带标签的BGP IPv4/IPv6单播路由未应用隧道迭代器。
在完成上述配置后,在任意视图下执行display命令可以显示配置后隧道迭代器的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除隧道迭代器的统计信息。
display ip community-list、display ip prefix-list、display ipv6 prefix-list、reset ip prefix-list和reset ipv6 prefix-list命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“路由策略”。
|
操作 |
命令 |
|
显示BGP团体属性列表信息 |
display ip community-list [ basic-community-list-number | adv-community-list-number | name comm-list-name ] |
|
显示IPv4地址前缀列表的统计信息 |
display ip prefix-list [ name prefix-list-name ] |
|
显示IPv6地址前缀列表的统计信息 |
display ipv6 prefix-list [ name prefix-list-name ] |
|
来显示RD列表信息 |
display ip rd-list [ rd-list-number ] |
|
显示隧道迭代器的信息 |
display tunnel-selector [ tunnel-selector-name ] |
|
清除IPv4地址前缀列表的统计信息 |
reset ip prefix-list [ prefix-list-name ] |
|
清除IPv6地址前缀列表的统计信息 |
reset ipv6 prefix-list [ prefix-list-name ] |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
