MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

说明

Multi Protocol Label Switch( MPLS,多协议标签交换) ,MPLS属于第三代网络架构,是新一代的IP高速骨干网络交换标准。

MPLS出现的历史,看看也好 嘿嘿!

在internet早期,随着普及的情况下,当时的硬件技术限制,采用的是最长匹配算法,递归查询的方式,给当时的骨干网发展提出了一个难题,在这种情况下ATM脱颖而出,ATM采用定长的标签,并且只需要维护比路由表小的标签表,便提供更高效率的转发性能和高带宽、QOS功能。 但是由于ATM机制太过复杂,设备又非常昂贵,给调试人员带来了很大的困难。在这种情况下,许多产商开始开发研究,把IP和ATM的优势结合的技术,最早由美国一家IPSilon的小公司推出了名为IP Switching,它很好的结合了ATM和IP的优势,随之Cisco(Tag switch)、IBM(ARIS)、3COM(FashtIP)各个产生都推出了自己的技术,为了统一标准 IETF推出了标准化的定义,它就是MPLS
随着ATM的慢慢退出,和IP的路由转发依靠硬件来完成(比如cisco的CEF),MPLS的优势越来越少,但是MPLS提供的高扩展性非常强,在ISP的发展下,***的需求越来越大,而MPLS 正好提供了天然的隧道,而且在流量控制、和多协议方面的支持(IP、IPV6、二层帧头等),那么就产生了MPLS ***和各种多业务的扩展应用。被运营商大量使用提供不同需求的业务。

MPLS的包结构

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

Label:20bit 2^0~2^20-1,也就是1048575个标签,0~15做保留
其中0做显示空 (NULL,用于QOS 只看EXP 忽略查找LFIB)
3是隐式空(通知次莫跳执行TAG动作)
1 为路由器报警标签 14 是OAM报警
EXP:扩展应用 如果是IP包中的3bit为IP precedence
S:栈底位 0与1 1代表1层 0代表多层 (MPLS ***为二层 MPLE TE two or more)
TTL:防环机制

MPLS在二层的帧头之后,和三层头部之前插入一个字段,所以也被成为2.5层协议,也正因为这样它能优于IP进行快速的转发。这时候除了插入Label字段以外,二层帧头的type字段也需要改变,比如EtherⅡ在没插入之前,type=0x0800,表示上层协议为IP,那么在插入标签以后,type会改变为0x8847(单播IP的) 还有一个表示为0x8848(组播),我们常用的是frame-mode

MPLS用一个短而定长的标签来封装网络层分组,交换机或路由器根据标签值转发报文。MPLS指的多协议是:可以承载在各种链路层协议上:PPP ATM FR。

FEC:(Forwarding Equivalence Class)转发等价类: FEC是在转发过程中以等价的方式处理一组数据分组。

LSP:(Laber Switching Path)标签交换路径:一个FEC数据流,在不同的节点被赋予确定的标签,数据转发按照这些标签进行,这个路径就成为LSP。

LDP:(Label Distribution protocol,标签分发协议 RFC3036):用于LSR之间分配标签,建立LSP

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

LSR: 标签交换路由 (MPLS 域内路由器)
Edge LSR : IP与MPLS域之间 (负责压入与弹出标签)

LDP的建立机制

LDP消息类型:
1、发现消息(Discovery messages) 用于LDP邻居的发现和维持
2、会话消息(Session messages)用于LSP邻居会话的建立、维护和终止
3、通告消息(Advertisement messages) 用于LDP邻居之间的Laber、地址等信息交互
4、通知消息(Notification Messages) 用于向LDP邻居通知事件或者错误。

LDP会话的建立和维护:
1、邻居建立:通过互发hello包(UDP/port:646/ip:224.0.0.2)
2、建立TCP连接:由地址大的一方主动发起。(TCP/port/:646)
3、会话初始化:由master发出初始化消息,并携带协商参数。由slave检查参数能否接受,如果能则发送初始化消息,并携带协商参数。并发送keepalive消息,master收到后检查参数匹配,匹配上发送keepalive消息互相收到后,会话建立。
4、会话维护:期间收到任何错误消息,会话就断开与TCP连接。上游与下游:数据转发先到的为上游,后到达的为下游,那么标签分发与路由更新正好相反,从下游到上游。

