소개
이 문서에서는 Nexus 7000 스위치에서 실행되는 BFD, OSPF 등의 컨트롤 플레인 프로토콜에 ARP 패킷 스톰이 미치는 영향에 대해 설명합니다.
기고자: Nishad Mohiuddi, Nikolay Kartashev, Cisco TAC 엔지니어.
Q. Cisco NX-OS는 BFD를 지원하는 호환 모듈에 BFD 작업을 배포할 수 있으므로, ARP 패킷 스톰이 Nexus 7000 플랫폼의 BFD 세션에 영향을 미칩니까?
A. 일반적으로 ARP Packet Storm은 Nexus 7000 스위치에서 실행되는 BFD 세션의 안정성에 영향을 미칠 수 있습니다.정확한 증상은 ARP Packet Storm 이벤트의 범위와 규모에 따라 달라집니다.다음은 Cisco TAC 랩 네트워크의 테스트 결과입니다.
랩 설정 세부 정보
다음 실습 설정은 Nexus 7000 스위치의 CPU에 ARP 트래픽이 미치는 영향을 테스트하기 위해 마련되었습니다.
여기서 N7k-A는 DUT(Device Under Test)로 사용됩니다.DUT는 다음과 같은 하드웨어 컨피그레이션이 포함된 Nexus 7009 스위치입니다.
N7k-A# show module
Mod Ports Module-Type Model Status
--- ----- ----------------------------------- ------------------ ----------
1 0 Supervisor module-1X N7K-SUP1 active *
2 0 Supervisor module-1X N7K-SUP1 ha-standby
3 32 10 Gbps Ethernet Module N7K-M132XP-12 ok
4 32 10 Gbps Ethernet Module N7K-M132XP-12 ok
N7k-A#
N7k-A에는 다음과 같은 디바이스가 연결되어 있습니다.
- N7k-B는 인터페이스 이더넷 3/15에 연결된 VPC 피어입니다.
- ASR1k는 인터페이스 이더넷 3/14에 연결된 레이어 3 인접 디바이스입니다.
- N7k-C는 인터페이스 이더넷 4/10에 연결된 레이어 3 네이버입니다.
- IXIA Traffic Generator는 vlan 6에 있으며, 인터페이스 Ethernet 3/10에 연결되며 레이어 2 액세스 포트로 구성됩니다.
DUT에는 3개의 BFD 세션, 슬롯 4의 라인 카드(슬롯 4에서 N7k-C로), 슬롯 3의 라인 카드(슬롯 3에서 N7k-B 및 ASR1k로)
N7k-A# show bfd neighbors
OurAddr NeighAddr LD/RD RH/RS Holdown(mult) State Int
10.80.6.173 10.80.6.174 1090519061/4105 Up 4951(3) Up Eth3/14
10.80.1.162 10.80.1.161 1090519054/1090519044 Up 4203(3) Up Eth4/10
10.80.1.61 10.80.1.62 1090519060/1090519059 Up 5921(3) Up Vlan6
N7k-A#
또한 DUT에는 3개의 OSPF 세션, 슬롯 4에서 N7k-C를 향하는 라인 카드 1개, 슬롯 3의 라인 카드 2개가 N7k-B 및 ASR1k를 향해 있습니다.
N7k-A# show ip ospf neighbors
OSPF Process ID 1
Total number of neighbors: 3
Neighbor ID Pri State Up Time Address Interface
10.80.0.2 1 FULL/ - 00:13:26 10.80.1.62 Vlan6
10.80.4.25 1 FULL/DR 00:12:40 10.80.6.174 Eth3/14
10.80.0.3 1 FULL/DR 20:15:07 10.80.1.161 Eth4/10
N7k-A#
OSPF가 BFD에 등록됨
router ospf 1
bfd
router-id 10.80.0.1
또한 N7k-A의 ARP 테이블에는 3개의 BFD/OSPF 네이버 모두에 대한 항목이 있습니다
N7k-A# show ip arp
Address Age MAC Address Interface
10.80.1.62 00:13:30 4055.390f.48c1 Vlan6
10.80.6.174 00:12:46 88f0.774b.0700 Ethernet3/14
10.80.1.161 00:15:13 6c9c.ed44.6841 Ethernet4/10
N7k-A#
ARP 스톰 시작
IXIA Traffic Generator는 네트워크의 불안정한 부분을 시뮬레이션하는 데 사용되며, 아래 다이어그램에서 볼 수 있듯이 DUT로 전송되는 ARP 트래픽이 많아집니다
다음 출력은 IXIA Traffic Generator가 연결된 인터페이스 Ethernet 3/10에서 입력 트래픽의 증가를 보여줍니다.이는 vlan 6에서 수신된 브로드캐스트 ARP 패킷입니다.
N7k-A# show interface Ethernet3/10 | grep "30 seconds input rate"
30 seconds input rate 3102999976 bits/sec, 6062053 packets/sec
N7k-A#
이 시나리오에서는 각 브로드캐스트 ARP 패킷의 복사본이 N7k-A의 CPU로 전송되기 때문에 CoPP의 모듈 3에서 위반된 바이트의 증가를 알 수 있습니다
N7k-A# show policy-map interface control-plane class copp-system-p-class-normal
Control Plane
service-policy input: copp-system-p-policy-strict
class-map copp-system-p-class-normal (match-any)
match access-group name copp-system-p-acl-mac-dot1x
match protocol arp
set cos 1
police cir 680 kbps , bc 250 ms
module 3 :
conformed 2295040 bytes; action: transmit
violated 20569190016 bytes; action: drop
module 4 :
conformed 128 bytes; action: transmit
violated 0 bytes; action: drop
N7k-A#
참고:브로드캐스트 ARP 스톰의 소스가 모듈 3의 인터페이스에만 연결되므로 슬롯 4의 모듈에 위반된 바이트는 없습니다.
ARP 스톰이 시작되는 시점에서 위의 출력은 일반적으로 네트워크의 문제를 나타내는 첫 번째(및 유일한) 기호입니다.대부분의 경우 이러한 표시는 네트워크 운영자가 간과하거나 간과하여 주요 연결 문제로 이어지는 상황으로 빠르게 이동합니다.
ARP 스톰이 컨트롤 플레인에 영향을 주기 시작
기본적으로 Nexus 7000 플랫폼의 ARP 시간 초과 값은 25분 또는 1500초로 구성됩니다.Nexus 스위치는 로컬 ARP 캐시 항목을 주기적으로 새로 고쳐야 다음 홉의 레이어 3 인접 디바이스의 IP-MAC 해상도를 최신 상태로 유지할 수 있습니다.
다음은 ARP 캐시 엔트리가 만료된 후 DUT에서 ARP 캐시 테이블의 출력입니다.
N7k-A# show ip arp
Address Age MAC Address Interface
10.80.1.62 00:00:06 INCOMPLETE Vlan6
10.80.6.174 00:00:10 INCOMPLETE Ethernet3/14
10.80.1.161 00:12:59 6c9c.ed44.6841 Ethernet4/10
N7k-A#
슬롯 3의 라인 카드에 연결된 디바이스에 대한 ARP 캐시 엔트리는 INCOMPLETE 상태를 표시하지만 슬롯 4의 라인 카드에 연결된 스위치 N7k-C의 엔트리는 예상대로 새로 고쳐집니다.
다음 DUT 로그 메시지는 컨트롤 플레인 레벨에 미치는 영향을 나타냅니다.
N7k-A# show logging log
...
2016 Nov 16 22:12:55 N7k-A %BFD-5-SESSION_STATE_DOWN: BFD session 1090519060 to neighbor 10.80.1.62 on interface Vlan6 has gone down. Reason: 0x3.
2016 Nov 16 22:12:55 N7k-A %OSPF-5-ADJCHANGE: ospf-1 [10600] Nbr 10.80.1.62 on Vlan6 went DOWN
2016 Nov 16 22:12:55 N7k-A %BFD-5-SESSION_REMOVED: BFD session to neighbor 10.80.1.62 on interface Vlan6 has been removed
2016 Nov 16 22:12:56 N7k-A %OSPF-5-ADJCHANGE: ospf-1 [10600] Nbr 10.80.1.62 on Vlan6 went EXSTART
2016 Nov 16 22:13:40 N7k-A %OSPF-5-ADJCHANGE: ospf-1 [10600] Nbr 10.80.6.174 on Ethernet3/14 went DOWN
2016 Nov 16 22:13:40 N7k-A %BFD-5-SESSION_STATE_DOWN: BFD session 1090519061 to neighbor 10.80.6.174 on interface Eth3/14 has gone down. Reason: 0x3.
2016 Nov 16 22:13:40 N7k-A %OSPF-5-ADJCHANGE: ospf-1 [10600] Nbr 10.80.6.174 on Ethernet3/14 went EXSTART
2016 Nov 16 22:13:46 N7k-A %BFD-5-SESSION_REMOVED: BFD session to neighbor 10.80.6.174 on interface Eth3/14 has been removed
2016 Nov 16 22:15:45 N7k-A %OSPF-5-ADJCHANGE: ospf-1 [10600] Nbr 10.80.6.174 on Ethernet3/14 went INIT
...
N7k-A#
이 출력에서는 OSPF가 DOWN을 EXSTART 상태로 전환한 다음 다시 INIT 상태로 전환됩니다.이는 OSPF가 유니캐스트를 사용하여 EXSTART 상태 중에 접두사를 교환하기 때문에 발생합니다.ARP 패킷 스톰이 발생할 때 슬롯 3의 모듈에서 ARP 확인이 완료되지 않았으므로 경로 교환이 완료되지 않아 OSPF 인접성이 형성되지 않습니다.
메모:다음 홉의 ARP-IP-MAC 해상도는 BFD 작업과 마찬가지로 유니캐스트를 사용합니다.BFD가 적절한 작동을 위해 ARP를 해결해야 한다고 결론을 수 있습니다.
다음 출력은 슬롯 3의 모듈에서 BFD 및 OSPF 세션에 대한 ARP 패킷 스톰의 영향을 확인합니다. 이 BFD 및 OSPF 세션과 달리 슬롯 4의 모듈에서 BFD 및 OSPF 세션이 설정되고 안정적인 상태를 유지합니다.
N7k-A# show bfd neighbors
OurAddr NeighAddr LD/RD RH/RS Holdown(mult) State Int
10.80.1.162 10.80.1.161 1090519054/1090519044 Up 5764(3) Up Eth4/10
N7k-A#
N7k-A# show ip ospf neighbors
OSPF Process ID 1
Total number of neighbors: 3
Neighbor ID Pri State Up Time Address Interface
10.80.0.2 1 EXSTART/ - 00:02:54 10.80.1.62 Vlan6
10.80.4.25 1 INIT/DR 00:00:05 10.80.6.174 Eth3/14
10.80.0.3 1 FULL/DR 20:29:28 10.80.1.161 Eth4/10
N7k-A#
ARP 패킷 스톰이 중지되면 어떻게 됩니까?
ARP Packet Storm이 중지되면 다음 복구가 자동으로 수행되고 네트워크가 통합되고 ARP 브로드캐스트 스톰 이전의 안정적인 상태가 됩니다.
- ARP 캐시 항목이 N7k-A에서 해결됨
- 슬롯 3의 모듈의 BFD 세션 재설정
- 슬롯 3의 모듈의 OSPF 세션 재설정
결론
Cisco NX-OS는 BFD를 지원하는 호환 모듈에 BFD 작업을 분산할 수 있지만, Nexus 7000 플랫폼에서 로컬 ARP 캐시 항목을 새로 고칠 때까지 남은 시간 동안 스위치의 CPU에 많은 ARP 트래픽이 도달하면 BFD 세션 및 BFD에 등록된 모든 클라이언트 프로토콜이 불안정하게 됩니다.
이는 유니캐스트인 next hop의 ARP 확인이 필요한 BFD 작업 때문일 수 있습니다.다음 홉에 대한 ARP 캐시 엔트리가 제시간에 새로 고쳐지지 않으면 BFD 세션이 실패합니다.