MPLS : Multiprotocol Label Switching (多协议标签转发)
工作在网络层,负责转发数据包。(快速的进行包交换和据包转发)
说一说数据包的交换
进程交换:基于每一条路由,进行查表。消耗CPU的资源。
快速交换:基于数据流的分类,然后定义数据流的转发策略。
CEF:运行MPLS协议之前要开启 (cisco设备上面),通过学习路由条目得到CEF的表。
当路由器开启CEF的进程之后,路由器回自动生成LDP,TDP,两张表。
MPLS 帧的标签
MPLS 的封装在二层以太网帧和三层数据包之间。
MPLS帧格式的分布
Lable:20个字节,为每个条目添加一个标签。0-15 的标签号属于例外,用作逻辑的标签。
TC: 3 个字节,主要应用在QOS上面。
S: 1个字节,主要使用在栈上面。
TTL:8个字节的TTL值,可以防止环路。
MPLS 协议名词解释
LSR:MPLP域里面的路由器,不是MPLS域边缘的路由器。
ELSR:MPLS域里面与客户端出口相连接的路由器,即:边缘路由器。
LSP: MPLS的路径,单项的。
TDP:LDP:主要是给数据添加标签。 传输层协议
LIB:标签信息数据库,有LSR路由器的标签,邻居标签,和自己的标签进行映射。
LFIB:标签转发信息库,只有在标签转发的时候才会查询。
CEF 包含FIB 和 邻居包 。
FIB:保存标签信息,在传输的吓一跳路由器上面进行检查标签。
Ages Table : 邻居表
在一条链路上面,不能为不同的路由器发送相同的标签。
MPLS的标签
标签的压入:标签的压入发生在ELSR的路由上面,当路由器学到客户的路由信息之后,会在路由条目上面打上本地的标签,当ELSR要传输打上标签的路由条目,则会将带有本地标签的路由条目发送给下一跳的LSR路由器,当LSR路由器收到带有标签的数据,这时候会查看FIB,查看接受的标签是不是在接受表中,如果接受的路由条目里面的标签不在我的LSB里面,则会对这路由条目直接丢弃。如果是在我的LIB里面则会将路由条目所带的标签删除,然后在上面添加LSR本地的标签,然后在转发到吓一跳的LSR.
标签的弹出:当本地路由器发送带有标签的路由条目到吓一跳的路由器,则会将路由条目携带的源标签删除,会添加吓一跳的本地标签。(建立的条件是两端的标签都在FIB里面有标签映射)
MPLS的数据包的传输
当边缘路由器通过IGP协议学到接入端路由信息的时候,会查看着路由信息是不是要进行标签转发,
如果要进行MSPL协议的转发标签那么要在ISP运营商的内网部署MPLS协议。在待内网的MPLS邻居建立完成,则下面要进行数据的转发。
当ELSR接受到外部路由条目的时候,要在接受的路由条目里面加上本地的标签号,然后查看本地的FIB表,找到下一跳接受标签的路由器,当下一跳路由器接受到打上标签的路由条目之后,会将标签去掉,在打上本路由器下一跳路由器的标签,直到该路由条目传送到ELSR路由器的时候,会查看LFIB,这时会发现相对应的标签对应的条目是unntagged将所有的标签都去掉。还原该路由。