目录
第四章 MPLS
4.1背景
由于90年代的网络转发硬件落后于网络转发需求,因此MPLS出现,提高了软件转发的效率。
MPLS:多协议标签交换
随着网络硬件的发展,MPLS的转发效率提高和IP转发的效率不再明显,但是MPLS基于标签交换的思想,可以用于MPLS VPN、MPLS TE(流量工程)。
4.2 概念
MPLS 域:是连续的一系列的LSR组成的区域
LSR:使能了MPLS的标签交换设备
- 入站LSR(ingress):将IP报文中压入MPLS头部,形成MPLS报文(Push)
- 中转LSR(transit):将收到的MPLS报文中的MPLS头部进行替换成新的MPLS头部,标签交换(SWAP)
- 出站LSR(Egress):将收到的MPLS报文中的头部移除,还原成IP报文进行转发。弹出标签(POP)
FEC:转发等价类,一组具有共性的数据流量的集合,在转发的时候同一个FEC采用相同的处理方式。FEC分类可以通过IP/掩码进行分类,也可以通过DSCP值。
LSP:标签交换路径,报文穿越网络到达目的地的路径,相同的FEC使用相同的路径进行报文转发。
4.3 MPLS头部格式
4B大小MPLS头部,主要字段如下:
- 标签(label字段):标识该头部携带的标签值,占用空间20bit,{0到(2^20-1)}
- EXP:报文的优先级(标记),3bit,取值范围(0到7),用于Qos
- S bit:栈底位,标识该MPLS头部是否是最后一个头部,最靠近IP头部的一个MPLS头部。
- TTL字段:用于出现环路的时候,防止报文持续一直转发。
4.3.1 标签空间
- 特殊标签空间:0-15
- 0为显示空标签,为了支持Qos,在倒数第二跳弹出的时候,压入显示空标签0,将MPLS的其他字段(EXP、TTL)携带到最后一跳设备,最后一跳设备可以根据EXP字段部署Qos的服务质量。
- 3为隐式空标签:为了减轻最后一跳设备弹出标签的压力,在倒数第二跳压入3标签的MPLS头部(标签为3,直接弹出标签,其实不压入MPLS头部),在倒数第二跳向最后一跳发送IP报文(非MPLS报文)。
- 静态的标签空间:16-1023,静态手工配置使用的标签空间
- 动态的标签空间:1024到2^20-1,LDP、RSVP-TE、MP-BGP等分配的标签空间。
4.3.2 标签的处理动作
1、Push:在报文中压入一个MPLS头部(栈顶位),无论报文中是否存在其他的MPLS头部
2、Swap:在报文中的栈顶标签(如果没有栈顶标签,则替换栈底标签),更换一个新标签。
3、POP:将报文中的栈顶位的标签弹出(如果没有栈顶标签,则弹出栈底标签)。
4.3.3 MPLS LSP的建立原则
- 该FEC必须存在在IP路由表中,否则,对应的标签转发表项无效。
- 本设备上的FEC对应的出标签必须和下游的相同的FEC的入标签相同。
4.4 MPLS标签转发的过程
Ingress节点:
- ingress查看fib表,确定FEC与Tunnel ID的关系3.3.3.3对应的Tunnel ID 0x1(非零才能迭代进入到隧道进行MPLS标签转发,0x0表示IP转发)
- 在ingress查看NHLFE,0x1对应的动作是push一个100的标签的MPLS头部,转发的接口,转发给AR2
Transit 节点:
- 查看入标签映射表ILM,获得Tunnel ID,接收到的报文的MPLS 标签是100,对应的Tunnel ID是0x1
- 查看NHLFE表项,按照对应Tunnel ID为0x1的表项进行操作,0x1表项对应的时SWAP动作,将原有的100标签更换为表项记录的200标签,转发给AR3。
Egress节点:
查看ILM表项,根据表项中对应的标签值,查找处理动作,弹出标签。