标签分配模式:DOD(downstream-on-demand,下游按需分配):只有当上游向下游请求的时候,才会为这个FEC信息分配标签
DU(downstream unsolicited,下游自动分配):只要与上游建立会话连接,主动为上游分配标签。

标签控制模式:有序方式(Ordered): 只有等下游更新了标签信息给上游,上游才会跟新。

独立方式(Independent):就算没有收到下游的标签信息,也会向上游发送标签信息。

标签保守方式: 保守模式 (Conservative):只会保留来自最近的下一跳邻居标签信息。

*模式(Liberal):保留所有来自邻居的标签信息。

现在的MPLS 都是采用DU 有序 *模式来完成MPLS

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

LDP使用的是UDP/TCP的端口号为646,目的地址为224.0.0.2发送hello包,只要运行LDP的路由器都会收到,在LDP的hello中Transport address 会携带在hello包中,表示想与邻居建立LDP的关系,通常情况下Transport address与LDP ID是一致的。
Transport adress的作用是,当双方交换hello包以后,由Transport address地址大的一方发起LDP的连接,而小的一方永远是被动的。
Transport Address选举:根据自己指定或者 自动选择 根据loopback 优先,然后物理接口。

Cisco在MPLS出现之前使用的是TDP,使用TCP/UDP 711号端口,但是在IOS 12.4以后默认选择是LDP了。
注意的是,虽然MPLS 理论上被认为是2.5层的协议,但是它的工作机制完全依靠IGP来完成,所以IGP的收敛决定了LDP的收敛速度。

下面是关于LSR和Edge的基本工作原理,实在不会画图,所以有从PPT里面截图下来了。

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

LSR的工作机制,假设当在一个运行IGP OSPF的MPLS Domain中,LSR路由器收到一个关于10.0.0.0/8这个网络的信息,它会用OSPF的LSA告诉其他邻居,当OSPF传递完成后,LDP开始为这条路由分配标签信息,它从左边邻居收到一个标签信息,这个标签告诉本地路由器,要想去往10.0.0.0/8这个网络打上标签17,与此同时本地也会产生一个关于这个路由条目的标签信息,这里为24,它会通告给其他LDP邻居。假设右边有台路由器要访问10.0.0.0/8这个网络,那么它只需要打上24的标签交给LSR路由器,LSR通过LFIB中的标签转换后,把24去掉,置换成17标签交给左边路由器。
注意的是:LDP只为IGP分配标签,包括static、RIPv2、EIGRP、ISIS、OSPF,并且默认是打开的,只要形成了LDP邻居关系,就会为每一条路由前缀分配标签,而BGPv4只会为IPv4的unicast router分配标签,而且默认是关闭的,但是BGP可以借用关于下一跳的由LDP分配的标签信息。这个可以在下面的实验中体现出来。

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

它也相当于后面的MPLS ***中的P路由器,它分为control plane 和Data Plane,Control Plane首先依赖于IGP协议的收敛完成,构建成IP Routing Table(cisco CEF机制表示为FIB),然后LDP开始为每一条路由分配标签会现成一个LIB数据库,最后关联到LFIB表中,它由FIB和LIB共同完成,包含的信息包括出接口和最优标签绑定,这个为Date Plane,决定数据转发。
什么是最优标签呢,比如下面这个图,Router-R4身后有个4.4.4.4的条目,Router-R4会为这个条目分配一个标签,并且传递给Router-R2,Router-R3,Router-R2,Router-R3也会本地产生一个标签 传递给邻居,假设Router-R1去往这个4.4.4.4的路径Router-R2比Router-R3的cost的小,那么在路由条目中,只会显示下一跳为Router-R2,而不是Router-R3,那么出现在LFIB表中的就是关于Router-R2分配的关于4.4.4.4的标签信息和出接口,而Router-R3分配的标签信息 还是会保存在本地LIB表中,当Router-R2出现了故障以后,它会自动切换到Router-R3上,并且把LFIB表中的标签绑定改为Router-R3所分配的。 LFIB表中只会显示FIB里面最优路径的下一跳标签信息(根据LIB数据库中保存的label信息),如果是负载均衡的话,那么标签也会负载均衡。

