Giao thức IGMP Snooping

Một phần của tài liệu Nghiên cứu công nghệ IP multicast và ứng dụng trong công nghệ MobileTV (Trang 31 - 35)

Các bước dưới đây sẽ mô tả quá trình tổng quát của IGMP snooping:

1. Để phát hiện có nhiều router kết nối vào cùng một subnet hay không, các switch Cisco sẽ lắng nghe các giao thức sau để xác định trên những cổng nào của switch đang có router kết nối:

- IGMP với GDA là 01-00-5e-00-00-01

- Các thông điệp OSPF với GDA là 01-00-5e-00-00-05 hoặc 01-00-5e-00- 00-06.

- Giao thức PIMv1 và HSRP với gói hello là có GDA 01-00-5e-00-00-01. - Gói tin PIMv2 có GDA là 01-00-5e-00-00-0d.

- Các thông điệp Distance Vector Multicast Routing Protocol (DVMRP) Probe messages with GDA 01-00-5e-00-00-04. Ngay khi các switch phát hiện các router trong vlan, switch sẽ thêm vào danh sách cổng của tất cả các GDA trong VLAN đó.

19

2. Khi một switch nhận được một thông điệp IGMP report trên một cổng, CPU sẽ xem địa chỉ nhóm GDA, tạo ra một hàng trong bảng CAM và thêm địa chỉ cổng vào hàng. Cổng của switch có router cũng được thêm vào hàng mới này. Nếu các host khác gửi các báo cáo IGMP report, switch sẽ chuyển traffic ra các cổng.

Tương tự, khi một switch nhận được một thông điệp rời khỏi nhóm, CPU sẽ tìm địa chỉ GDA, xóa các cổng ra khỏi bảng CAM và không đẩy traffic ra cổng đó. Switch sẽ kiểm tra đây có phải là cổng cuối cùng của GDA hay không. Nếu đây không phải là cổng cuối cùng, có nghĩa là có ít nhất một máy trong vlan vẫn muốn nghe traffic, switch sẽ bỏ thông điệp Leave, nếu khác đi, nó sẽ gửi thông điệp leave đến router.

Như vậy, IGMP snooping giúp cho các switch gửi traffic chỉ cho những nhóm cần nó và tránh lãng phí băng thông. Để tăng hiệu quả hoạt động, IGMP snooping yêu cầu phần cứng phải hỗ trợ chức năng lọc bằng phần cứng sao cho nó có thể phân biệt sự khác nhau giữa IGMP reports và traffic multicast bình thường. CPU của switch cần phải thấy các thông điệp IGMP report (và các thông điệp multicast routing khác) bởi vì IGMP snooping có thể làm tốn CPU.

Khi H1 và H2 gửi thông điệp IGMP Join:

1. H1 gửi thông điệp IGMP Join cho nhóm 226.6.6.6. Ở mức 2, H1 dùng địa chỉ multicast MAC 0x0100.5e06.0606 (đây là địa chỉ MAC cho nhóm 226.6.6.6) như là địa chỉ đích và dùng địa chỉ MAC của nó 0x0006.7c11.1101 như là địa chỉ nguồn. SW1 sẽ nhận gói tin của nó trên cổng f0/1 và đây là gói tin IGMP, đẩy gói tin này đến CPU của switch. CPU sẽ dùng thông tin này để thiết lập một hàng trong bảng định tuyến multicast, bao gồm cổng số 0 tượng trưng cho CPU, 1 cho máy H1 và 8 cho R1. Lưu ý rằng bảng CAM liệt kê ra hai hàng cho cùng một địa chỉ đích 0x0100.5e06.0606. Một hàng cho cổng 0 và một hàng khác cho những frame non-IGMP cho cổng 1 và 8. CPU của switch sẽ ra lệnh cho switch engine không chuyển các frame ra cổng 0, tượng trưng cho CPU.

2. H2 gửi một thông điệp tham gia IGMP join cho nhóm 226.6.6.6. Ở lớp 2, H2 dùng địa chỉ multicast MAC là 0x0100.5e06.0606 như là địa chỉ đích và dùng

20

