MPLS MTU Aggregation

MPLS-domain的MTU问题
默认情况下,以太网接口下的二层MTU,三层MTU和MPLS MTU都是1500
以太帧的Type字段的作用:
一方面表示上层应用的类型
另一方面是告诉本地设备如何处理当前到达的数据帧

以太帧包结构:

1500以下是标准的以太帧处理
1500~2000字节之间是按小巨型帧处理
2000以上按巨型帧处理

R2(config-subif)#mtu        (二层MTU)

R2(config-subif)#ip mtu ?
  <68-1500>  MTU (bytes)

R2(config-subif)#mpls mtu 1504
The jumbo frames are not supported by all LAN switches
使用上述命令的主要原因是一些防火墙会删除ICMP无法到达消息,就几乎破坏了MTU发现机制
可以配置在同一个接口配置物理MTU,IP MTU;同时也不是所有LAN switches都支持小巨型帧的

一个标签的大小为4 byte(32位)
以太网字段中Type是用来标识的数据类型(例如是TAG还是IP,其中dot1Q和MPLS都是小巨型帧)

r5#ping                                                          
Protocol [ip]:                                                   
Target IP address: 1.1.1.1                                       
Repeat count [5]:                                                
Datagram size [100]: 1500                                        
Timeout in seconds [2]:                                          
Extended commands [n]: y                                         
Source address or interface: 5.5.5.5                             
Type of service [0]:                                             
Set DF bit in IP header? [no]: yes                               
Validate reply data? [no]:                                       
Data pattern [0xABCD]:                                           
Loose, Strict, Record, Timestamp, Verbose[none]:                 
Sweep range of sizes [n]:                                        
Type escape sequence to abort.                                   
Sending 5, 1500-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 5.5.5.5                     
Packet sent with the DF bit set                                  
M.M.M                                                            
Success rate is 0 percent (0/5)                                  

MPLS Domain的安全性问题
traceroute工作机制:使用逐次增加跳数超时回包机制来查看回包路径
r4(config)#no mpls ip propagate-ttl forwarded (此时再次traceroute将不会看到中间路径)
关闭默认的TTL值拷贝行为,直接将Label中的TTL设为255。所以数据包到达R4的时候不会超时发给R5回包,而是继续发送
r5#traceroute 1.1.1.1               
                                    
Type escape sequence to abort.      
Tracing the route to 1.1.1.1        
                                    
  1 45.1.1.4 4 msec 0 msec 0 msec   
  2 12.1.1.1 4 msec *  0 msec       

Label Switching Path
MPLS仅仅是一个转发机制,而不能具有计算转发路径的功能

LFIB = FIB + binding Table
R1#show mpls forwarding-table
如果不使用倒数第二跳机制,则目的前缀的路由器需要进行两次路径查找,先查找LFIB,再查找RIB所以开销较大 
路由器为自己的直连网段分配隐含空标签,既是在倒数第二跳pop,避免边界路由器做二次查找行为,减轻路由器硬件开销
任何路由器看到隐含空就将Label移除
所有直连网段本地都会给分配一个隐含空标签(imp-null),只是弹出一层标签
untag则是一次性移除所有标签

Aggregation on LSP Tunnels

假如在R3做汇总,则汇总路由10.1.0.0/16相当于本地发起,则R3会为其分配一个隐含空(imp-null标签),通告给邻居R4后,R4在一旦到达R4就会置为imp-null,发给R3的时候pop label;这时R3就会查找FIB(而不是LFIB)从而使用路由表发送,目的前缀给R2后就相应的压制标签,使得一次标签交换变成两次标签交换,浪费硬件资源
同时也会使得数据黑洞的严重后果,具体例子见下面Lab

MPLS域中的汇总行为是不建议配置的

LDP Paths in BGP Networks
Labels are assigned to Forwarding Equivalence Classes(FEC).
FEC in unicast IP routing is equal to a destination prefix found in FIB.
This is true only for Internal Gateway Protocol (IGP)-derived prefixes.(单播FEC是基于每个目的前缀的,但是前提条件就是该前缀是由IGP学习的)
BGP-derived prefixes are assigned the label that is used for the BGP next-hop address.

MPLS单播应用中
如果数据包的目的地址在本地路由表中由IGP学习过来的,它的FEC的分类方式为FIB的每一个目的前缀
如果数据包的目的地址在本地路由表中由BGP学习过来的,它的FEC的分类方式是BGP条目的下一跳地址
进入MPLS-domain的数据包,如果其目的地址在进入的路由器上以BGP形式出现,那么该数据包的转发将借用目的地址的下一跳标签(即:本地路由器去往下一跳所用的标签,将被借用来发送该数据包)
 

原文地址:https://www.cnblogs.com/cyrusxx/p/12824165.html