MPLS 标签转发
• MPLS并不是一种业务或者应用,它实际上是一种隧道技术。这种技术不仅支持多种高层协议与业务,而且在一定程度上可以保证信息传输的安全性
标签为通用概念
• 分发标签的协议:
•1 )LDP (标签分发协议); 思科私有的TDP 和SR(segment routing )
• 2 )RSVP (资源预留协议)
• 3 )MP-BGP 多协议BGP ,来分发内层标签
• 4 )静态的方式分发标签
• 思科新的标签协议,segment routing
MPLS 重要理念:转控分离
• 控制层面:1 )路由协议 2 )标签的分发协议
• 转发层面:1 )FIB (转发信息库) 2 )LFIB
R1(config)#ip cef
R1(config)#mpls ip
R1(config)#mpls label protocol ldp
R1(config)#mpls ldp router-id loopback 0 force
R1(config-router)#int e0/0
R1(config-if)#mpls ip修改LDP的时间
R3(config)#mpls ldp discovery hello ?
holdtime LDP discovery Hello holdtime
interval LDP discovery Hello intervalR3(config)#mpls ldp neighbor 44.1.1.1 targeted ldp
建议非直连邻居
R3(config)#mpls ldp maxhops ?
<1-255> Maximum hop count value
修改LDP的TTL值R3(config)#mpls label range ?
<16-1048575> Minimum label value for dynamic label range
分配标签范围R3(config)#mpls ldp advertise-labels for
为哪些特定的路由分配标签验证
R1(config-if)#do show mpls ldp neighbor
R1#show mpls interfaces
R3#ping mpls ipv4 44.1.1.1/32 source 33.1.1.1华为
[AR1]mpls lsr-id 11.1.1.1
[AR1]mpls
[AR1-mpls]mpls ldp
[AR1-mpls-ldp]int g0/0/0
[AR1-GigabitEthernet0/0/0]mpls
[AR1-GigabitEthernet0/0/0]mpls ldp
[AR1] route recursive-lookup tunnel // 非标签路由可以迭代到LSP隧道
修改标签行为
[AR2]mpls
[R2-mpls]label advertise ?
explicit-null Explicit-null //通告标签0
implicit-null Implicit-null //通告标签3
non-null Non-null //通告常规标签
为所有路由分配标签
[R3]mpls
[R3-mpls]lsp-trigger all
验证
[AR1]display mpls ldp peer
[AR1]display mpls lsp
[AR1]tracert lsp ip 5.5.5.5 32
LDP
邻居发现机制、UDP发现 端口646、组播 224.0.0.2 (单播可选)
邻居会话建立、TCP建立 端口 646 单播
LDP 的4 类消息类型
Discovery message: 宣告和维护网络中一个LSR 的存在。
Session message: 建立、维护和终止LDP Peers 之间的LDP Session 。
Advertisement message: 生成、改变和删除FEC的标签映射。
Notification message: 宣告告警和错误信息。
常见的LDP 邻居问题
• 1 )IGP 协议错误导致RID 地址不可达
• 环回接口掩码错误,华为仅仅为/32 的路由分标签
• 2) 修改传输地址
• 3) 认证,LDP 支持认证
• 4) ACL 引发的问题
MPLS 体系结构
控制平面:负责产生和维护路由信息以及标签信息。
1)路由信息表RIB(Routing Information Base):由IP路由协议(IP Routing Protocol)生成,用于选择路由。
2)标签分发协议:负责标签的分配、标签转发信息表的建立、标签交换路径的建立、拆除等工作。
3)标签信息表LIB(Label Information Base):由标签分发协议生成,用于管理标签信息
转发平面:即数据平面(Data Plane),负责普通IP报文的转发以及带MPLS标签报文的转发。
1)转发信息表FIB(Forwarding Information Base):从RIB提取必要的路由信息生成,负责普通IP报文的转发。
2)标签转发信息表LFIB(Label Forwarding Information Base):简称标签转发表,由标签分发协议在LSR上建立LFIB,负责带MPLS标签报文的转发
报文转发
从CE到Ingress PE
1、CE将报文发给与其相连的VRF接口,PE在本VRF的路由表中进行查找,得到了该路由的公网下一跳地址和私网标签。
2、在把该报文封装一层私网标签后,在公网的标签转发表中查找下一跳地址,再封装一层公网标签后,交与MPLS转发。
Ingress PE->Egress PE->CE
1、该报文在公网上沿着LSP转发,并根据途径的每一台设备的标签转发表进行标签交换
2、在倒数第二跳处,将外层的公网标签弹出,交给目的PE设备
3、PE设备根据内层的私网标签判断该报文属于哪个VRF
4、弹出内层的私网标签,在目的VRF中查找路由表,根据下一跳发给相应的CE
MPLS 转发
入站IP报文,先查LFIB - 压入标签转发,没有match再查FIB,进行IP转发
沿途设备交换标签
次末跳设备弹出/移除外层标签,将数据转发给出口PE (隐式/显示空标签)
出口PE依据内层标签决定数据包应当交给哪一个VRF
PE设备弹出内层标签,在vrf路由表中查找目标IP地址,将数据转发给CE
标签行为总结
• 1 )压入标签,PUSH
• 2 )交换标签,SWAP
• 3 )弹出标签,Pop (remove ,隐式空标签)
• 4 )UNTAG/No label( 没有标签) 出现问题,在MPLSVPN 的环境下只能丢弃报文
• 5 )Aggregate (聚合),把报文拿掉MPLS之后转发给一个VPN-INSTANCE
标签分发方式
思科:DU+Independent+LLR 自主分发+独立分配+自由保留
华为:DU+Ordered+LLR 自主分发+有序分配+自由保留
标签的分发模式:DU、DoD
下游自主方式DU(Downstream Unsolicited)
对于一个特定的FEC,LSR无需从上游获得标签请求消息即进行标签分发,该模式为默认行为;
下游按需方式DoD(Downstream on Demand)
LSR会主动向下游请求特定FEC(路由下一跳)的分配信息,下游LSR获得标签请求消息之后才进行标签分发。
标签捆绑/分配控制(LSP控制模式):
independent 独立控制 —— 一旦发现一个FEC,就会为其创建一个本地捆绑标签(分配),即使该路由并不是本地起源的;缺点在于可能会造成LSP建立不完整的情况下开始转发报文;
order 有序控制(非独立控制)—— 仅当自身为出站LSR,或者从下游收到了该FEC的标签才进行分配
标签保留/保持模式:
conservative 保守的 CLR —— 仅当邻居是相应路由下一跳的时候才保留
liberal 自由的 LLR —— 统统保留,一旦IGP路径切换,其实标签已经存在
PHP Penultimate Hop Popping 倒数第二跳弹出
• 在LSP的最后一跳节点,已不需要再进行标签交换。此时,可以配置倒数第二跳弹出特性PHP (Penultimate Hop Popping),在倒数第二跳节点处将标签弹出,最后一跳节点直接进行IP 转发或者下一层标签转发,减少最后一跳标签交换的负担
• Egress 向倒数第二跳节点分配隐式空标签,值为3
MPLS 环路检测
IGP环路检测 —— TTL
TTL 的统一模式
• Uniform 模式,IP 报文经过MPLS 网络时,在入节点,IP TTL 减1 映射到MPLS TTL 字段,此后报文在MPLS网络中按照标准的TTL 处理方式处理。在出节点将MPLSTTL 减1 后映射到IP TTL
TTL 的管道模式
• 在入节点,IP TTL 值减1 ,MPLS TTL字段为固定值,此后报文在MPLS 网络中按照标准的TTL 处理方式处理。在出节点会将IP TTL 字段的值减1 。即IP 分组经过MPLS网络时,无论经过多少跳,IP TTL 只在入节点和出节点分别减1 ;整个管道模式,核心网络对用户是透明的,整个MPLS区域被看做一个设备,标签的区域被看做一个设备,标签的TTL 和IP 的TTL 没有相互拷贝
思科
关闭TTL繁衍
R3(config)# no mpls ip propagate-ttl forwarded 对经过转发的流量进行P设备隐藏
华为
关闭TTL繁衍
[AR3]mpls
[AR3-mpls]undo ttl propagate
LDP环路检测 —— 距离向量法、最大跳数法
• LDP 环路检测机制
• 距离向量法(标签绑定报文中记录路径信息,即标签交换路由器会检查本设备的ID是否包含在路径信息中。路由路径中没有本设备的ID,那么添加。如果在路径记录信息中包含了本设备的ID,则认为出现环路,从而终止LSP的建立。这一点非常类似于BGP的AS-PATH参数)
• 最大跳数法(标签绑定报文中包含跳数信息,即每经过一个子网(设备)跳数值会增加1,一旦跳数值超过规定最大值,则认为出现环路,从而终止LSP的建立)
如何返回源端超时报文
• 在MPLS 网络中,当LSR 收到TTL 为1 的含有标签的MPLS 报文时,LSR 生成ICMP 的TTL 超时消息。
• LSR 将TTL 超时消息回应给报文发送者的方式有两种:
• 如果LSR 上存在到达报文发送者的路由,则可以通过IP路由,直接向发送者回应路由,直接向发送者回应TTL 超时消息。
• 如果LSR 上不存在到达报文发送者的路由,则ICMP响应报文将按照LSP 继续传送,到达LSP 出节点后,由Egress节点将该消息返回给发送者。
• 通常情况下,收到的MPLS 报文只带一层标签时,LSR可以采用第一种方式回应TTL 超时消息;收到的MPLS 报文包含多层标签时,LSR 采用第二种方式回应TTL 超时消息。
LDP 和IGP 的同步
• LDP 与IGP 联动功能主要用来解决在LSP 存在主备链路的组网中LSP流量丢失的问题。
LDP 与IGP 联动包括三个定时器:
• Hold-down timer :用于抑制IGP 邻居建立的时长。
• Hold-max-cost timer :用于控制通告接口链路的最大cost 值的时长。
• Delay timer :用以控制等待LSP 建立的时间。
开启IGP的LDP自动配置
R3(config)#router ospf 110
R3(config-router)#mpls ldp autoconfig
开启IGP和LDP的同步
R1(config)# router ospf 110
R1(config-router)# mpls ldp sync
R1(config)#mpls ldp igp sync holddown msecs
这条全局命令来进行修改。在该计时器到期之后,IGP将在该链路上建立邻接关系,一旦IGP的邻接关系建立成功同时LDP会话还未同步的话,IGP将通告该链路的度量值为最大。
R1#show mpls ldp igp sync
华为
接口下: [AR1-GigabitEthernet0/0/1]ospf ldp-sync //开启IGP和LDP的同步
[AR1-GigabitEthernet0/0/1]ospf timer ldp-sync hold-down 30
[AR1]display ospf ldp-sync interface all
LSP断裂
OSPF通告环回口路由是32位主机路由,无视掩码
OSPF环回口、路由汇总都可能造成LSP断裂
R4(config)#int lo0
R4(config-if)#ip ospf network point-to-point
该接口路由实际是24位,默认情况下ospf会将环回口通告位32位主机路由,导致掩码不一致,无法分发标签,所以需要需改ospf的网络类型为点到点,显示为24位路由,才能正常分发标签!
MPLS VPN名词
CE 仅仅运行传统的路由协议即可
PE 运行基于vrf的路由协议与CE交互路由、MP-BGP VPNv4支持客户路由的传递、通过vrf对不同用户的路由在PE上实现隔离、运行IGP、LDP
P 运行IGP、LDP
路由模型
vrf/VPN-instance 在PE设备上隔离不同用户的,每一个vrf均有独立的路由表和路由协议
RD 路由区分器 64bit 值,建议每个客户的RD全局唯一
RT 路由标记,事实上是一个BGP扩展团体属性,MPLS VPN解决方案中,通过这个属性值操控VPNv4路由的传递和还原(96-64=32)
import 入方向策略,决定携带哪些 RT 值的路由将收进本 vrf 路由表
export 出方向策略,在将ipv4路由引入到VPNv4时,将加上RT值
设置RD 和RT 要求RD全网唯一 RT与RD相同才能通信
R1(config)#ip vrf VPN1 创建VRF
R1(config-vrf)#rd 100:134 设置RD
R1(config-vrf)#route-target 100:134 设置RT
需要通信的接口划分进相应的VRF下
R1(config-router-af)#int l10
R1(config-if)#ip vrf forwarding VPN1 接口划分进相应的VRF
vrf的另外一种配置方式:
R1(config)#vrf definition cisco
R1(config-vrf)#rd 1:1
R1(config-vrf)#address-family ipv4
R1(config-vrf-af)#route-target 1:1
R1(config-vrf)#inter e0/3
R1(config-if)#vrf forwarding cisco
华为
[AR1]ip vpn-instance R310
[AR1-vpn-instance-R310]ipv4-family
[AR1-vpn-instance-R310-af-ipv4]route-distinguisher 1:1
[AR1-vpn-instance-R310-af-ipv4]vpn-target 100:310
[AR1]int s1/0/1
[AR1-Serial1/0/1]ip binding vpn-instance R310
PE上BGP和其他协议的交互
• PE必然会运行MP-BGP
• 如果客户协议是IGP协议需要双向重分步
• 如果客户是静态路由,需要手工书写静态路由指向客户站点,然后重分步到BGP的vpn实例中
• 如果客户是BGP协议,需要在BGP的vpn实例中激活邻居
交换路由信息及私网标签分配
外层的LSP:1)LDP协议负责 2)其他PE的BGP协议的更新源接口 3)BGP的更新源不变(多协议BGP的下一跳)意味着外层标签也不变化
内层的标签:1)多协议BGP负责 2)VPN(客户)路由的标签 3)不同的VPN路由条目标签值不同
在BGP的vpnv4中宣告邻居,在ipv4 VRf地址簇下宣告路由
R1(config)#router bgp 100
R1(config-router)#no bgp default ipv4-unicast 开启BGP支持的更多地址族
R1(config-router)#address-family vpnv4 unicast
R1(config-router-af)#neighbor 44.1.1.1 activate 在vpnv4地址簇中宣告邻居
R1(config-router)#address-family ipv4 vrf VPN1 在ipv4 VRf地址簇下宣告路由
R1(config-router-af)#network 100.1.1.1 mask 255.255.255.255
华为
AR1]bgp 100
[AR1-bgp]ipv4-family vpnv4 unicast
[AR1-bgp-af-vpnv4]peer 33.1.1.1 enable
[AR1-bgp-af-vpnv4]display bgp vpnv4 all peer
MPLS VPN中的RR
思科中的VPNV4的RR默关闭RT检测
R4(config-router)#router bgp 100
R4(config-router)#address-family vpnv4 unicast
R4(config-router-af)#no bgp default route-target filter 无条件的收取VPNv4路由
华为的的VPNV4的RR默保持开启RT检测
[AR2]bgp 100
[AR2-bgp]ipv4-family vpnv4 unicast
[AR2-bgp-af-vpnv4]un policy vpn-target
以下配置均在PE设备上配置,CE端正常配置即可
VRF静态路由
思科
PE设备上
R1(config)#ip route vrf VPN1 10.10.10.10 255.255.255.255 e0/3 10.1.10.10 写一条VRF静态路由和CE10通信
R1(config)#router bgp 100
R1(config-router)#address-family ipv4 vrf VPN1 进入BGP VRF地址簇下重分布静态
R1(config-router-af)#redistribute static
华为
[AR3]ip route-static vpn-instance R310 88.1.1.0 24 38.1.1.8
[AR3]bgp 100
[AR3-bgp]ipv4-family vpn-instance R310
[AR3-bgp-R310]import-route static
验证
[AR1-bgp-R310]display bgp vpnv4 all routing-table
关于RIP协议接入MPLS VPN网络的防环问题
• RIP(需要注意在rip的vrf地址族进行对应操作,手工设置度量,绝大部分的IOS不支持RIP接入MPLS之后的防环,XR系统支持新的防环机制SoO-site of origin),可以使用route-map拒绝某些路由去防止环路
• 华为VRP使用RIP协议接入时也不支持SoO,请使用route-policy工具来避免路由环路
思科
PE设备上
R4(config-router)#router rip
R4(config-router)#no auto-summary
R4(config-router)#version 2
R4(config-router)#address-family ipv4 vrf VPN1 进入RIP VRF地址簇下宣告路由及重分布BGP路由
R4(config-router-af)#network 10.0.0.0
R4(config-router-af)#redistribute bgp 100 metric 2
R4(config-router-af)#router bgp 100
R4(config-router)#address-family ipv4 vrf VPN1
R4(config-router-af)#redistribute rip 进入BGP VRF地址簇下重分布RIP VRF下的路由
华为
[AR1]rip 2 vpn-instance R8910
[AR1-rip-2]network 110.0.0.0
[AR1-rip-2]version 2
[AR1-rip-2]undo summary
[AR1-rip-2]import-route bgp cost 2
[AR1]bgp 100
[AR1-bgp]ipv4-family vpn-instance R8910
[AR1-bgp-R8910]import-route rip 2
验证
[AR1]display bgp vpnv4 all routing-table
[AR1]display ip routing-table vpn-instance R8910
关于Eigrp协议接入MPLS VPN网络的防环问题
Eigrp 可以采用 SoO 来防环,针对 CE 配置一个唯一的 SoO 值,放入 BGP 的扩展属性值,如果从CE 端得到的 vpn 路由属性和更新出去的接口拥有的 soo 值相同则从该接口拒绝更新出去
如果学到的路由标识为D,那么说明客户两边用的AS号码相同
如果学到的路由标识为D-EX,那么说明客户两边用的AS号码不同
R3(config-router)#router eigrp 100
R3(config-router)#address-family ipv4 vrf VPN1 autonomous-system 90 在VRF地址簇下操作并关联EIGRP 90
R3(config-router-af)#network 10.1.38.0 0.0.0.255 宣告
R3(config-router-af)#no auto-summary
R3(config-router-af)#redistribute bgp 100 metric 10000 100 255 1 1500 重分布BGP(带度量值)
R3(config-router-af)#router bgp 100
R3(config-router)#address-family ipv4 vrf 在VRF地址簇下操作
R3(config-router-af)#redistribute eigrp 90 重分布eigrp
在PE设备上设置soO
R3(config-router-af)#route-map SoO permit 10 写控制列表
R3(config-route-map)#set extcommunity soo 100:34 设置扩展团体属性的SOO值为100:34
R3(config-if)#int e0/3
R3(config-if)#ip vrf sitemap SoO 接口下和VRF绑定
IS-IS协议接入MPLS VPN时的注意事项
• 1.默认情况下只会把路由引入到L2级别设备,所以注意如果CE端为L1区域,需要增加level-1参数
• 2.防环机制
RFC2966定义了UP/DOWN比特位,该比特位可以用于防止在不同的IS-IS级别路由做引入时可能产生的路由环路或者次优路径。
如果把up/down比特设置为0,则路由起源自Level 1,引入到了Level 2.如果up/down设置为1,则路由是从Level2引入到Level 1。
• 默认情况下L2设备可以看到L1的路由,这些LSP中包含的UP/DOWN位显示UP,表明L2学习到的L1的路由。
• L1路由器默认看不到L2的路由,需要使用路由泄露,华为设备命令为[R2-isis-1]import-route isis level-2into level-1,从L2泄露到L1的路由UP/DOWN位会显示down。表明路由从高(L2)到低(L1)
• 在MPLS VPN环境中,由高层到底层(指从MPLS骨干网到L2、L1,或者从L2到L1)重分步路由的时候,设置该位。从较底到较高层次(如从L2或者L1到MPLS骨干,或
者从L1到L2)检查该up/down位。如果设置了该位,就不会重分步回BGP协议。
R1(config)#router isis
R1(config-router)#vrf VPN1 和VRF 绑定
R1(config-router)#net 49.1010.0000.0000.0001.00
R1(config-router)#metric-style wide
R1(config-router)#is-type level-2-only
R1(config-router)#redistribute bgp 100 level-2 重分布bgp到level-2区域
R1(config-router)#router bgp 100
R1(config-router)#address-family ipv4 vrf VPN1
R1(config-router-af)#REdistribute ISIS 重分布Isis
华为
[AR1]isis 2 vpn-instance R8910
[AR1-isis-2]network-entity 49.1234.0000.0000.1111.00
[AR1-isis-2]is-level level-2
[AR1-isis-2]import-route bgp level-2
[AR1]bgp 100
[AR1-bgp]ipv4-family vpn-instance R8910
[AR1-bgp-R8910]import-route isis 2
OSPF 超级区域0 规则
• OSPF superbackbone behaves exactly like
Area 0 in regular OSPF:
• PE路由器是一个ABR.
• 从BGP重分布到OSPF的路由,以type3或者type5的路由进入其他区域
• 从一个站点的area 0路由到另外一个站点的area 0,以区域间的路由(OIA)形式体现
BGP的扩展属性被用于承载或者通告OSPF的路由类型
OSPF的COST被拷贝到MED属性.
DOMAIN-ID
在MPLS VPN环境中,如果DOMAIN-ID 相同,那么路由类型为OIA 如果 DOMAIN-ID不同,那么路由器类型为O E2A 默认情况下 IOS的DOMAIN-ID等于进程ID(SYSTEM –ID)
MPLS VPN下OSPF防环
三类LSA防环
在PE2将从PE1学习过来的那些BGP路由注入到本地VRF的OSPF进程中时,如果是以3LSA的形式注入,那么这些3LSA会做特殊的置位,也就是DOWNbit置位,那么当PE3收到PE2从BGP重发布到OSPF的3类LSA,发现这些路由都设置了Down Bit,PE3在计算路由的时候,将直接忽略这些LSA
五类LSA防环
Domain-tag和Down Bit功能类似,只不过它是用于OSPF外部路由。在PE2上,将BGP路由重发布进OSPF后,如果是以外部路由的形式进入OSPF,则这些路由会被打上tag
这些路由在Site内,如果传递到本Site的另一台PE路由器PE1,那么一旦它自己本地设置的Domain-tag匹配到了这个路由携带的tag,这条路由就不会被重发布进BGP。
思科
R1(config)#router ospf 10 vrf VPN1 OSPF和VRF绑定
R1(config-router)#redistribute bgp 100 subnets 重分布BGP
R1(config-router)#router bgp 100
R1(config-router)#address-family ipv4 vrf VPN1
R1(config-router-af)#redistribute ospf 10 重分布OSPF后面可以MACH 参数
华为
[AR1]ospf 10 vpn-instance R8910
[AR1-ospf-10]import-route bgp
[AR1-ospf-10]area 6
[AR1]int g2/0/0
[AR1-GigabitEthernet2/0/0]ospf enable 10 area 6
[AR1-ospf-10]bgp 100
[AR1-bgp]ipv4-family vpn-instance R8910
[AR1-bgp-R8910]import-route ospf 10
shamlink 用于还原区域0的连接,将通MPLS域的三类LSA还原成一类、二类LSA
在两端PE上操作
R1(config)#int l 100
R1(config-if)#ip vrf forwarding VPN1 接口和VRF绑定
R1(config-if)#ip add 1.1.1.100 255.255.255.255专门建立一个32位的路由用于sham-link
R1(config-if)#router bgp 100
R1(config-router)#address-family ipv4 vrf VPN1
R1(config-router-af)#network 1.1.1.100 mask 255.255.255.255 在BGP地址簇下宣告该路由
R1(config-router-af)#router ospf 10 vrf VPN1
R1(config-router)# area 0 sham-link 1.1.1.100 3.3.3.100 创建sham-link,源1.1.1.100 目的3.3.3.100
华为
1、 PE创建独立环回口
[AR3]int l11
[AR3-LoopBack11]ip binding vpn-instance R8910 // 分配到vrf/VPN实例
[AR3-LoopBack11]ip address 13.13.13.3 255.255.255.255 // 必须为 32 位掩码
2、使用BGP在vrf地址族network、不能在OSPF宣告
[AR3]bgp 100
[AR3-bgp]ipv4-family vpn-instance R8910
[AR3-bgp-R8910]network 13.13.13.3 32
3、OSPF通过独立环回口建立 sham-link
[AR3]ospf 10
[AR3-ospf-10]area 0
[AR3-ospf-10-area-0.0.0.0]sham-link 13.13.13.3 13.13.13.1
验证
‘[AR1]display ospf sham-link ’
MCE/VRF-Lite
R10(config)#ip vrf MCE 设置VRF
R10(config-vrf)#rd 10:10 设置RD
R10(config-vrf)#exi
R10(config)#int e0/3
R10(config-if)#no sh 开启物理接口
R10(config)#int e0/3.10 进入子接口
R10(config-subif)#encapsulation dot1Q 10 封装为DOT1Q 允许标记10
R10(config-subif)#ip vrf forwarding MCE 将该接口划入VRF
R10(config-subif)#ip ospf 10 area 0 宣告进ospf
R10(config-subif)#ip add 10.1.10.10 255.255.255.0
R10(config-subif)#no sh
R10(config)#router ospf 10
R10(config-router)#capability vrf-lite //关闭对3、5、7类LSA的防环检查特性
华为
[AR10]ip vpn-instance IN
[AR10-vpn-instance-IN]route-distinguisher 10:1
[AR10-vpn-instance-IN-af-ipv4]vpn-target 10:1
[AR10]ip vpn-instance OUT
[AR10-vpn-instance-OUT]route-distinguisher 20:1
[AR10-vpn-instance-OUT-af-ipv4]vpn-target 20:1
[AR10]int g2/0/0.10
[AR10-GigabitEthernet2/0/0.10]ip binding vpn-instance IN
[AR10-GigabitEthernet2/0/0.10] dot1q termination vid 10
[AR10-GigabitEthernet2/0/0.10] ip address 110.1.1.10 255.255.255.0
[AR10-GigabitEthernet2/0/0.10] ospf enable 10 area 6
[AR10]int g2/0/0.20
[AR10-GigabitEthernet2/0/0.20]ip binding vpn-instance OUT
[AR10-GigabitEthernet2/0/0.20] dot1q termination vid 20
[AR10-GigabitEthernet2/0/0.20] ip address 111.1.1.10 255.255.255.0
[AR10-GigabitEthernet2/0/0.20] ospf enable 20 area 6
[AR10]ospf 10
[AR10-ospf-10]vpn-instance-capability simple //CE上运行VRF的OSPF协议,由于OSPF防环机制的存在,默认不装载路由表。运行该命令
[AR10-ospf-10] default-route-advertise always
BGP接入MPLS VPN之后的防环机制
• 应用SoO特性后,当PE收到CE发来的路由后,会为该路由添加SoO属性并发布给其他的PE对等体。其他PE对等体向接入的CE发布路由时会检查VPN路由携带的SoO属性,如果与本地配置的SoO属性相同,PE则不会向CE发布该路由
思科
PE 覆盖AS
R3(config)#router bgp 100
R3(config-router)#address-family ipv4 vrf VPN1
R3(config-router-af)#neighbor 10.1.38.8 remote-as 64512
R3(config-router-af)#neighbor 10.1.38.8 as-override 将自身AS号码复写后发送给邻居
CE
R10(config)#router bgp 64512 建立BGP
R10(config-router)#neighbor 10.1.10.1 allowas-in 1 允许与自身相同的AS号码出现1次
华为
解决AS号码重叠
方法一,覆盖AS PE上
[AR1]bgp 100
[AR1-bgp]ipv4-family vpn-instance R8910
[AR1-bgp-R8910]peer 110.1.1.10 as-number 64512
[AR1-bgp-R8910]peer 110.1.1.10 substitute-as
方法二,允许出现 CE上
[AR8]bgp 64512
[AR8-bgp]peer 38.1.1.3 allow-as-loop
SoO
思科
R3(config)#route-map SoO, permit 10
R3(config-route-map)#set extended community SoO💯34 设置SOO值
R3(config)#router bgp 100
R3(config-router)#address-family ipv4 vrf VPN1
R3(config-router-af)#neighbor 10.1.38.8 route-map soO in 针对邻居入方向调用华为
[AR4]bgp 100
[AR4-bgp]ipv4-family vpn-instance R8910
[AR4-bgp-R8910]peer 49.1.1.9 soo 100:89验证
display bgp vpnv4 all routing-table 88.1.1.1
总结
链路状态路由协议的防环依靠于UP/DOWN 位
距离矢量路由协议防环依靠于SoO属性值
对RT的操控 引入控制
• Import Route-Policy可以过滤VPN实例IPv4地址族引入的路由信息,以及为通过过滤的路由信息设置路由属性
• export route-policy命令用于将当前VPN实例IPv4地址族与一条出方向Route-Policy进行关联
• routing-table limit命令用来配置当前VPN实例地址族下所能容纳的路由数量
思科
R3(config)#ip vrf VPN1
R3(config-vrf)#rd 100:134
R3(config-vrf)#route-target export 100:89
R3(config-vrf)#route-target import 100:34华为
[AR1]ip vpn-instance RT
[AR1-vpn-instance-RT]route-distinguisher 100:1
[AR1-vpn-instance-RT-af-ipv4]vpn-target 100:10 export-extcommunity 用于发送默认路由
[AR1-vpn-instance-RT-af-ipv4]vpn-target 100:20 import-extcommunity 用于接收明细路由
MPLS VPN故障诊断
• 用户不能互访
控制平面故障
• CE之间是否有可达路
• CE是否发布路由给PE,检查CE与PE间的路由
• PE是否发布路由给PE
• PE间是否建立MP-IBGP邻居
• PE之间LSP是否建立
• 检查MPLS和LDP配置
数据平面故障
• 是否存在MTU问题
MPLS MTU
• 如果没有配置接口的MPLS MTU值,则采用接口的MTU值。
• 如果配置了接口的MPLS MTU值,则与接口的MTU值比较,采用两者中的较小值作为接口实际生效的MTU值。
• 这样,MPLS在Ingress根据LDP MTU来决定MPLS转发报文的大小,从而避免在Ingress发送的报文较大,导致Transit转发失败。
• 接口执行命令mpls mtu mtu,配置接口的MPLS MTU(先修改MTU)