địa chỉ MAC 0x0006.7c11.1102 như là địa chỉ nguồn. SW1 sẽ nhận gói tin trên cổng F0/2 và switch sẽ kiểm tra gói tin. Tiến trình phân tích gói tin được lập lại từ bước 1 và bảng CAM sẽ được cập nhật.

3. Router R1 đẩy gói tin cho nhóm. R1 sẽ nhận traffic multicast cho nhóm 226.6.6.6 và bắt đầu chuyển traffic về Sw1. Sw1 bắt đầu nhận các multicast traffic trên cổng f0/8. Switching engine sẽ kiểm tra gói tin và xác định đây không phải gói tin IGMP, switch sẽ tìm kiếm trong bảng CAM và xác định rằng nó nên chuyển traffic ra cổng F0/1 và F0/2.

Hình 1.9 Quá trình rời bỏ nhóm trong IGMP Snooping

Hình trên đây mô tả tiến trình rời bỏ nhóm cho cơ chế IGMP snooping. 1. H1 gửi một thông điệp rời khỏi nhóm IGMP Leave cho nhóm 226.6.6.6 nhưng SW1 không truyền traffic đến R1 trong trường hợp này. Ở mức 2, H1 dùng địa chỉ MAC cho tất cả các multicast router 0x0100.5e00.0002 như là địa chỉ đích và dùng địa chỉ BIA 0x0006.7c11.1101 như địa chỉ nguồn. SW1 sẽ bắt các thông điệp IGMP Leave trên cổng F0/1 và switching engine của nó sẽ giám

21

sát gói tin. Switch sẽ gửi thông điệp truy vấn ra cổng F0/1 để xác định có còn thành viên nào không. Đặc tính này được thiết kế để bảo vệ những host khác là thành viên của nhóm này trên port. Nếu một thông điệp IGMP report là nhận được trên cổng F0/1, switch sẽ bỏ thông điệp rời nhóm nhận được từ H1. Bởi vì trong ví dụ này, chỉ có một host kết nối vào cổng F0/1, switch không nhận được bất kỳ thông điệp IGMP Report nào và sẽ xóa cổng F0/1 ra khỏi bảng CAM. H2 kết nối với cổng F0/2 vẫn là một thành viên của nhóm và cổng của nó nằm trong bảng CAM. Vì vậy SW1 không có truyền thông điệp IGMP Leave đến router.

2. Router R1 tiếp tục truyền traffic cho nhóm 226.6.6.6 đến SW1 bởi vì R1 thậm chí không biết rằng H1 đã rời khỏi nhóm. Dựa trên thông tin cập nhật từ bảng CAM, SW1 bây giờ bắt đầu truyền traffic chỉ trên cổng F0/2.

3. H2 gửi ra một thông điệp IGMP Leave cho nhóm 226.6.6.6 và SW1 không chuyển cho R1 trong trường hợp này. Ở mức 2, H2 dùng địa chỉ All Multicast Routers MAC address 0x0100.5e00.0002 như là địa chỉ đích và địa chỉ BIA 0x0006.7c11.1102 như là địa chỉ nguồn. SW1 lúc này sẽ bắt các thông điệp IGMP Leave trên cổng F0/2 và switching engine sẽ kiểm tra gói tin. Switch sau đó gửi một thông điệp IGMP query trên cổng F0/2 xem có còn thành viên nào của nhóm hay không. Bởi vì trong ví dụ này, chỉ có một host kết nối vào cổng F0/2, switch sẽ không nhận được bất kỳ thông điệp IGMP report nào và sẽ xóa cổng F0/2 ra khỏi bảng CAM. Sau khi SW1 xóa cổng, nó nhận ra rằng đây là cổng cuối cùng nằm trong bảng CAM cho địa chỉ 0x0100.5e06.0606. Vì vậy SW1 xóa hẳn bảng CAM cho nhóm này và sẽ truyền thông điệp IGMP Leave đến R1. R1 gửi ra thông điệp truy vấn cho nhóm và khi không còn host nào trả lời, router sẽ không truyền traffic của nhóm 226.6.6.6 về SW1, VLAN5.

22

Một phần của tài liệu Nghiên cứu công nghệ IP multicast và ứng dụng trong công nghệ MobileTV (Trang 31 - 35)