Professional Documents
Culture Documents
- Có hai thái cực được mô tả ở đây. Cơ chế dùng Unicast thì dữ liệu sẽ đi từ máy trạm đến
máy trạm; Broadcast thì lưu lượng sẽ đi đến tất cả các máy trạm trên phân đoạn mạng đó.
Cơ chế Multicast sẽ nằm giữa hai thái cực này, trong đó máy nguồn chỉ gửi những gói tin
từ một máy trạm đến các người dùng muốn nhận loại lưu lượng đó đó. Nhóm này gọi là
nhóm Multicast. Các máy nhận lưu lượng Multicast có thể nằm ở bất cứ nơi nào chứ
không chỉ trên phân đoạn mạng cục bộ.
-Các lưu lượng dạng Multicast thường là một chiều (unidirectional). Do có nhiều máy
trạm nhận cùng một dữ liệu, nên thông thường các gói tin không được phép gửi ngược về
máy nguồn trên cơ chế Multicast. Một máy trạm đích sẽ trả lưu lượng ngược về nguồn
theo cơ chế Unicast. Cơ chế Multicast cũng sẽ được truyền theo kiểu không kết nối
(connectionless). Multicast dùng UDP chứ không dùng TCP.
-Các máy trạm muốn nhận dữ liệu từ một nguồn Multicast có thể tham gia hoặc rời khỏi
một nhóm Multicast ở bất kỳ thời điểm nào. Hơn nữa, một máy trạm sẽ quyến định có trở
thành thành viên của một hay nhiều nhóm Multicast hay không. Nguyên tắc cần quan tâm
là sẽ hoạch định làm thế nào để phân phối các lưu lượng Multicast đến các thành viên của
nhóm mà không ảnh hưởng đến các thành viên ngoài nhóm.
-Có ba yêu cầu cơ bản để có thể triển khai Multicast trên một mạng:
• Phải có một tập hợp các địa chỉ dành cho các nhóm Multicast.
• Phải có một cơ chế trong đó các máy trạm có thể tham gia và rời khỏi nhóm
• Phải có một giao thức định tuyến cho phép các router phân phối các lưu lượng
Multicast tới các thành viên của nhóm mà không làm quá tải tài nguyên mạng
- Vì vậy, ta phải nắm được nguyên tắc chuyển đổi từ địa chỉ IP sang địa chỉ MAC:
• Với địa chỉ MAC được định danh trên card mạng thông thường, 24 bit đầu được
định danh theo nhà sản xuất, 24 bit sau định nghĩa theo card mạng, còn trường hợp
là địa chỉ MAC của multicast, ta có thể định danh luôn, ở đây là 01-00-5e.
• Cứ 1 địa chỉ IP của mutlicast thì ta lấy 23 bit từ phải qua để thiết lập địa chỉ MAC.
Sẽ có 1 cơ số địa chỉ IP trùng với địa chỉ MAC. Đáng lẽ sẽ có 9 bit chênh giữa địa
chỉ IP và MAC(32-23) nhưung do trong trong địa chỉ IP multicast đã có 4 bit có
định nên chỉ có 5 bit là bất định => Có 2^5=32 địa chỉ IP chung địa chỉ MAC với
nhau.
Sau đó ta lấy 23 bit từ phải qua trái, chuyển đổi theo hệ hexa:
Như vậy, ta sẽ có địa chỉ MAC là 01:00:5e:0b:01:02 tương ứng với địa chỉ IP
226.139.1.2.
-Dữ liệu từ các lớp ứng dụng, bản trình bày và phiên (Lớp 1, 2 và 3) được đóng gói ở Lớp
4 với thông tin giao thức truyền tải. Thông tin này được đóng gói trong TCP và / hoặc
UDP với số cổng cụ thể. Ví dụ, cổng TCP 80 thường là lưu lượng truy cập web. Điều này
cho phép hệ điều hành chuyển tiếp dữ liệu tới một ứng dụng hoặc chương trình con thích
hợp. Lớp 3 bổ sung các chi tiết chuyển tiếp logic (địa chỉ IP nguồn và đích) để các thiết
bị mạng có thể xác định đường dẫn tốt nhất đến đích. Cuối cùng,
-Lớp 2 thêm thông tin chuyển tiếp phần cứng (địa chỉ MAC nguồn và đích). Điều này
cho phép dữ liệu được truyền vật lý đến máy thích hợp hoặc bước tiếp theo trong mạng.
Việc truyền dữ liệu ở Lớp 4 được gọi là một đoạn, một gói ở Lớp 3 và một khung ở Lớp
2.
-Để giải thích rõ hơn điều gì xảy ra với một gói tin truyền qua mạng, chúng ta sẽ tập
trung vào trình truyền tải Lớp 2 và Lớp 3. Đầu tiên, trước khi bên gửi có khả năng đóng
gói bất kỳ dữ liệu nào, trước tiên nó phải biết được đích nằm ở đâu. Bên gửi thực hiện
một kiểm tra đơn giản để xác minh xem thiết bị nhận có nằm trên cùng một mạng con
hay không. Điều này được thực hiện bằng cách kiểm tra địa chỉ IP đích so với mạng con
cục bộ. Trong ví dụ này, bên nhận không giống nhau mạng con. Bên gửi phải sử dụng
tuyến đường đã định cấu hình đến đích. Trong hầu hết các trường hợp, đây là cổng mặc
định.
• R1 nhận được thông điệp báo cáo yêu cầu quan hệ máy trạm IGMP phiên bản 1
trên cổng F0/0 của nó nhưng R1 chưa nhận được thông điệp báo cáo quan hệ máy
trạm trên cổng F0/1. R1 sẽ bắt đầu đẩy lưu lượng của nhóm 226.1.1.1 ra cổng
F0/0.
Ở hình trên, một người dùng đã chạy một ứng dụng dùng địa chỉ 226.1.1.1 trên H4. H4 sẽ
gửi một thông điệp báo cáo không yêu cầu quan hệ máy trạm IGMP phiên bản 1. Thông
điệp này sẽ được nhận bởi R1 trên cổng F0/1 của nó và sau đó R1 sẽ bắt đầu đẩy lưu
lượng của nhóm 226.1.1.1 ra cổng F0/1.
*Cơ chế rời khỏi nhóm của IGMPv1:
IGMP không có một cơ chế để cho phép các máy trạm có thể rời khỏi một nhóm. Giả sử
có một người dùng ngồi ở H4 quyết định rời khỏi nhóm. H4 sẽ lặng lẽ rời khỏi nhóm và
R1 không biết về việc này. R1 sẽ tiếp tục đẩy lưu lượng của 226.1.1.1 trên cổng F0/1
trong vòng 3 phút, ngay cả khi không có máy trạm nào muốn nhận nó. Sau khi R1 gửi
thông điệp truy vấn ba lần, mỗi lần cách nhau 60 giây và không có máy trạm nào trả lời
bằng thông điệp báo cáo IGMP phiên bản 1, R1 sẽ kết luận không còn máy trạm nào
muốn nhận lưu lượng cho 226.1.1.1 trên cổng F0/1. Khoảng thời gian 3 phút này được
gọi là khoảng thời gian xác nhận thành viên nhóm (Group membership Interval).
*Router truy vấn IGMPv1:
Để tăng tính dự phòng, ta có thể triển khai nhiều router Multicast trên cùng một mạng.
Tuy nhiên nếu tất cả các router gửi gói tin truy vấn mỗi 60 giây thì sẽ rất lãng phí băng
thông. Như vậy, một hệ thống mạng nên có một router được gán vai trò gửi gói tin truy
vấn và truyền lưu lượng Multicast vào hoặc ra mạng con. Nếu một router bị sự cố, router
thứ hai có thể đảm nhận trách nhiệm này. IGMP phiên bản 1 thường dựa vào các thông
tin định tuyến của Multicast để giải quyết vấn đề bầu chọn router này.
11.3.3 Giao thức IGMPv2
-Giao thức IGMPv2 là sự mở rộng các chức năng IGMPv1 bao gồm:
• Một phương thức để xác định router nào sẽ gửi các thông điệp truy vấn multicast
khi có nhiều router cùng kết nối vào mạng con
• Một thông điệp mới được sử dụng khi 1 host muốn rời nhóm
• Một thông điệp mới cho phép router truy vấn cho từng nhóm cụ thể thay vì tất cả
các nhóm
• Phiên bản mới của thông điệp Host Membership Report
- Định dạng của thông điệp IGMPv2 được thể hiện như sau:
IGMP phiên bản 2 có bốn trường, được định nghĩa như sau:
• Loại (Type): trường này có chiều dài 8 bit, chỉ ra một trong bốn loại thông điệp
được định nghĩa bởi IGMP phiên bản 2. Các giá trị có thể có là:
o Truy vấn quan hệ (Membership query) có giá trị là 0x11: được dùng bởi
router để tìm ra sự hiện diện của các máy trạm trên một mạng con. Thông
điệp loại này gán giá trị địa chỉ nhóm về 0.0.0.0 giống như trong IGMP
phiên bản 1. Một thông điệp truy vấn cho một nhóm cụ thể sẽ gán địa chỉ
nhóm vào trường này. Thông điệp loại này thường được gửi khi router nhận
được một thông điệp rời khỏi nhóm IGMP phiên bản 2 từ một máy trạm.
Thông điệp loại này được dùng để xác định xem có còn thành viên nào của
một nhóm cụ thể không.
o Báo cáo quan hệ phiên bản 1 có giá trị 0x12: được dùng bởi IGMP phiên
bản 2 để tương thích với IGMP phiên bản 1.
o Báo cáo quan hệ phiên bản 2 có giá trị 0x16: được gởi bởi thành viên để
thông báo cho router là còn ít nhất một thành viên trên mạng.
o Thông điệp rời khỏi nhóm (Leave group) có giá trị là 0x17: được gửi bởi
thành viên nhóm nếu nó là thành viên cuối cùng gửi thông điệp báo cáo
quan hệ. Thông điệp này báo cho router rằng máy trạm đang rời khỏi nhóm.
• Thời gian đáp ứng tối đa (Maximum Response Time): Trường có độ dài 8 bit
chỉ có trong các thông điệp truy vấn. Giá trị mặc định cho trường này là 100
(tương đương 10 giây). Giá trị sẽ thay đổi từ 1 đến 255 (nghĩa là từ 0.1 giây đến
25.5giây).
• Kiểm tra lỗi (Checksum): Chứa giá trị 16 bit được tính toán bởi máy nguồn.
Kiểm tra lỗi IGMP tính toán trên toàn bộ phần tải của IP chứ không phải chỉ 8
byte đầu tiên mặc dù IGMP phiên bản 2 có độ dài 8byte.
• Địa chỉ nhóm (Group Address): Được gán giá trị 0.0.0.0 trong gói tin truy vấn
và gán địa chỉ nhóm nếu thông điệp là cho từng nhóm cụ thể. Các thông điệp báo
cáo quan hệ (membership report) hoặc thông điệp rời khỏi nhóm (leave group) có
thể mang địa chỉ của nhóm trong trường này.
- Nếu có nhiều router trên cùng một kết nối, router có địa chỉ IP nhỏ nhất sẽ gửi ra gói tin
truy vấn. Vì vậy, khi một router nhận được một gói tin truy vấn từ một router nào đó, nó
sẽ kiểm tra địa chỉ nguồn của gói tin đó. Nếu địa chỉ nguồn của router cục bộ nhỏ hơn địa
chỉ nguồn trong gói tin vừa đến, router sẽ vẫn tiếp tục gửi gói tin query vì nó biết rằng nó
sẽ giữ vai trò truy vấn. Còn nếu địa chỉ nguồn của gói tin truy vấn là nhỏ hơn, router sẽ từ
bỏ vai trò truy vấn.
-IGMP v2 hỗ trợ tính tương thích ngược với IGMPv1. Mã số cho kiểu thông điệp truy
vấn và báo cáo của IGMPv2 và IGMPv1 đều cùng là 0x11 và 0x12. Điều này cho phép
các máy trạm chạy IGMPv2 và các router nhận ra IGMPv1 khi có các máy trạm chạy
IGMPv1 trên mạng. IGMPv2 giúp giảm số lượng các thông điệp báo cáo được gửi bởi
các máy trạm bằng cách cho phép người quản trị thay đổi khoảng thời gian truy vấn.
-IGMPv1 không có thông số MRT, vì vậy các máy trạm chỉ đơn giản dùng khoảng thời
gian mặc định là 10 giây. Tuy nhiên thông điệp IGMPv2 có bao gồm trường MRT, chỉ ra
khoảng thời gian MRT được dùng bởi tất cả các máy trạm IGMPv2 trên LAN. Các tiến
trình mà các máy trạm gửi các thông điệp báo cáo của IGMPv2 cũng giống trong IGMP
v1. Có một sự khác nhau nhỏ là các router gửi gói tin truy vấn IGMPv2 mỗi 125 giây
thay vì mỗi 60 giây.
-IGMPv2 cải tiến quá trình Truy vấn/Báo cáo bằng cách dùng cơ chế truy vấn cho từng
nhóm cụ thể. Trong IGMPv2, khi một máy trạm rời một nhóm, nó gửi ra một thông điệp
rời nhóm IGMPv2. Khi một router nhận được thông điệp rời khỏi nhóm IGMP phiên bản
2, thay vì chờ một khoảng thời gian truy vấn là 125 giây, router sẽ gửi ngay một thông
điệp truy vấn cho nhóm đó. Thông điệp này chỉ để hỏi là còn có máy trạm nào muốn lưu
lượng cho nhóm Multicast đó không. Kết quả là, router sẽ nhanh chóng biết được có còn
máy trạm nào quan tâm đến lưu lượng của nhóm đó.
-Thuận lợi chính của IGMPv2 so với IGMPv1 là thời gian rời khỏi nhóm của IGMPv2
ngắn hơn. IGMPv2 chỉ mất có ba giây để kết luận rằng không còn máy trạm nào trên
mạng con đó quan tâm đến Multicast.
• Các thông điệp rời bỏ nhóm (IGMPv2 Leave Group) và các thông điệp truy vấn
cho từng nhóm cụ thể (Group-Specific Query Messages)
- IGMP phiên bản 2 RFC 2236 khuyến cáo rằng một máy trạm gửi ra một thông điệp rời
khỏi nhóm chỉ nếu nó là máy trạm cuối cùng gửi thông điệp báo cáo quan hệ. Tuy nhiên
phần lớn các hiện thực IGMP phiên bản 2 đều cho phép một máy trạm gửi ra thông điệp
rời khỏi nhóm khi bất kỳ máy trạm nào rời khỏi nhóm.
• Bước 1: H1 gửi một thông điệp rời bỏ nhóm IGMP phiên bản 2. Địa chỉ đích của
gói tin là 224.0.0.2. Đây là địa chỉ của tất cả các router đang chạy Multicast.
Thông điệp này muốn báo rằng “Tôi không muốn nhận Multicast lưu lượng của
226.1.1.1”.
• Bước 2: R1 sẽ gửi ra một thông điệp cho riêng nhóm đó. Bởi vì H1 đã quyết định
rời khỏi nhóm 226.1.1.1, R1 quyết định ngừng đẩy lưu lượng của nhóm 226.1.1.1
trên cổng Fa0/0 nếu H1 là thành viên cuối cùng của 226.1.1.1. Tuy nhiên, R1 cần
phải đảm bảo rằng không còn máy trạm nào trên cổng này vẫn cần nhận lưu lượng
của nhóm 226.1.1.1. Vì vậy, R1 gửi ra một thông điệp để xác định có còn thành
viên nào của nhóm 226.1.1.1. R1 dùng địa chỉ đích 226.1.1.1 như là địa chỉ đích
trên gói tin sao cho chỉ có các máy trạm là thành viên của nhóm này là nhận thông
điệp và trả lời. Thông qua thông điệp này, R1 sẽ hỏi các máy trạm còn lại trong
nhóm là “Có còn ai muốn nhận lưu lượng Multicast cho 226.1.1.1 không?”.
• Bước 3: H3 gửi một thông điệp báo cáo quan hệ. H3 vẫn là một thành viên của
nhóm 226.1.1.1. Máy H3 nghe thông điệp truy vấn theo nhóm và trả lời bằng một
thông điệp báo cáo IGMP phiên bản 2 để thông báo cho router là vẫn còn thành
viên của nhóm 226.1.1.1.
Router IGMP phiên bản 2 lặp lại tiến trình ở bước 2 mỗi lần nó nhận được thông điệp rời
bỏ nhóm trong bước 1. Trong ví dụ trước, R1 không ngừng việc gửi lưu lượng . Trong
hình dưới, H3 là máy trạm duy nhất còn lại của nhóm 226.1.1.1. Giả sử rằng H3 cũng
muốn rời bỏ khỏi nhóm.
-Ba bước sau đây sẽ mô tả quá trình khi H3 rời khỏi nhóm:
Bước 1: H3 gửi ra một thông điệp rời khỏi nhóm IGMP phiên bản 2. Địa chỉ đích của gói
tin là 224.0.0.2 để thông báo cho tất cả các router trên mạng con là “Tôi không muốn
nhận lưu lượng của nhóm 226.1.1.1”.
Bước 2: R1 gửi ra một thông điệp truy vấn cho riêng nhóm đó. R1 nhận thông điệp rời
khỏi nhóm từ H3. R1 sẽ gửi các thông điệp truy vấn cho từng nhóm để xác định có còn
máy nào vẫn là thành viên của nhóm 226.1.1.1. R1 dùng địa chỉ đích là 226.1.1.1 sao cho
chỉ có những máy là thành viên của nhóm này nhận được thông điệp và trả lời.
Bước 3: Không có thông điệp báo cáo nào là nhận được, vì vậy R1 sẽ ngừng đẩy lưu
lượng . Bởi vì không còn thành viên nào của nhóm 226.1.1.1, R1 sẽ không nhận được
thông điệp trả lời nào cho thông điệp truy vấn trước đây do R1 gửi ra. Kết quả là R1 sẽ
ngừng đẩy lưu lượng Multicast của nhóm 226.1.1.1 ra cổng fa0/0.
-Mặc định, router sẽ dùng một giá trị MRT bằng 10 (1 giây) cho các thông điệp truy vấn
cho nhóm. Bởi vì một router phải nhận một thông điệp trả lời cho thông điệp truy vấn
theo nhóm trước đây trong khoảng thời gian MRT này, router sẽ dùng giá trị MRT như là
khoảng thời gian để xác định thành viên cuối cùng rời khỏi nhóm. Router dùng tiến trình
sau:
Bước 1: Gửi ra một thông điệp truy vấn cho từng nhóm cụ thể khi router nhận được một
thông điệp rời khỏi nhóm.
Bước 2: Nếu không có thông điệp báo cáo nào nhận được trong khoảng thời gian MRT,
lặp lại bước 1.
Bước 3: Lặp lại bước 1 một số lần được chỉ ra trong thông số last member query count.
Chỉ số này là số lần các thông điệp truy vấn theo nhóm được gửi trước khi router kết luận
là không còn thành viên nào tích cực trong nhóm. Giá trị mặc định của thông số này bằng
2. Vì vậy thường chỉ mất dưới 3 giây để xác định không còn thành viên nào trong nhóm.
Trong khi đối với IGMP phiên bản 1, thời gian này là ba phút.
*Router truy vấn IGMPv2:
IGMP v2 định nghĩa một tiến trình bầu chọn router truy vấn. Tiến trình này được dùng
khi có nhiều router kết nối vào cùng một mạng. Khi router IGMPv2 khởi động, các router
này gửi ra các thông điệp truy vấn đến địa chỉ 224.0.0.1 dùng các địa chỉ cổng trong phần
địa chỉ nguồn của gói tin. Khi một router IGMP phiên bản 2 nhận được một thông điệp
truy vấn từ các các router kia, nó sẽ so sánh địa chỉ nguồn IP của thông điệp với địa chỉ
cổng của chính nó. Router có địa chỉ IP nhỏ nhất sẽ được bầu như router truy vấn. Các
router không trở thành router truy vấn sẽ không gửi gói tin truy vấn nhưng vẫn giám sát
tần suất của các gói tin truy vấn được gửi.
Khi router truy vấn ngừng gửi một thông điệp truy vấn trong hai chu kỳ rưỡi, router truy
vấn sẽ bị xem như đã chết và cần có một router truy vấn khác. RFC2236 qui định khoảng
thời gian này là khoảng thời gian giới thiệu router truy vấn khác (Other querier present
Interval). Giá trị mặc định cho khoảng thời gian này là 255 giây bởi vì khoảng thời gian
mặc định của gói tin truy vấn của IGMP phiên bản 2 là 125 giây và giá trị mặc định của
thời gian trả lời truy vấn là 10 giây.
So sánh IGMPv1 và IGMPv2:
IGMPv1 không có thông điệp rời bỏ nhóm. Điều này có nghĩa là sẽ tốn một khoảng thời
gian dài hơn để máy trạm cuối cùng rời khỏi nhóm và router ngừng việc truy vấn. IGMP
v1 không có thông điệp cho riêng từng nhóm. Điều này là kết quả của đặc điểm 1. Các
máy trạm có khoảng thời gian MRT này mặc định là 10 giây. IGMPv1 không có tiến
trình bầu chọn router truy vấn. Thay vào đó, nó dựa trên cơ chế định tuyến của Multicast
để để bầu ra router truy vấn. Do có thể có nhiều giao thức định tuyến khác nhau cho các
nhóm Multicast khác nhau, sẽ có một khả năng là sẽ có nhiều router truy vấn trong IGMP
v1.
Sự tương thích của IGMPv1 và IGMPv2:
IGMP v2 được thiết kế để tương thích ngược với IGMPv1. Có 1 vài trường hợp tương
thích:
o Máy trạm dùng IGMPv2 và router chạy IGMPv1.
o Máy trạm dùng IGMPv1 và router dùng IGMPv2.
o Router chạy IGMPv1 và một số router khác chạy IGMPv2.
o Máy trạm chạy IGMPv1 và router chạy IGMPv2.
Khi một máy trạm gửi ra một thông điệp báo cáo IGMP với kiểu thông điệp
là 0x16 (kiểu này không được định nghĩa trong IGMPv1, router đang chạy
IGMPv1 sẽ xem kiểu thông điệp này là không hợp lệ và bỏ qua nó. Vì vậy,
một máy chạy IGMPv2 phải gửi thông điệp báo cáo IGMPv1 khi router
IGMPv1 đang tồn tại.
Máy trạm chạy IGMPv2 sẽ xác định router truy vấn đang dùng IGMP phiên
bản 1 hay IGMPv2 dựa trên giá trị của trường MRT của các thông điệp truy
vấn định kỳ. Trong IGMPv1, trường này bằng 0, trong IGMPv2, trường
này là khác 0. Khi một máy trạm chạy IGMPv2 nhận được một truy vấn từ
router IGMPv1, máy trạm biết rằng có một router IGMPv1 đang tồn tại trên
mạng con và đánh dấu cổng này như là IGMPv1. Máy trạm chạy IGMPv2
sau đó sẽ không gửi thông điệp IGMPv2.
Bất cứ khi nào một máy trạm IGMPv2 nhận một thông điệp truy vấn
IGMPv1, nó sẽ khởi tạo một bộ định thời phiên bản 1 (version 1 router
Present timeout) có thời lượng 400 giây. Bộ định thời này sẽ được khởi tạo
lại bất cứ khi nào máy trạm nhận được một thông điệp truy vấn IGMPv1.
Nếu bộ định thời này hết, có nghĩa là không có router IGMPv1 nào tồn tại
trên mạng, máy trạm sẽ bắt đầu gửi thông điệp IGMPv2.
Bộ định thời Sử dụng Giá trị mặc định Giá trị mặc định
cho IGMPv1 cho IGMPv2
Thời gian truy vấn Khoảng thời giữa các Cố định là 60 125 giây
lần gửi gói tin truy vấn giây
bởi router
Thời gian đáp ứng truy Khoảng thời gian tối đa 10 giây 10 giây
vấn cho các máy trạm trả lời
lại cho các gói truy vấn
Thời gian quan hệ Là khoảng thời gian mà 180 giây 260 giây
nhóm nếu router không nhận
được thông điệp báo
cáo, router kết luận rằng
không còn thành viên
nào của nhóm trên mạng
con
Thời gian truy vấn khác Là khoảng thời gian - 255 giây
trong đó nếu một router
IGMP phiên bản 2
không phải là router truy
vấn không nhận được
thông điệp truy vấn,
router sẽ kết luận là
router truy vấn là chết
Thời gian thành viên Khoảng thời gian trả lời - 1 giây
truy vấn lần cuối tối đa được chỉ ra bởi
router chạy IGMP phiên
bản 2 trong thông điệp
truy vấn theo nhóm và
khoảng thời gian giữa
hai thông điệp truy vấn
liên tiếp gửi đến cùng
nhóm
Thời gian hết hạn của Là khoảng thời gian - 400 giây
router đang chạy phiên trong đó nếu một máy
bản 1 trạm chạy IGMP phiên
bản 2 không nhận được
gói tin truy vấn IGMP
phiên bản 1 query, máy
trạm sẽ kết luận rằng
không có router chạy
IGMP phiên bản 1 và
máy trạm bắt đầu gửi
thông điệp IGMP phiên
bản 2.
11.3.4 Giao thức IGMPv3
-IGMP phiên bản 3 là một phiên bản cải tiến của giao thức IGMP và là giao thức khá
phức tạp. Để dùng các đặc điểm mới của IGMP, router trạm cuối cùng phải được cập
nhật, hệ điều hành của máy trạm phải thay đổi và ứng dụng Multicast phải thiết kế và viết
lại. Ở thời điểm hiện tại, chỉ có rất ít các ứng dụng của IGMP phiên bản 3 là có sẵn. Phần
này chỉ tóm tắt các đặc điểm chủ yếu của IGMP phiên bản 3.
-Trong IGMPv1 và IGMPv2, khi một máy trạm tham gia vào một nhóm, router sẽ truyền
các lưu lượng cho nhóm đó vào phân đoạn mạng bất chấp địa chỉ nguồn của gói tin. Ví
dụ, giả sử có một buổi hội thảo đa phương tiện đang diễn ra. Một thành viên của nhóm
quyết định phá hỏng phiên hội thảo bằng cách gửi ra một số dữ liệu nhiễu bằng cách nói
chuyện hay gửi nhạc cho các thành viên của nhóm. Mặc dù các ứng dụng đa phương tiện
cho phép một người dùng làm im lặng các thành viên khác, ứng dụng không làm dừng
các lưu lượng không mong muốn phân phối đến máy trạm.
-Nếu một nhóm các hacker quyết định phát tán một mạng của một công ty bằng các dữ
liệu băng thông cao dùng cùng địa chỉ nhóm Multicast mà công ty đang dùng, nó có thể
tạo ra kiểu tấn công từ chối dịch vụ. Cả IGMPv1 và IGMPv2 đều không có cơ chế để
ngăn ngừa một kiểu tấn công như vậy.
IGMPv3 cho phép các máy trạm lọc các lưu lượng đi vào dựa trên địa chỉ IP nguồn thông
qua một tính năng gọi là Multicast theo từng nguồn (Source Specific Multicast –SSM).
IGMPv3 cho phép các máy trạm chỉ định các lưu lượng xuất phát từ một nguồn cụ thể
hoặc nhận từ tất cả ngoại trừ từ một nguồn nào đó.
-IGMPv3 mở rộng chức năng của IGMPv2 bằng việc hỗ trợ chức năng multicast cho
từng nguồn cho phép các host lọc dữ liệu đi vào dựa trên địa chỉ IP nguồn. IGMPv3 cải
tiến thông điẹp Host Membership Querry và thêm phiên bản mới của Host Membership
Report. Lọc dữ liệu là khả năng cho phép 1 host chỉ ra nó sẽ nhận nguồn dữ liệu multicast
từ địa chỉ nguồn xác định. IGMPv3 cho phép 1 host chỉ rõ 2 thuộc tính dưới đây cho các
địa chỉ multicast cụ thể:
• Danh sách các nguồn mà host nhận dữ liệu.
• Danh sách các ngồn mà host không nhận dữ liệu
-Thông điệp IGMPv3 Host Membership Querry có cùng giá trị và có cùng định dạng với
IGMPv2 Host Membership Querry ngoại trừ nó thêm 1 số trường ở sau trường địa chỉ
nhóm. Các trường này cung cấp các tham số truy vấn cho router và chỉ rõ các nguồn được
chấp nhận và được chấp nhận ứng với mỗi nhóm multicast. Danh sách các nguôn được
chấp nhận và không chấp nhận được sử dụng cho truy vấn tới 1 nhóm cụ thể có khả năng
lọc dữ liệu.
• Dưới đây là format của thông điệp IGMPv3:
• Bảng mô tả các trường trong thông điệp IGMPv3 Host Member Query:
Tên trường Độ dài Mô tả
Type 8 bit Xác định 4 kiểu thông điệp
có giá trị: 0x11 cho Host
Membership Querry
Maximum Response Time 8 bit Chỉ ra khoảng thời gian tối
đa(tính bằng giây) mà 1 host
có thể phản hồi thông tin
truy vấn, chỉ sử dụng trong
các thông điệp truy vấn
Checksum 16 bit Dùng để kiểm tra lỗi trong
quá trình truyền dữ liệu
Group Address 32 bit Được gán giá trị 0.0.0.0
trong gói tin truy vấn và gán
địa chỉ nhóm nếu thông điệp
là cho từng nhóm cụ thể.
Các thông điệp Membership
Report hoặc thông diệp
Leave Group có thêr mang
địa chỉ của nhóm trong
trường này
Reversed(dành riêng) 4 bit Chứa giá trị 0 khi gửi và bỏ
qua khi nhận
Supress 1 bit Gán giá trị 1 để chỉ rõ các
router nhận đừng cập nhật
thời gian khi nhận 1 truy vấn
Querier’s Robustness 3 bit Chỉ ra các gói datagram
Variable(QRV) mong đợi trên mạng. IGMP
có thể lấy lại QRV-1 gói
datagram bị lấy mất
Querier’s Query Interval 8 bit Chỉ ra khoảng thời gian tính
Code(QQIC) bằng giây mà router đợi giữa
2 truy vấn thông thường
Number of Sources 16 bit Chỉ số lượng địa chỉ nguồn
chứu thông tin truy vấn
Source Addresses 32 bit Chứa địa chỉ IP nguồn của
multicast
Lưu lượng của nhóm 226.1.1.1 là xuất phát từ hai nguồn, R1 nhận lưu lượng từ cả hai
nguồn. H1 chuẩn bị thông điệp báo cáo quan hệ IGMP phiên bản 3 dùng địa chỉ đích
là 224.0.0.22, được gán bởi IANA cho các thông điệp báo cáo quan hệ IGMP phiên
bản 3. Kiểu thông điệp là 0x22 với một trường bao gồm “địa chỉ nguồn
209.165.201.2”, có nghĩa là “tôi muốn tham gia vào nhóm Multicast 226.1.1.1 nhưng
chỉ nếu nhóm này đến từ nguồn 209.165.201.2”.Cisco đã phát triển tính năng URD và
IGMP phiên bản 3 để dùng các tính năng của IGMP3 cho đến khi nào các ứng dụng
IGMP phiên bản 3 là sẵn sàng và hệ điều hành được cập nhật.
11.3.5 So sánh 3 giao thức IGMP
Đặc điểm IGMPv1 IGMPv2 IGMPv3
Giá trị của byte đầu tiên 0x11 0x11 0x11
trong thông điệp truy
vấn
Địa chỉ nhóm cho thông 0.0.0.0 0.0.0.0 0.0.0.0
điệp truy vấn
Địa chỉ đích cho thông 224.0.0.1 224.0.0.1 224.0.0.1
điệp truy vấn
Thời gian truy vấn mặc 60 giây 125 giây 125 giây
định
Giá trị của byte đầu tiên 0x12 0x16 0x22
của thông điệp báo cáo
Địa chỉ nhóm cho thông Địa chỉ nhóm Địa chỉ nhóm Địa chỉ nhóm
điệp báo cáo multicast multicast multicast, có
tham khảo thêm
nguồn
Địa chỉ đích của thông Địa chỉ nhóm Địa chỉ nhóm 224.0.0.22
điệp báo cáo multicast multicast
Có cơ chế làm giảm Có Có Không
thông điệp báo cáo hay
không?
Thời gian trả lời tối đa 10 giây 0-25.5 giây Từ 0 đến 53 phút
có thể được cấu hình
Một máy trạm có thể Không Có Có
gửi thông điệp rời khỏi
nhóm hay không?
Địa chỉ đích cho thông - 224.0.0.2 224.0.0.2
điệp rời khỏi nhóm
Một router có thể gửi Không Có Có
một thông điệp cho
từng nhóm cụ thể
Một máy trạm có thể Không Không Có
gửi một thông điệp báo
cáo cho từng nhóm và
từng nguồn cụ thể hay
không?
Router có thể gửi truy Không Không Có
vấn cho từng nguồn và
từng nhóm cụ thể hay
không?
Luật bầu chọn router Khồng, phụ thuộc vào Router có địa chỉ Router có địa chỉ
truy vấn giao thức định tuyến IP thấp nhất IP thấp nhất
Tương thích với các Không Có, chỉ với IGMP Có, với cả IGMPv1
phiên bản 1 và IGMPv2
phiên bản khác của
IGMP
-Kiến trúc của IGMP-AC được thể hiện trong sơ đồ trên: Ở đây, “access control” được
dùng để cấu trúc đại chỉ tất cả các tính năng của AAA: để xác thực thành công, để kiểm
chứng việc xác thực nhận group data khi mà có thông điệp join của IGMP-AC được gửi
đi, và cũng dể giữa cho việc kiểm tra thông tin cho mỗi end user.
-Những tính chất quan trọng của IGMP-AC:
• Quá trình xác thực end user sẽ hỗ trọ tất cả các việc liên quan đến authentication,
từ những password đơn giản đến những chứng chỉ xác thực phức tạp.
• IGMP-v3 hiện tại là tiêu chuẩn được thiết kế bởi IETF. Quá trình modification dựa
trên IGMP-v3 và phải hỗ trợ cho “source filtering”.
• IGMP-AC sẽ không tác động đến những tính năng thông thường của IGMP-v3 và
access control của end user phải được mô hình hóa theo tiêu chuẩn đã được đặt ra.
• Những tính năng tối thiểu và việc giảm tải workload nên được thêm vào các
AR(access router) và các host.
• Quá trình xác thực tốn khá nhiều tài nguyên CPU và băng thông. Vì thế các end
user nên gửi các thông tin xác thực của mình tới các AR nhanh nhất có thể
-Các thành phần và vai trò của chúng trong IGMP-AC:
• Có 5 thành phần trong kiến trúc cảu IGMP-AC: CP(Content Providers), Core
Router(CR), Ars, End User(EU) và AAAS(AAA Server). Network Access
Server(NAS) hoặc các AAA Client sẽ được đặt trong AR.
• CP sẽ chuyển dịch vụ hoặc các data packet qua Content Server(CS). Nó sẽ gửi các
multicast packet tới các AR gần nhất, và các AR sẽ chuyển thẳng các packet qua
cây phân phối multicast data(được xây dựng từ các CR).
• AR sẽ kết nối trực tiếp tới các subnet của các end user sẽ thể hiện 2 dịch vụ: nó sẽ
nhận và xử lí các thông điệp IGMP và thực hiện xử lí như NAS bằng cách giao
tiếp với AAA Server. Nếu 1 end user được đã xác thực, AR/NAS sẽ thu thập các
thông tin xác thực từ thông điệp join của IGMP và chuyển các request tới AAAS.
AAAS sẽ kiểm chứng thông tin và gửi câu trả lời tới NAS. Khi 1 endusser rời khỏi
Multicast Group, hoạt động của group đó sẽ được gửi tới AAAS nằm trong thông
account message.
-Mô tả các giao thức:
• Trong kiến trúc của IGMP-AC có 3 thực thể: host, AR/NAS và AAAS. 1 máy chủ
và AR sẽ giao tiếp với nhau bằng cách sử dụng IGMP-AC trong khi mà AR/NAS
và AAAS sử dụng 1 trong các giao thức của AAA. Từ điểm này khi chúng ta sử
dụng term “AR” nó sẽ chỉ ra cả AR và các NAS. Dưới đây, ta sẽ có 1 flow chart
giải thích hoạt động của từng trạng thái tương ứng với các entity tương ứng:
• Trong flowchart trên, mũi tên 2 chiều sẽ được dùng để diễn tả quá trình gửi và
nhận 1 thông điệp đến hoặc từ thực thể nào được gắn trên mũi tên. Mũi tên đến thể
hiện việc nhận thông điệp và mũi tin xuất thể hiện việc gửi thông điệp. Chúng ta
sẽ thông qua g_or_gs để chỉ ra Group-Specific Query và Group-and-Source-
Specific Query.
• State diagram cho việc giao thức với AR sử dụng IGMP-AC. Ở đây, các API là
các các giao thức lớp trên. Thông điệp rời đi và join vào không phải là 1 phần của
IGMP-AC protocol, nó được dùng để thể hiện 1 trong các ứng dụng, chạy trên
máy chủ để thông báo khi nào hoin haowcj rời khỏi máy chủ. Chế độ lọc(rstate) sẽ
được coi như 1 host duy trì, có 1 trong 3 giá trị: add, del hoặc current. Khi host 1
thông điẹp join vào, nó sẽ tạo mới 1 trang thái tiếp nhận và phân chế độ lọc với giá
trị add. Khi nó nhận thông điệp rời đi cho 1 g_or_gs, chế độ lọc sẽ thay đôi từ
current thành del. Chế độ lọc được phân giá trị current trong 1 khoảng thời gian
mà máy chủ duy trì các thành viên trong group. Trong flowchart trên, query và
report messages là các thông điệp tiêu chuẩn của IGMPv3; auquery, areport và
aresult sẽ được tạo cho các giao thức IGMP-AC . Trong sơ dồ này, 1 mật khẩu
đơn giản dựa trên cơ chế xác nhận đã được mô tả khá chi tiết. Để tối thiểu hóa số
lần authentication data được gửi bởi máy chủ, chỉ trong response tới 1 auquery,
máy chủ sẽ gửi areport tới AR mang theo thực thể và password của end user. AR
sẽ thông báo cho host rằng kết quả của tiến trình authentication bằng cách gửi
aresult message. Khi xác thực thành công, giá trị cảu rstate sẽ là add, máy chủ sẽ
add thêm 1 trạng thái tiếp nhận mới cho(g_or_gs, id, pwd) bằng cách thay đổi chế
độ lọc từ add thành current. Nếu giá trị của rstate là del, máy chủ sẽ xóa đi trạng
thái tiếp nhận(g_os_gs, id, pwd) cho chế độ lọc đã được phân cho giá trị del trước
đó.
• Trên đây là sơ đồ trạng thái miêu tả AAAS giao tiếp với AR sử dụng 1 trong các
AAA protocol được trình bày như trên. Chúng ta hãy giả định rằng: request,
answer và account là thông điệp của “Diameter” protocol. Việc mở rộng
“Diameter Protocol” có thể được thực hiện bằng cách gửi reponse tới request và
AAAS sẽ nhận được answer. Nếu end user được xác thực thành công và được xác
thực cho group g_or_gs, AAAS sẽ gửi 1 answer(yes, time) nơi mà time chỉ ra
khoảng thời gian mà end user cho phép nhận data từ multicast group g_or_gs.
AAAS sẽ update database index của nó(g_or_gs,id) dựa trên việc nhận 1 account
message.
-Dưới đây là sơ đồ trạng thái AR và các tính năng của nó:
• AR sẽ tiếp tục duy trì list bảo mật của secured group của loại g_or_gs bất cứ khi
nào mà 1 report cung với g_or_gs được nhận, nó sẽ gửi repuest tới AAAS để
thông báo . Nếu đó là 1 Open Group, IGMPv3 sẽ được theo dõi, mặt khác, group
sẽ được thêm vào list.
• Nếu AR nhận được report cùng với đó chế độ lọc của trạng thái tiếp nhận là
current, nó sẽ resfresh lại trạng thái tiếp nhận và reset lại bộ đếm. Không có thông
tin xác thực nào được trao đổi trong thời gian này.
• AR sẽ gửi 1 auquery nếu nó nhận được report với chế độ lọc của trạng thái tiếp
nhận là add hoặc del. Vì, authentication chỉ cần thiết trong quá trình join hoặc rời
đi của end user.
• Quá trình xác thực tế được thực hiện bởi AAAS, AR nhận được thông tin xác
thực(user identity và mật khẩu) qua thông điệp areport, trích xuất thông tin và
chuyển nó đến AAAS bằng cách gửi thông điệp request.
• Nếu quá trình xác thực thành công và chế độ lọc có giá trị là add, AR sẽ add thêm
trạng thái tiếp nhận mới(g_or_gs,id).
• Khi quá trình xác thực thành công mà chế độ lọc là de, 1 thộng điệp acccount sẽ
được gưi tới AAAS và 1 IGMPv3 query sẽ được gửi tới các host trong subnet. Bộ
đếm hay querytimer cho group g_or_gs sẽ được thiết lập.
• Trong trường hợp querytimer cho group g_or_gs hết hạn, tất cả các entries với
g_or_gs ở trạng thái tiếp nhận sẽ bị xóa bỏ.
-Những thông điệp khác:
• Authentication Unicast Query: Trong IMGPv3, tất cả các loại của thông điệp
query đuọc gửi với địa chỉ multicast đích. 1 General Query được gửi với địa chỉ IP
đích là 224.0.0.1, địa chỉ multicast của toàn hệ thống. 1 Group-Specific hoặc
Group-and-Source-Specific Querry được gửi cùng với đại chỉ IP đích tương đương
với địa chỉ multicast được yêu cầu. 1 Authentication Querry, được coi như là
auquery trong sơ đồ trên, được gửi với địa chỉ unicast đích. Bất kể khi nào AR
nhận report từ máy chủ với giá trị của chế độ lọc là add hoặc del, AR sé lấy địa chỉ
IP của máy chủ từ report này, và sử dụng địa chỉ đó như địa chỉ đích của thông
điệp auquery. Query này được gửi cùng với g_or_gs, vì thế nó có cả 2 loại Group-
Specific và Group-and-Source-Specific.
• Authentication Report: được biểu diên bởi areport. Nó bao gồm thông tin xác thực
cảu người dùng. Báo cáo này chỉ được gửi bởi máy chủ và chỉ trả lời cho auquery.
1 areport bao gồm chế đọ lọc của trạng thái tiêp nhận, danh tính và mật khẩu. Bất
kì 1 cơ chế xác thực nào sử dụng nó đều sẽ mang thông các thông tin xác thực
tương ứng.
• Authentication Result: AR sẽ chuyển thẳng các thông tin xác thực tới AAAS và
nhận lại kết quả từ AAAS. Kết quả đó dựa vào máy chủ bởi 1 Authentication
Result hoặc thông điệp aresult. Nó bao gồm (g_or_gs, id, result), trong đó result
được coi như 1 cờ gắn cho loại data đó(yes/no).
-Yêu cầu về trạng thái tiếp nhận:
• Để hoạt động IGMP-AC 1 cách trơn tru, thì 1 set các trạng thái tiếp nhận phải nên
được duy trì bởi 1 AR và máy chủ thêm vào đó ứng với trạng thái tiếp nhận tương
ứng.AR và các máy chủ sẽ liển tục duy trì set các trạng thái tiếp nhận.
• 1 máy chủ sẽ được thông báo thông qua API là giao thức lớp trên sẽ biểu diễn quá
trình join vào nhóm multicast. Máy chủ sẽ kiểm tra thông tin nhận được từ các
API lớp trên 1 số thông tin xác thực phải được trình bày cho Secured Group khi
tiếp nhận. Nếu nó là Open Group thì nó sẽ follow theo các tiêu chuẩn của
IGMPv3. Trong trường hợp Secured Group, máy chủ sẽ bắt buộc phải duy trì(địa
chỉ nhóm, địa chỉ nguồn, danh tính của end user, thông tin xác thực, chế độ lọc).
• Đối với các thành viên của Group-Specific sẽ được để rỗng và với Group-and-
Source-Specific, các trường sẽ có từ 1 đến 2 địa chỉ nguồn. Chế dộ lọc có thể là
bất kì giá trị nào trong 3 giá trị: add, current, del.
• AR luôn luôn duy trì danh sách các multicast group theo format g_or_gs. Bất kể
khi nào 1 report không có nhóm xác định(không nằm trong danh sách nhóm đã
được xác định) được truyền đi, AR sẽ giao tiếp với AAAS để update danh sâch đó.
Danh sách đo vô cùng đơn giản bao gồm: địa chỉ nguồn, địa chi đích, status. Ở đây
địa chỉ nguồn và địa chỉ đích là như nhau đối với trạng thái tiếp nhận của máy chủ,
trạng thái có thể là Open hoặc Secured
• AR sẽ không bao giờ duy trì thông tin xác thực của end user và nó nên duy trì
trạng thái tiếp nhận của: địa chỉ nguồn, địa chỉ đích, danh tính của end user, thông
tin ủy quyền, thông tin accounting, chế độ lọc.
-Công dụng của EAP(Extensible Authentication Protocol) trong IGMP-AC:
• EAP framework hoạt động giống như IGMP-AC với bộ xác thực hoạt động như 1
trạm trung chuyển. Sự khác biệt duy nhất mà chúng tôi phải giải quyết là trong
IGMP-AC, một máy chủ giao tiếp với AR (NAS) bằng cách sử dụng IGMP-AC
protocol, trong khi trong khuôn khổ EAP, một máy chủ giao tiếp với NAS sử dụng
giao thức EAP. Chúng tôi không trình bày cụ thể giải pháp của vấn đề này. Một
trong những trường hợp có thể xảy ra là bạn nên gửi các gói EAP bên trong các
trình hiền triết IGMP-AC. Trong hình trên, trình tự của các thông báo được hiển
thị,trong đó EAP Request được đóng gói bên trong một auquery và một EAP được
đóng gói bên trong một thông điệp areport. Một EAP Success hoặc Failure được
gói gọn trong một thông báo kết quả. Đối với N chuyến khứ hồi của
các bản tin EAP, N cặp bản tin (auquery, areport) sẽ được trao đổi.
Điều gì sẽ xảy ra nếu hệ thống mạng có vài switch không phải của Cisco? Bạn không thể
dùng CGMP bởi vì đây là giao thức của Cisco. IGMP snooping có thể được dùng cho
một môi trường có nhiều loại switch khác nhau để kiểm soát việc phân phối lưu lượng ở
lớp 2. IGMP snooping yêu cầu phần mềm switch nghe lén các trao đổi IGMP giữa các
máy trạm và các router. Switch sẽ kiểm tra các thông điệp IGMP và học vị trí của các
router Multicast và các thành viên nhóm.
-Ba bước dưới đây sẽ mô tả quá trình tổng quát của IGMP snooping:
• Bước 1: Để phát hiện có nhiều router kết nối vào cùng một mạng con hay không,
các switch của 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 PIM phiên bản 1 và HSRP với gói hello là có GDA 01-00-5e-00-00-
01.
+Gói tin PIM phiên bản 2 có GDA là 01-00-5e-00-00-0d.
+Các thông điệp DVMRP thử nghiệm với 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 đó.
• Bước 2: Khi một switch nhận được một thông điệp báo cáo IGMP 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 máy trạm khác gửi các báo cáo IGMP, switch sẽ chuyển lưu lượng 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 lưu lượng 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 lưu lượng , switch
sẽ bỏ thông điệp rời bỏ, nếu khác đi, nó sẽ gửi thông điệp rời bỏ đến router.
-Như vậy, IGMP snooping giúp cho các switch gửi lưu lượng 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 các báo cáo IGMP và lưu lượng Multicast bình thường. CPU của switch cần
phải thấy các thông điệp báo cáo IGMP (và các thông điệp định tuyến Multicast khác)
bởi vì IGMP snooping có thể làm tốn CPU. Tuy nhiên, quá trình đẩy khung tin đi không
yêu cầu chu kỳ CPU mà chỉ cần phần cứng ASIC của switch.
Những switch cũ hơn, đặc biệt là những switch không có L3 sẽ không thể nhận dạng một
gói tin là IGMP. Các switch này bị ràng buộc về CPU bằng cách gửi tất cả các Multicast
lưu lượng . Phần lớn các switch hiện đại ngày nay hỗ trợ đủ tính năng L3 để nhận biết
IGMP sao cho IGMP snooping sẽ không ràng buộc CPU.
11.4 Tìm hiểu về các giao thức định tuyến multicast
11.4.2 Tìm hiểu về giao thức định tuyến multicast-vector khoảng cách
-DVMRP(Distance Vector Multicast Routing Protocol) là giao thức định tuyến multicast
đầu tiên được sử dụng phổ biến. DVMRP được phát triển dựa trên giao thức định tuyến
unicast Routing Information Protocol(RIP) với 1 số thay đổi để phù hợp với cơ chế
multicast.
• Tìm kiếm hàng xóm: Là quá trình quan trọng các router sử dụng DVMRP cần
phải duy trì 1 danh sách các router hàng xóm để thực hiện chuyển tiếp multicast.
Điều này đặc biệt đúng khi DVMRP hoạt động trên mạng da truy cập như mạng
Ethernet, vì trên mạng có thể có nhiều router DVMRP tham gia.
• Cắt nhánh: DMVRP sử dụng cây nguồn để điều khiển đường đi của ngồn dữ
liệu, ban đầu dữ liệu multicast được gửi xuống tất cả cá nhánh của cây. Để có 1
cơ chế cắt bỏ tất cả các nhánh cây mà trên đó không có máy nhận dữ liệu. Tại các
router không có máy nhận, dữ liệu kết nối trực tiếp thì router đó được gọi là router
lá, router này gửi 1 thông điệp DVMRP Prune lên cây multicast để yêu cầu dừng
gửi dữ liệu và cắt bỏ nhánh khỏi cây multicast.
• “Tính độc lập của giao thức” nghĩa là nó có thể sử dụng bất kỳ giao thức định
tuyến IP nào, bao gồm cả các tuyến tĩnh nếu cần. Nó không cần phải phân phối
các định tuyến riêng biệt của mình hoặc duy trì một bảng định tuyến multicast
riêng biệt.
• Các router sẽ tham gia vào PIM. Mỗi bộ định tuyến sử dụng bảng định tuyến
unicast của nó để tìm kiếm đường dẫn ngắn nhất quay trở lại nguồn phát đa
hướng. Đây được gọi là RPF(Reverse path Forwarding-Chuyển tiếp đường dẫn
ngược).
• Khi sử dụng RPF, mỗi bộ định tuyến có thể quyết định giao diện mà nó sẽ nhận
nhóm phát đa hướng thông qua. Miễn là tất cả các bộ định tuyến trong mạng chấp
nhận về bảng định tuyến unicast, điều này sẽ tạo thành một cấu trúc cây đáng tin
cậy, tương tự như spanning free, sẽ không có vòng lặp.
-Rendezvous Point: Điểm hẹn (Rendezvous Points) trong mạng chế độ PIM thưa thớt
tồn tại để tìm nhóm phát Multicast và source.
• RP là một bộ định tuyến khác trên mạng. Khi thiết bị nguồn bắt đầu gửi các gói đa
hướng của nó, bộ định tuyến đầu tiên, trên cùng phân đoạn với nguồn, nhận gói đó
và chuyển tiếp đến bộ định tuyến RP. Bước đầu tiên này được gọi là “đăng ký”,
được thực hiện bằng cách sử dụng unicast.
• RP có hai chức năng: Nó duy trì một bảng tất cả các nguồn cho mỗi nhóm, đồng
thời nó cũng nhận và phân phối lại tất cả các nhóm mà nó đã chịu trách nhiệm.
Địa chỉ bộ định tuyến cục bộ trên giao diện hỗ trợ PIM mà <source-addr / src-mask>
được kết nối trực tiếp. Bộ định tuyến cục bộ sẽ đảm nhận vai trò DR cho luồng này và
đăng ký luồng bằng RP, nếu được cấu hình.
- Để giảm thiểu việc lặp lại nhiều lần các biểu đồ dữ liệu và việc cắt tỉa tiếp theo liên
quan đến một cặp (S, G) cụ thể, PIM-DM sử dụng thông báo làm mới trạng thái. Thông
báo này được gửi bởi các bộ định tuyến được kết nối trực tiếp với nguồn và được truyền
trên toàn mạng. Khi nhận được bởi một bộ định tuyến trên giao diện RPF của nó, thông
báo làm mới trạng thái khiến trạng thái sơ lược hiện có được làm mới. Thông báo làm
mới trạng thái được tạo định kỳ bởi bộ định tuyến được gắn trực tiếp vào nguồn. Có hai
phiên bản PIM-DM. Phiên bản 2 không sử dụng tin nhắn IGMP; thay vào đó, nó sử dụng
một thông báo được đóng gói trong các gói IP với giao thức số 103. Trong phiên bản 2,
thông báo Hello được giới thiệu thay cho thông báo truy vấn.
- Hình sau đây cho thấy một nguồn đang gửi một gói tin đa hướng có màu đỏ, và các
downstream router sẽ sao chép gói tin đó và làm ngập nó đến các bộ định tuyến khác và
cuối cùng là tất cả các phân đoạn mạng LAN. Như chúng ta sẽ thấy ngay sau đây, đây là
hành vi ban đầu (và định kỳ) của giao thức định tuyến đa hướng độc lập theo giao thức
(PIM) của Cisco, khi hoạt động ở Dense Mode.
• Có thể có hai bản sao của mỗi gói đến một số bộ định tuyến hoặc phân
đoạn mạng LAN. Nhưng các bộ định tuyến không chuyển tiếp các gói
"ngược". Đây là một điều tốt: hãy nghĩ xem điều gì có thể xảy ra nếu bộ
định tuyến E chuyển tiếp một bản sao của gói mà nó nhận được từ C đến
bộ định tuyến B. Sau đó, B có chuyển tiếp gói đến A không, có thể chuyển
tiếp nó tới C, v.v. trong một vòng lặp chuyển tiếp? Đây sẽ là một loại
tương đương với Lớp 3 như những gì xảy ra ở Lớp 2 khi Spanning Tree bị
vô hiệu hóa trong cấu trúc liên kết vòng lặp: một cách tốt để lãng phí nhiều
băng thông và dung lượng bộ định tuyến.
• Để ngăn các vòng chuyển tiếp phát đa hướng, IP multicast luôn thực hiện
kiểm tra RPF mà chúng ta sẽ nói ngay sau đây.
• Ngoài kiểm tra RPF, các giao thức định tuyến đa hướng như PIM cũng có
thể hoạt động để ngăn chặn sự kém hiệu quả. Ví dụ, bộ định tuyến E trong
hình không cần nhận hai bản sao của mỗi gói phát đa hướng (một từ B,
một từ C).
• Giao thức định tuyến đa hướng(mulicast routing protocol) xác định giao
diện nào để gửi bản sao ra ngoài (hoặc không gửi bản sao ra ngoài). Như
hình trên gợi ý, chuyển tiếp đa hướng xảy ra dọc theo cây logic, các đường
dẫn phân nhánh thông qua mạng.
• Tất cả thông tin chuyển tiếp đa hướng được lưu trữ trong bảng trạng thái
phát đa hướng, mà một số người gọi là bảng định tuyến đa hướng. Thông
tin này có thể được xem bằng lệnh rất hữu ích, show ip mroute.
- Hãy xem xét các bộ định tuyến E và F trong hình trên. Khi hai bộ định tuyến PIM-DM
kết nối với một mạng LAN, chúng sẽ thấy các gói phát đa hướng từ nhau. Một gói nên
chuyển tiếp các gói đến mạng LAN, còn gói kia thì không. Cả hai đều gửi tin nhắn Khẳng
định. Chỉ số định tuyến tốt nhất chiến thắng, với địa chỉ IP cao hơn là yếu tố quyết định.
Nếu họ đang sử dụng các giao thức định tuyến khác nhau, một lược đồ số liệu định tuyến
có trọng số, giống như khoảng cách quản trị, sẽ giải quyết bộ định tuyến nào sẽ là Người
chuyển tiếp (chuyển tiếp các gói tin đa hướng vào mạng LAN). Bộ chuyển tiếp có thể bị
Prune tắt tiếng từ bộ định tuyến hạ lưu không có bộ thu, nếu cũng không có bộ thu nào
trên phân đoạn LAN. Các bộ định tuyến hạ nguồn có thể phải điều chỉnh hàng xóm RPF
của chúng, để phản ánh người chiến thắng trong Assert Process.
• Khi nhận được lưu lượng phát đa hướng trên giao diện không phải RPF, một thông
báo Prune sẽ được gửi, với điều kiện giao diện là point-to-point. Các tin nhắn
Prune này có giới hạn về tốc độ, để đảm bảo rằng khối lượng của chúng (có thể là
một tin nhắn trên mỗi phát đa hướng nhận được) không gây ra vấn đề gì thêm.
• Nếu giao diện không phải RPF là mạng LAN, một thông báo Assert sẽ được gửi.
Sau đó, các bộ định tuyến không phải của Forwarder sẽ gửi một Prune trên giao
diện RPF của chúng nếu chúng không cần luồng phát đa hướng. Chỉ một Prune
như vậy được gửi, tại thời điểm chuyển đổi sang không có giao diện nào trong
Danh sách giao diện đi (OILIST). Bộ thu LAN Prune trì hoãn hoạt động trên nó
trong 3 giây, do đó nếu một bộ định tuyến LAN khác vẫn cần luồng phát đa
hướng, nó có thể gửi thông báo PIM Join để chống lại (hủy) Prune.
• Giả sử một bộ định tuyến đã Pruned, và một thời gian sau, một bộ thu yêu cầu
luồng phát đa hướng với một thông điệp IGMP. Sau đó, bộ định tuyến sẽ gửi một
thông điệp Graft.
-Ví dụ về cấu hình PIM-DM:
Routing swtich duy trì các nhánh riêng lẻ trong cây đa hướng miễn là có ít nhất một máy
chủ duy trì tư cách thành viên trong nhóm phát đa hướng. Khi tất cả các máy chủ trong
một mạng con cụ thể thoát ra khỏi nhóm, PIM-DM sẽ loại bỏ giao diện đó khỏi cây đa
hướng. Tương tự, nếu routing switch phát hiện một liên kết từ một máy chủ lưu trữ trong
một giao diện được cắt tỉa, nó sẽ thêm nhánh đó trở lại cây.
Không giống như PIM-SM, số lần tắt tiếng được tạo với chế độ dày đặc thường cao vì bộ
định tuyến nguồn ban đầu làm ngập lưu lượng truy cập đến tất cả các hàng xóm PIM.
Nếu chúng ta có hai bộ định tuyến được kết nối với nhiều trung kế VLAN, số lần tắt tiếng
trên bộ định tuyến thu sẽ tỷ lệ với số SVI được cấu hình. Đảm bảo rằng các luồng đã cho
nằm trong giới hạn của thang tắt tiếng của bộ định tuyến thu.
Theo sơ dồ trên:
• Định tuyến E chọn B làm hàng xóm RPF của nó, dựa trên định tuyến unicast trở
lại nguồn. Sau đó, E nhận được một gói đa hướng trên giao diện điểm-điểm từ C.
Nó gửi một Prune giới hạn tốc độ đến C.
• Các bộ định tuyến E và F trên mạng LAN trao đổi gói Assert, khi E hoặc F thấy đa
tuyến được chuyển tiếp bởi hai bộ kia. Giả sử E thắng, dựa trên chỉ số hoặc địa chỉ
định tuyến unicast. Sau đó, F biết không chuyển tiếp đa tuyến trong mạng LAN.
Lưu ý rằng G và H không liên quan, vì Ethernet là giao diện RPF của chúng.
• Giả sử bộ định tuyến G không có bộ thu nào downstream. Sau đó, nó có thể gửi
một LAN Prune đến Forwarder cho mạng LAN, bộ định tuyến E.
• Nếu bộ định tuyến H có các local receiver hoặc downstream receiver, nó sẽ xử lý
điều này bằng Kết nối mạng LAN.
• Giả sử bộ định tuyến D không có downstream hoặc local receiver và đã gửi Prune
đến B. Giả sử một lúc sau PC ở bên phải của nó sẽ gửi cho nó một bản tin IGMP
cho cùng một nhóm phát đa hướng. Sau đó, bộ định tuyến D có thể gửi PIM Graft
tới B, yêu cầu B tiếp tục gửi nó nhóm phát đa hướng đã chỉ định.
11.4.6 So sánh PIM-DM và PIM-SM
- Sự giống nhau giữa PIM-DM và PIM-SM:
• Cả 2 đều dùng cơ chế hello để tìm ra láng giềng,
• Tính toán và kiểm tra RPF khi bảng định tuyến unicast thay đổi.
• Bầu chọn designated router trên môi trường multi-access. Router DR thực hiện tất
cả các tiến trình IGMP khi IGMPv1 được dùng.
• Sử dụng cơ chế prune trên môi trường multi-access.
• Sử dụng cơ chế Assert để bầu ra rooter forwarder trên môi trường multi-access.
Router thắng quá trình bầu chọn Assert sẽ chịu trách nhiệm đẩy lưu lượng vào
trong subnet đó.
- Sự khác nhau giữa PIM-DM và PIM-SM:
Mặc dù vậy, thay vì dùng cơ chế join tường minh như PIM-DM, PIM-SM dùng 1 giải
pháp khác. Cây multicast sẽ không mở rộng đến router cho đến khi nào 1 host đã tham
gia vào 1 nhóm. Cây multicast được xây dựng bằng các thành viên ở các node lá và mở
rộng ngược về root. Cây cũng được xây dựng từ dưới lên. SM cũng hoạt động dựa trên ý
tưởng cấu trúc shared-tree, trong đó gốc của cây không nhất thiết là nguồn của multicast.
Thay vào đó, root là router PIM-SM thường được đặt ở trung tâm của mạng. Router làm
gốc này gọi là Rendezvous Point (RP). Các router có thể nhận biết được RP bằng 3 cách:
• Địa chỉ RP có thể được cấu hình tĩnh trên từng router: kiểm soát được mạng nhưng
chi phí quản trị cao.
• Bầu chọn RP có thể dùng giao thức bootstrap.
• Dùng cơ chế Auto-RP của Cisco: phù hợp hệ thống mạng nhỏ.