Professional Documents
Culture Documents
Dịch PIM
Dịch PIM
Protocol-Independent Multicast (PIM) là một giao thức định tuyến được dùng để truyền lưu lượn
multicast. PIM hoạt đông độc lập với các giao thức định tuyến khác (EIGRP hoặc OSPF) chạy
trong mạng. PIM sử dụng bảng định tuyến bình thường, được thêm vào bởi giao thức định tuyến
unicast (EIGRP, OSPF, RIPv2…), trong các giao thức định tuyến multicast của nó. Không giống
như các giao thức định tuyến khác, PIM không có các cập nhật định tuyến giữa các router. Khi
router chuyển dữ liệu unicast nó sẽ nhìn vào địa chỉ đích trong bảng định tuyến để chuyển gói tín
ra ngoài cổng phù hợp.
Tuy nhiên, khi router gữi các dữ liệu multicast, router có lẽ phải chuyển các gói tin ra nhiều
cổng, hướng về tất cả các host nhận. Các router cho phép multicast sử dụng PIM tạo tự động các
cây phân bố mà nó điều khiển đường đi của lưu lượng IP multicast thông qua mạng để cung cấp
lưu lượng truy cập cho tất cả thiết bị nhận. Có hai loại cây phân bố:
- Source tree (cây nguồn): là mô hình cơ bản nhất để phân phối multicast traffic. Source
Tree giúp cung cấp thông tin về đường đi ngắn nhất từ gốc đến nhánh, vì vậy nó còn có
thể gọi là Shortest Path Trees (SPTs).
- Shared tree (cây chia sẻ): gốc cây lúc này không còn là nguồn multicast nữa, mà là một
router có nhiệm vụ “trung chuyển” lưu lượng muticast trong mạng. Router trung chuyển
này được gọi là Rendezvous Point (RP). RP là điểm được sử dụng để trung chuyển lưu
lượng multicast từ nguồn đến các máy nhận khác trong mạng multicast, mọi nguồn
multicast sẽ gửi lưu lượng đến RP để RP gửi đến máy nhận.
PIM hoạt động một trong hai chế độ sau:
- Sparse mode: Sử dụng Shared tree, do đó phải xác định được RP. Lưu lượng multicast
được gửi đến router RP và router RP sẽ không gửi lưu lượng đó đến các router khác cho
đến khi nào có một router muốn nhận lưu lượng multicast đó thì router RP mới truyền lưu
lượng multicast cho router muốn nhận.
- Dense mode: Mô hình sử dụng các Source tree. Khi router hoạt động ở Dense mode thì
nó sẽ tràn lưu lượng multicast đến toàn bộ mạng. Nếu router nào không muốn nhận lưu
lượng multicast thì nó sẽ gửi bản tin prune lên router nguồn để router nguồn không
chuyển lưu lượng multicast đến router đó nữa.
Lưu ý thông tin cổng S0/1 hiển thị trong danh sách cổng ra. Cổng này đã bị loại bỏ cách đấy 8
giây bởi vì router R3 gửi ra một bản tin Prune đến R2. Điều này có nghĩa là, ở thời điểm này, R2
sẽ không truyền lưu lượng về nhóm 226.1.1.1 trên cổng S0/1.
Bởi vì khuynh hướng của PIM-DM là phát tán lưu lượng trên toàn mạng, cổng S0/1 có thể quay
trở lại trạng thái forwarding sau 2 phút và 52 giây. Trong PIM-DM, khi một router nhận được
bản tin Prune trên một cổng, nó bật một thông số Prune mặc định 3 phút, đếm ngược về 0. Khi
bản tin Prune là hết, router thay đổi ngược về trạng thái chuyển tiếp một lần nữa. Nếu router bên
dưới không muốn nhận lưu lượng, nó sẽ gửi bản tin Prune một lần nữa. Đặc điểm này giúp router
nhận biết có lưu lượng nhóm trên một cổng đặc biệt từ router bên trên.
PIM-DM: Phản ứng với một liên kết không thành công
Khi các kết nối bị hỏng hóc, sự cố, hay bất kỳ một thay đổi nào khác ảnh hưởng bảng định tuyến
unicast, PIM-DM cần phải cập nhật các cổng RPF dựa trên thông tin định tuyến unicast mới. Bởi
vì các cổng RPF có thể thay đổi, (S,G) cũng có thể cần một danh sách các cổng khác nhau trong
danh sách cổng ra.
Hình 20-7 cho thấy một ví dụ trong đó liên kết giữa R1 và R3, được minh họa ban đầu trong
Hình 20-6, đã bị lỗi. Sau khi giao thức định tuyến unicast hội tụ, R3 cần cập nhật địa chỉ IP láng
giềng RPF từ 10.1.4.1 (R1) lên 10.1.3.2 (R2). Cũng trong trường hợp này, H1 đã đưa ra một
thông báo IGMP Rời khỏi.
Ví dụ 20-3 cho thấy kết quả mục nhập bảng định tuyến multicast cho R3 trong Hình 20-7. Lưu ý
rằng cổng RPF và địa chỉ IP láng giềng đã thay đổi để trỏ đến R2.
Ví dụ 20-3 R3 nhận thấy cây SPT của nhóm (10.1.1.10,226.1.1.1) đã thay đổi. Tuy nhiên, R2 đã
lược bỏ cổng s0 / 1 của nó ra khỏi SPT đó, như trong Hình 20-6. Vì vậy, R2 cần thay trạng thái
cổng s0 / 1 của nó trở lại trạng thái chuyển tiếp cho cây SPT (10.1.1.10, 226.1.1.1). Ví dụ 20-4
cho thấy kết quả mục nhập bảng định tuyến multicast cho (10.1.1.10, 226.1.1.1) trong R2.
R2 thay đổi cổng S0/1 của nó sang trạng thái chuyển tiếp bởi vì bản tin PIM graft được gửi bởi
R3.
Trong ví dụ 20-4, lưu ý danh sách cổng ra cho R2. R2 bây giờ đã xóa cổng F0/0 ra khỏi danh
sách cổng ra và không truyền lưu lượng qua cổng này bởi vì nó không nhận được trả lời cho bản
tin IGMP của nhóm 226.1.1.1. Kết quả là, R2 cũng xóa cờ C (C có nghĩa là connected) ra khỏi
bảng định tuyến multicast cho hàng (10.1.1.10,226,1.1.1). Thêm vào đó, R2 đẩy các lưu lượng
của nó trên cổng S0/1 về R3 bởi vì R3 vẫn truyền lưu lượng ra cổng F0/0 và chưa gửi bản tin
Prune về R2.
➢ Quy tắc Prune
Phần này giải thích hai luật mà một PIM-DM phải tuân theo để quyết định khi nào nó có thể yêu
cầu một bản tin prune. Trước khi giải thích một số ví dụ khác, ta cần phải định nghĩa thêm một
số thuật ngữ multicast mới. Đó là upstream router và downstream router.
- Một router là upstream router của R1 là router mà từ đó R1 nhận gói tin multicast của
một cây SPT cụ thể.
- Một router là downstream router của R1 là một router mà từ đó R1 chuyển một vài gói tin
multicast cho một cây SPT cụ thể.
Ví dụ, R1 là upstream router của R2 cho các gói mà S1 đang gửi đến 226.1.1.1 trong Hình 20-7.
R3 là downstream router của R2 cho các gói tin tương tự, vì R2 gửi các gói tin đó đến R3.
Các router PIM-DM có thể chọn gửi bản tin Prune vì nhiều lý do, một trong số đó đã được đề
cập trước đó liên quan đến Hình 20-6. Những lý do chính được tóm tắt ở đây:
- Khi router nhận được những gói tin trên một cổng non-RPF
- Khi một router nhận ra rằng cả hai điều sau đều đúng:
+ Không có máy trạm nào được kết nối cục bộ trong một nhóm cụ thể đang lắng nghe các
gói tin.
+ Không có downstream router nào đang lắng nghe nhóm.
Phần này cho thấy logic đằng sau lý do thứ hai để gửi bản tin Prune. Tại thời điểm này trong
phần giải thích của Hình 20-6 và 20-7, máy trạm duy nhất cần nhận các gói tin được gửi đến
226.1.1.1 là H2. Các router PIM-DM trong mạng này sẽ làm gì nếu H2 rời khỏi nhóm 226.1.1.1?
Hình 20-8 cho thấy một ví dụ như vậy, với H2 gửi một bản tin rời nhóm IGMP cho nhóm
226.1.1.1. Hình 20-8 cho thấy cách PIM-DM sử dụng thông tin này để cập nhật động SPT.
Hình 20-8 cho thấy ba bước, với logic trong Bước 2 và 3 là tương tự nhưng rất quan trọng:
1. H2 rời khỏi nhóm multicast bằng cách gửi một bản tin rời khỏi IGMP.
2. R3 dùng bản tin truy vấn IGMP query để xác nhận rằng không còn máy nào khác trên
LAN muốn nhận lưu lượng của nhóm 226.1.1.1. Vì vậy R3 gửi ra bản tin Prune ra khỏi
cổng RPF trên router R2, tham chiếu đến cây (10.1.1.1, 226.1.1.1).
3. R2 không có bất cứ host kết nối cục bộ nàolắng nghe nhóm 226.1.1.1. Bây giờ chỉ các
router bên dưới gửi bản tin Prune cho SPT với địa chỉ nguồn là 10.1.1.1, về địa chỉ nhóm
là 226.1.1.1. Vì vậy R2 không có lý do nào để cần các gói tin gửi về địa chỉ nhóm
226.1.1.1 nữa. Vì vậy R2 gửi ra bản tin Prune, tham chiếu đến (10.1.1.20,226.1.1.1) ra
khỏi cổng RPF về R1.
Sau khi quá trình loại bỏ pruning là hoàn tất, cả R3 và R2 sẽ không còn chuyển lưu lượng cho
nhóm 226.1.1.1 từ nguồn 10.1.1.10. Trong router, lệnh show ip mroute sẽ hiển thị thông tin là cờ
P (prune), có nghĩa là router đã loại bỏ chính nó ra khỏi cấu trúc cây (S,G).
Sau khi tất cả các bước trong Hình 20-8 đã hoàn thành, R1 cũng không cần gửi các gói tin được
gửi bởi 10.1.1.10 đến 226.1.1.1 ra bất kỳ cổng nào. Sau khi nhận được bản tin Prune từ R2, R1
cũng đã cập nhật danh sách cổng gửi đi của mình, điều này cho thấy rằng chỉ có một cổng gửi đi
và nó đang ở trạng thái bị lược bớt vào lúc này. Ví dụ 20-6 cho thấy các chi tiết.
Đặc biệt quan tâm đến đầu ra, R1 đã gán cờ C nhưng đối với R1, cờ C không chỉ ra rằng R1 có
thành viên kết nối trực tiếp. Trong trường hợp này, một kết hợp của cờ C và một láng giềng RPF
có giá trị 0.0.0.0 chỉ ra rằng thiết bị kết nối trực tiếp là nguồn của nhóm multicast.
Thực tế không có sự phân biệt giữa bản tin Prune và bản tin Join, thay vào đó PIM-DM và PIM-
SM dùng một bản tin đơn duy nhấn gọi là bản tin Join/Prune. Một bản tin Prune là một bản tin
Join/Prune có địa chỉ nhóm được chỉ ra trong trường Prune. Một bản tin Join là một bản tin
Join/Prune có địa chỉ nhóm liệt kê trong trường Join.
➢ Trạng thái hoạt động Steady-state và bản tin làm mới trạng thái (State Refresh):
Như đã mô tả trước đây, với PIM-DM một cổng luôn trong trạng thái prune trong ba phút. Các
bản tin prune liệt kê một nguồn và nhóm. Bất cứ khi nào một router nhận được bản tin prune, nó
sẽ tìm một hàng (S,G) SPT trong bảng định tuyến multicast và đánh dấu các cổng trong đó bản
tin Prune là nhận được. Tuy nhiên, router cũng thiết lập giá trị prune timer, mặc định là 3 phút,
sao cho sau ba phút, cổng này được đặt trong trạng thái chuyển tiếp một lần nữa.
Vì vậy, đều gì xảy ra với PIM-DM và các kết nối bị loại bỏ? Các liên kết bị loại bỏ và sau ba
phút, các liên kết này được hoạt động lại. Khi có nhiều dòng multicast, các kết nối bị loại bỏ, sau
đó, các kết nối lại hoạt động sau ba phút. Và cứ thế tiếp diễn. Vì vậy, khi Cisco tạo ra cơ chế
PIMv2 (RFC3973), nó bao gồm một đặc điểm gọi là làm mới trạng thái (state refresh). Các bản
tin làm mới trạng thái này có thể ngăn ngừa tình trạng kém hiệu quả của PIM-DM v1 trong tiến
trình pruning.
Trong hình 20-9, kết nối giữa R1 và R2 và kết nối giữa R2 và R3 bị loại bỏ, sau ba phút, các kết
nối sẽ được thêm vào cây đường đi ngắn nhất SPT do các thời gian Prune bị hết.
Bản tin làm mới trạng thái State refresh có thể được gửi trước khi khoảng thời gian prune bị hết
để vẫn giữ các cổng của router trong tình trạng bị loại bỏ khỏi cây. Trong hình 20-9, các bước
sau đây sẽ xảy ra:
1. R3 giám sát thời gian trôi qua kể từ khi nó gửi bản tin Prune lần cuối đến R2. Ngay trước
khi thời gian Prune bị hết, R3 quyết định gửi một bản tin làm mới trạng thái đến R2.
2. R3 gửi bản tin làm mới trạng thái đến R2, tham chiếu đến cây SPT (10.1.1.10, 226.1.1.1)
3. R3 phản ứng bằng cách thiết lập lại thời gian prune cho những cổng trên đó nó nhận được
bản tin làm mới trạng thái.
4. Bởi vì R2 cũng đã loại bỏ chính nó bằng cách gửi bản tin Prune đến R1, R2 cũng sẽ dùng
chính bản tin này để báo cho R1 vẫn để cổng s0/0 trong trạng thái prune.
Cho đến khi nào R3 vẫn gửi bản tin làm mới trạng thái trước khi khoảng thời gian prune là hết
trên router upstream R2, cây đừơng đi ngắn nhất SPT vẫn trong trạng thái ổn định và sẽ không bị
định kỳ phát tán các gói multicast cho cây (S,G).
➢ Bản tin Graft
Khi các máy tham gia một nhóm, router có thể cần thay đổi trạng thái SPT hiện hành cho một
nhóm (S,G). Với PIM-DM, một giải pháp có thể là chờ cho kết nối prune hết giờ. Ví dụ, theo
hình 20-9, R3 chỉ đơn giản ngừng gửi các bản tin làm mới trạng thái State Refresh trong tối đa ba
phút. R3 sẽ một lần nữa nhận gói tin multicast của vài nhóm (S,G). Tuy nhiên, nếu để chờ
khoảng thời gian mặc định ba phút trôi qua thì không hiệu quả. Để cho phép router “unprune”
một cổng của router trước đây bị loại bỏ, PIM-DM dùng bản tin Graft. Bản tin này được định
nghĩa như sau:
Một router gửi ra một bản tin Graft đến một upstream router, là router láng giềng đã gửi ra bản
tin loại bỏ prune. Bản tin graft làm cho router láng giềng đưa cổng vào trạng thái chuyển tiếp cho
một nhóm multicast nào đó.
Hình 20-10, ban đầu cả máy H1 và H2 không tham gia vào nhóm 226.1.1.1. Và R2 và R3 đã bị
loại bỏ ra khỏi nhóm (10.1.1.10, 226.1.1.1).Cổng S0/0 của R1 đã bị loại bỏ ra khỏi (S,G) SPT, vì
vậy R2 và R3 không nhận được lưu lượng multicast gửi bởi S1 về 226.1.1.1.1. Sau đó, H2 tham
gia vào nhóm 226.1.1.1 một lần nữa.
Nếu không có bản tin Graft, máy H2 sẽ phải chờ một khoảng thòi gian là ba phút trước khi nó
nhận được lưu lượng của nhóm. Tuy nhiên với các bước sau đây, H2 sẽ nhận gói tin chỉ trong vài
phút:
1. Host H2 gửi một bản tin IGMP Join.
2. R3 tìm cổng RPF trong bảng định tuyến multicast cho nhóm 226.1.1.1. Trong bảng đó,
cổng s0/0 là cổng đi vào và các router láng giềng RPF là 10.1.3.2.
3. R3 gửi bản tin Graft ra cổng S0/0 đến R2.
4. R2 bây giờ biết nó cần nhận lưu lượng từ 10.1.1.10 gửi đến 226.1.1.1. Tuy nhiên, hàng
(S,G) của R2 cũng hiện thị cờ P, nghĩa là R2 đã tự loại bỏ chính nó ra khỏi cây SPT. Vì
vậy, R2 tìm cổng RPF của nó và các router láng giềng trong bảng (S,G), trong đó đang
chỉ đến cổng S0/0 và router R1.
5. R2 gửi bản tin Graft về cho R1.
Ở thời điểm này, R1 ngay lập tức đưa cổng S0/0 vào danh sách các cổng ra giống như R2 và bây
giờ H2 bắt đầu nhận gói tin multicast. Lưu ý rằng R1 cũng gửi bản tin Graft Ack trả lời lại R2 và
R2 gửi graft ACK để trả lời về R3.
➢ Prune Override
Trong cả PIM-DM và PIM-SM, tiến trình prune trên các mạng đa truy cập hoạt động khác với
trong những kết nối điểm-điểm. Nguyên nhân là khi một router gửi ra một bản tin prune trên một
mạng đa truy cập, các router khác có thể không muốn kết nối bị loại bỏ bởi router upstream.
Trong hình 20-11, R1 đang truyền dữ liệu cho nhóm 239.9.9.9 trên cổng F0/0 với R2 và R3 đang
nhận lưu lượng nhóm 239.9.9.9 nhận lưu lượng trên cổng E0. R2 không có thành viên của nhóm
nào đang kết nối trực tiếp và vì vậy danh sách các cổng ra của nó là null. Các bước tiếp theo sau
đây sẽ diễn ra khi R3 cần gửi bản tin Prune Override:
1. R2 gửi ra bản tin prune cho nhóm 239.9.9.9 bởi vì R2 có danh sách cổng ra là null.
2. R1 nhận ra nó nó đang có một bản tin Prune gửi đến, biết rằng có thể có những router
khác vẫn muốn nhận gói tin. Vì vậy thay vì ngay lập tức loại bỏ cổng, R1 gán một
khoảng thời gian 3 giây trước khi R1 loại bỏ cổng.
3. R3 cũng nhận bản tin prune được gửi bởi R2 bởi vì bản tin Prune được gửi theo dạng
multicast đến địa chỉ tất cả các PIM routers 224.0.0.13. R3 cũng vẫn cần nhận lưu lượng
của nhóm 239.9.9.9, vì vậy R3 gửi một bản tin tham gia Join ra cổng E0.
4. R1 nhận được bản tin tham gia Join từ R3 trước khi xóa cổng LAN của nó ra khỏi danh
sách cổng ra. Kết quả là R1 không loại bỏ cổng F0/0 của nó.
Tiến trình này gọi là Prune Override bởi vì R3 bỏ qua bản tin loại bỏ prune được gửi bởi R2. Bản
tin prune override thật ra là một bản tin Join được gửi bởi R3 trong trường hợp này. Bản tin này
không có gì khác với bản tin Join bình thường. Ngay khi R1 nhận được bản tin Join từ R3 trước
khoảng thời gian 3 giây bị hết hạn, R3 tiếp tục nhận lưu lượng mà không bị ngắt quãng.
➢ Bản tin xác nhận (Assert Message):
Loại bản tin cuối cùng được mô tả trong chương này là bản tin PIM Assert. Bản tin Assert được
dùng để ngăn ngừa những nỗ lực vô ích khi có nhiều router kết nối vào cùng mạng LAN. Thay vì
gửi nhiều bản sao của những gói multicast vào trong LAN, bản tin PIM cho phép các router bắt
tay thoả thuận với nhau. Router thắng sẽ có quyền chịu trách nhiệm đẩy lưu lượng multicast vào
trong LAN.
Hình 20-12 mô tả một ví dụ của nhu cầu chèn bản tin Assert. R2 và R3 cả hai cùng gắn vào trong
LAN, với H1 là thành viên tích cực của nhóm 227.7.7.7. Cả R2 và R3 cùng đang nhận lưu lượng
của nhóm cho 227.7.7.7 từ nguồn 10.1.1.10.
Mục đích của thông điệp Assert là gán trách nhiệm đưa lưu lượng của nhóm cho router gần nhất
với nguồn. Khi R2 và R3 nhận lưu lượng nhóm từ nguồn trên cổng S0, các router truyền trên
cổng E0. Cả hai đều có cổng S0 trong danh sách các cổng đi vào và E0 trong danh sách cổng ra.
Ở thời điểm này, cả R2 và R3 đều nhận gói tin multicast trên cổng E0, làm cho các router sẽ
dùng thông điệp Assert để giải quyết vấn đề router nào sẽ làm router truyền lưu lượng.
Tiến trình Assert chọn ra một router thắng cuộc dựa trên giao thức định tuyến và metric dùng để
tìm ra tuyến đường để đến địa chỉ unicast của nguồn. Trong ví dụ này, điều này có nghĩa là R2
hay R3 sẽ thắng dựa trên những tuyến mà họ dùng để đến 10.1.1.10. R2 và R3 sẽ gửi thông điệp
Assert bao gồm giá trị AD (Administrative Distances) của giao thức định tuyến được dùng để
đến 10.1.1.10, cũng như là metric được dùng để đến các route này. Các router trên LAN so sánh
giá trị AD và metric trong thông điệp Assert. Router thắng cuộc được xác định như sau:
1. Router đang quảng bá một giá trị AD thấp nhất của giao thức định tuyến sẽ thắng.
2. Nếu là ngang bằng, router với giá trị metric thấp nhất sẽ thắng.
3. Nếu là tiếp tục ngang bằng, router có địa chỉ IP cao nhất trên LAN sẽ thắng.
➢ Router được chỉ định (DR - Designated Router):
Cơ chế PIM Hello được dùng để bầu chọn router DR trên môi trường đa truy cập. Một router
PIM-DM hoặc PIM-SM có địa chỉ IP cao nhất sẽ trở thành DR.
Khái niệm PIM DR áp dụng chủ yếu khi IGMPv1 được dùng. IGMPv1 không có cơ chế bầu
chọn router truy vấn, nghĩa là IGMPv1 không có cách nào để quyết định router nào trong số các
router trên LAN nên gửi thông điệp truy vấn IGMP query. Khi IGMPv1 được dùng, PIM DR sẽ
được dùng như là router truy vấn của IGMP. IGMPv2 có thể bầu chọn trực tiếp router truy vấn
(là router có địa chỉ IP thấp nhất), vì vậy PIM DR không được dùng như router truy vấn khi
IGMPv2 được dùng.
Lưu ý rằng trên LAN, một router có thể thắng tiến trình bầu chọn Assert cho một nhóm (S,G)
trong khi một router khác có thể trở thành router truy vấn IGMP Querier (PIM DR cho IGMPv1,
IGMPv2 Querier cho IGMPv2). Router thắng cuộc sẽ chịu trách nhiệm đẩy lưu lượng multicast
vào trong LAN trong khi router truy vấn IGMP querier chịu trách nhiệm quản lý tiến trình IGMP
bằng cách gửi thông điệp bầu chọn trong LAN. Cũng lưu ý rằng tiến trình bầu chọn router truy
vấn chọn ra địa chỉ IP thấp nhất và tiến trình Assert dùng địa chỉ IP cao nhất, làm cho tồn tại một
khả năng là có những router khác nhau được chọn lựa cho các tiến trình khác nhau.
➢ Tóm tắt các bản tin của PIM-DM:
Bảng 20-2 liệt kê các bản tin chính của PIM-DM được đề cập trong chương này, cùng với định
nghĩa ngắn gọn về việc sử dụng chúng.
Bản tin PIM Định nghĩa
Được sử dụng để hình thành các quan hệ láng giềng với các
router chạy PIM khác và để duy trì quan hệ bằng cách giám sát
Hello
các bản tin Hello đã nhận được từ mỗi router láng giềng. Nó
cũng được sử dụng để chọn PIM DR trên các mạng đa truy cập.
Được sử dụng để yêu cầu một router láng giềng xóa kết nối mà
Prune
trên đó nó nhận được thông điệp Prune từ một cây (S,G) cụ thể.
Được sử dụng bởi một downstream router, được gửi đến
upstream router trên cổng RPF , để khiến upstream router đặt lại
State Refresh bộ hẹn giờ Prune (Prune timer) của nó. Điều này cho phép
downstream router duy trì trạng thái prune của một liên kết, đối
với một cây SPT (S, G) cụ thể.
Được sử dụng trên mạng đa truy cập để xác định router nào
Assert giành được quyền chuyển tiếp multicast vào mạng LAN, cho một
cây SPT (S, G) cụ thể.
Trong một mạng LAN, một router có thể phát một bản tin Prune
tới các upstream router của nó . Các router khác trong cùng một
mạng LAN, muốn ngăn upstream router cắt bỏ mạng LAN thì
Prune Override (Join) hãy gửi ngay một bản tin Tham gia khác cho cây SPT (S, G).
(Prune Override không thực sự là một bản tin Prune Override mà
nó là một bản tin Tham gia. Đây là mục đích duy nhất của một
bản tin Tham gia trong PIM-DM, theo RFC 3973.)
Khi một liên kết bị cắt bỏ cần được thêm lại vào cây SPT (S, G)
thì một router gửi ra một thông điệp Graft đến một upstream
Graft/Graft-Ack router, là router láng giềng đã gửi ra bản tin loại bỏ prune. Thông
điệp graft làm cho router láng giềng đưa cổng vào trạng thái
chuyển tiếp cho một nhóm multicast nào đó.
Trong ví dụ 20-8, Cổng S1 trong trạng thái chuyển tiếp vì R5 nhận được thông điệp PIM-SM
Join mỗi 60 giây từ R4. Trong PIM-SM, các router downstream cần tiếp tục gửi thông điệp PIM-
SM Join mỗi 60 giây đến router upstream. Khi R5 nhận một thông điệp PIM-SM từ R4 trên cổng
s1 của nó, nó sẽ thiết lập thông số thời gian prune timer về giá trị mặc định 3 phút. Nếu R5
không nhận được thông điệp PIM-SM Join từ R4 trước khi thời gian prune trên R5 trên cổng đó
bị hết, R5 đặt cổng s1 trong trạng thái prune và không truyền lưu lượng vào cổng đó.
Trái lại, cổng e0 của R5 được liệt kê như là chuyển tiếp trên danh sách cổng ra của R5 bởi vì R5
đã nhận một thông điệp IGMP Join từ H2.
Trên R5, R5 sẽ gửi thông điệp PIM Join về RP nếu nhận được thông điệp PIM Join từ R4 hoặc
thông điệp IGMP Report trên e0.
➢ Chuyển đổi cây đường đi ngắn nhất:
Các PIM-SM có thể tiếp tục truyền gói tin thông qua PIM-SM thông qua tiến trình hai bước
trong đó nguồn gửi gói tin đến RP và RP gửi gói tin đến tất cả các router khác dùng RPT. Tuy
nhiên khía cạnh thú vị nhất của hoạt động của PIM-SM là mỗi router PIM-SM có thể xây dựng
cây SPT giữa nó và nguồn của nhóm multicast lựa ra đường đi hiệu quả nhất từ nguồn đến
router. Trong hình 20-16, R4 đang nhận lưu lượng nhóm từ nguồn thông qua đường dẫn R1-R2-
R3-R5-R4. Tuy nhiên, rõ ràng là R4 sẽ hiệu quả hơn khi nhận lưu lượng nhóm trực tiếp từ R1
trên cổng s1 của R4.
Thiết kế của PIM-SM cho phép RP xây dựng một cây đường đi ngắn nhất giữa nó và router đang
gắn trực tiếp với nguồn (còn được gọi là DR nguồn) để “kéo” lưu lượng nhóm. Tương tự, PIM-
SM cho phép các router PIM-SM khác xây dựng một cây SPT giữa router và DR nguồn. Đặc
điểm này giúp một router PIM-SM tránh việc sử dụng các đường đi kém hiệu quả trên cây SPT.
Ngoài ra, khi một router bắt đầu nhận lưu lượng nhóm trên cây SPT, nó có thể gửi ra thông điệp
Prune đến các router upstream của cây dùng chung để dừng việc truyền lưu lượng cho nhóm.
Vấn đề đặt ra là, khi nào một router nên chuyển từ RPT sang SPT? RFC 2362 của PIM-SM chỉ
ra rằng “chính sách được khuyến cáo là bắt đầu chuyển sang cây SP sau khi nhận một số đáng kể
các gói dữ liệu trong một khoảng thời gian xác định từ một nguồn xác định”. Số lượng như thế
nào được xem là đáng kể? RFC không chỉ ra. Tuy nhiên, với Cisco router, quá trình chuyển đổi
từ RPT sang dạng cây đường đi ngắn nhất theo nguồn sau khi nó nhận được gói tin đầu tiên từ
cây dùng chung.
Lưu ý: Bạn có thể thay đổi trạng thái này bằng cách cấu hình lệnh toàn cục ip pim spt-threshold
rate trên bất kỳ router nào của bất kỳ nhóm nào. Khi lưu lượng vượt quá tốc độ chỉ ra, router sẽ
tham gia vào cây SPT. Lệnh này chỉ ảnh hưởng trên những router được cấu hình.
Nếu một router chuyển sang SPT, tại sao tham gia vào RPT trước? Trong PIM-SM, một router
không biết địa chỉ của nguồn cho đến khi nó nhận được ít nhất một gói tin của nhóm từ nguồn.
Sau khi nó nhận một gói tin từ RPT, nó có thể học địa chỉ IP của nguồn và bắt đầu chuyển sang
SPT cho nhóm (S,G).
Với hoạt động mặc định của Cisco PIM-SM, khi các gói multicast bắt đầu đến trên cổng s0 của
R4 thông qua cây dùng chung, R4 bắt đầu chuyển sang cây đường đi ngắn nhất cho nguồn
10.1.1.10. Hình 20-17 cho thấy các bước tổng quan.
Ba bước đầu tiên diễn ra như sau:
1. Nguồn (S1,10.1.1.10) gửi gói tin multicast đến router R1 đầu tiên.
2. R1 đẩy gói tin về RP (R3)
3. RP đẩy gói tin về R4 thông qua cây dùng chung. Ở bước 3, R4 học được rằng địa chỉ
nguồn của nhóm multicast 228.8.8.8 là 10.1.1.10. Vì vậy bên cạnh việc đẩy gói tin ở
bước 3, R4 có thể dùng thông tin này để tham gia vào cây SPT cho nhóm 228.8.8.8 từ
nguồn 10.1.1.10.
4. R4 tham khảo bảng định tuyến unicast, tìm ra địa chỉ next hop và cổng ra được dùng để
đến địa chỉ nguồn 10.1.1.10 và gửi thông điệp PIM-SM Join ra cổng đó (S1) về R1.
Thông điệp PIM-SM Join này đặc biệt chỉ cho nhóm (10.1.1.10, 228.8.8.8). Thông điệp
Join đi qua từng trạm cho đến khi nào nó đến được nguồn DR.
5. Kết quả các phép Join, R1 sẽ đặt cổng S1 của nó trong trạng thái chuyển tiếp (10.1.1.10,
228.8.8.8). Vì vậy R1 bắt đầu truyền multicast từ nguồn 10.1.1.10 đến 228.8.8.8 ra khỏi
cổng s1.
R4 bây giờ có trong bảng định tuyến multicast của nó một hàng SPT như trong ví dụ 20-10
Trong ví dụ 10-10, có hai hàng trong nhóm. Cờ J (join) cho cả hai hàng chỉ ra rằng lưu lượng
được chuyển từ RPT sang SPT và bây giờ (S,G) sẽ được dùng để đẩy lưu lượng multicast cho
nhóm. Lưu ý rằng cổng vào của nhóm (*,G) và (S,G) là khác nhau.
➢ Pruning từ cây dùng chung:
Sau khi router PIM-SM đã tham gia vào môt cây SPT hiệu quả hơn, nó có thể không cần nhận
các gói multicast qua cây RPT nữa. Ví dụ: khi R4 trong Hình 20-17 thông báo rằng nó đang nhận
lưu lượng nhóm qua cây RPT và cây SPT, nó có thể và nên yêu cầu RP dừng gửi lưu lượng đó.
Để ngăn RP chuyển tiếp lưu lượng đến một router downstream trên cây dùng chung, router
downstream sẽ gửi một bản tin PIM-SM Prune tới RP. Bản tin Prune tham chiếu đến cây SPT (S,
G) xác định địa chỉ IP của nguồn. Về cơ bản, bản tin Prune có ý nghĩa như sau đối với RP:
Dừng chuyển tiếp các gói từ địa chỉ IP nguồn được liệt kê, đến địa chỉ nhóm được liệt kê, xuống
RPT.
Ví dụ, Hình 20-18 là tiếp tục ví dụ Hình 20-17, R4 gửi một Prune ra cổng s0 của nó về phía R5.
Bản tin Prune liệt kê (S, G) (10.1.1.10, 228.8.8.8) và nó đặt một bit được gọi là bit RP-tree (RPT-
bit). Bằng cách đặt bit RPT trong bản tin Prune, R4 thông báo cho R5 (router downstream) rằng
nó đã chuyển sang SPT và bản tin Prune cho lưu lượng thừa của nhóm 228.8.8.8, từ 10.1.1.10,
mà R4 đang nhận trên cây dùng chung.
Để ngăn các gói được gửi qua RPT đến R4, R5 phải lược bỏ cổng s1 của nó trong RPT (*,
228.8.8.8). R5 cũng có thể tham gia SPT cho (10.1.1.10.228.8.8.8.8).