简介
本文档介绍IOS-XE路由器上的组播枝叶回收消除(mLRE)功能。
问题
如果主机连接在多个接口上并请求路由器上的组播流量。路由器必须制作组播流量的副本,并且必须在请求该特定组播组的组播流量的所有接口上发送该副本。如果数据包是按顺序处理的,这意味着一个接一个的数据包,则它有助于路由器提高性能。但是,由于其性质,它会在不同的节点造成不公平的延迟。组播流量的这种串行处理在组播路由器中称为LRE,默认情况下在取决于其IOS版本和型号的路由器上启用。
即使连续处理数据包会导致相邻处理的数据包之间的差异为4-12微秒。
如果有大量枝叶节点请求组播流量,可能会在Trading公司等时间关键型环境中造成显着延迟。
此图显示了拓扑图,以便更好地理解这一点。
如您所见,我们有4台主机连接到LHR,它们正在请求组播组239.1.1.1的流量。
如果Packet Tracer在LHR上运行,则会发现从源接收的数据包被LHR以静默方式使用,然后它创建了4个类似的数据包并将其转发到连接到主机的每个接口。
LHR#show platform packet-trace summary
Pkt Input Output State Reason
0 Gi2 <none> CONS Packet Consumed Silently <<< recieved packet from sender
1 Gi2 Gi6 FWD <<< first replicated packet sent to int gig6
2 Gi2 Gi5 FWD <<< first replicated packet sent to int gig5
3 Gi2 Gi4 FWD <<< first replicated packet sent to int gig4
4 Gi2 Gi3 FWD <<< first replicated packet sent to int gig3
如果已打开捕获数据包的详细信息,您可以看到每个数据包的开始时间和结束时间。
LHR#show platform packet-trace packet 0
Packet: 0 CBUG ID: 85
Summary
Input : GigabitEthernet2
Output : <none>
State : CONS Packet Consumed Silently
Timestamp
Start : 37067929596524 ns (05/27/2020 02:43:56.203649 UTC)
Stop : 37067929669545 ns (05/27/2020 02:43:56.203722 UTC)
LHR#show platform packet-trace packet 1
Packet: 1 CBUG ID: 85
Summary
Input : GigabitEthernet2
Output : GigabitEthernet6
State : FWD
Timestamp
Start : 37067929722925 ns (05/27/2020 02:43:56.203776 UTC)
Stop : 37067929750941 ns (05/27/2020 02:43:56.203804 UTC)
LHR#show platform packet-trace packet 2
Packet: 2 CBUG ID: 85
Summary
Input : GigabitEthernet2
Output : GigabitEthernet5
State : FWD
Timestamp
Start : 37067929752437 ns (05/27/2020 02:43:56.203805 UTC)
Stop : 37067929759667 ns (05/27/2020 02:43:56.203812 UTC)
LHR#show platform packet-trace packet 3
Packet: 3 CBUG ID: 85
Summary
Input : GigabitEthernet2
Output : GigabitEthernet4
State : FWD
Timestamp
Start : 37067929760929 ns (05/27/2020 02:43:56.203814 UTC)
Stop : 37067929766997 ns (05/27/2020 02:43:56.203820 UTC)
LHR#show platform packet-trace packet 4
Packet: 4 CBUG ID: 85
Summary
Input : GigabitEthernet2
Output : GigabitEthernet3
State : FWD
Timestamp
Start : 37067929768236 ns (05/27/2020 02:43:56.203821 UTC)
Stop : 37067929774283 ns (05/27/2020 02:43:56.203827 UTC)
如果比较前面提到的输出的开始和结束时间,可以理解数据包处理是按顺序进行的。
Start : 37067929722925 ns (05/27/2020 02:43:56.203776 UTC) << packet1
Stop : 37067929750941 ns (05/27/2020 02:43:56.203804 UTC)
Start : 37067929752437 ns (05/27/2020 02:43:56.203805 UTC) << packet 2
Stop : 37067929759667 ns (05/27/2020 02:43:56.203812 UTC)
Start : 37067929760929 ns (05/27/2020 02:43:56.203814 UTC) << packet 3
Stop : 37067929766997 ns (05/27/2020 02:43:56.203820 UTC)
Start : 37067929768236 ns (05/27/2020 02:43:56.203821 UTC) << packet 4
Stop : 37067929774283 ns (05/27/2020 02:43:56.203827 UTC)
如果比较数据包1(02:43:56.203804)和数据包4(02:43:56.203821)的停止时间,您会看到时间差为17微秒。
在某些时间紧迫型组织中,这种延迟可能不可接受,因此需要减少。
解决方案
为避免此时间延迟,请在路由器上禁用LRE功能。
如果LRE功能被禁用,则用于复制组播流量的不同接口的数据包处理彼此独立并并行处理。
要禁用mLRE功能,请使用以下命令: outer(config)# platform multicast lre off