Trong Unicast, khi packet không đến được đích, Network Engineer thường bắt đầu bằng Routing Table để xác định đường đi.
Nhưng với Multicast, câu chuyện khác hơn.
Source vẫn gửi traffic. Receiver vẫn join Group. PIM vẫn hoạt động. Nhưng packet vẫn không đến Receiver.
Lúc này, không thể chỉ hỏi:
Mà phải theo dõi cả chuỗi:
Source → Unicast Routing → RPF → PIM → (S,G) → OIL → Receiver
Đây cũng là lý do IP Multicast trong ENCOR rất phù hợp để thực hành bằng lab: không chỉ cấu hình PIM, mà phải hiểu Router dựa vào đâu để forward hoặc drop multicast packet.
1️⃣ XÂY DỰNG OSPF UNDERLAY
Đừng vội cấu hình PIM.
Trước tiên, đảm bảo các Router có đầy đủ unicast reachability đến Source.
Ví dụ:
router ospf 1
network 10.1.1.0 0.0.0.255 area 0
network 10.1.12.0 0.0.0.255 area 0
Kiểm tra:
show ip ospf neighbor
show ip route ospf
Không chỉ cần OSPF Neighbor ở trạng thái FULL, mà phải xác nhận các Router đều có route hợp lệ đến Source 10.1.1.10.
Đây là nền tảng rất quan trọng.
Nếu Router không biết đường unicast về Source, Multicast có thể gặp vấn đề ngay cả khi PIM đã được cấu hình đúng.
2️⃣ ENABLE PIM DENSE MODE
Trên các Router:
ip multicast-routing
Sau đó enable PIM trên các interface tham gia multicast:
interface GigabitEthernet0/0
ip pim dense-mode
Kiểm tra:
show ip pim interface
show ip pim neighbor
Cần phân biệt rõ vai trò của từng thành phần:
Ba thành phần này phối hợp với nhau, không thay thế cho nhau.
3️⃣ SOURCE GỬI MULTICAST – CHUYỆN GÌ XẢY RA?
Giả sử Source 10.1.1.10 bắt đầu gửi traffic đến:
239.1.1.1
Với PIM Dense Mode, cơ chế cơ bản là:
Flood → Prune
Traffic multicast ban đầu được flood qua các interface PIM. Những nhánh không có Receiver quan tâm đến Group có thể gửi Prune, khiến Router ngừng forwarding traffic xuống nhánh đó.
Lúc này, thay vì chỉ nhìn traffic bằng Wireshark, có thể quan sát trực tiếp trạng thái multicast trên Router:
show ip mroute
Đây là lúc bắt đầu thấy Router đang “nhìn” multicast traffic như thế nào.
4️⃣ ĐỌC (S,G) – ROUTER ĐANG BIẾT GÌ?
Giả sử trong Multicast Routing Table xuất hiện:
(10.1.1.10, 239.1.1.1)
Đây là trạng thái (S,G):
Khi đọc show ip mroute, cần tập trung vào hai thành phần:
Incoming Interface – IIF
→ Multicast packet được kỳ vọng đi vào từ interface nào?
Outgoing Interface List – OIL
→ Packet sẽ được forward ra những interface nào?
Có thể hình dung:
IIF
↓
┌─────────┐
Packet → │ Router │ → OIL → Receiver
└─────────┘
Nếu (S,G) tồn tại nhưng OIL không có interface phù hợp, cần tiếp tục kiểm tra PIM và IGMP.
Điểm quan trọng là show ip mroute không chỉ cho biết Multicast có tồn tại hay không, mà còn giúp đọc được Router đang nhận traffic từ đâu và dự định forward traffic về đâu.
5️⃣ RPF – “CỬA ẢI” CỦA MULTICAST
Đây là phần quan trọng nhất của lab.
Giả sử R3 nhận multicast packet từ R2.
R3 sẽ kiểm tra:
Nếu có → RPF Pass.
Nếu không → RPF Fail và packet có thể bị drop.
Kiểm tra:
show ip rpf 10.1.1.10
Điểm rất quan trọng khi troubleshoot:
Packet đến đúng Router không có nghĩa packet sẽ được forward.
Nếu packet đi vào từ interface khác với RPF Interface, Router có thể loại bỏ packet.
Nói cách khác:
Đây chính là lý do Unicast Routing và Multicast Routing có mối liên hệ rất chặt chẽ.
6️⃣ CỐ TÌNH PHÁ LAB – TẠO RPF FAIL
Sau khi Multicast chạy thành công, hãy cố tình thay đổi OSPF metric để R3 chọn một đường khác khi đi về Source.
Kiểm tra trước:
show ip route 10.1.1.10
show ip rpf 10.1.1.10
Sau khi thay đổi metric, kiểm tra lại.
Nếu RPF Interface thay đổi, nhưng multicast traffic thực tế vẫn đi vào từ interface cũ, Router có thể xảy ra RPF Failure.
Tiếp tục kiểm tra:
show ip pim neighbor
show ip mroute
show ip igmp groups
Điểm đáng giá của bài lab không chỉ là tạo được lỗi, mà là hiểu:
Từ đó có thể xác định fault domain thay vì kiểm tra cấu hình một cách ngẫu nhiên.
7️⃣ TROUBLESHOOT MULTICAST THEO LOGIC
Khi Receiver không nhận được traffic, hãy đi theo flow:
Source có gửi traffic?
↓
Có route đến Source?
↓
RPF Pass?
↓
PIM Neighbor hoạt động?
↓
(S,G) xuất hiện?
↓
OIL có interface?
↓
Receiver có join Group?
Các command chính:
show ip route <source-ip>
show ip rpf <source-ip>
show ip pim neighbor
show ip igmp groups
show ip mroute
Điểm quan trọng là mỗi command phải trả lời một câu hỏi kỹ thuật cụ thể:
Điều quan trọng nhất sau bài lab không phải là nhớ show ip mroute hay show ip rpf.
Mà phải hiểu toàn bộ logic:
Source → OSPF → RPF → PIM → (S,G) → OIL → Receiver
Khi Multicast không đến đích, câu hỏi không còn là:
Mà là:
Hiểu Multicast không phải là nhớ PIM hay RPF, mà là đọc được đường đi của packet và tìm ra chính xác nơi Network đang đưa ra quyết định sai.
Nhưng với Multicast, câu chuyện khác hơn.
Source vẫn gửi traffic. Receiver vẫn join Group. PIM vẫn hoạt động. Nhưng packet vẫn không đến Receiver.
Lúc này, không thể chỉ hỏi:
“Destination này đi đường nào?”
Mà phải theo dõi cả chuỗi:
Source → Unicast Routing → RPF → PIM → (S,G) → OIL → Receiver
Đây cũng là lý do IP Multicast trong ENCOR rất phù hợp để thực hành bằng lab: không chỉ cấu hình PIM, mà phải hiểu Router dựa vào đâu để forward hoặc drop multicast packet.
1️⃣ XÂY DỰNG OSPF UNDERLAY
Đừng vội cấu hình PIM.
Trước tiên, đảm bảo các Router có đầy đủ unicast reachability đến Source.
Ví dụ:
router ospf 1
network 10.1.1.0 0.0.0.255 area 0
network 10.1.12.0 0.0.0.255 area 0
Kiểm tra:
show ip ospf neighbor
show ip route ospf
Không chỉ cần OSPF Neighbor ở trạng thái FULL, mà phải xác nhận các Router đều có route hợp lệ đến Source 10.1.1.10.
Đây là nền tảng rất quan trọng.
Nếu Router không biết đường unicast về Source, Multicast có thể gặp vấn đề ngay cả khi PIM đã được cấu hình đúng.
2️⃣ ENABLE PIM DENSE MODE
Trên các Router:
ip multicast-routing
Sau đó enable PIM trên các interface tham gia multicast:
interface GigabitEthernet0/0
ip pim dense-mode
Kiểm tra:
show ip pim interface
show ip pim neighbor
Cần phân biệt rõ vai trò của từng thành phần:
- OSPF: cung cấp thông tin unicast routing.
- PIM: sử dụng thông tin đó để xây dựng multicast forwarding.
- IGMP: giúp Router biết Receiver nào quan tâm đến multicast Group.
Ba thành phần này phối hợp với nhau, không thay thế cho nhau.
3️⃣ SOURCE GỬI MULTICAST – CHUYỆN GÌ XẢY RA?
Giả sử Source 10.1.1.10 bắt đầu gửi traffic đến:
239.1.1.1
Với PIM Dense Mode, cơ chế cơ bản là:
Flood → Prune
Traffic multicast ban đầu được flood qua các interface PIM. Những nhánh không có Receiver quan tâm đến Group có thể gửi Prune, khiến Router ngừng forwarding traffic xuống nhánh đó.
Lúc này, thay vì chỉ nhìn traffic bằng Wireshark, có thể quan sát trực tiếp trạng thái multicast trên Router:
show ip mroute
Đây là lúc bắt đầu thấy Router đang “nhìn” multicast traffic như thế nào.
4️⃣ ĐỌC (S,G) – ROUTER ĐANG BIẾT GÌ?
Giả sử trong Multicast Routing Table xuất hiện:
(10.1.1.10, 239.1.1.1)
Đây là trạng thái (S,G):
- S = Source
- G = Multicast Group
Khi đọc show ip mroute, cần tập trung vào hai thành phần:
Incoming Interface – IIF
→ Multicast packet được kỳ vọng đi vào từ interface nào?
Outgoing Interface List – OIL
→ Packet sẽ được forward ra những interface nào?
Có thể hình dung:
IIF
↓
┌─────────┐
Packet → │ Router │ → OIL → Receiver
└─────────┘
Nếu (S,G) tồn tại nhưng OIL không có interface phù hợp, cần tiếp tục kiểm tra PIM và IGMP.
Điểm quan trọng là show ip mroute không chỉ cho biết Multicast có tồn tại hay không, mà còn giúp đọc được Router đang nhận traffic từ đâu và dự định forward traffic về đâu.
5️⃣ RPF – “CỬA ẢI” CỦA MULTICAST
Đây là phần quan trọng nhất của lab.
Giả sử R3 nhận multicast packet từ R2.
R3 sẽ kiểm tra:
“Nếu muốn quay về Source 10.1.1.10, đường unicast tốt nhất của tôi có đi qua R2 không?”
Nếu có → RPF Pass.
Nếu không → RPF Fail và packet có thể bị drop.
Kiểm tra:
show ip rpf 10.1.1.10
Điểm rất quan trọng khi troubleshoot:
Packet đến đúng Router không có nghĩa packet sẽ được forward.
Nếu packet đi vào từ interface khác với RPF Interface, Router có thể loại bỏ packet.
Nói cách khác:
RPF không hỏi packet muốn đi đâu. RPF kiểm tra packet đến từ đâu và hướng đó có hợp lệ để quay về Source hay không.
Đây chính là lý do Unicast Routing và Multicast Routing có mối liên hệ rất chặt chẽ.
6️⃣ CỐ TÌNH PHÁ LAB – TẠO RPF FAIL
Sau khi Multicast chạy thành công, hãy cố tình thay đổi OSPF metric để R3 chọn một đường khác khi đi về Source.
Kiểm tra trước:
show ip route 10.1.1.10
show ip rpf 10.1.1.10
Sau khi thay đổi metric, kiểm tra lại.
Nếu RPF Interface thay đổi, nhưng multicast traffic thực tế vẫn đi vào từ interface cũ, Router có thể xảy ra RPF Failure.
Tiếp tục kiểm tra:
show ip pim neighbor
show ip mroute
show ip igmp groups
Điểm đáng giá của bài lab không chỉ là tạo được lỗi, mà là hiểu:
Router đang drop packet vì điều kiện nào?
Từ đó có thể xác định fault domain thay vì kiểm tra cấu hình một cách ngẫu nhiên.
7️⃣ TROUBLESHOOT MULTICAST THEO LOGIC
Khi Receiver không nhận được traffic, hãy đi theo flow:
Source có gửi traffic?
↓
Có route đến Source?
↓
RPF Pass?
↓
PIM Neighbor hoạt động?
↓
(S,G) xuất hiện?
↓
OIL có interface?
↓
Receiver có join Group?
Các command chính:
show ip route <source-ip>
show ip rpf <source-ip>
show ip pim neighbor
show ip igmp groups
show ip mroute
Điểm quan trọng là mỗi command phải trả lời một câu hỏi kỹ thuật cụ thể:
- show ip route → Router đi về Source qua đâu?
- show ip rpf → Interface nào được chọn làm RPF?
- show ip pim neighbor → PIM adjacency có hoạt động?
- show ip igmp groups → Receiver có join Group?
- show ip mroute → Multicast forwarding đang diễn ra như thế nào?
Điều quan trọng nhất sau bài lab không phải là nhớ show ip mroute hay show ip rpf.
Mà phải hiểu toàn bộ logic:
Source → OSPF → RPF → PIM → (S,G) → OIL → Receiver
Khi Multicast không đến đích, câu hỏi không còn là:
“Lệnh nào để kiểm tra?”
Mà là:
“Router đang đưa ra quyết định nào, dựa trên thông tin nào, và quyết định đó sai ở đâu?”
Hiểu Multicast không phải là nhớ PIM hay RPF, mà là đọc được đường đi của packet và tìm ra chính xác nơi Network đang đưa ra quyết định sai.