Tìm hiểu về giao thức MSDP – Multicast Source Discovery Protocol cho IP Multicast

Overview

Trong một mạng multicast PIM-SM lớn, hoặc một mạng phân tán, người ta thường chia ra thành nhiều domain. Mỗi domain có thể có một hoặc nhiều RP để phục vụ việc tìm kiếm source cho các receiver trong domain đó. Tuy nhiên, như vậy sẽ xảy ra vấn đề khi một receiver ở domain này muốn kết nối đến source trong domain khác, bởi RP khi đó chỉ có thông tin về source nằm trong domain chứ không hề có thông tin về các source ở ngoài.

Giải pháp một, các receiver sẽ cần biết thông tin về source thông qua một giao thức khác (có thể là PIM SSM). Phương pháp này dễ triển khai nhưng không linh hoạt do người sử dụng phải cấu hình bằng tay trên các receiver. Khi có bất kỳ thay đổi về source, receiver sẽ không thể tự động cập nhật lại.

Giải pháp tối ưu là sử dụng giao thức Multicast Source Discovery Protocol (MSDP). Giao thức này cho phép các RP trao đổi thông tin active source cho nhau, từ đó giúp đồng bộ danh sách active source trên tất cả các RP.

Hoạt động của MSDP


Nếu bạn đã hiểu về BGP, thì ý tưởng của MSDP cũng gần giống như vậy. Các RP muốn sử dụng MSDP sẽ được cấu hình “peer” với nhau. Khi hoàn thành cấu hình, các cặp RP sẽ tạo kết nối TCP với nhau thông qua TCP port 639. Phiên TCP này được sử dụng để thiết lập quan hệ MSDP peer (mình sẽ không nói nhiều về luồng trao đổi bản tin thiết lập quan hệ, các bạn có thể tham khảo trong RFC3618). Để duy trì quan hệ MSDP peer, các RP định kỳ gửi ra bản tin MSDP Keep Alive. Nếu sau 1 thời gian không nhận được KeepAlive, RP sẽ coi MSDP peer bị down.

Khi đã thiết lập quan hệ MSDP peer, và nhận được bản tin source register từ DR (tức là có một active source xuất hiện trong mạng), RP sẽ gửi bản tin MSDP đến peer, chứa thông tin Source Active TLV (SA). Bản tin này chứa:Địa chỉ originate RP (RP đầu tiên tạo ra bản tin này),
Địa chỉ source,
Địa chỉ multicast mà source đó phát ra.

Việc một RP nhận được nhiều bản tin SA là điều có thể xảy ra (khi các RP được thiết lập peer loop với nhau). Vì vậy, khi nhận được bản tin SA, RP sẽ kiểm tra địa chỉ originate RP và địa chỉ IP nguồn của bản tin vừa nhận trong danh sách peer-RPF của nó.

Note: Peer-RPF là một danh sách chứa nhiều entry, mỗi entry chứa địa chỉ của RP (trong trường hợp này là địa chỉ của MSDP peer) và địa chỉ nexthop (lấy từ BGP routing table) mà router sử dụng để đi đến MSDP peer. Mỗi một entry như vậy được gọi là một RPF peer.

Bản tin SA được coi là hợp lệ nếu chứa originate RP = MSDP peer, source IP của bản tin = địa chỉ nexthop. Nếu không thỏa mãn đồng thời 2 điều kiện trên, RP sẽ coi bản tin SA là không hợp lệ và drop.

Mỗi khi nhận được SA hợp lệ, RP sẽ chuyển tiếp bản tin này (giữ nguyên các trường thông tin bên trong) đến các MSDP peer khác, ngoại trừ RPF peer mà nó vừa thực hiện kiểm tra. Đồng thời, RP cũng sẽ lưu thông tin (S,G) đã học được từ SA, để khi có một yêu cầu join từ receiver, nó sẽ gửi bản tin (S, G) join đến source như hoạt động của PIM SM cơ bản.

Hình dưới đây mô tả về hoạt động giữa các MSDP peer, các bạn có thể tham khảo:



Bản tin MSDP Source Active



Lợi ích khi sử dụng MSDP


Sử dụng MSDP giúp đem lại các lợi ích:Chia nhỏ shared multicast tree, giới hạn nó chỉ trong các domain. Các receiver sẽ chỉ phải gửi bản tin join trong domain mà không cần phải gửi ra ngoài domain.
Tăng khả năng bảo mật.

Post a Comment

أحدث أقدم