这时候,一个数据包过来的话,那么它只会查看LFIB表,而不去关心路由表,因为LSR属于MPLS Domain的内部路由器,所以这个数据包肯定是打了标签的,这样必须保证在单一的MPLS Domain中一定要保持标签的连续性。

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、
MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

它在MPLS ***中也叫PE路由器,它也分为Control Plane和Date Plane,首先也由IGP协议来完成路由的收敛,形成FIB表,然后LDP为每一条路由前缀分配标签信息,保存在LIB表中。
Data Plane会引用FIB表(IP Forwaring Table),但是这个FIB表关联了标签信息,当一个纯IP数据包过来以后,它查看关于这个目的网络是否有标签信息,如果有直接压入这个标签信息交给LFIB转发。如果没有就直接由IP包转发。
LFIB表(由FIB和LIB构成),它负责标签的置换、压入和弹出。 如果弹出以后变成纯IP包,交给FIB转发。
Edge LSR(PE)它的Data Plane由FIB和LFIB共同完成,它决定一个纯IP数据包是否需要压入标签,和一个标签数据包是否弹出标签转发给IP域。
关于MPLS的几张表项总结
RTB:由IGP协议生成的路由表,会选出最优的路径。
FIB:通过RTB生成的CEF表,同时会把LIB中关于这条最优路径的标签信息关联CEF表中。 当纯IP包进来 | 或者label出来的时候,会通过FIB里面对应的标签进行压入或者弹出。
LFIB:(动态)进出标签与下一跳关联
LIB:(静态)LDP或者TDP协议产生的本地以及邻居的标签
LFIB是通过LIB与FIB关联的一张动态标签表

这张表体现了MPLS TE 、MPLS ***等Control Plane和Date Plane的形成。

Penultimate hop Popping(次莫跳)

当一个IP包从Eage 过来通过FIB来查询是否压入标签, 通过标签表发给P节点,查看LFIB,执行转换动作,当Eage LSR收到后,执行POP后,会再查询下一跳,把IP包转发出去。 但是Eage LSR的负担和数据包转发延迟会加大,PHP解决的是,如果边界网络的话,会发出PHP的指令给次莫跳,由它来完成POP动作,自己只查询FIB表负责下一跳。 (POP动作为弹出一层标签)。

MPLS的TTL

两种机制:1、在MPLS中会借用三层的TTL值,经过一个路由器会减一,当到次莫跳的时候,会把MPLS中的TTL还原到IP层中。
2、边界PE上关闭 TTL传播 。这样不会关注三层的TTL,此时三层TTL为1 ,直接在MPLS上附加为255,当次莫跳的时候,会还原为1,当目的收到后就变成0丢弃。 这样客户只能看到边界与目的的设备 中间的看不到,包含了ISP的网络。

MPLS的标签状态

impose:压入标签
Swap :一个标签变成另外一个label or stack
POP:弹出一层标签 ,一般为只有一层,而且是邻居告知的
untagged: 不是邻居告诉我的,而是自己发现的 标签全部弹出
aggregate: 出现递归的查询,一般出现错误的配置 或者目的为自己的直连

实验部分了,实验目的不是为了做通这个实验,而是分析标签的置换过程,MPLS难点就是在于这,理论部分很好理解。

拓扑

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

Router-R1有两个loopback,一个为1.1.1.1/24,一个为11.11.11.11/24,Router-R2—Router-R4各有一个32位环回口。 Router-R5也有两个loopback口,一个为5.5.5.5/24,一个为55.55.55.55/24。 IGP使用的为OSPF,这个能体现出很多问题出来。Router-R1和Router-R5建立IBGP邻居,最后达到的目的是,11.11.11.11能够ping通55.55.55.55

在CISCO上MPLS ***必须开启CEF,CEF唯一一种提供MPLS标签插入的转发机制。
先构建底层通信,(在BGP和MPLS中底层通信依靠IGP来完成,所以后续指的底层都为IGP)
Router-R1
Router-R1(config)#int s1/0
Router-R1(config-if)#ip add 12.1.1.1 255.255.255.0
Router-R1(config-if)#no shut
Router-R1(config-if)#int lo 1
Router-R1(config-if)#ip add 11.11.11.11 255.255.255.0
Router-R1(config-if)#int lo 0
Router-R1(config-if)#ip add 1.1.1.1 255.255.255.0

