네트워크에서 게이트웨이는 클라이언트가 외부 네트워크로 나가기 위해 반드시 거치는 지점이다.
그런데 이 게이트웨이 장비가 하나뿐이라면, 해당 장비 장애 시 같은 VLAN에 있는 단말들은 외부 통신이 불가능해진다.
이를 해결하기 위해 사용하는 기술이 게이트웨이 이중화 프로토콜, 즉 FHRP(First Hop Redundancy Protocol) 이다.
대표적인 프로토콜로는 다음 세 가지가 있다.
이번 글에서는 게이트웨이 이중화가 왜 필요한지, 각 프로토콜이 어떻게 동작하는지, 그리고 실무에서 어떤 차이가 있는지 정리한다.
일반적인 네트워크에서 PC는 외부 네트워크와 통신하기 위해 기본 게이트웨이를 사용한다.
예를 들어 PC의 설정이 다음과 같다고 가정해보자.
IP Address : 192.168.10.10
Subnet Mask : 255.255.255.0
Default Gateway : 192.168.10.1
PC는 같은 대역이 아닌 목적지로 패킷을 보낼 때 192.168.10.1로 패킷을 전달한다.
문제는 192.168.10.1을 가진 라우터 또는 L3 스위치가 장애가 났을 때다.
PC ---- Gateway ---- Internet
장애 발생
이 경우 PC 입장에서는 기본 게이트웨이에 도달할 수 없으므로 외부 통신이 끊긴다.
장비를 두 대로 구성하면 장애에 대비할 수 있지만, 단순히 게이트웨이 장비를 두 대 둔다고 문제가 해결되지는 않는다.
PC의 기본 게이트웨이는 보통 하나만 설정하기 때문이다.
Gateway 1 : 192.168.10.2
Gateway 2 : 192.168.10.3
PC가 192.168.10.2를 기본 게이트웨이로 사용하고 있다면, 192.168.10.2 장비가 장애 났을 때 자동으로 192.168.10.3으로 넘어가지 않는다.
그래서 두 대 이상의 게이트웨이 장비를 하나의 논리적인 게이트웨이처럼 보이게 만드는 기술이 필요하다.
이때 사용하는 것이 바로 FHRP다.
FHRP(First Hop Redundancy Protocol) 는 여러 대의 라우터나 L3 스위치를 하나의 가상 게이트웨이처럼 동작하게 만드는 프로토콜이다.
클라이언트는 실제 장비의 IP가 아니라 가상 IP(Virtual IP) 를 기본 게이트웨이로 사용한다.
Client Default Gateway : 192.168.10.1
Switch A Real IP : 192.168.10.2
Switch B Real IP : 192.168.10.3
Virtual Gateway IP : 192.168.10.1
클라이언트는 192.168.10.1이라는 가상 IP만 알고 있으면 된다.
실제로는 Switch A 또는 Switch B 중 하나가 이 가상 IP에 대한 게이트웨이 역할을 수행한다.
장애가 발생하면 다른 장비가 가상 IP와 가상 MAC을 이어받아 통신을 계속 처리한다.
게이트웨이 이중화 프로토콜을 이해하려면 다음 개념을 알아야 한다.
클라이언트가 기본 게이트웨이로 사용하는 IP 주소다.
예를 들어 VLAN 10의 게이트웨이를 다음과 같이 구성할 수 있다.
Virtual IP : 192.168.10.1
PC들은 실제 장비 IP가 아닌 이 Virtual IP를 기본 게이트웨이로 설정한다.
Virtual IP에 매핑되는 가상 MAC 주소다.
PC가 게이트웨이 IP에 대해 ARP 요청을 보내면, Active 장비가 Virtual MAC으로 응답한다.
PC: Who has 192.168.10.1?
Active Gateway: 192.168.10.1 is at virtual-mac
이후 PC는 외부로 나가는 패킷의 목적지 MAC 주소를 Virtual MAC으로 설정한다.
즉, PC 입장에서는 실제 어떤 장비가 Active인지 몰라도 된다.
FHRP에서는 여러 장비 중 하나가 실제 게이트웨이 역할을 수행한다.
프로토콜에 따라 용어가 조금 다르다.
HSRP : Active / Standby
VRRP : Master / Backup
GLBP : AVG / AVF
Active 또는 Master 장비가 정상일 때는 해당 장비가 패킷을 처리한다.
장애가 발생하면 Standby 또는 Backup 장비가 역할을 이어받는다.
FHRP 장비들은 서로의 상태를 확인하기 위해 Hello 패킷을 주고받는다.
Hello 패킷을 통해 상대 장비가 살아 있는지 확인하고, 일정 시간 동안 Hello를 받지 못하면 장애로 판단한다.
Gateway A <---- Hello ----> Gateway B
어떤 장비를 Active 또는 Master로 만들지 결정할 때 사용하는 값이다.
일반적으로 Priority가 높은 장비가 Active 역할을 맡는다.
Switch A Priority : 110
Switch B Priority : 100
위와 같은 경우 Switch A가 우선적으로 Active가 된다.
Preemption은 우선순위가 높은 장비가 다시 복구되었을 때 Active 역할을 다시 가져올 수 있게 하는 기능이다.
예를 들어 Switch A의 Priority가 110이고 Switch B의 Priority가 100이라고 가정해보자.
처음에는 Switch A가 Active다.
Switch A : Active
Switch B : Standby
Switch A에 장애가 발생하면 Switch B가 Active가 된다.
Switch A : Down
Switch B : Active
이후 Switch A가 복구되었을 때 Preemption이 활성화되어 있으면 Switch A가 다시 Active 역할을 가져온다.
Switch A : Active
Switch B : Standby
반대로 Preemption이 비활성화되어 있으면 Switch B가 계속 Active로 남을 수 있다.
게이트웨이 장비 자체는 살아 있지만, 상단 회선이나 특정 인터페이스에 장애가 발생할 수 있다.
이때 단순히 장비의 생존 여부만 보고 Active를 유지하면 문제가 생긴다.
예를 들어 Switch A는 살아 있지만 인터넷 방향 업링크가 끊겼다고 가정해보자.
Client
|
Switch A ---- X ---- Internet
Switch B ----------- Internet
Switch A가 계속 Active 상태라면 클라이언트 트래픽은 Switch A로 전달되지만 외부로 나가지 못한다.
이 문제를 해결하기 위해 Interface Tracking을 사용한다.
특정 인터페이스가 Down되면 Priority를 낮춰서 다른 장비가 Active가 되도록 유도한다.
Switch A Priority : 110
Uplink Down : -20
Result Priority : 90
Switch B Priority : 100
결과적으로 Switch B가 Active가 된다.
HSRP(Hot Standby Router Protocol) 는 Cisco에서 만든 게이트웨이 이중화 프로토콜이다.
Cisco 장비 환경에서 많이 사용된다.
HSRP에서는 하나의 장비가 Active, 다른 장비가 Standby 역할을 한다.
Virtual IP
192.168.10.1
|
---------------------
| |
Switch A Switch B
Active Standby
192.168.10.2 192.168.10.3
클라이언트의 기본 게이트웨이는 Virtual IP인 192.168.10.1이다.
실제 패킷 처리는 Active 장비가 담당한다.
Active 장비에 장애가 발생하면 Standby 장비가 Active로 전환된다.
HSRP는 가상 MAC 주소를 사용한다.
HSRP v1의 Virtual MAC 형식은 다음과 같다.
0000.0c07.acXX
여기서 XX는 HSRP 그룹 번호를 16진수로 표현한 값이다.
예를 들어 HSRP Group 10이면 Virtual MAC은 다음과 같다.
0000.0c07.ac0a
HSRP v2의 Virtual MAC 형식은 다음과 같다.
0000.0c9f.fXXX
HSRP 장비들은 Hello 패킷으로 서로의 상태를 확인한다.
HSRP Hello는 브로드캐스트가 아니라 멀티캐스트를 사용한다.
HSRP v1 : 224.0.0.2
HSRP v2 : 224.0.0.102
UDP Port : 1985
Cisco IOS 기준 예시다.
interface Vlan10
ip address 192.168.10.2 255.255.255.0
standby 10 ip 192.168.10.1
standby 10 priority 110
standby 10 preempt
Standby 장비는 다음과 같이 설정할 수 있다.
interface Vlan10
ip address 192.168.10.3 255.255.255.0
standby 10 ip 192.168.10.1
standby 10 priority 100
standby 10 preempt
이 경우 Switch A의 Priority가 더 높기 때문에 Switch A가 Active가 된다.
show standby brief
예상 출력 예시는 다음과 같다.
Interface Grp Pri P State Active Standby Virtual IP
Vl10 10 110 P Active local 192.168.10.3 192.168.10.1
VRRP(Virtual Router Redundancy Protocol) 는 표준 게이트웨이 이중화 프로토콜이다.
HSRP가 Cisco 전용 프로토콜이라면, VRRP는 여러 벤더 장비에서 사용할 수 있는 표준 프로토콜이다.
VRRP에서는 하나의 장비가 Master, 나머지 장비가 Backup 역할을 한다.
Virtual IP
192.168.10.1
|
---------------------
| |
Router A Router B
Master Backup
192.168.10.2 192.168.10.3
Master 장비가 실제 게이트웨이 역할을 수행한다.
Master에 장애가 발생하면 Backup 장비 중 하나가 Master로 승격된다.
VRRP의 Virtual MAC 형식은 다음과 같다.
0000.5e00.01XX
여기서 XX는 VRRP Group ID를 의미한다.
예를 들어 VRRP Group 10이면 Virtual MAC은 다음과 같다.
0000.5e00.010a
VRRP의 주요 특징은 다음과 같다.
- 표준 프로토콜
- 여러 벤더 장비에서 사용 가능
- Master / Backup 구조
- Virtual IP 사용
- Virtual MAC 사용
VRRP는 멀티벤더 환경에서 특히 유용하다.
VRRP에서는 Virtual IP를 실제 인터페이스 IP와 동일하게 사용할 수도 있다.
예를 들어 Router A의 실제 IP가 192.168.10.1이고, 이 주소를 Virtual IP로 사용하는 구성이 가능하다.
이 경우 해당 IP를 실제로 가진 장비가 우선적으로 Master가 된다.
반면 HSRP에서는 일반적으로 실제 IP와 Virtual IP를 분리해서 사용한다.
GLBP(Gateway Load Balancing Protocol) 는 Cisco에서 만든 게이트웨이 이중화 및 부하분산 프로토콜이다.
HSRP와 VRRP가 기본적으로 Active 장비 한 대만 트래픽을 처리하는 구조라면, GLBP는 여러 장비가 동시에 트래픽을 처리할 수 있다.
HSRP와 VRRP에서는 Active 또는 Master 장비가 트래픽을 처리하고, Standby 또는 Backup 장비는 대기한다.
Switch A : Active -> 트래픽 처리
Switch B : Standby -> 대기
즉, 평상시에는 한쪽 장비만 주로 사용된다.
물론 VLAN별로 Active 장비를 다르게 구성하면 부하를 나눌 수 있다.
VLAN 10 : Switch A Active
VLAN 20 : Switch B Active
하지만 같은 VLAN 안에서는 기본적으로 하나의 Active 장비가 트래픽을 처리한다.
GLBP는 같은 VLAN 안에서도 여러 게이트웨이 장비가 트래픽을 나누어 처리할 수 있도록 한다.
GLBP에는 두 가지 중요한 역할이 있다.
AVG : Active Virtual Gateway
AVF : Active Virtual Forwarder
AVG는 클라이언트의 ARP 요청에 응답하는 역할을 한다.
클라이언트가 Virtual IP에 대해 ARP 요청을 보내면, AVG는 상황에 따라 서로 다른 Virtual MAC을 응답한다.
Client A ARP Request -> AVG Response: MAC A
Client B ARP Request -> AVG Response: MAC B
Client C ARP Request -> AVG Response: MAC A
이를 통해 클라이언트별로 서로 다른 게이트웨이 장비를 사용하게 만들 수 있다.
AVF는 실제 트래픽을 포워딩하는 장비다.
각 AVF는 자신에게 할당된 Virtual MAC에 대한 트래픽을 처리한다.
Client A -> Virtual MAC A -> Switch A
Client B -> Virtual MAC B -> Switch B
결과적으로 하나의 Virtual IP를 사용하면서도 여러 장비가 동시에 트래픽을 처리할 수 있다.
GLBP의 주요 특징은 다음과 같다.
- Cisco 전용 프로토콜
- 게이트웨이 이중화 지원
- 게이트웨이 부하분산 지원
- 하나의 Virtual IP 사용
- 여러 개의 Virtual MAC 사용 가능
| 구분 | HSRP | VRRP | GLBP |
|---|---|---|---|
| 표준 여부 | Cisco 전용 | 표준 | Cisco 전용 |
| 역할 용어 | Active / Standby | Master / Backup | AVG / AVF |
| 부하분산 | 기본적으로 불가 | 기본적으로 불가 | 가능 |
| Virtual IP | 사용 | 사용 | 사용 |
| Virtual MAC | 사용 | 사용 | 여러 개 사용 가능 |
| 주 사용 환경 | Cisco 중심 환경 | 멀티벤더 환경 | Cisco 환경 + 부하분산 필요 |
FHRP를 이해할 때 ARP 동작은 매우 중요하다.
클라이언트는 기본 게이트웨이 IP로 패킷을 보내기 위해 먼저 해당 IP의 MAC 주소를 알아야 한다.
Client: Who has 192.168.10.1?
이때 Active 또는 Master 장비가 Virtual MAC으로 응답한다.
Gateway: 192.168.10.1 is at Virtual MAC
클라이언트는 ARP 테이블에 다음과 같이 저장한다.
192.168.10.1 -> Virtual MAC
이후 외부로 나가는 트래픽은 Virtual MAC을 목적지 MAC으로 해서 전송된다.
HSRP를 예로 들어보자.
초기 상태는 다음과 같다.
Switch A : Active
Switch B : Standby
Virtual IP : 192.168.10.1
클라이언트는 Virtual IP를 기본 게이트웨이로 사용하고, ARP 테이블에는 Virtual MAC이 저장되어 있다.
192.168.10.1 -> 0000.0c07.ac0a
Switch A에 장애가 발생하면 Switch B가 Active로 전환된다.
Switch A : Down
Switch B : Active
Switch B는 동일한 Virtual IP와 Virtual MAC을 사용하여 게이트웨이 역할을 이어받는다.
따라서 클라이언트는 기본 게이트웨이 설정을 변경하지 않아도 된다.
장애 전환 시에는 ARP 또는 CAM 테이블 갱신을 위해 Gratuitous ARP가 발생할 수 있다.
Gratuitous ARP 는 장비가 자신의 IP와 MAC 정보를 네트워크에 알리기 위해 보내는 ARP 메시지다.
FHRP 환경에서는 Active 장비가 변경될 때 Gratuitous ARP가 사용될 수 있다.
목적은 다음과 같다.
- 클라이언트 ARP 테이블 갱신
- 스위치 MAC 주소 테이블 갱신
- 장애 전환 후 트래픽이 새 Active 장비로 전달되도록 유도
다만 “HSRP 장비가 항상 Virtual MAC을 브로드캐스트한다”라고 이해하면 정확하지 않다.
정확히는 다음과 같다.
- 클라이언트가 Virtual IP에 대해 ARP 요청을 보냄
- Active 장비가 Virtual MAC으로 ARP 응답
- 장애 전환 시 Gratuitous ARP로 갱신 유도 가능
- HSRP Hello는 브로드캐스트가 아니라 멀티캐스트
FHRP 환경에서 주의해야 할 문제 중 하나가 Split-Brain이다.
Split-Brain은 두 장비가 서로를 인식하지 못해 둘 다 Active 또는 Master가 되는 상황을 말한다.
예를 들어 두 스위치 사이의 FHRP Hello 패킷이 차단되면 각 장비는 상대방이 장애라고 판단할 수 있다.
Switch A : Active
Switch B : Active
이 경우 동일한 Virtual IP와 Virtual MAC을 두 장비가 동시에 사용하려고 하면서 트래픽이 불안정해질 수 있다.
Split-Brain을 방지하려면 다음 사항을 확인해야 한다.
- FHRP Hello 패킷이 정상적으로 전달되는지 확인
- VLAN이 양쪽 장비에 정상적으로 구성되어 있는지 확인
- Trunk 허용 VLAN이 누락되지 않았는지 확인
- STP 상태로 인해 필요한 경로가 막히지 않았는지 확인
- L2 구간의 장애를 함께 고려
게이트웨이 이중화 프로토콜을 구성할 때는 단순히 Virtual IP만 설정하면 끝나는 것이 아니다.
다음 요소들을 함께 고려해야 한다.
어떤 장비를 Active로 둘지 결정해야 한다.
보통은 상단 경로, 장비 성능, 네트워크 설계 기준에 따라 결정한다.
Switch A Priority : 110
Switch B Priority : 100
Preemption을 활성화하면 장애 복구 후 원래 우선순위가 높은 장비가 다시 Active가 된다.
하지만 복구 직후 장비 상태가 완전히 안정화되지 않았는데 Active를 가져오면 트래픽이 다시 흔들릴 수 있다.
따라서 Preemption을 사용할 때는 Delay 옵션을 함께 고려하는 것이 좋다.
standby 10 preempt delay minimum 60
장비 자체는 살아 있지만 상단 링크가 끊긴 경우를 대비해야 한다.
interface Vlan10
standby 10 track GigabitEthernet1/0/1 20
위 설정은 특정 인터페이스 장애 시 HSRP Priority를 20 낮춘다.
HSRP나 VRRP는 기본적으로 한 VLAN에서 하나의 Active 장비가 트래픽을 처리한다.
하지만 VLAN별로 Active 장비를 다르게 설정하면 장비 활용도를 높일 수 있다.
VLAN 10 : Switch A Active
VLAN 20 : Switch B Active
VLAN 30 : Switch A Active
VLAN 40 : Switch B Active
이 방식은 GLBP를 사용하지 않아도 어느 정도 부하 분산 효과를 얻을 수 있다.
L2 네트워크에서 STP를 사용하는 경우, STP Root Bridge와 FHRP Active Gateway를 같은 장비로 맞추는 것이 좋다.
예를 들어 VLAN 10의 STP Root가 Switch A라면, VLAN 10의 HSRP Active도 Switch A로 설정한다.
VLAN 10
STP Root : Switch A
HSRP Active : Switch A
이렇게 구성하면 트래픽 경로가 불필요하게 우회하는 것을 줄일 수 있다.
아니다.
FHRP는 여러 장비를 하나의 가상 게이트웨이처럼 보이게 하는 기술이다.
클라이언트는 Virtual IP 하나만 기본 게이트웨이로 사용한다.
HSRP나 VRRP 기준으로는 같은 VLAN의 게이트웨이 트래픽을 직접 처리하지 않고 대기한다.
하지만 장비 자체가 완전히 놀고 있는 것은 아니다.
다른 VLAN에서는 Active일 수 있고, 라우팅, 스위칭, 기타 네트워크 기능을 수행할 수 있다.
아니다.
HSRP Hello는 브로드캐스트가 아니라 멀티캐스트를 사용한다.
HSRP v1 : 224.0.0.2
HSRP v2 : 224.0.0.102
정확히는 아니다.
Virtual MAC은 주로 ARP 응답을 통해 클라이언트에게 알려진다.
장애 전환 시에는 Gratuitous ARP를 통해 ARP 또는 MAC 테이블 갱신을 유도할 수 있다.
아니다.
VRRP는 표준 프로토콜이므로 여러 벤더 장비에서 사용할 수 있다.
Cisco 전용 프로토콜은 HSRP와 GLBP다.
게이트웨이 이중화 프로토콜은 클라이언트의 기본 게이트웨이 장애에 대비하기 위한 기술이다.
핵심은 여러 대의 실제 장비를 하나의 가상 게이트웨이처럼 보이게 만드는 것이다.
Client Gateway : Virtual IP
Actual Device : Active or Master Gateway
Backup Device : Standby or Backup Gateway
대표적인 프로토콜은 다음과 같다.
HSRP : Cisco 전용, Active/Standby 구조
VRRP : 표준 프로토콜, Master/Backup 구조
GLBP : Cisco 전용, 게이트웨이 부하분산 지원
실무에서는 단순히 게이트웨이를 이중화하는 것뿐만 아니라 다음 사항도 함께 고려해야 한다.
- Priority
- Preemption
- Interface Tracking
- STP Root와 Active Gateway 정렬
- VLAN별 Active 분산
- Split-Brain 방지
게이트웨이 이중화는 구성 자체보다 장애 상황에서 어떻게 동작하는지를 이해하는 것이 중요하다.
특히 Virtual IP, Virtual MAC, ARP, Hello Packet, Gratuitous ARP의 관계를 이해하면 HSRP, VRRP, GLBP의 동작 방식을 훨씬 명확하게 파악할 수 있다.