일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Ansible
- centos
- stream 9
- port aggregation protocol
- STP
- rommon mode
- 하프오픈
- SQL
- 프로그래머스
- 오블완
- 방화벽
- pagp
- 네이티브 vlan
- junos os
- 네트워크 설계
- ospf
- Packet Tracer
- pvst+
- vlan
- Network Design
- eigrp
- LACP
- 티스토리챌린지
- Red Hat
- freeradius
- gns3
- Cisco
- 네트워크
- 연결선 수
- BPDU
- Today
- Total
Doctor Pepper
[네트워크 계층] VRRP & HSRP 본문
VRRP(Virtual Router Redundancy Protocol)와 HSRP(Hot Standby Router Protocol)는 시스템(PC, 서버 등)이 종적 라우팅 프로토콜을 사용하지 않는 환경이나 정적 라우팅을 사용하는 환경에서 1홉 라우팅의 장애를 극복할 수 있는 이중화 구성을 구현하는 프로토콜이다. 이들은 여러 라우터나 멀티레이어 스위치를 그룹으로 구성하여 하나의 대표 라우터가 평상시 동작하다가 장애 발생 시 다른 라우터가 이를 대신하여 서비스의 연속성을 보장한다. 즉, 이러한 프로토콜들은 1홉 라우팅에 대한 신뢰성을 확보하는 데 중요한 역할을 한다. VRRP와 HSRP의 동작 방식은 유사하지만, VRRP는 표준화된 프로토콜이고, HSRP는 Cisco의 독자적인 프로토콜이다.
1. VRRP(Virtual Router Redundancy Protocol)
VRRP는 2004년 4월 RFC 3768에 의해 설계된 표준 이중화 프로토콜로, 동일한 서브넷에서 시스템의 디폴트 게이트웨이나 1홉 라우팅의 가용성을 증가시키기 위해 사용된다. VRRP는 '가상 라우터(Virtual Router)'의 개념을 사용하여, 여러 개의 물리적 라우터를 마치 하나의 라우터처럼 동작하게 만든다. 이때, 가상 라우터에서 실제 패킷을 처리하고 가상 라우터의 상태 정보를 광고하는 라우터는 마스터 라우터이다. 만약 마스터 라우터에 문제가 생기면, 나머지 백업 라우터 중 하나가 마스터 라우터 역할을 대신하여 패킷을 처리한다.
VRRP는 이더넷, MPLS, 트큰링 등 다양한 네트워크 환경에서 사용할 수 있으며, IPv6를 지원하기 위해 개발되었으나, 아직 안정화되지 않은 상태이다. VRRP v3는 RFC 5798에 정의되어 있으며, IPv4와 IPv6에서 동시에 구현될 수 있도록 설계되었다. VRRP는 라우터의 라우팅 정보가 아닌, 라우터 자체에 대한 상태 정보를 주기적으로 광고하여, 네트워크 내에서 가상 라우터의 역할을 원활히 수행할 수 있도록 한다.
2. VRRP 동작
VRRP는 가상 라우터를 사용하여 시스템의 디폴트 게이트웨이 또는 1홉 라우팅의 가용성을 높이는 이중화 프로토콜이다. 가상 라우터는 00-00-5E-00-01-XX 형식의 MAC 주소를 사용하며, 여기서 XX는 VRID(Virtual Router Identifier) 값으로, 가상 라우터 그룹을 구별하는 식별자이다. 시스템이 디폴트 게이트웨이로 ARP 요청을 보낼 때, 해당 요청은 마스터 라우터에 의해 가상 라우터의 MAC 주소로 응답된다.
가상 라우터를 구성하는 물리적 라우터들은 멀티캐스트 주소 224.0.0.18과 IP 프로토콜 번호 112를 사용해 상태 정보를 주기적으로 광고한다. 라우터는 1~255 사이의 우선순위를 설정할 수 있으며, 높은 우선순위를 가진 라우터가 마스터 라우터로 선택된다. 기본적으로 우선순위 값은 100으로 설정됩니다. 만약 마스터 라우터가 광고 상태 패킷을 3번 이상 전송하지 않으면, 백업 라우터는 마스터 라우터에 문제가 있다고 판단하고, 가상 라우터의 상태를 불안정 상태로 전이시킨다. 그 후, 백업 라우터들이 새로운 마스터 라우터를 선출하는 과정이 시작된다. 이때, 백업 라우터들은 선출 과정 동안 멀티캐스트 패킷을 전송하며, 우선순위가 더 높은 라우터가 있으면 이를 새로운 마스터 라우터로 설정한다.
3. VRRP 헤더 구조
VRRP는 IP 상위 프로토콜로, 네트워크 트래픽을 최소화하기 위해 마스터 라우터만 주기적으로 상태 광고 패킷을 전송한다. 이 패킷은 마스터 라우터에서 발신되어 224.0.0.18로 멀티캐스트된다. IP 헤더의 TTL(Time To Live) 값은 255로 설정되며, 수신한 라우터는 TTL 값이 255가 아니면 해당 패킷을 폐기한다.
버전(Version) | 4비트 | VRRP 버전을 나타내며, 현재 버전 2가 사용됨 |
타입(Type) | 4비트 | VRRP의 타입을 표현하며, 여기서는 1(Advertisement)만이 사용됨. 수신한 패킷을 알지 못하는 경우 모두 폐기됨 |
VRID (Virtual Router Identifier) |
8비트 | 1~255의 값을 사용하며, 설정 시에 적용되는 그룹 ID임. 동일한 서브넷상에서는 유일한 값을 가져야 함 이 그룹 ID가 가상 라우터의 가상 MAC 주소로 할당됨 |
우선순위(Priority) | 8비트 | 1~255의 값을 사용하며, 기본 값은 100으로 설정됨 우선순위는 마스터 라우터 선출을 위해 사용하고, 가장 높은 우선순위를 갖는 라우터가 마스터로 선출됨 또한 0의 우선순위를 갖는 경우 마스터 라우터의 동작이 멈출 것이라는 의미로, 이를 통해 백업 라우터들이 속히 마스터 라우터로 전환될 수 있게 함 |
IP 주소 카운터 (Count IP Address) |
8비트 | VRRP 광고에 속한 IP 주소의 개수임 |
인증 타입 (Authentication Type) |
8비트 | 0 : No Authentication(인증 없음) 1 : Simple Text Password(평문 인증) 2 : IP Authentication Header(IP 인증 헤더) VRID 값이 동일한 곳에서는 같은 인증 값을 사용하며, 다른 값이 수신되면 폐기됨 |
광고 주기 (Advertisement Interval) |
8비트 | VRRP 광고의 주기를 나타내며, 기본값은 1초입니다. 마스터 라우터가 백업 라우터로 상태 정보를 전송하는 주기임. 백업 라우터가 3번 이상 이 광고를 받지 못하면, 마스터 라우터 장애로 인식하고, 새로운 마스터 라우터 선출 과정이 시작됨. |
체크섬(Checksum) | 16비트 | VRRP 메시지에 대한 체크섬을 실행함 |
IP 주소(IP Address) | 32비트 | 가상 라우터 그룹과 연결된 IP 주소임 |
인증 데이터 (Authentication Data) |
32비트 | 사용자가 입력하는 필드로서 8바이트로 구성되며, 8바이트가 되지 않을 경우 남은 필드는 0으로 채움 인증 데이터가 틀린 패킷은 폐기되며, 동일 VRID에서만 유효한 값임 |
VRRP는 위와 같은 방식으로, 라우터들 간의 상태를 주기적으로 광고하고, 장애 발생 시 백업 라우터가 마스터 라우터를 신속하게 대체할 수 있도록 한다. 이를 통해 가용성과 신뢰성을 높여 네트워크의 연속적인 운영을 보장한다.
4. VRRP 설정
VRRP(가상 라우터 이중화 프로토콜)는 네트워크에서 가상 IP 주소를 사용하는 라우터 그룹을 구성하여, 주 라우터(마스터 라우터)의 장애 시 백업 라우터가 자동으로 역할을 인계하는 방식으로 동작한다. 아래는 VRRP 설정 예시와 주요 개념이다.
R1(config) # interface fa0/1 R1(config-if) # ip address 10.1.1.1 255.255.255.0 R1(config-if) # vrrp 1 priority 120 R1(config-if) # vrrp 1 authentication jjang R1(config-if) # vrrp 1 times advertise 2 R1(config-if) # vrrp 1 timers learn R1(config-if) # vrrp 1 ip 10.1.1.1 R1(config-if) # vrrp 2 priority 110 R1(config-if) # vrrp 2 authentication jjang R1(config-if) # vrrp 2 times advertise 2 R1(config-if) # vrrp 2 timers learn R1(config-if) # vrrp 2 ip 10.1.1.2 |
R2(config) # interface fa0/1 R2(config-if) # ip address 10.1.1.2 255.255.255.0 R2(config-if) # vrrp 1 priority 110 R2(config-if) # vrrp 1 authentication jjang R2(config-if) # vrrp 1 times advertise 2 R2(config-if) # vrrp 1 timers learn R2(config-if) # vrrp 1 ip 10.1.1.1 R2(config-if) # vrrp 2 priority 255 R2(config-if) # vrrp 2 authentication jjang R2(config-if) # vrrp 2 times advertise 2 R2(config-if) # vrrp 2 timers learn R2(config-if) # vrrp 2 ip 10.1.1.2 |
- 주요 설정 요소
인터페이스 설정 | - 각 라우터의 물리적 인터페이스에 대해 IP 주소를 설정하고, 그 인터페이스가 속한 가상 라우터 그룹(VRRP)에 대해 설정을 추가함 |
우선순위(Priority) | - 우선순위 값은 1~255 사이의 값을 사용할 수 있음. 높은 우선순위를 가진 라우터가 마스터 라우터로 선택됨. ex) R1은 우선순위 120으로 설정되어 Group 1에서 마스터 라우터로 동작함. |
인증(Authentication) | - 인증 필드는 'jjang'으로 설정되어 있어, VRRP 패킷을 수신하는 라우터는 동일한 인증 정보를 요구함. |
광고 주기(Advertisement Interval) | - 기본 값은 1초이며, 'vrrp 1 times advertise 2' 명령을 통해 이를 2초로 설정하여, 마스터 라우터가 광고를 전송하는 주기를 변경할 수 있음 |
가상 IP(Virtual IP, VIP) | - 가상 IP는 네트워크 상에서 여러 라우터가 공유하는 IP로, 클라이언트는 이 가상 IP를 기본 게이트웨이로 설정함 ex) R1은 10.1.1.1을, R2는 10.1.1.2를 가상 IP로 설정하고 있음. |
Preemption (선취 기능) | - VRRP에서는 기본적으로 'Preempt' 기능이 활성화되어 있음. - 즉, 마스터 라우터가 장애로 역할을 상실하고 백업 라우터가 마스터 역할을 수행한 후, 마스터 라우터가 복구되면 자동으로 마스터 역할을 다시 인계받음. |
Failover (장애 처리) | - 만약 마스터 라우터가 광고 패킷을 3번 이상 수신되지 않으면 백업 라우터는 마스터 라우터가 장애가 발생했다고 판단하고, 우선순위가 더 높은 라우터가 마스터 역할을 이어받습니다. |
5. HSRP(Hot Standby Router Protocol)
HSRP는 Cisco에서 자체 개발한 이중화 프로토콜로, 기본 게이트웨이의 장애를 극복하기 위해 설계되다. 1998년 3월 RFC 2281에 기술된 HSRP는 Cisco 독점 기술로, VRRP보다 더 오래된 프로토콜이다. 두 프로토콜 모두 유사한 목적을 가지고 있지만, 용어 사용에서 차이가 있다. VRRP는 Master와 Backup이라는 용어를 사용하는 반면, HSRP는 Active 라우터와 Standby 라우터라는 용어를 사용한다.
6. HSRP 동작
HSRP는 멀티캐스트 주소 224.0.0.2와 UDP 포트 1985를 사용하여 가상 라우터 그룹 내에서 상태 정보를 교환한다. 이때 우선순위(기본값: 100)가 가장 높은 라우터가 Active 라우터가 되며, ARP 요청에 대해 00-00-0C-07-AC-XX 형식의 가상 MAC 주소를 응답한다. 여기서 XX는 HSRP 라우터의 그룹 ID를 나타낸다.
Active 라우터에 장애가 발생하면 가상 라우터 그룹 내에서 두 번째로 우선순위가 높은 Standby 라우터가 Active 라우터 역할을 이어받아 네트워크 서비스를 지속적으로 제공할 수 있도록 한다.
7. HSRP 헤더 구조
버전(Version) | 8비트 | - HSRP의 버전을 표시하며, 종류는 1과 2가 있음 - IOS 12.3(4)T 부터 버전 2를 지원함 |
동작 비트(Op) | 8비트 | - 패킷에 포함된 메시지 종류를 표시함 · 0 : 헬로우(Hello), Active와 Standby 라우터들이 동작 중에 상호 전달하는 상태 메시지 · 1 : 구테타(Coup), Active 라우터가 되려 하는 라우터가 전달하는 메시지 · 2 : 사임(Resign), Active 라우터의 역할을 다른 라우터로 넘길 때 사용하는 사임 메시지 |
상태(State) | 8비트 | - 메시지를 전달하는 라우터의 상태를 표시하는 메시지 · 0 : 초기(Initial), HSRP가 정상 동작하지 않고 막 시작하는 초기화 단계 · 1 : 학습(Learn), VIP 주소가 결정되지 않은 상태로, 아직 Active 라우터로부터 헬로우 패킷을 수신하지 못해 Active 라우터로부터 헬로우 패킷을 기다리는 상태 · 2 : 청취(Listen), VIP는 결정됐지만 자신의 역할이 Active인지 Standby인지를 결정하지 못한 상태로, 다른 Active나 Standby 라우터로부터 헬로우 패킷을 기다리는 상태 · 4 : 화자(Speak), 주기적으로 헬로우 메시지를 보내며, Actvie 또는 Standby 라우터 선출에 활발히 참여하는 상태 · 8 : 스탠바이(Standby), 차기 Active 라우터 후보로 주기적으로 헬로우 메시지를 보내는 상태로서 동일 HSRP 그룹에는 최대 1개의 Standby 라우터만이 존재 · 16 : 액티브(Active), 라우터가 가상 라우터 그룹의 가상 MAC 주소를 전달해 현재 패킷을 포워딩하는 Active 라우터로 동작하는 상태 - HSRP 라우터의 상태 변화는 Initial - Learn - Listen - Speak - Standby- Active 상태의 과정을 갖음 |
헬로우 타임(Hello Time) | 8비트 | - 라우터가 전달하는 헬로우 시간의 주기를 초 단위로 표시하며, 별도의 설정이 없을 경우 기본 값은 3초가 사용됨 |
홀드 타임(Hold Time) | 8비트 | - 헬로우 메시지가 효력을 가질 수 있는 시간으로 초 단위 표시되며, 기본 값은 10초가 사용되는데, 이 기간 내에 추가적인 헬로우 메시지를 수신하지 못하면 기존의 Active 라우터가 다운된 것으로 간주됨 |
우선순위(Priority) | 8비트 | - Active 라우터 선출에 사용되는 우선순위 값을 표시하며, 높은 우선순위를 갖는 라우터가 Active 라우터가 되는데, 기본 값은 100이 사용됨 |
그룹(Group) | 8비트 | - HSRP의 그룹 번호를 표시하며, 토큰링의 경우 0~2의 값을 사용하고 그 외의 경우에는 0~255의 값을 사용함. - 또한 HSRPv2에서는 0~4095까지의 범위를 사용할 수 있음 |
인증 데이터 (Authentication Data) |
32비트 | - 평문의 8바이트 필드이며, 암호 문자가 설정되지 않는다면 기본 문자는 'cisco'가 사용됨 |
가상 IP 주소 (Virtual IP Address) |
32비트 | - HSRP 그룹의 가상 IP 주소인 VIP가 포함됨 |
8. HSRP 설정
HSRP를 통해 네트워크의 가용성과 안정성을 향상시키기 위한 라우터 설정 방식은 다음과 같다.
R1(config) # interface fa0/1 R1(config-if) # ip address 10.1.1.3 255.255.255.0 R1(config-if) # standby 1 ip 10.1.1.1 R1(config-if) # standby 1 priority 120 R1(config-if) # standby 1 timer 2 6 R1(config-if) # standby 1 track serial 0/0 50 R1(config-if) # standby 2 ip 10.1.1.2 R1(config-if) # standby 2 timer 2 4 R1(config-if) # standby 2 preempt |
R2(config) # interface fa0/1 R2(config-if) # ip address 10.1.1.4 255.255.255.0 R2(config-if) # standby 1 ip 10.1.1.1 R2(config-if) # standby 1 timer 2 6 R2(config-if) # standby 1 preempt R2(config-if) # standby 2 ip 10.1.1.2 R2(config-if) # standby 2 priority 120 R2(config-if) # standby 2 timer 2 4 R2(config-if) # standby 2 track serial 0/1 50 R2(config-if) # standby 2 preempt delay 30 |
- 주요 설정 요소
타이머 설정 | - 헬로우 주기: 기본값 3초 → 2초로 단축 - 홀드 타임: 기본값 10초 → 6초로 변경 → 장애 복구 시간을 단축하여 네트워크의 안정성 강화 |
트랙(Track) 옵션 | - 라우터 1의 Serial 0/0 인터페이스 장애 시 우선순위가 50 감소 (120 → 70) - Standby 라우터가 Active 라우터 역할을 이어받아 외부 회선 장애로 인한 네트워크 중단 방지 |
선점(Preempt) 기능 | - Active 라우터가 장애에서 복구된 경우, 다시 Active 역할로 복귀하도록 설정 - Preempt 기능은 HSRP 메시지의 Coup 코드를 사용하여 Active 역할 복귀 가능 - preempt delay: 복구 시 라우팅 정보 수렴 시간 고려 (예: 30초 지연) |
VIP와 MAC 주소 | - HSRP의 가상 MAC 주소 형식 · HSRPv1: 00-00-0C-07-AC-XX (XX: 그룹 번호) · HSRPv2: 00-00-0C-9F-FX-XX (FX: HSRPv2 버전 식별) - 그룹 번호 예시 · 그룹 1 : HSRPv1: 00-00-0C-07-AC-01 / HSRPv2: 00-00-0C-9F-F0-01 |
9. HSRP 및 VRRP 구성의 한계
HSRP 구성만으로는 불가능한 장애 상황을 나타내기 위해 본사, 지사 간의 정적 라우팅을 사용하는 HSRP의 구성은 다음과 같다.
[본사] R1(config) # interface fa0/0 R1(config-if) # ip address 10.1.1.2 255.255.255.0 R1(config-if) # standby 1 ip 10.1.1.1 R1(config-if) # standby 1 priority 120 R1(config-if) # standby 1 preempt R1(config-if) # standby 1 track serial 0/0 50 |
[본사] R2(config) # interface fa0/0 R2(config-if) # ip address 10.1.1.3 255.255.255.0 R2(config-if) # standby 1 ip 10.1.1.1 R2(config-if) # standby 1 preempt |
[지사] R3(config) # interface fa0/0 R3(config-if) # ip address 10.1.1.2 255.255.255.0 R3(config-if) # standby 1 ip 10.1.1.1 R3(config-if) # standby 1 priority 120 R3(config-if) # standby 1 preempt R3(config-if) # standby 1 track serial 0/0 50 |
[지사] R4(config) # interface fa0/0 R4(config-if) # ip address 10.1.1.3 255.255.255.0 R4(config-if) # standby 1 ip 10.1.1.1 R4(config-if) # standby 1 preempt |
- 문제 발생 상황
본사 R1 시리얼 인터페이스 장애 |
- R1은 자신의 시리얼 인터페이스 링크 다운을 감지하고 Standby 라우터(R2)로 역할을 전환. - 그러나, 지사 R3는 본사의 인터페이스 장애를 인지하지 못함. - 결과적으로, 패킷의 일부(로드 밸런싱 설정 시 50%) 또는 전부(패크스 스위칭 시 100%)가 손실되는 상황 발생. |
원인 | - 본사와 지사 간 정적 라우팅 사용으로 인해 원격지 라우터가 인터페이스 장애를 실시간으로 감지할 수 없음. |
- 해결 방안
동적 라우팅 프로토콜 사용 | - OSPF, EIGRP 등 동적 라우팅 프로토콜을 활용하여 이웃 간 링크 상태를 실시간으로 감지. - 장애 발생 시 라우팅 정보를 갱신해 패킷 손실 방지. |
BFD (Bidirectional Forwarding Detection) |
- BFD를 통해 빠르게 링크 장애를 감지하고 HSRP와 통합하여 서비스 전환. |
PBR (Policy-Based Routing) 트래킹 |
- Cisco의 PBR을 사용하여 트래킹 기능을 확장, 특정 인터페이스나 경로의 상태를 모니터링하고 장애 시 대체 경로로 전환. |
'네트워크 > 네트워크 계층' 카테고리의 다른 글
[네트워크 계층] 라우팅(Routing) (3) (2) | 2024.12.04 |
---|---|
[네트워크 계층] ICMP(Internet Contral Metssage Protocol) (1) | 2024.12.04 |
[네트워크 계층] 라우팅(Routing) (2) (1) | 2024.11.23 |
[네트워크 계층] 3계층 네트워크 구성 (1) | 2024.11.11 |
[네트워크 계층] 인터넷 프로토콜(Internet Protocol, IP) (3) | 2024.11.06 |