Router-R2
Router-R2(config)#int s1/0
Router-R2(config-if)#ip add 12.1.1.2 255.255.255.0
Router-R2(config-if)#no shut
Router-R2(config-if)#int lo 0
Router-R2(config-if)#ip add 2.2.2.2 255.255.255.255
Router-R2(config)#int s1/1
Router-R2(config-if)#ip add 23.1.1.1 255.255.255.0
Router-R2(config-if)#no shut

Router-R3
Router-R3(config)#int s1/1
Router-R3(config-if)#ip add 23.1.1.2 255.255.255.0
Router-R3(config-if)#no shut
Router-R3(config-if)#int s1/2
Router-R3(config-if)#ip add 34.1.1.1 255.255.255.0
Router-R3(config-if)#no shut
Router-R3(config-if)#ip add 3.3.3.3 255.255.255.255
Router-R4
Router-R4(config)#int s1/2
Router-R4(config-if)#ip add 34.1.1.2 255.255.255.0
Router-R4(config-if)#no shut
Router-R4(config-if)#int s1/3
Router-R4(config-if)#ip add 45.1.1.1 255.255.255.0
Router-R4(config-if)#no shut
Router-R4(config-if)#int lo 0
Router-R4(config-if)#ip add 4.4.4.4 255.255.255.255

Router-R5
Router-R5(config)#int s1/3
Router-R5(config-if)#ip add 45.1.1.2 255.255.255.0
Router-R5(config-if)#no shut
Router-R5(config-if)#int lo 0
Router-R5(config-if)#ip add 5.5.5.5 255.255.255.0
Router-R5(config-if)#int lo 1
Router-R5(config-if)#ip add 55.55.55.55 255.255.255.0
开始IGP的构建 OSPF
Router-R1(config-if)#router ospf 1
Router-R1(config-router)#router-id 1.1.1.1
Router-R1(config-router)#network 12.1.1.1 0.0.0.0 a 0
Router-R1(config-router)#network 1.1.1.1 0.0.0.0 a 0

Router-R2(config-if)#router ospf 1
Router-R2(config-router)#router-id 2.2.2.2
Router-R2(config-router)#network 2.2.2.2 0.0.0.0 a 0
Router-R2(config-router)#network 12.1.1.2 0.0.0.0 a 0
Router-R2(config-router)#network 23.1.1.1 0.0.0.0 a 0

Router-R3(config-if)#router ospf 1
Router-R3(config-router)#router-id 3.3.3.3
Router-R3(config-router)#network 3.3.3.3 0.0.0.0 a 0
Router-R3(config-router)#network 23.1.1.2 0.0.0.0 a 0
Router-R3(config-router)#network 34.1.1.1 0.0.0.0 a 0

Router-R4(config-if)#router ospf 1
Router-R4(config-router)#router-id 4.4.4.4
Router-R4(config-router)#network 4.4.4.4 0.0.0.0 a 0
Router-R4(config-router)#network 34.1.1.2 0.0.0.0 a 0
Router-R4(config-router)#network 45.1.1.1 0.0.0.0 a 0

Router-R5(config)#router ospf 1
Router-R5(config-router)#router-id 5.5.5.5
Router-R5(config-router)#network 5.5.5.5 0.0.0.0 a 0
Router-R5(config-router)#network 45.1.1.2 0.0.0.0 a 0
在MPLS的学习中,建议要养成一个随手配置RID的习惯,无论是OSPF还是BGP,在MPLS ***中经常用的上。还有就是配置完毕后,先测试底层的连通性,在做后续的配置。

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

配置Router-R1和Router-R5的BGP
Router-R1(config)#router bgp 1
Router-R1(config-router)#bgp router-id 1.1.1.1
Router-R1(config-router)#neighbor 5.5.5.5 remote-as 1
Router-R1(config-router)#neighbor 5.5.5.5 update-source lo0
Router-R1(config-router)#network 11.11.11.0 mask 255.255.255.0
Router-R5(config-router)#router bgp 1
Router-R5(config-router)#bgp router-id 5.5.5.5
Router-R5(config-router)#neighbor 1.1.1.1 remote-as 1
Router-R5(config-router)#neighbor 1.1.1.1 update-source lo0
Router-R5(config-router)#network 55.55.55.0 mask 255.255.255.0

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

