Khắc phục sự cố HSRP (Hot Standby Router Protocol)
Hot Standby Router Protocol (HSRP) là giao thức FHRP (First Hop Redundancy Protocol) độc quyền của Cisco, được thiết kế nhằm cung cấp khả năng dự phòng default gateway cho mạng IP. HSRP hoạt động trên cả router Cisco và multilayer switch Cisco.
Khi triển khai HSRP, nhiều thiết bị Layer 3 vật lý có thể xuất hiện trước các thiết bị đầu cuối như một default gateway logic duy nhất. Chính địa chỉ gateway ảo này là nơi các client sẽ trỏ đến khi cần gửi lưu lượng ra ngoài subnet cục bộ.
Đối với người làm troubleshooting, việc hiểu sâu cách HSRP hoạt động là điều bắt buộc. Nếu không nắm rõ cơ chế election, virtual MAC, timer hay failover, việc xử lý sự cố sẽ trở nên rất khó khăn.
Ôn lại cơ chế hoạt động của HSRP
HSRP sử dụng:
để đại diện cho một virtual router bên trong một nhóm HSRP (HSRP group).
Các máy trạm sẽ cấu hình default gateway = virtual IP, không phải IP thật của router.
Ví dụ:
Client sẽ cấu hình:
Default Gateway = 172.16.1.3
Khi client thực hiện ARP để hỏi:
HSRP sẽ phản hồi bằng virtual MAC, không phải MAC vật lý thật của R1 hay R2.
Đây là nguyên tắc cực kỳ quan trọng.
Nếu client học MAC vật lý thật thay vì MAC ảo, khi failover xảy ra, traffic sẽ bị blackhole hoặc gián đoạn.
Vai trò bên trong một nhóm HSRP
Trong một HSRP group sẽ có nhiều router tham gia, nhưng các vai trò chính gồm: Active Router
Đây là router đang chịu trách nhiệm forwarding traffic.
Nhiệm vụ:
Nói ngắn gọn:
Active router chính là default gateway đang hoạt động thực tế.
Standby Router
Standby router ở trạng thái chờ.
Nó không forward traffic trong điều kiện bình thường.
Nó chỉ takeover khi:
Additional Routers
Nếu có thêm router khác cùng tham gia HSRP group:
chúng không active cũng không standby.
Chúng chỉ chờ đến lượt election nếu active/standby thất bại.
Ví dụ cấu hình
Router R1
R1# show run
interface FastEthernet0/0
ip address 172.16.1.1 255.255.255.0
standby 10 ip 172.16.1.3
standby 10 priority 150
standby 10 preempt
Router R2
R2# show run
interface Ethernet0/0
ip address 172.16.1.2 255.255.255.0
standby 10 ip 172.16.1.3
Phân tích cấu hình
Hai router đều tham gia:
HSRP Group 10
và cùng chia sẻ:
Virtual IP = 172.16.1.3
Nhưng có khác biệt quan trọng. Priority
R1:
standby 10 priority 150
R2:
không cấu hình priority.
=> dùng mặc định:
100
Trong HSRP:
Priority càng cao càng được ưu tiên trở thành Active Router.
Do đó:
R1 thắng election
Preempt
R1 có:
standby 10 preempt
Điều này có nghĩa:
nếu R1 bị down rồi quay lại, nó sẽ reclaim lại vai trò Active.
Nếu không có preempt:
router quay lại sẽ chỉ đứng chờ.
Ví dụ:
Không có preempt:
R2 vẫn là Active
Có preempt:
R1 giành lại Active
HSRP hội tụ khi có sự cố
HSRP mặc định gửi:
Hello every 3 seconds
Nếu standby không nhận hello trong:
10 seconds
nó sẽ coi active đã chết.
Sau đó standby takeover.
Timer mặc định:
Hello = 3 sec
Hold = 10 sec
Failover khi shutdown interface
Nếu active router bị:
shutdown interface
thì failover nhanh hơn nhiều.
Lý do:
router active chủ động gửi:
Resign message
Thông điệp này nói rằng:
Standby không cần chờ hết hold timer.
Takeover gần như ngay lập tức.
Coup Message
Giả sử có router mới tham gia.
Ví dụ:
Priority = 200
cao hơn R1.
Nếu router này bật:
preempt
nó sẽ gửi:
Coup message
ý nghĩa:
Nếu không bật preempt:
router mới dù mạnh hơn cũng chỉ đứng chờ.
Verification và Troubleshooting
Khi xử lý sự cố HSRP, trước tiên phải xác định:
show standby brief
Lệnh quan trọng đầu tiên:
show standby brief
Ví dụ trên R1:
R1# show standby brief
P indicates configured to preempt.
Interface Grp Prio P State Active Standby Virtual IP
Fa0/0 10 150 P Active local 172.16.1.2 172.16.1.3
Phân tích:
R2:
R2# show standby brief
Interface Grp Prio P State Active Standby Virtual IP
Et0/0 10 100 Standby 172.16.1.1 local 172.16.1.3
Phân tích:
R2 đang là standby.
show standby interface
Lệnh chi tiết hơn:
show standby fastethernet 0/0
Output:
FastEthernet0/0 - Group 10
State is Active
Virtual IP address is 172.16.1.3
Active virtual MAC address is 0000.0c07.ac0a
Local virtual MAC address is 0000.0c07.ac0a
Hello time 3 sec, hold time 10 sec
Preemption enabled
Active router is local
Standby router is 172.16.1.2
Priority 150
Ý nghĩa troubleshooting
Lệnh này cho biết: Virtual MAC
0000.0c07.ac0a
Cisco HSRP v1 dùng format:
0000.0c07.acXX
Trong đó:
XX = group number in hex
Group 10:
0a
=> đúng.
Timer
Nếu timer mismatch:
neighbor có thể không establish đúng.
Kiểm tra:
Hello / Hold
Priority
Nếu priority không như mong đợi:
active election sẽ sai.
Preemption
Nếu Active không reclaim lại sau recovery:
kiểm tra:
preempt
Góc nhìn thực chiến troubleshooting
Các lỗi phổ biến: 1. Virtual IP mismatch
Ví dụ:
R1:
standby 10 ip 172.16.1.3
R2:
standby 10 ip 172.16.1.4
Kết quả:
không cùng HSRP group logic.
2. Group mismatch
R1:
standby 10 ip ...
R2:
standby 20 ip ...
=> không peer.
3. Priority misunderstanding
Admin nghĩ router A sẽ active.
Nhưng:
priority thấp hơn.
4. Missing preempt
Thiết bị recovery nhưng không reclaim.
5. Tracking giảm priority
Object tracking có thể silently giảm priority.
Ví dụ:
WAN down → priority drop → failover.
Admin tưởng HSRP lỗi nhưng thực ra tracking hoạt động đúng.
Kết luận
HSRP nghe có vẻ đơn giản:
"default gateway redundancy"
nhưng khi troubleshooting thực tế, rất nhiều lỗi xuất phát từ:
Một kỹ sư mạng giỏi không chỉ nhớ lệnh:
show standby
mà phải hiểu:
Tại sao router này active?
Tại sao failover không xảy ra?
Tại sao client vẫn gửi traffic sai MAC?
Đó mới là troubleshooting thực thụ.
Hot Standby Router Protocol (HSRP) là giao thức FHRP (First Hop Redundancy Protocol) độc quyền của Cisco, được thiết kế nhằm cung cấp khả năng dự phòng default gateway cho mạng IP. HSRP hoạt động trên cả router Cisco và multilayer switch Cisco.
Khi triển khai HSRP, nhiều thiết bị Layer 3 vật lý có thể xuất hiện trước các thiết bị đầu cuối như một default gateway logic duy nhất. Chính địa chỉ gateway ảo này là nơi các client sẽ trỏ đến khi cần gửi lưu lượng ra ngoài subnet cục bộ.
Đối với người làm troubleshooting, việc hiểu sâu cách HSRP hoạt động là điều bắt buộc. Nếu không nắm rõ cơ chế election, virtual MAC, timer hay failover, việc xử lý sự cố sẽ trở nên rất khó khăn.
Ôn lại cơ chế hoạt động của HSRP
HSRP sử dụng:
- Virtual IP Address
- Virtual MAC Address
để đại diện cho một virtual router bên trong một nhóm HSRP (HSRP group).
Các máy trạm sẽ cấu hình default gateway = virtual IP, không phải IP thật của router.
Ví dụ:
- R1: 172.16.1.1
- R2: 172.16.1.2
- Virtual IP: 172.16.1.3
Client sẽ cấu hình:
Default Gateway = 172.16.1.3
Khi client thực hiện ARP để hỏi:
"MAC address của 172.16.1.3 là gì?"
HSRP sẽ phản hồi bằng virtual MAC, không phải MAC vật lý thật của R1 hay R2.
Đây là nguyên tắc cực kỳ quan trọng.
Nếu client học MAC vật lý thật thay vì MAC ảo, khi failover xảy ra, traffic sẽ bị blackhole hoặc gián đoạn.
Vai trò bên trong một nhóm HSRP
Trong một HSRP group sẽ có nhiều router tham gia, nhưng các vai trò chính gồm: Active Router
Đây là router đang chịu trách nhiệm forwarding traffic.
Nhiệm vụ:
- nhận frame gửi đến virtual MAC
- định tuyến packet
- trả lời ARP request cho virtual IP
Nói ngắn gọn:
Active router chính là default gateway đang hoạt động thực tế.
Standby Router
Standby router ở trạng thái chờ.
Nó không forward traffic trong điều kiện bình thường.
Nó chỉ takeover khi:
- Active router bị down
- mất connectivity
- interface lỗi
- tracking event xảy ra
Additional Routers
Nếu có thêm router khác cùng tham gia HSRP group:
chúng không active cũng không standby.
Chúng chỉ chờ đến lượt election nếu active/standby thất bại.
Ví dụ cấu hình
Router R1
R1# show run
interface FastEthernet0/0
ip address 172.16.1.1 255.255.255.0
standby 10 ip 172.16.1.3
standby 10 priority 150
standby 10 preempt
Router R2
R2# show run
interface Ethernet0/0
ip address 172.16.1.2 255.255.255.0
standby 10 ip 172.16.1.3
Phân tích cấu hình
Hai router đều tham gia:
HSRP Group 10
và cùng chia sẻ:
Virtual IP = 172.16.1.3
Nhưng có khác biệt quan trọng. Priority
R1:
standby 10 priority 150
R2:
không cấu hình priority.
=> dùng mặc định:
100
Trong HSRP:
Priority càng cao càng được ưu tiên trở thành Active Router.
Do đó:
R1 thắng election
Preempt
R1 có:
standby 10 preempt
Điều này có nghĩa:
nếu R1 bị down rồi quay lại, nó sẽ reclaim lại vai trò Active.
Nếu không có preempt:
router quay lại sẽ chỉ đứng chờ.
Ví dụ:
- R1 down
- R2 takeover thành Active
- R1 khởi động lại
Không có preempt:
R2 vẫn là Active
Có preempt:
R1 giành lại Active
HSRP hội tụ khi có sự cố
HSRP mặc định gửi:
Hello every 3 seconds
Nếu standby không nhận hello trong:
10 seconds
nó sẽ coi active đã chết.
Sau đó standby takeover.
Timer mặc định:
Hello = 3 sec
Hold = 10 sec
Failover khi shutdown interface
Nếu active router bị:
shutdown interface
thì failover nhanh hơn nhiều.
Lý do:
router active chủ động gửi:
Resign message
Thông điệp này nói rằng:
Tôi rời vai trò active.
Standby không cần chờ hết hold timer.
Takeover gần như ngay lập tức.
Coup Message
Giả sử có router mới tham gia.
Ví dụ:
Priority = 200
cao hơn R1.
Nếu router này bật:
preempt
nó sẽ gửi:
Coup message
ý nghĩa:
Tôi có priority cao hơn, tôi sẽ takeover active role.
Nếu không bật preempt:
router mới dù mạnh hơn cũng chỉ đứng chờ.
Verification và Troubleshooting
Khi xử lý sự cố HSRP, trước tiên phải xác định:
- Router nào đang Active?
- Router nào Standby?
- Virtual IP là gì?
- Virtual MAC là gì?
- Priority bao nhiêu?
- Preempt có bật không?
- Tracking có hoạt động không?
show standby brief
Lệnh quan trọng đầu tiên:
show standby brief
Ví dụ trên R1:
R1# show standby brief
P indicates configured to preempt.
Interface Grp Prio P State Active Standby Virtual IP
Fa0/0 10 150 P Active local 172.16.1.2 172.16.1.3
Phân tích:
- Group = 10
- Priority = 150
- P = preempt enabled
- State = Active
- Active = local (chính router này)
- Standby = 172.16.1.2
- Virtual IP = 172.16.1.3
R2:
R2# show standby brief
Interface Grp Prio P State Active Standby Virtual IP
Et0/0 10 100 Standby 172.16.1.1 local 172.16.1.3
Phân tích:
R2 đang là standby.
show standby interface
Lệnh chi tiết hơn:
show standby fastethernet 0/0
Output:
FastEthernet0/0 - Group 10
State is Active
Virtual IP address is 172.16.1.3
Active virtual MAC address is 0000.0c07.ac0a
Local virtual MAC address is 0000.0c07.ac0a
Hello time 3 sec, hold time 10 sec
Preemption enabled
Active router is local
Standby router is 172.16.1.2
Priority 150
Ý nghĩa troubleshooting
Lệnh này cho biết: Virtual MAC
0000.0c07.ac0a
Cisco HSRP v1 dùng format:
0000.0c07.acXX
Trong đó:
XX = group number in hex
Group 10:
0a
=> đúng.
Timer
Nếu timer mismatch:
neighbor có thể không establish đúng.
Kiểm tra:
Hello / Hold
Priority
Nếu priority không như mong đợi:
active election sẽ sai.
Preemption
Nếu Active không reclaim lại sau recovery:
kiểm tra:
preempt
Góc nhìn thực chiến troubleshooting
Các lỗi phổ biến: 1. Virtual IP mismatch
Ví dụ:
R1:
standby 10 ip 172.16.1.3
R2:
standby 10 ip 172.16.1.4
Kết quả:
không cùng HSRP group logic.
2. Group mismatch
R1:
standby 10 ip ...
R2:
standby 20 ip ...
=> không peer.
3. Priority misunderstanding
Admin nghĩ router A sẽ active.
Nhưng:
priority thấp hơn.
4. Missing preempt
Thiết bị recovery nhưng không reclaim.
5. Tracking giảm priority
Object tracking có thể silently giảm priority.
Ví dụ:
WAN down → priority drop → failover.
Admin tưởng HSRP lỗi nhưng thực ra tracking hoạt động đúng.
Kết luận
HSRP nghe có vẻ đơn giản:
"default gateway redundancy"
nhưng khi troubleshooting thực tế, rất nhiều lỗi xuất phát từ:
- ARP behavior
- virtual MAC
- priority election
- timer mismatch
- preempt logic
- tracking behavior
Một kỹ sư mạng giỏi không chỉ nhớ lệnh:
show standby
mà phải hiểu:
Tại sao router này active?
Tại sao failover không xảy ra?
Tại sao client vẫn gửi traffic sai MAC?
Đó mới là troubleshooting thực thụ.