2010년 3월 14일 일요일

[RNS] HSRP란 무엇인가?







1. HSRP(Cisco Hot Standby Router Protocol)란 무엇인가?


HSRP(Hot Standby Router Protocol)은 네트워크를 중단 없이 지속적으로 운영하기 위해 고안된 기술이다. 즉 호스트 PC가 첫번째 홉 라우터인 디폴트 게이트웨이의 IP 주소에 접속하지 못하는 상황을 대비한 프로토콜이다. 이 프로토콜은 다중 접속, 멀티캐스트 혹은 브로드캐스트가 가능한 이더넷과 같은 네트워크에서 사용될 수 있도록 설계되었다. 이 프로토콜은 동적 라우팅 프로토콜을 대체하기 위해 개발된 것이 아니다.

로컬 네트워크 상에서 여러 라우터가 단일 가상 라우터로 동작할 때 이들을 HSRP 그룹 혹은 대기 그룹(Standby Group)이라고 한다. 그룹 내에서 한 개의 라우터가 호스트 PC가 보낸 패킷을 포워딩한다. 이를 활성 라우터(Active Router)라고 한다. 그 외 그룹 내의 라우터를 대기 라우터(Standby Router)라고 한다. 활성 라우터에 장애가 발생할 경우 대기 라우터가 활성 라우터를 대신하여 패킷을 포워딩할 것이다. 여러 대의 라우터에 HSRP 프로토콜이 적용되더라도 단 한개의 활성 라우터만이 패킷을 포워딩한다.

한 개의 로컬 네트워크에 여러개의 대기 그룹이 존재할 수 있으며 각 대기 그룹은 한 개의 가상 라우터를 에뮬레이트한다. 각 대기그룹에는 하나의 MAC 주소와 IP 주소가 할당되며 IP 주소는 로컬 네트워크에서 사용되는 서브넷에 포함되어야 하지만 라우터 인터페이스, 로컬 네트워크 상의 호스트, 그리고 다른 HSRP 그룹에 할당된 가상 IP 주소와는 달라야 한다.


2. 용어 및 메시지

HSRP는 그룹 내 라우터들 중 활성 라우터를 선출하기 위해 우선순위를 이용한다. 활성 라우터로 설정하기 위해서는 HSRP 그룹 내의 라우터들 중 가장 높은 우선순위를 부여하여야 한다. 우선순위 기본 값은 100이기 때문에 활성 라우터로 선출한 라우터에 이 값보다 높은 순위를 부여한다.

HSRP는 그룹 내 라우터끼리 우선순위를 교환하기 위해 멀티캐스트 메시지를 보낸다. 활성 라우터가 설정된 시간 동안 Hello 메시지를 보내지 못할 경우 다음 번 우선 순위 값을 가진 대기 라우터가 활성 라우터가 된다. HSRP에서 사용되는 용어와 라우터가 교환하는 메시지는 아래와 같다.
  • 활성 라우터(Active Router) - 그룹 내에서 패킷을 포워딩하는 라우터
  • 대기 라우터(Standby Router) - 첫번째 예비 라우터
  • 대기 그룹(Standby Group) - HSRP 그룹 내에 속한 수 개의 라우터
  • Hello 타임 - 그룹 내 라우터에서 받는 연속된 HSRP Hello 메시지의 시간 간격
  • Hold 타임 - Hello 메시지를 받은 후 해당 라우터에 장애가 발생한 것으로 간주하기 까지의 경과 시간
  • Hello - Hello 메시지는 다른 HSRP 라우터에게 HSRP 우선순위 및 상태 정보를 전달한다. 기본값으로 매 3초마다 Hello 메시지를 송신한다.
  • Coup - 대기 라우터가 활성 라우터 역할을 맡게 되면 Coup 메시지를 보낸다.
  • Resign - 활성 라우터가 셧다운되기 전이나 더 높은 HSRP 우선순위를 가진 라우터가 Hello 메시지를 보내면 Resign 메시지를 보낸다.

3. 인터페이스 상태

Active
라우터가 가상 MAC 주소로 보내진 패킷을 포워딩한다. 또한 정기적으로 Hello 메시지를 보낸다. 선출 과정이 끝나면 그룹 내에서 Active 상태인 라우터가 하나 만이 존재해야 한다.

Standby
라우터는 활성 라우터의 후보로 선출되며 Hello 메시지를 정기적으로 보낸다. 선출 과정이 끝나면 그룹 내에서 Standby 상태인 라우터가 하나 만이 존재해야 한다.

Speak and Listening
라우터는 Hello 메시지를 정기적으로 보내며 다른 HSRP 라우터가 보내는 Hello 메시지를 받는다.

Listening
라우터는 다른 HSRP 라우터가 보내는 Hello 메시지를 받는다.

4. 타이머


각 라우터들은 Active 타이머, Standby 타이머, Hello 타이머 등 3개의 타이머를 관리한다.

Active 타이머는 활성 라우터의 모니터링에 사용된다. Active 타이머는 활성 라우터로부터 Hello 메시지가 도달하면 바로 시작된다.

Standby 타이머는 대기 라우터의 모니터링에 사용된다. Standby 타이머는 대기 라우터로부터 Hello 메시지가 도달하면 바로 시작된다.

Hello 타이머는 Hello 시간이 경과되기 전에 만료된다. 라우터가 Speak, Standby, 또는 Active 상태라면 Hello 타이머가 만료되기 전에 Hello 메시지를 발생하여야 한다.

5. 특징

Preemption
HSRP Preemption은 높은 우선순위를 가진 라우터가 바로 활성 라우터가 될 수 있도록 하는 기능이다. 우선순위는 관리자가 설정한 priority 값과 IP 주소로 결정되며 큰 수치가 높은 우선순위를 갖는다.