关于BGP正常建立了,也已经收到Router-R1传递过来的路由,在BGP表中为最优

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

路由表中也有关于11.11.11.0的表项,开始测试下关于去往11.11.11.11这个网段能放通信。

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

发现通信不了,虽然两边都收到了各自的路由,因为这是传统的IP网络,它会基于路由表的查找。首先在路由表中BGP关于11.11.11.0/24的下一跳为1.1.1.1也就是Router-R1的RID,然后继续查找路由表关于1.1.1.1怎么去,查表下一跳为45.1.1.1,这时候会以S:55.55.55.55 D:11.11.11.11 | ICMP 头部 | Date 发送给Router-R4,Router-R4收到以后,会查询路由表是否有关于去往11.11.11.11的条目,发现并没有,所以把数据包给drop了,如果以IP网络的解决办法就是NP课程提到过的 full mase 或者做RR。但是这样非常麻烦,也给ISP带来了额外的投资。

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、
MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

MPLS能够解决这个路由黑洞的问题,它能实现只需要两个边界设备之间建立IBGP邻居关系,来传递路由,内部路由器跟本不需要知道公网的路由条目信息,从而减轻内部路由器的投资和负担。 公网上40多万条路由在以前的IP网络中,必须每个路由器都有明细的路由条目,否则会产生路由的黑洞。而MPLS出现解决了这个问题,利用的就是标签的置换。
在这个实验和后续的实验中,为了分析标签转换的方便,所以通过mpls label range 来限制标签的分发范围,因为标签只具有本地的意义,有可能本地产生的为16,邻居发送给我的也是16,限制标签范围这样对于刚学习这个来说,比较容易理解,到了后面领会了的话,完全没有必要使用这个命令了,这个命令在实际中是为了解决路由器负担而设计的。
MPLS的配置其实很简单,难点在于标签的置换。

Router-R1(config)#mpl
Router-R1(config)#mpls label range 100 199
Router-R1(config)#mpls ldp router-id lo 0
Router-R1(config)#int s1/0
Router-R1(config-if)#mpls ip
Router-R2(config)#mpls label range 200 299
Router-R2(config)#mpls ldp router-id lo 0
Router-R2(config)#int s1/0
Router-R2(config-if)#mpls ip
Router-R2(config-if)#int s1/1
Router-R2(config-if)#mpls
Router-R2(config-if)#mpls ip

Router-R3(config)#mpls label range 300 399
Router-R3(config)#mpls ldp router-id lo0
Router-R3(config)#int s1/1
Router-R3(config-if)#mpls ip
Router-R3(config-if)#int s1/2
Router-R3(config-if)#mpls ip
Router-R4(config)#mpls label range 400 499
Router-R4(config)#mpls ldp router-id lo 0
Router-R4(config)#int s1/2
Router-R4(config-if)#mpls ip
Router-R4(config-if)#int s1/3
Router-R4(config-if)#mpls i
Router-R5(config)#mpls label range 500 599
Router-R5(config)#int s1/3
Router-R5(config-if)#mpls ip
MPLS基本配置完毕了,这里我除了Router-R5全部手工指定了LDP的RID,这样对于网络的问题和故障的排错很有用,这里Router-R5没指定就是看下会出现什么样的错误。

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、
MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

Router-R5没有发现任何邻居,而Router-R4上关于s1/3接口也就是连接Router-R5的接口,显示no router,之前提到过LDP的RID是跟OSPF机制一样,优选选举loopback接口最大IP,然后物理口,这里55.55.55.55是BGP路由 Router-R4并不知道,所以显示为这个。 所以在做MPLS ***实验的时候,关于OSPF BGP LDP的RID一定要手工指定,不然容易造成网络通信不正常。

修改命令。Router-R5(config)#mpls ldp router-id lo 0 force 必须加上force这个参数 就是立即生效。
这样关于标签的分发就完成了,测试下Router-R1到Router-R5的通信问题。

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

开始分析它为什么能够通信。首先它是一个纯IP包过来查看是否需要压入标签,查看的是FIB表。

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

因为show ip cef detail的信息太多了,所以只查看了关于55.55.55.55的条目,发现它标签信息为204,之前提到过LDP只会为IGP分配标签,55.55.55.55这条路由是从BGP学习过来的,它的标签怎么来的, 上面也提到过关于BGP默认不会分发标签,但是它能够借助LDP为它分配的下一跳的标签信息,从detail中看出55.55.55.55的下一跳就是5.5.5.5 也就是Router-R5 BGP的RID,关于5.5.5.5这个路由条路是在OSPF中宣告了的,所以它有标签信息。

5.5.5.5的标签信息跟55.55.55.55的是一样的。证明了BGP会借助LDP为它下一跳分配的标签信息。这个很重要,在后续的MPLS ***中更深入,需要理解。

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

这种表是LFIB表,发现去往5.5.5.5 打上标签204 送给出接口s1/0,其实它本地也生成了一个关于这个路由条目的标签信息 104,如果它还连接了其他MPLS路由器的话,会把这个标签传递给对方。

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

Router-R2—Router-R3标签置换都没问题,Router-R1到Router-R2打上204的标签出去,Router-R2关于5.5.5.5 本地204对应303从s1/1出去,Router-R3收到以后,置换成403转发给Router-R4,关键在于Router-R4.

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

之前提到过,关于PHP的机制,当一个最后一条路由器分发关于这个标签的时候,会发送一个标签3的信息给次莫跳,所以次莫跳会执行Pop动作,也就是弹出一层标签,这里5.5.5.5 在Router-R5是为最后一条路由器,它发送给Router-R4会发送标签3的信息,因为Router-R4是次莫跳,但是在这个LFIB表中,Router-R4去往Router-R5的标签动作不是Pop而是untagged,之前说过untagged的原因是本地发现的,而不是邻居告诉我的,它的作用是弹出所有的标签。那为什么Router-R1和Router-R5还能通信呢, 这是因为MPLS的环境中,就一层标签,弹出标签以后发送给Router-R5的是纯IP的数据包,Router-R5是直连,所以并不会有什么问题,但是在MPLS ***中,通常是二层或者二层以上的标签,出现了untagged就表示所有标签都弹出了,这时候交给对方的话,没有内层的标签信息,就区分不了到低怎么转发了,导致***访问失败。

造成这个原因是OSPF有个机制,环回口默认情况下认为是末节主机,所以显示的为32位路由,为LDP是为每一条路由前缀分发标签的,这里5.5.5.5显示的是32位,而通告的是24位的,解决办法把网络类型改为point-to-point
这是Router-R4 show mpls ldp bindings 也就是LIB表的信息,查看关于路由分配的标签信息。 发现5.5.5.0/24 tag为imp-null ,remote bingding只有关于3.3.3.3 Router-R3的,并没有关于Router-R5的信息。 是不是32位的路由因该是LDP检测出来的,每台路由器运行了MPLS,就会为每一条路由分配标签并且发送个邻居,所以在LIB表中有24位的路由,但是本地的路由表中是32位的,所以它自己会生成一个32位的标签信息。. 像H3C juniper这些产商环回口必须32位的,感觉这样设置也挺合理。 在MPLS ***中 建议大家使用32位的环回口作为RID,避免不必要的麻烦。

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

Router-R5(config)#int lo 0
Router-R5(config-if)#ip ospf network point-to-point

Router-R1(config)#int lo 0
Router-R1(config-if)#ip ospf network point-to-point

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

这下显示为Pop了,弹出标签,然后纯IP包交给Router-R5,Router-R5由于是直连,能直接收到,然后数据包的返回也是相同的过程。

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

这个关于Router-R4访问Router-R5的数据包,Pop后,以纯IP包发送。

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

这个是Router-R5返回给Router-R4时候的数据包,打上了标签407,这个标签,是去往1.1.1.0/24的标签,然后交给Router-R3的时候打上307,从s1/2发出去。

MPLS系列之一:Multi Protocol Label Switch-Basic 【介绍了原理、

关于MPLS的包结构,Label为407 。EXP没做QOS,所以为0 。stack为1,是因为这是一层标签,如果是多层标签的话,会出现0. TTL为255是cisco路由器值。

本文首发于公众号:网络之路博客

上一篇:gRPC


下一篇:Django 设置cookie