소개
이 문서에서는 Catalyst 9000 스위치에서 REP(Resilient Ethernet Protocol)를 구성하고 검증하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
Cisco에서는 다음 주제에 대해 숙지할 것을 권장합니다.
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- Catalyst 9200
- Catalyst 9300
- Catalyst 9400
- Catalyst 9500
- Catalyst 9600
- Cisco IOS XE 17.6.5 이상
주의: SVL(Stackwise Virtual)이 있는 스위치에서는 REP가 지원되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
REP 는 네트워크 루프를 방지하고 레이어 2 이더넷 네트워크에서 링크 장애에 대한 빠른 컨버전스를 제공하도록 설계된 Cisco 소유 프로토콜입니다. 스패닝 트리 프로토콜의 대안이며 IoT 네트워크, 산업 네트워크 또는 제조 네트워크와 같은 대규모 레이어 2 확장이 필요한 특정 레이어 2 토폴로지에서 자주 사용됩니다. REP "세그먼트"는 동일한 세그먼트 ID로 구성된 스위치 간의 포트를 체이닝하여 형성됩니다. REP 로드 밸런싱과 같은 기능과 STP와 공존할 수 있는 기능을 통해 REP는 복잡하면서도 예측 가능한 레이어 2 토폴로지를 구성하는 데 사용할 수 있습니다.
용어
용어 |
정의 |
세그먼트 |
동일한 세그먼트 ID를 공유하는 서로 연결된 포트 체인 |
세그먼트 ID |
세그먼트를 나타내는 데 사용되는 수로, 1~1024입니다. |
REP 포트 |
REP 를 실행하도록 구성된 포트. STP는 REP 포트에서 비활성화됩니다. |
에지 포트 |
REP 세그먼트의 한 모서리를 종료하는 포트입니다. |
대체 포트 |
루프를 방지하기 위해 세그먼트에서 VLAN을 차단하는 포트입니다. 로드 밸런싱이 구성된 경우 세그먼트에 2개의 대체 포트가 있습니다 |
열린 포트 |
모든 VLAN을 전달하는 세그먼트의 포트 |
닫힌 세그먼트 |
REP Segment(REP 세그먼트) - 양쪽 에지 포트가 동일한 스위치에 있고 서로 연결되어 있습니다. '링 세그먼트'라고도 합니다. |
세그먼트 열기 |
에지 포트가 서로 연결되지 않는 REP 세그먼트. 에지 포트는 서로 다른 스위치에 있으며 그 사이에 차단 포트가 있습니다. |
링크 상태 레이어(LSL) |
네이버 인접성 설정 및 링크 상태 유지를 담당하는 3방향 핸드셰이크 프로토콜입니다. LSL 프레임은 REP 포트에서 1초마다 전송됩니다. |
하드웨어 플러드 레이어(HFL) |
멀티캐스트를 통해 REP PDU를 플러딩하여 링크 장애 후 신속한 컨버전스를 촉진하는 계층 |
BPA(차단된 포트 알림) |
포트에서 전송하는 메시지로, 포트에서 차단하는 VLAN 목록을 알립니다. BPA는 토폴로지 변경도 수행할 수 있으므로 수신 포트에서 MAC 테이블을 플러시할 수 있습니다 |
EPA(End Port Advertisement) |
REP 세그먼트에 대한 전역 정보를 전달하며 Edge 포트에 의해 전송됩니다. |
REP 관리자 VLAN |
링크 장애 후 컨버전스를 위한 REP 빠른 알림을 플러딩하는 데 사용되는 VLAN입니다. HFL이 구성된 경우 여기서 작동합니다. 그렇지 않은 경우 REP Admin VLAN은 1입니다. |
REP 이론
REP는 Alternate port라고 하는 세그먼트에서 단일 포트의 VLAN을 차단하여 스위칭 루프를 방지할 수 있습니다. REP 세그먼트의 모든 포트가 UP 상태인 경우 대체 포트는 루프를 방지하기 위해 차단하고 있습니다. REP 세그먼트의 링크에 장애가 발생하거나 스위치에서 REP 프로토콜 패킷의 링크 손실이 발생하는 문제가 발생하면 대체 포트는 이전에 차단했던 VLAN에 대해 포워딩을 수행합니다. 따라서 REP 세그먼트는 세그먼트 내에서 실패한 단일 포트만 처리할 수 있습니다. REP 세그먼트에서 1개 이상의 링크 장애가 발생하면 트래픽이 손실될 수 있습니다.
인터페이스에서 REP가 활성화되면 모든 VLAN을 즉시 차단합니다. REP LSL가 LSL PDU를 인수하여 인접성을 설정하기 위해 LSL PDU 전송을 시작합니다. 인접성은 REP 인접 디바이스를 유지 관리하기 위해 1초 간격으로 전송되는 후속 LSL hello 패킷과 3방향 핸드셰이크를 사용하여 생성됩니다.
REP 인접 디바이스 검색 중에 디바이스는 REP 세그먼트 ID와 포트 ID를 교환합니다.
- 세그먼트 ID는 1에서 1024 사이의 숫자이며 REP를 활성화할 때 인터페이스에 구성됩니다. 이렇게 하면 REP 세그먼트를 고유하게 식별합니다.
- 포트 ID는 시스템 MAC 주소 및 스위치의 포트 번호에서 자동으로 생성되는 60비트 단어입니다.
- LSL PDU는 대상 MAC 주소로 전송됩니다. 주소는 0180.c200.0000입니다
9200-STACK-1#show interface port-channel1 rep detail | i PortID
PortID: 08E978BC1A4FDD80 <--- Port ID with system MAC in bold
9200-STACK-1#show version | i MAC
Base Ethernet MAC Address : 78:bc:1a:4f:dd:80 <-- Switch system MAC
REP 포트가 종료되거나 LSL hello 시간 초과가 5초 후에 만료되면 REP 포트가 Failed(실패) 상태로 바뀝니다.
REP 대체 포트 선택
REP Alternate 포트는 VLAN을 차단하는 세그먼트의 포트입니다.
- 대체 포트 선택은 세그먼트의 어느 단일 포트가 차단 상태를 유지하는지 확인하기 위해 제안 및 동의 메커니즘을 사용하여 REP 인접 디바이스가 설정된 직후 수행됩니다.
- 세그먼트의 모든 포트는 해당 포트 키 및 포트 우선순위를 광고하고 계약을 기다립니다.
- 우선순위가 가장 높은 포트가 대체 포트로 선택됩니다.
- 선출 과정은 국회의원 BPA 메시지를 통해 이루어집니다.
차단된 포트 광고
BPA 메시지는 Port Key(포트 키) 및 Port Priority(포트 우선순위)로 구성됩니다.
- REP Port Key는 포트가 차단 상태가 될 때마다 생성되는 9바이트 식별자로, REP가 활성화된 포트에 대한 링크가 바로 가동됩니다.
- 포트 ID와 임의로 생성된 번호의 조합입니다.
- Port Priority(포트 우선순위)는 9바이트 식별자이기도 합니다.
대체 포트 선택
- REP 포트가 차단 상태에 있는 동안 링크가 작동하면 REP 네이버에 포트 키와 우선순위를 광고합니다
- 수신 포트는 수신한 BPA 포트 우선순위를 자신의 포트 우선순위와 비교한다
- 수신 포트는 인접 포트로부터 BPA에 수신된 키를 포함하는 ACK 메시지로 응답합니다. 인접 디바이스가 BPA에서 자신의 키를 수신하면 BPA가 인접 디바이스로부터 ACK 메시지임을 알고 있습니다
- ACK에 로컬 포트 우선순위보다 높은 포트 우선순위가 포함된 경우 로컬 포트는 OPEN 상태로 전환됩니다. 우선순위가 더 높은 인접 디바이스에 응답하지 않지만, 다른 REP 포트로 제안을 다른 REP 인접 디바이스로 전달합니다
- 다른 REP 인접 디바이스는 수신된 포트 우선순위를 자신의 우선순위와 비교합니다. 접수된 우선순위가 현지 우선순위보다 높은 경우 역시 이에 응하지 않고 제안서를 함께 전달한다. 지역 우선순위가 더 높으면 자신의 우선순위로 원래 제안에 응답한다
이 프로세스는 우선순위가 가장 높은 포트가 차단 모드에 머물 때까지 반복됩니다. 세그먼트 대체 포트가 됩니다. 대체 포트는 포트 키를 포함하는 BPA 메시지를 REP 세그먼트로 계속 전송합니다. 세그먼트의 모든 REP 포트는 대체 포트의 키를 캐시합니다.
안정적인 REP 세그먼트에서 모든 포트는 대체 포트 키의 동일한 복사본을 가지고 있어 대체 포트에서 일치합니다. 대체 포트의 포트 키 ID를 유지 관리하는 모든 스위치는 링크 오류 시나리오 중에 관련됩니다.
포트 알림 종료
EPA 메시지는 에지 포트에서 4초마다 생성됩니다. 이러한 메시지는 세그먼트의 모든 REP 인터페이스에 의해 전달되며 각 포트는 메시지에 고유한 토폴로지 정보를 추가합니다.
에지 포트가 세그먼트의 다른 에지 포트에서 생성한 EPA를 수신하면 전체 세그먼트의 전체 토폴로지를 갖습니다.
EPA는 각 에지 포트가 서로 볼 수 있도록 허용하고 기본 에지 포트의 선택을 용이하게 합니다. 우선순위가 가장 높은 에지 포트가 기본 에지 포트가 됩니다.
REP 링크 실패 알림
REP 세그먼트에서 링크가 실패하면 '실패' 상태로 이동하고 대체 포트의 캐시된 키를 포함하는 링크 실패 알림을 전송합니다. 전송 스위치는 여전히 작동 중인 REP 링크의 MAC 주소도 플러시합니다.
REP 네이버 스위치는 링크 실패 알림을 수신하고 이를 세그먼트의 모든 REP 네이버에 전달할 뿐만 아니라 REP 세그먼트의 포트에 대한 MAC 주소 항목을 플러시합니다. 링크 실패 알림을 수신하는 스위치에 세그먼트의 대체 포트가 포함된 경우 포트가 OPEN 상태로 전환됩니다.
링크 실패 알림은 두 가지 방법으로 배포됩니다.
- REP Fast Notifications via BPA messages to the Cisco multicast address of 0100.0ccc.ccce
- REP REP BPDU 프레임(REP LSL 프레임과 유사)에서 BPA 메시지를 전송하는 REP Reliable Notifications.
기능 |
빠른 알림 |
안정적인 알림 |
하드웨어 전달 |
예 |
아니요 |
신뢰성 |
아니요 |
시퀀스 번호 지정 및 재전송을 통해 지원 |
대체/차단 포트를 통과합니다 |
아니요 |
예 |
REP 세그먼트 외부로 전달됨 |
예 |
아니요 |
REP Admin VLAN에서 전송됨 |
예 |
아니요(네이티브 VLAN 사용) |
REP Link Failure Notifications(REP 링크 실패 알림)는 CPU에 대한 펀팅을 받고 REP 포트에서 MAC 플러싱을 트리거한다는 점에서 STP TCN과 비슷하게 작동합니다. STP 세그먼트를 향하는 REP 포트에서 추가 컨피그레이션을 수행하면 REP 링크 장애 알림이 STP TCN으로 변환되어 REP 링크 장애로 인해 MAC이 플러시되도록 STP 도메인에 알릴 수 있습니다.
REP 기본 포트 및 VLAN 로드 밸런싱
VLAN 로드 밸런싱이 구성된 경우 REP Primary Edge 포트는 로드 밸런싱을 시작할 수 있는 포트입니다. REP Preferred 포트는 대체 포트가 되는 기본 포트입니다.
기본 에지 포트는 로드 밸런싱 시나리오와 관련이 있습니다. 추가 컨피그레이션을 통해 기본 에지 포트에서 로드 밸런싱이 시작되기 때문입니다.
로드 밸런싱은 기본 포트가 차단해야 하는 VLAN을 구성하여 구현됩니다.
- 나머지 VLAN은 기본 에지 포트에서 차단됩니다.
- VLAN 로드 밸런싱이 구성되고 활성화된 경우 2개의 대체 포트가 있습니다.
로드 밸런싱이 구성되면 기본 에지 포트에서 링크 오류 또는 수동 선점이 트리거될 때까지 영향을 주지 않습니다.
구성
네트워크 다이어그램
설정
모든 포트는 일치하는 REP 세그먼트 ID를 가진 트렁크 포트로 구성해야 합니다. 에지 스위치에는 에지 매개 변수가 필요합니다.
9200-STACK-1#show running-config interface port-channel 1
Building configuration...
Current configuration : 100 bytes
!
interface Port-channel1
switchport mode trunk <-- Must be a trunk
load-interval 30
rep segment 1 edge <-- configure edge port in REP segment 1
end
에지 포트가 아닌 REP 포트에는 edge 키워드가 필요하지 않습니다.
9300-STACK-2#show running-config interface port-channel 1
Building configuration...
Current configuration : 69 bytes
!
interface Port-channel1
switchport mode trunk
rep segment 1 <-- non-edge REP port configuration
end
다음을 확인합니다.
모든 세그먼트 포트가 구성되면 세그먼트가 완료되고 실패한 포트가 없어야 합니다.
REP 토폴로지를 확인합니다.
9200-STACK-1#show rep topology
REP Segment 1
BridgeName PortName Edge Role
-------------------------------- ---------- ---- ----
9200-STACK-1 Po1 Pri Open <-- primary edge port
9300-STACK-1 Po1 Alt <-- alternate port that is blocking VLANs
9300-STACK-1 Po4 Open
9300-STACK-3 Po4 Open
9300-STACK-3 Po3 Open <-- port is OPEN and forwarding all VLANs
9300-STACK-2 Po3 Open
9300-STACK-2 Po1 Open
9200-STACK-1 Po2 Sec Open <-- secondary edge port
인터페이스에서 REP 상태를 확인합니다.
9200-STACK-1#show interface port-channel 1 rep <-- check REP status for the port
Interface Seg-id Type LinkOp Role
---------------------------- ------ -------------- ----------- ----
Port-channel1 1 Primary Edge TWO_WAY Open <-- Edge port is not blocking any VLANs
세부사항 출력을 통해 포트의 REP 상태에 대한 추가 통찰력 제공
9200-STACK-1#show interfaces port-channel1 rep detail
Port-channel1 REP enabled
Segment-id: 1 (Primary Edge)
PortID: 08E978BC1A4FDD80 <-- port ID made from system MAC + random number
Preferred flag: No
Operational Link Status: TWO_WAY
Current Key: 0BE934ED1B4798003405 <-- cached key of the segment Alternate port
Port Role: Open
Blocked VLAN:
Admin-vlan: 1 <-- REP admin vlan
Preempt Delay Timer: disabled
LSL Ageout Timer: 5000 ms <-- default link status adjacency hold down timer
LSL Ageout Retries: 5
Configured Load-balancing Block Port: none <-- no load balancing configured on the port
Configured Load-balancing Block VLAN: none
STCN Propagate to: none <-- sending TCNs into STP domain is disabled
LSL PDU rx: 924743, tx: 612406
HFL PDU rx: 1, tx: 1
BPA TLV rx: 611945, tx: 2
BPA (STCN, LSL) TLV rx: 0, tx: 0
BPA (STCN, HFL) TLV rx: 0, tx: 0
EPA-ELECTION TLV rx: 13, tx: 11
EPA-COMMAND TLV rx: 0, tx: 0
EPA-INFO TLV rx: 152998, tx: 152999
명령 요약
show rep topology
show rep topology detail
show rep topology segment <Id>
show rep topology segment <Id> detail
show rep topology archive
show rep topology archive detail
show interfaces gig<X/X> rep
show interfaces gig<X/X> rep detail
문제 해결
입력 큐 쐐기
특정 버전의 코드에서는 REP HSL 패킷이 인터페이스의 입력 대기열을 쐐기식으로 만들 수 있습니다.
- 이는 HSL 패킷이 입력 대기열을 채우고 LSL 통합 패킷을 처리할 수 없는 경우 REP 통합에 영향을 줄 수 있습니다
- 이는 Cisco 버그 ID CSCwc에 의해 발생합니다52868
- 입력 대기열이 모든 프로토콜의 처리를 처리합니다. 큐가 "전체"가 되면 적법한 네트워크 제어 트래픽이 제외되므로 수동으로 비울 수 없습니다.
큐 웨지의 증상
- CDP, IGMP 등의 프로토콜이 작동하지 않습니다(CDP, IGMP 멀티캐스트 프로그래밍 문제 등에서 네이버가 손실될 수 있음).
- 이러한 증상은 처리해야 하는 인터페이스에 도달하는 기능과 프로토콜에 따라 달라집니다.
- 인터페이스 입력 대기열은 인터페이스에 도착한 패킷이 대기열에 추가되고 처리를 위해 CPU에 보내지는 데 사용됩니다
- 특정 패킷을 대기열에서 뺄 수 없어 결국 입력 대기열 한계에 도달하면 입력 대기열이 쐐기꼴로 바뀝니다
- 인터페이스 입력 대기열 제한에 도달하면 다른 패킷을 저장할 수 없으며 대신 패킷이 삭제됩니다.
큐 쐐기 확인
REP 관리 VLAN을 통한 REP 하드웨어 플러딩 레이어 패킷으로 인해 L2 포트의 입력 대기열이 쐐기형 상태가 됩니다.
C9300#show interface gi1/0/48
GigabitEthernet1/0/48 is up, line protocol is up (connected)
Hardware is Gigabit Ethernet, address is 7486.0b0c.e0b0 (bia 7486.0b0c.e0b0)
Description: PORT
MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
Full-duplex, 1000Mb/s, media type is 10/100/1000BaseTX
input flow-control is on, output flow-control is unsupported
ARP type: ARPA, ARP Timeout 04:00:00
Last input 01:14:45, output 00:00:00, output hang never
Last clearing of "show interface" counters never
Input queue: 2438/2000/16/0 (size/max/drops/flushes); Total output drops: 0 <-- 2438 frames in the input queue who's limit is 2000
<...snip...>
이 CLI를 확인하여 인터페이스에서 REP HFL 프레임이 있는 버퍼를 보유하고 있는지 확인합니다.
- HFL 프레임의 대상 MAC은 0100.0ccc.ccce입니다.
C9300#show buffers input-interface gi1/0/48 packet
Tracekey : 1#09f7811786f1de5ddfa0f5542a69f593
Buffer information for Middle buffer at 0x7F81FE8E9000
data_area 0x7F820F78F004, refcount 1, next 0x0, flags 0x210
linktype 189 (LINK_REP), enctype 3 (SNAP), encsize 22, rxtype 88
if_input 0x7F820E71DB50 (GigabitEthernet1/0/48), if_output 0x0 (None)
inputtime 3d14h (elapsed 03:11:48.761)
outputtime 00:00:00.000 (elapsed never), oqnumber 65535
datagramstart 0x7F820F78F072, datagramsize 565, maximum size 804
mac_start 0x7F820F78F072, addr_start 0x7F820F78F072, info_start 0x7F820F78F080
network_start 0x7F820F78F088, transport_start 0x0, caller_pc :55FBF3ED3000+37680AC
7F820F78F072: 01000CCC CCCEA0F8 ...LLN x <--- HFL destination MAC is in the queue
큐 쐐기 교정
- 디바이스를 재부팅합니다. 다시 로드하지 않으면 입력 대기열을 지울 수 없습니다. Shut/no shut of interface는 이러한 버퍼를 지우지 않습니다.)
- 이 문제의 영향을 받지 않는 코드 버전으로 업그레이드
- 입력 대기열 크기 조정(더 이상 HSL 프레임이 도착하지 않을 것이 확실한 경우 입력 대기열 크기를 늘릴 수 있습니다. 다음에 HSL 플러드가 발생할 경우 문제가 다시 발생할 수 있습니다.)
이 상태에서는 몇 가지 REP syslog가 발생합니다. 이러한 로그는 다음 섹션에서 호출됩니다
참고: 이 로그는 네이버 간 LSL 손실을 나타내는 일반 로그이며, 다른 이유로 발생할 수 있습니다. 따라서 이 특정 문제를 식별하는 것은 유용하지만 이 문제에 국한되지는 않습니다
담당자 로그 메시지
로그 메시지 |
정의 |
복구 작업 |
%REP-4-LINKSTATUS: 인접 디바이스가 응답하지 않아 TenGigabitEthernet1/1/1(세그먼트 1)이 작동하지 않습니다. |
네이버 간 LSL 손실을 나타냅니다. |
- 인터페이스에 쐐기형 입력 큐가 없는지 확인합니다.
- 링크가 CRC 및 기타 증가 오류로부터 자유롭는지 확인
- CPU 펀트 경로에 CoPP 또는 드롭이 없는지 확인합니다.
|
%REP-5-EDGEMISCONFIG: 잘못된 토폴로지입니다. 세그먼트에 대해 2개 이상의 에지 포트가 구성됨 |
수신된 에지 포트 광고가 전송된 에지 포트 광고와 동일하지 않은 경우 표시됨 |
- 토폴로지의 여러 포트가 실패 상태에서 복구 중인 경우 예상되는 동작이지만, 토폴로지가 설정된 후에는 이 메시지를 볼 수 없습니다.
- rep 토폴로지에서 장애가 발생한 모든 포트는 에지 포트로 작동하여 알림을 전송합니다
|
관련 정보