높은 우선순위를 가진 라우터가 낮은 우선순위의 라우터를 대체할 때 coup 메시지를 보내며 낮은 우선순위의 활성 라우터는 coup 메시지를 받거나 더 높은 우선순위의 라우터가 보낸 Hello 메시지를 수신하면 speak 상태로 전환하며 resign 메시지를 보낸다.

Preempt delay
preempt delay는 설정된 시간 동안 활성 라우터 선출을 지연시켜 활성 라우터가 새로 선출되기 전에 다른 라우터들이 라우팅 테이블을 구축할 수 있도록 하는 기능이다.

Cisco IOS 12.0(9) 이전 버전까지는 라우터가 재부팅할 때 preempt delay가 시작되지만 12.0(9) 버전에서는 preemption이 처음 시도될 때 시작된다.

Interface Tracking
인터페이스를 지정하여 해당 인터페이스에 장애가 발생할 경우 HSRP 프로세스가 HSRP의 우선 순위를 변경할 수 있도록 한다. 지정된 인터페이스의 line protocol이 다운되면 라우터의 HSRP 우선순위가 낮아져 그룹 내 다른 라우터가 활성라우터가 된다.

설정된 인터페이스가 여러 개이며 이들 인터페이스가 다운될 경우 우선 순위는 반복해서 감소된다. 감소 수치가 지정되었을 경우 인터페이스가 다운되었을 때 지정된 수치만큼 감소되며 다운된 인터페이스 수만큼 반복되어 감소된다. 수치를 지정하지 않을 경우에는 감소 수치는 10이며 역시 반복적으로 감소된다.

다중 HSRP 그룹
다중 HSRP 그룹(Multiple HSRP Group, MHSRP)은 Cisco IOS 10.3에서 도입되었다. 여러 네트워크 상에서 Redundancy와 load-sharing 기능을 제공한다. 간단히 설명하면 라우터가 한 HSRP 그룹 내에서 활성 라우터로서 패킷을 포워딩하면서 동시에 다른 HSRP 그룹 내에서는 대기 혹은 listen 상태가 될 수 있다.

MAC 주소 설정
Advanced Peer-to-Peer Netwoking(APPN)와 같은 프로토콜은 라우팅을 하는 게이트웨이를 찾기 위해 MAC 주소를 사용한다. 이 경우에 standby mac-address 명령어를 이용하여 MAC 주소를 지정할 수 있다. 실제 명령어는 standby [group] mac−address mac−address 이며 토큰링 인터페이스에는 사용할 수 없다.

Syslog 지원
HSRP의 Syslog에 대한 지원은 Cisco IOS 11.3에 추가되었다. syslog 서버에 활성 및 대기 라우터의 로그 저장 및 추적을 효율적으로 할 수 있게되었다.


6. 동작 매커니즘



위 그림에서 가상 라우터의 MAC 주소는 0000.0c07.ac01이다. HSRP가 설정될 때 라우터에는 다음의 MAC 주소가 할당된다. 이때 토큰링 네트워크는 제외이다. 토큰링 네트워크에서는 functional address를 사용한다.

 0000.0c07.ac**   (**은 HSRP의 그룹 번호이다)

 
192.1.1.0 네트워크 상의 호스트를 설정할 때 라우터 A의 IP 주소 대신 가상 라우터의 IP 주소를 기본 게이트웨이로 입력한다. Host A가 Host B로 패킷을 보낼 때는 가상 라우터의 MAC 주소로 패킷을 보낸다.

위 그림에서는 라우터 A가 활성 라우터이다. 가상 라우터의 IP 주소와 MAC 주소가 설정되어 있으며 가상 라우터로 보내진 모든 패킷은 라우터 A의 인터페이스를 거쳐 Singapore 네트워크로 보내진다. 대기 라우터인 라우터 B도 가상 라우터의 IP 주소와 MAC 주소가 설정되어 있으며 라우터 A가 패킷 전송을 못하게 될 경우 라우팅 프로토콜이 재정비되며 라우터 B가 라우터 A의 역할을 맡게 되어 활성 라우터가 된다. 즉, 라우터 B가 가상 IP 주소와 MAC 주소에 응답한다. Host A는 Host B에 패킷을 보내기 위해 가상 라우터의 IP 주소를 계속해서 사용하며 라우터 B가 이를 Seoul 네트워크를 거쳐 Singapore 네트워크로 보낸다. 라우터가 다시 동작할 때까지 HSRP 설정을 통해서 라우터 B가 Tokyo 네트워크 상의 사용자에게 Singapore 네트워크까지 연결을 보장한다. 라우터 B는 활성 라우터 역할을 하면서 동시에 Tokyo 네트워크와 Seoul 네트워크 사이의 패킷 전달을 계속 수행할 것이다.

호스트가 ARP 프록시를 사용하도록 설정되어 있어도 HSRP를 사용할 수 있다. 활성 HSRP 라우터가 로컬 네트워크 상에 존재하지 않는 호스트의 ARP 요청을 받을 경우 라우터는 가상 라우터의 MAC 주소로 응답한다. 활성 라우터에 장애가 발생하거나 네트워크가 다운되었을 경우 활성 라우터로 선출되는 라우터가 가상 라우터로 보내지는 패킷을 받아 목적지로 전달한다.

--------------------------------
참고 자료
1. RFC 2281 - http://tools.ietf.org/html/rfc2281
2. Cisco.com - Using HSRP for Fault-Tolerant IP Routing
3. Aaron’s Worthless Words - Running HSRP for Availability

댓글 없음:

댓글 쓰기