프로필

내 사진
Joo Hoon Park AB , Male 190 / 88 Network Engineer

2010년 11월 28일 일요일

EAPS (Ethernet Automatic Protection Switching)

EAPS 개요
— Ethernet Ring 구조의 Layer2스위치들의 링크를
     보호하기 위한 프로토콜. 즉, 루핑방지 프로토콜.
— STP와 유사하지만 더나은 기능 제공.
     - Convergence(복구)시간 :1초미만(<50ms)이 소요되며
                                       (참고 : STP 60초), VLAN Domain별로 
                                       별도의 Ring을 구성할 수있다.
•   Ring내의 Node들은 하나의 Master Node와 나머지  
      Transit Node로  기본 구성되어짐.
•   각 Node에는 Primary Port와 Secondary Port의 두 개의  
      Ring Port가 설정되어진다.
•   Ring 내의 모든 Node에는 Protect VLAN과 Control VLAN이 
    설정 되어진다.
      - Protect VLAN: 실질적인 Data Traffic이 전달되는 
     통로 역할을 한다.
      - Control VLAN: 오직 EAPS Message를 전달하기 위해 
     사용되어진다.
•   Master Switch에서 Secondary Port로 설정되어진 Interface는  
     Data Traffic이 논리적으로 Blocking 되어진다.      
      - Control VLAN내의 EAPS Control Traffic은 예외
      (STP의 BPDU와 같은 개념) 
•   그 Ring이 완벽한 상태라면, Master Switch의 Protect VLAN 내의 
      Secondary Port는 Block 상태를 유지한다.


EAPS 동작설명

• 설정된 Master Node는 지정된 Primary Port를 통하여 
  Hello Packet을 전송    
-> Secondary Port를 통해 해당 Packet수신시 Loop구조를 
    인식하며 Secondary Port로 수신되는 Protect VLAN의  
    Traffic을 Blocking하게 된다.


EAPS Fault Detection (장애 발견)
   ※ 장애발생시 Detection방법에는 두가지가 있다.


1. Polling
- Master는 Control VLAN을 통해 지정된 Hellotime(milliseconds) 
  마다 “Health”Packet을 보내고, 그것을 Secondary Port
  (Control VLAN은 이 Port가 Block되어있지 않음)로 받을 것 이다.
- Master가 Health Packet을 받으면, Fail timer를 Reset 한 후
  Complete State로 유지된다.
- Master가 기본 설정되어 있는 Failtime내에 Health Packet을 
 받지 못한다면, Failed State로되고, 논리적으로 Block 되어있던 
  Protect VLAN의 Secondary Port를 Open하여 Data Traffic을
 흐르게 한다. 또한 FDB를 Flush하고, Control VLAN을 통해  
  Ring 내의 모든 Transit Node들에게 “Flush FDB” Message를 보낸다.
->그럼 다시 Protect VLAN의 Secondary Port를 논리적으로 Block하고  
     Ring 내 모든 Transit Node로 “FDB Flush Message”를 보낸다.
2. Trap Message
- 어떤 Transit node가 Ring ports들 중 Down이 발생한다면,  
 즉시 Control VLAN내 유용한 Port를 통해 Master Node로 
  “Link-Down” Message를 보낸다. (Send Alert)
- Master Node가 이 Message을 받는 순간 Failed State로 되고
  Polling의 경우와 동일한 상태로 논리적으로 block되어있던  
  Secondary Port를 Open한다.


EAPS Fault Restoration (장애 복구)
 - Master Node는 Primary Port를 통해 지속적으로
   “Health Message” 를 보낸다.
 - Ring의 상태가 Fail된 상태 동안은 Master의 Fail Timer를 
   Timing out으로 유지하고, Master Node는 Failed State로 유지된다. 
 - 장애 복구 시 Master Node는 Control VLAN의 Secondary Port로
   “Health Message”를 받고 그 Ring은 복구 되어진 것으로 판단한다.
- 그럼 다시 Protect VLAN의 Secondary Port를 논리적으로 Block하고 
   Ring 내 모든 Transit Node로 “FDB Flush Message”를 보내 
  복구사실을 알린다.
※ Preventing a transitory loop restoration

•  전의 항목까지의 체제에서 Transit Node의 Port가 복구되는  
  순간부터 Master Node가 그 Ring이 Complete한 것을 
  인식할 때까지 시스템에 일시적인 Loop가 발생 될 수 있다.
   ->이것은 Port가 복구되어 Data Traffic을 흐르는 순간  
       Master Node의 Secondary Port는 여전히 Open되어있기 
     때문이다.
•  Ring 내에 이 일시적인 Loop 발생을 방지하기 위해  
   Transit Node가 Link Up을 인식하는 순간 그 Port를 일시적인
   Block state로 둔다.
  -> 이 일시적인 Port를 Temp Blocked Port라고 하고,
        상태는 PREFORWARDING으로 유지된다.
•  Master Node로부터 “Flush FDB Message”를 받는 순간 FDB를  
   Flush 후 PREFORWARDING 상태의 Port를 Open한다.


EAPS 용어 설명


EAPS 기본 설정
# create eaps <name> /eaps 도메인 생성 및 도메인 이름 지정
# config eaps <name> mode <master | transit> 
   /eaps 모드설정(마스터, 트랜짓 설정)
# config eaps <name> hellotime <seconds>   
   /eaps 헬로타임값 설정(즉, 헬로주기설정)
# config eaps <name> failtime <seconds>   
   /eaps fail타임값 설정
   ※ failtime값은 hellotime값보다 커야하며, 기본으로
       hellotime값은 1초, failtime값은 3초이다.
# config eaps <name> failtime expiry-action 
   <open-secondary-port | send-alert>
   ※ failtime이 만료되었을때 transit스위치는 send-alert으로,
     master는 open-secondary-port로 설정한다.
# config eaps <name> <primary | secondary> 
   port <port number>
   /primary, secondary 포트설정
# config eaps <name> add control vlan <vlan_name>
   /control vlan은 eaps 메세지만 주고받는 용도
# config vlan <name> qosprofile qp8
   /control vlan의 전송우선순위를 가장 높이기위해 사용
   ※ 빠른 복구와 빠른 수렴을 위하여 Control vlan의 
      우선순위를 높여야한다.
# config eaps <name> add protect vlan <vlan_name>
   /직접적인 데이터 운반하는 protect vlan 설정
# config eaps fast-convergence <off/on>  
   /빠른 복구 사용여부 결정
# enable eaps  /eaps 활성
# enable eaps <domain_name>  /eaps 도메인 활성


EAPS LAB

     
                                         < Test 결과>

댓글 2개: