본문 바로가기

Ryu's Tech

[CCNP Switch] HSRP [ Hot Standby Routing Protocol ] - RFC2281


HSRP 는 Gateway 를 이중화 하여 Gateway에 대한 Redundency 를 가지게 해주는 프로토콜이다.
Duplex Gateway 라고도 할 수 있으며, Duplex Switch, Duplex Router 모두 가능한 말이다.
아무튼 이 이중화 게이트웨이, 이중화 스위치, 이중화 라우터.. 이에 대해 알아보자.





위와 같은 그림에서 양쪽의 라우터에서 HSRP 설정을 해 주게 되면, 중간에 가상의 라우터가 생기는 것이다. 이는 가상의 IP를 가지고 Mac address 역시 가상의 값을 가진다.
그렇게 되면 PC는 가상의 라우터로 Default Gateway를 셋팅하게 되고, 만약 라우터 중 하나가 죽더라도 곧바로 Stanby하고 있는 라우터가 Gateway의 역할을 이어받기 때문에 Fault Tolerant [장애 허용] 구성이 가능한 것이다.

  • HSRP
  • UDP 1985
  • Multicast 224.0.0.2
  • Multicast Message [ PDU ]
    • Hello - hello message는 다른 HSRP 라우터에게 Priority 와 state information을 전송한다.
    • Coup - Standby 라우터가 active router의 기능을 취하려 할때 전송된다.
    • Resign - Active 라우터가 전송하는 메세지로, 다운되거나 더 큰 priority를 받았을때 전송한다.
  • State
    • Initial - 초기상태로, 미동작시 상태
    • Learn - 학습 상태로 Virtual IP 를 알지 못하고, Active Router로부터 Hello 메세지를 수신 못한 상태이다.
    • Listen - Hello[virtual ip]를 받은 상태이다.
    • Speak - Hello를 주기적으로 송수신하는 상태로, Active 와 Standby를 선출한다.
    • Standby - 선출이 끝난 상태이다.
    • Active - 선출이 끝난 상태이다. 이제 Active Router는 Virtual IP 와 Virtual MAC으로 Packet을 전송한다.
  • Interval Time
    • Hello interval - 3 sec
    • Dead Interval - 10 sec
  • Priority
    • 1~255
    • Priority 값이 높은 장비가 Active Router가 되며, Default-Value는 100이다.
  • Virtual Mac
    • 0000.0C07.AC__ [ 마지막은 그룹 ID 2자리 ]

 

그렇다면 이제 한번 직접 설정을 해 보겠습니다.


위와 같은 토폴로지로 해보겠습니다.

설명을 드리자면 R1, R2는 HSRP를 돌릴 라우터 이고, 각각 ISP와 연결되어 있습니다.
그래서 아래 연결된 PC를 통해서 Virtual IP 로 Gateway로 설정하는 작업을 해 보겠습니다.

////// R1
interface FastEthernet0/0
 ip address 172.16.1.253 255.255.255.0
 duplex auto
 speed auto
 standby 1 ip 172.16.1.254
 standby 1 priority 200
 standby 1 preempt
 standby 1 track Serial1/0 100
!

////// R2
interface FastEthernet0/0
 ip address 172.16.1.252 255.255.255.0
 duplex auto
 speed auto
 standby 1 ip 172.16.1.254
 standby 1 priority 150
 standby 1 preempt
!

이게 끝입니다.
각각 명령어에 대해서 알아 보겠습니다.
먼저 두 라우터는 standby 1 ip 172.16.1.254 명령을 통해서 HSRP 를 활성화 시키게 됩니다.
standby 다음에 쓰인 숫자 1은 그룹 번호이니 꼭 맞춰 주셔야 합니다.


Priority를 통해서 서로 Active Router 선출을 하게 되는데, 똑같이 설정하면 최초 설정된 라우터가 Active가 됩니다.
아무튼, 각각의 라우터에 사용할 Priority를 다르게 주면 됩니다.
만약 priority 를 100으로 설정하시면 당연히 디폴트 값이므로 show running-config에서 안 보이게 됩니다.


 standby 1 preempt
그리고 Preempt 명령이 매우 중요합니다.
만약 R1이 down되었다고 치면, R2가 곧 Active가 될 것입니다. 그리고 나중에 R1이 복구 되면 Priority가 200으로 R2보다 높은 Priority를 가지고 있습니다.
하지만 R2는 가지고 있는 Active를 다시 돌려주지 않습니다.

여기서 위와 같이 Preempt 명령을 걸어주게 되면 이와 같은 상황에서 Active가 되었더라도 Priority를 비교하여 Active를 넘겨 주는 것입니다.


 standby 1 track Serial1/0 100
그리고 R1에서 쓰인 track은 track에서 설정된 인터페이스를 감시하는 것입니다. 인터페이스를 감시하다가 인터페이스가 Down되면, 100의 숫자만큼 감소 시키겠다는 소리입니다.
R1의 s1/0이 다운되면 ISP로 나가는 길이 R2로 연결되어 있으니 돌아가게 되거나, Static으로 잡혀 있다면 연결이 안 되게 되므로, R2를 Active 상태로 넘겨주는 것입니다.




기본적인 설정은 여기서 끝이지만 몇가지 더 알아 보겠습니다.



HSRP on SVI
위와 같은 구성은 라우터에서 구성한 부분이지만 스위치에서 역시 가능합니다.
예를들어


이와 같은 토폴로지에서 DLS1 , 2 에서 설정을 해 줄때
만약 VLAN 1이 돌아가고 있다고 하면 이 역시 인터페이스에서 설정해 주면 됩니다.
스위치의 인터페이스는 SVI 죠. DLS 1과 DLS2 에서 interface vlan 1 에서
standby 프로토콜을 맞춰 주면 됩니다.
명령어는 완전히 똑같으니 생략 하겠습니다.


HSRP Timer

# standby [group-number] timers [msec] hellotime [msec] holdtime
Example:
Router(config-if)# standby 1 timers 5 15

위와 같이 hello timer 와 hold timer를 설정할 수 있습니다.
hold timer 수치는 기본적으로 hello timer의 3배와 같거나 큰 수를 사용합니다.


HSRP 2 version 2

standby version {1 | 2 }
Example:
Router(config-if)# standby version 2

  • 이전에는 millisecond 타이머 값은 사용되지 않았지만, version 2에서는 가능
  • Group Number의 제한이 0 - 4095 로 확장
  • HSRP 2의 패킷포맷에는 6-byte 의 식별자가 있어 Trouble Shooting이 유연해졌다.
  • HSRP 2의 패킷 포맷에는 이제 TLV [ type-length-value ] 포맷을 사용한다.
  • Multicast Address 가 224.0.0.102로 변경되었다. 새로운 Multicast Address는 CGMP [Cisco Group Management Protocol] leave processing 을 가능하게 한다고 하네요. 뭔지는 자세히 모르겠습니다.
  • LAN이 emulating 되는 ATM Interface에서는 HSRP가 불가능합니다.
  • HSRP 2는 HSRP 1과 호환되지 않습니다.
    • 같은 라우터의 다른 인터페이스 [ 다른 서브넷 ] 에서는 다른 버전을 사용할 수 있습니다.
    • version 2에서 version 1으로 변경시 그룹넘버를 0 - 255 으로 사용하고 있지 않다면 변경이 불가능합니다.