MPLS学习笔记
一、MPLS术语
二、MPLS常用命令
三、MPLS重点记录
四、MPLS场景使用
一、MPLS术语
RIB:路由表 FIB(转发信息库):是RIB的拷贝 LIB(标签信息库):标签分发协议为路由条目分配标签,形成LIB LFIB(标签转发信息库):FIB+LIB (show mpls forwarding-table) LDP:标签分发协议 (show mpls ldp bindings) LSR(标签交换路由器): Edge:边缘 FEC(转发等价类):一组被转发的数据报文 LSP:标签交换通道(Label Switched Path) 上游:数据的入方向 下游:数据转发的出方向 下游主动提供标签(你需要我把数据转发给你,你需要提供标签给我) VPNv4:64bit的路由区分器 + 32bit的IP地址 = 96bit的VPNv4地址
二、MPLS常用命令
#######################################mpls基础配置#################################### ip cef #配置cisco mpls前提,默认开启 mpls ip #全局开启,默认开启 mpls label protocol ldp #ldp是默认协议 mpls ldp router-id loopback 0 {force} #route-id一般使用环回口 ,force为所设route-id立刻生效 [config-if]#mpls ip #在需要接收标签的接口下配置mpls ##########################################【可选】################################################## mpls label range <16-1048575> #控制标签范围 [可用于跨设备建立邻居] R1[config]#mpls ldp neighbor 33.1.1.1 targeted ldp #使用单播发送hello R2[config]#mpls ldp discovery targeted-hello accept #接收单播hello报文 mpls ldp neighbor 22.1.1.1 password cisco {0|7|} #使用密码建立邻居,基于MD5认证,默认是明文 [IGP协议下自动开启mpls] ip ospf 110 area 0 mpls ldp autoconfig #所有ospf接口下自动开启mpls [具体事例四、场景应用之4.3 控制标签分发] no mpls ldp advertise-labels #关闭默认标签通告功能 mpls ldp advertise-labels for a to b #针对特定的邻居控制标签的通告 #a:需要通告的标签的前缀,a的格式是标准acl #b:将标签通告给邻居的route-id ,b的格式是标准acl no mpls ip propagate-ttl {forwarded | local}#全局模式下,关闭mpls ttl繁衍 原理:只针对IP报文TTL拷贝到标签产生时,强制更改标签ttl=255,因此也仅仅在PE设备或者边界LSR上有意义 forwarded参数 从CE接收到的IP TTL不会拷贝,但是PE本地产生的IP报文则会拷贝到标签 local参数 本地产生的IP TTL也不会拷贝 ##################【show命令】############ show mpls ldp neighbor #LDP邻居 show mpls forwarding-table #LFIB标签转发信息表 show mpls ip binding #查找LIB标签信息表,【推荐理由】更直观,拥有in use show mpls ldp bindings #查找LIB标签信息表 show mpls ldp parameters #查看ldp的发包参数和状态 show mpls interfaces #查看哪些接口启用了mpls show mpls interface eth0 detail #查看指定mpls接口状态 ##################【ping命令】############ ping mpls ipv4 55.1.1.1/32 source 11.1.1.1 #测试标签通道是否畅通
三、MPLS重点记录
1.LDP只为IGP路由分配标签 2.LDP的IGP自动配置 只有链路状态型动态路由协议支持 IS-IS 或者 OSPF 3.标签的条件性通告(控制标签通告) 优点:优化标签,节省设备资源 4.MPLS VPN,专线都属于peer to peer VPN类型,而IPSEC,L2TP,GRE...属于overlay VPN类型 5.MPLS VPN优点: a.不同客户的路由隔离(通过VRF技术) b.相同用户的路由传递(通过MP-BGP+MPLS) c.用户可以用重叠地址 6.Q:本地有意义的VRF隔离路由,那么如何解决跨越设备更新过程中路由隔离问题? A:通过路由区分器(RD)来扩展用户路由的长度,为其增加前缀,保证唯一性 7.路由区分器(RD:Routing Distinguisher ) 作用:使得每个客户的路由全局唯一 固定长度:64bit 8.Q:所有客户的路由通过BGP批量更新过来,如何区分哪个路由是哪个客户的呢? (RD仅仅使得路由全局唯一,并不会标识出路由属于哪个客户) A:借助BGP的路由操控能力--路由标记RT(扩展团体属性),将具有特殊属性的VPNv4前缀还原成IPv4前缀, RT在vrf中部署,分更新路由Export RTs和接收路由和接收路由Import RTs 9.MPLS路由模型 CE设备运行标准IP路由,静态或者动态都可。 PE设备拥有客户所有路由,需要为每一个客户提供隔离的路由表(vrf routing),同时拥有一张全局路由表 PE运行骨干网IGP,MP-BGP以及与CE之间的路由(静态or动态) PE设备上路由进入哪个vrf靠内层标签,数据进入哪个vrf靠RT(route targets) P设备只负责VPNv4的数据转发,不参与客户的控制平面(大部分情况) P设备运行IGP 10.MP-BGP更新包含如下元素 a.VPNv4 address (RD-IPv4) b.扩展属性(RT:route targets,SOO:放环) c.用于转发VPN包的标签 d.其他BGP属性(as path,local preference,MED,standard communtiy) 11.MPLS 的TTL 12.MPLS 的MTU 背景:三层MTU一般为1500Byte,标签栈需要占用一定的MTU,当一个>1500的报文被边界LSR压入标签,将有可能导致报文被分片 解决方案: 1.降低CE断出方向流量的MTU ##需要客户配合,并不现实 2.应用path MTU发现 ##路径MTU发现使用的ICMP容易被防火墙、ACL、IDS等安全策略干掉 3.Cisco IOS允许比1500大一些的报文,称为小巨人帧 13.MPLS LSP Ping在可以在数据转发层检测故障 ping mpls ipv4 10.1.1.1/32 source 10.1.1.4 报文协议:mpls-echo udp端口3503,目的地址:127.0.0.0/8范围 14.MPLS的基本配置步骤 1. ip cef #全局开启cef 2.mpls ip #全局 3.mpls ip #接口下开启mpls 4.mpls ldp route-id 5.mpls label protocols #mpls采用哪种协议,一般是ldp 6.ospf的LSP端点的环回口子网掩码 #不是/32会出现标签断裂 isis另外讨论 7.测试LSP
四、MPLS场景使用
4.1 MPLS基础配置案例
1)拓扑
2)需求
R1、R2、R3、R4、R5开启MPLS
3)关键配置
mpls基础配置 R1[config]#ip cef #配置cisco mpls前提,默认开启 R1[config]#mpls ip #全局开启,默认开启 R1[config]#mpls label protocol ldp #ldp是默认协议 R1[config]#mpls ldp router-id loopback 0 {force} #route-id一般使用环回口 ,force为所设route-id立刻生效 R1[config-if]#mpls ip #在需要接收标签的接口下配置mpls [R2、R3、R4、R5配置如R1一样]
4.2 开启MPLS LDP自动配置
1)拓扑
同4.1拓扑
2)需求
MPLS随着IGP协议配置,自动配置
3)关键配置
ip ospf 110 area 0 mpls ldp autoconfig #所有ospf接口下自动开启mpls 【可选】 mpls ldp neighbor 22.1.1.1 password cisco {0|7|} #使用密码建立邻居,基于MD5认证,默认是明文
4.3 控制标签分发
1)拓扑
同4.1拓扑
2)需求
控制标签分发,设备上只能收到其他设备分发的环回口路由的标签,同时针对不必要标签进行控制
3)关键配置
[R2] ip access-list standard a permit 22.1.1.1 0.0.0.0 permit 33.1.1.1 0.0.0.0 permit 44.1.1.1 0.0.0.0 permit 55.1.1.1 0.0.0.0 ip access-list standard b permit 11.1.1.1 0.0.0.0 no mpls ldp advertise-labels #关闭默认标签通告功能 mpls ldp advertise-labels for a to b #针对特定的邻居控制标签的通告 #a:需要通告的标签的前缀,a的格式是标准acl #b:将标签通告给邻居的route-id ,b的格式是标准acl 【R1、R3、R4、R5配置类似R2】
4.4 客户总部与分支机构在运营商MPLS网络上传输数据
1)拓扑
同4.1一样
2)需求
客户总部需要通过走MPLS与分支机构进行数据交互
3)关键配置
1.基础IP配置 2.PE,P设备IGP配置(如:OSPF) 3.PE-PE设备间MP-BGP(RD) router bgp 100 no bgp default ipv4-unicast neighbor 10.1.1.4 remote-as 100 neighbor 10.1.1.4 update-source Loopback0 #不可缺少 ! address-family vpnv4 neighbor 10.1.1.4 activate 4.PE设备vrf配置(配置RD) 方法一: ip vrf A rd 100:200 ! interface Ethernet0/1 ip vrf forwarding A 方法二: vrf definition A rd 100:200 ! interface Ethernet0/0 vrf forwarding A 5.CE-PE的静态or动态路由
(CE-PE各协议对接可参考:https://www.cnblogs.com/lisenlin/p/14334266.html) CE和PE的vrf里均要配置路由,此处采用静态路由 R1(config)#ip route vrf A 66.1.1.1 255.255.255.255 eth0/1 16.1.1.6 R6(config)#ip route 77.1.1.1 255.255.255.255 eth0/1 16.1.1.1 R4(config)#ip route vrf A 77.1.1.1 255.255.255.255 eth0/0 47.1.1.7 R7(config)#ip route 66.1.1.1 255.255.255.255 eth0/0 47.1.1.4 CE-PE通过MP-eBGP连接(PE上可以不用路由重分布) R1侧 router bgp 100 address-family ipv4 vrf A neighbor 16.1.1.6 remote-as 200 neighbor 16.1.1.6 activate neighbor 16.1.1.6 as-override #如果总部与分支都想设置同一个AS号,需要在两端的PE侧都使用as-override参数 R6侧 router bgp 200 network 66.1.1.1 mask 255.255.255.255 neighbor 16.1.1.1 remote-as 100 6.PE设备双向导入 【R1】 router bgp 100 address-family ipv4 vrf A redistribute static show bgp vpnv4 unicast all #查看静态路由是否被充分进vrf A的BGP路由里 7.控制路由更新 PE之间更新的路由,以及注入哪个VRF 【R1】 ip vrf A route-target export 16:16 #来自R1路由打上RT标签 route-target import 47:47 #来自远方RT标签是47:47,就接收进此vrf 【看步骤4,你采用了是哪一种创建vrf的方法】 【R4】 vrf definition A rd 100:200 ! address-family ipv4 route-target export 47:47 route-target import 16:16 exit-address-family 8.完善数据转发层面(核心网的LDP) 【R1,R3,R4互连接口】 interface Ethernet0/0 mpls ip 9.验证 R6的环回口访问R7环回口 R6#ping 77.1.1.1 source lo0