소개
이 문서에서는 IOS-XE 라우터의 mLRE(Multicast Leaf Recycle Elimination) 기능에 대해 설명합니다.
문제
호스트가 여러 인터페이스에 연결되어 있고 라우터에서 멀티캐스트 트래픽을 요청하는 경우라우터는 멀티캐스트 트래픽의 복사본을 만들어야 하며 해당 특정 멀티캐스트 그룹의 멀티캐스트 트래픽을 요청하는 모든 인터페이스에서 이를 전송해야 합니다.패킷이 연속적으로 처리되는 경우, 즉 한 패킷이 차례로 처리되면 라우터가 성능을 향상시킬 수 있습니다.하지만, 그것은 그 성질때문에 다른 노드에 불공정한 지연을 만듭니다.멀티캐스트 트래픽의 이러한 직렬 처리는 멀티캐스트 라우터에서 LRE로 불리며, 기본적으로 IOS 버전 및 모델에 따라 달라지는 라우터에서 활성화됩니다.
패킷을 순차적으로 처리하는 경우에도 인접하여 처리된 패킷과 4~12마이크로초 간의 차이가 발생합니다.
멀티캐스트 트래픽을 요청하는 리프 노드가 많을 경우 트레이딩 회사와 같은 시간 중심 환경에서 상당한 지연이 발생할 수 있습니다.
이 그림에서는 이 문제를 더 잘 이해할 수 있는 토폴로지를 보여 줍니다.
보시다시피 LHR에 4개의 호스트가 연결되어 있고 멀티캐스트 그룹 239.1.1.1에 대한 트래픽을 요청하고 있습니다.
패킷 추적기가 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 micro-seconds의 시간 차이가 있음을 확인할 수 있습니다.
시간이 중요한 일부 조직에서는 이러한 지연이 허용되지 않을 수 있으므로 줄여야 합니다.
솔루션
이 시간 지연을 방지하려면 라우터에서 LRE 기능을 비활성화합니다.
LRE 기능이 비활성화된 경우 멀티캐스트 트래픽 복제를 위한 다른 인터페이스에 대한 패킷 처리는 서로 독립적이며 병렬적으로 처리됩니다.
mLRE 기능을 비활성화하려면 다음 명령을 사용합니다. outer(config)# platform multicast lre off