三、MPLS-交换机制

3 MPLS-交换机制

3.1 进程交换

所有的数据包都需要经过CPU检查,如CRC校验、查路由表、二层信息重写等,以路由表为驱动的方式。

该方式CPU负担重。

3.2 快速交换

第一个数据包交给CPU做进程交换,收集信息缓存到CACHE中,后续有同一个流报文时,就进行快速交换,无需CPU参与。由CACHE驱动的交换方式。

3.2.1 快速交换机制

如路由器中同时运行了BGP和OSPF,OSPF做底层,通过BGP学到了10.0.0.0/8的路由,通过OSPF也学到了1.2.3.0/24的路由,最终有效路由都会放到路由表中。

收到第一个包时,进行进程交换,需要CPU处理,如去往10.1.1.1查询路由表,下一跳为1.2.3.4,发现不是直连,接着递归查找到1.2.3.4下一跳是5.6.7.8,接着查找5.6.7.8,是直连接口,对应接口为F0/0。

还需要查找ARP广播请求,找到5.6.7.8的MAC地址,将路由前缀及MAC地址表放进CACHE表项。

此后报文都基于CACHE交换。

3.3 CEF

以拓扑为驱动的交换方式。

MPLS网络需要CEF,需要同时支持IP和标签包,需要FIB表和LFIB(CEF)表。

3.3.1 CEF机制

运行了BGP和OSPF。

相对于快速交换,有一个新增表项FIB表,存放CEF项目条目。还有一个毗邻数据库,存放二层信息。

拓扑驱动,只要路由表条目发生变化,CEF也会同时发生变化。

收到第一个数据包,查看CEF表,接着查5.6.7.8的MAC地址,将相关二层信息放入二层毗邻表项中。

IP路由协议进入RIB,RIB变化后,FIB表随之变化。

邻居表主要存放和二层相关的信息。

查看CEF表:

查看邻居表:

查看邻居表的详细信息,包含对方地址,对端MAC地址+本端MAC地址:

3.3.2 CEF执行

MPLS环境下:

收到IP包后,二层帧头需要移除

露出了三层IP头,根据IP目的地址在CEF表中进行查找,找到下一跳而二层信息;

紧着进行二层重写,组帧。

3.3.3 IP包负载均衡

3.3.3.1 基于源目地址对(默认)

默认行为基于目的地址的负载均衡:R1中关于1.1.1.1的路由等价负载均衡

其中traffic share count为1:1的比例。

查看CEF表中,显示PER-DESTINATION SHARING基于目的地址的负载均衡。

基于源、目的地址对进行的负载均衡。即去往一个源固定走一条路径,去往另一个源固定走另一条路径,同一个源不会负载到两条路径。

在R5接口上配两个地址

利用R5其中一个地址ping 1.1.1.1,从R3上面的路径走,而且会一直从上面走。

查看R3上的确切路径,可以看到CEF表中只有一条路径

利用R5的另一个地址PING,从R3的下面路径走,而且会一直从下面走。

3.3.3.2 基于包

上述基于源目地址对,造成资源浪费。

在两个接口上配上命令即可。

3.3.4 标签负载均衡

3.3.4.1 基于源目地址对(默认)

R5发出的是IP包

从R2走压标签200,从R4走压标签400

使用一个源IP,看出从R2走,压的标签是200,会一直走R2

使用另一个源地址,从R4走,压入标签400,而且会一直走R4

基于源目地址对的负载均衡

如果R5发出的是标签包,

R5去往1.1.1.1,需要压入标签300,R3收到后会不会做负载均衡。

用一个源地址,可以看出是从R2走的,而且会一直从R2走

用另一个源地址,看出是从R4走的,而且会一直从R4走。

还是通过源目地址对进行负载均衡

发表回复