Tác giả:
+ Đặng Quang Minh
Định tuyến cho traffic multicast
Chức năng của bất kỳ giao thức định tuyến nào là giúp router chuyển một gói tin đi theo đúng hướng để cuối cùng giúp gói tin đến được địa chỉ đích dự kiến. Để định tuyến một gói tin, router sẽ kiểm tra địa chỉ đích của gói tin, tìm ra giá trị next-hop trong bảng định tuyến và đẩy gói tin ra cổng phù hợp. Một gói tin unicast sẽ được truyền dọc theo một đường đi duy nhất từ nguồn đến đích.
Hình trên mô tả một router sẽ ra quyết định về việc định tuyến một gói tin unicast như thế nào thông qua việc tham khảo bảng định tuyến. Tuy nhiên khi router nhận được một gói tin multicast, router không thể tiếp tục chuyển gói tin đi bởi vì địa chỉ IP multicast không được liệt kê trong bảng định tuyến unicast.
Ngoài ra, router thường phải chuyển các gói multicast đồng thời ra nhiều cổng để đến tất cả các máy nhận. Các yêu cầu này làm cho quá trình định tuyến multicast phức tạp hơn unicast. Trên hình vẽ hiển thị một router đã nhận được một gói tin multicast với địa chỉ đích là 226.1.1.1. Địa chỉ đích tượng trưng cho một nhóm thường xuyên biến động của các máy nhận, không chỉ là địa chỉ của một máy nhận. Làm thế nào để router tìm ra các người dùng này nằm ở đâu? Router sẽ đẩy những gói tin multicast này về đâu?
Chức năng của unicast-routing là tìm đường đi ngắn nhất đến một địa chỉ đích nào đó. Tác vụ này được thực hiện bằng cách dùng các giao thức distance vector hay dùng các cơ sở dữ liệu liên kết (linkstate). Kết quả của tác vụ này là một hàng trong bảng định tuyến, chỉ ra cổng outbound hoặc chỉ ra router kế tiếp. Interface đầu ra có thể hiểu như là interface gần nhất để đi về mạng đích.
Trái lại, chức năng của multicast routing là tìm ra upstream interface, tức là đường đi gần nhất về source. Bởi vì các multicast routing protocol quan tâm tìm ra đường đi ngắn nhất về source hơn là đường đi ngắn nhất về đích nên quá trình chuyển gói tin multicast được gọi là reverse path forwarding.
Cách tốt nhất để một giao thức định tuyến multicast xác định đường đi ngắn nhất về máy nguồn là tham khảo bảng định tuyến unicast. Tuy nhiên, các gói multicast sẽ được truyền đi dựa trên thông tin của bảng multicast routing riêng biệt. Lý do cho việc này là router không chỉ lưu lại cổng upstream mà còn lưu lại cổng downstream của cả nhóm multicast.
Các traffic IP phải được định tuyến giống như bất cứ một gói tin L3 nào. Sự khác nhau là ở điểm cần phải biết để chuyển gói tin về đâu. Các gói tin L3 dạng unicast chỉ có một cổng ra duy nhất trên router (ngay cả khi có quá trình load-balancing xảy ra), trong khi multicast traffic có thể được chuyển mạch ra nhiều cổng, tuỳ thuộc vào các máy nhận nằm ở đâu. Một vài giao thức định tuyến multicast hiện có.
Đầu tiên, ta phải cho phép định tuyến multicast bằng lệnh
Switch(config)# ip multicast-routing
Cây Multicast
Các router hoặc các multilayer switch trong một mạng phải xác định một tuyến đường để phân phối các gói tin multicast từ máy nguồn đến từng máy nhận. Khi đó, toàn bộ mạng giống như một cấu trúc cây, trong đó gốc của cây là nguồn của luồng traffic đó. Mỗi router dọc theo đường đi sẽ là một nhánh rẽ của cây. Nếu một router biết tất cả các địa chỉ multicast, router cũng phải biết cần phải nhân bản luồng multicast đó ra những nhánh nào của cây. Một vài router không có các máy nhận trong các phân đoạn mạng của nó thì các router đó sẽ không chuyển traffic. Các router khác sẽ có thể có các máy nhận multicast traffic. Cấu trúc cây này tương tự như cấu trúc cây Spanning Tree vì nó có một root và các lá. Cấu trúc cây này cũng đảm bảo là không bị vòng lặp sao cho traffic multicast không bị chuyển ngược về cây.
Kiểm tra RPF (Reverse Path Forwarding)
Các router thường phải thực hiện một phép kiểm tra trên tất cả các gói multicast mà nó nhận. Reverse Path Forwarding (RPF) là một công cụ để đảm bảo rằng các gói tin không bị đưa ngược trở về cây multicast ở một vị trí bất kỳ nào đó. Khi một gói tin multicast được nhận trên một cổng của router, ví dụ cổng E0 của router, địa chỉ nguồn của gói sẽ được kiểm tra. Sau đó router sẽ so sánh địa chỉ nguồn này với một entry trong bảng định tuyến unicast. Nếu cột out-going interface của bảng định tuyến cũng đúng bằng cổng nhận gói multicast (tức E0 trong ví dụ này), gói multicast sẽ được xử lý và chuyển ra các nhánh của cây. Nếu cổng là không so trùng, điều này có nghĩa là có một ai đó đã đưa gói vào một vị trí không mong đợi, chuyển gói tin ngược về root. Gói tin lúc này sẽ bị loại bỏ. Để thực hiện phép kiểm tra RPF này, router chạy giao thức PIM phải tìm kiếm địa chỉ nguồn trong bảng định tuyến unicast.
Router không thể chỉ nhận gói multicast và sau đó chuyển bản sao ra tất cả các cổng mà không gây vòng lặp. Để ngăn ngừa loop, các router không chuyển các gói multicast ra cùng một cổng mà nó nhận. Các multicast router dùng một phép kiểm tra gọi là reverse-path-forwarding (RPF) check để ngăn ngừa loop.
Phép kiểm tra này sẽ thêm vào một số bước trong hoạt động của một router.
Xem địa chỉ nguồn IP của gói multicast. Nếu có một tuyến đường đúng bằng vớI địa chỉ nguồn trên, hãy kiểm tra cổng ra trên bảng định tuyến xem có đúng là cổng mà router nhận được gói tin. Nếu đúng, gói tin đã vượt qua phép kiểm tra RPF. Nếu cổng nhận gói tin khác với cổng đi ra trong bảng định tuyến, gói tin sẽ không được nhân bản và không được truyền.
Trên hình mô tả một ví dụ trong đó R3 dùng phép kiểm tra RPF để kiểm tra hai bản sao của cùng một gói multicast. Máy S1 gửi một gói multicast, R1 phát tán gói này ra R2 và R3. R2 nhận được phiên bản này và cũng tiếp tục phát tán. Kết quả R3 nhận được cùng một gói tin từ hai nguồn R2 trên cổng S0/0 và từ R1 trên cổng S0/1. Nếu không có phép kiểm tra RPF, R3 sẽ tiếp tục chuyển gói tin mà nó nhận được từ R1 đến R2 và ngược lại. Quá trình loop bắt đầu. Với cùng thuật toán này, R1 và R2 cũng lặp lại quá trình. Vòng lặp xảy ra làm lãng phí băng thông và tài nguyên router. Một router sẽ không tiếp tục chuyển gói tin multicast cho đến khi nào gói tin đã vượt qua phép kiểm tra RPF. Trong hình dướI đây, R3 sẽ quyết định nó có chấp nhận gói tin multicast đến từ R1 hay R2 hay không. Các bước kiểm tra RPF như sau:
1. R3 kiểm tra địa chỉ nguồn của từng gói tin muliticast đi vào, địa chỉ này là 10.1.1.10. Địa chỉ nguồn này sẽ được dùng trong quá trình kiểm tra bước 2.
2. R3 xác định cổng của router dùng để đi về địa chỉ 10.1.1.10. Trong trường hợp này, đường đi của R3 về mạng 10.1.1.0/24 là tìm thấy trong bảng định tuyến unicast. Cổng của router để đi ra mạng này là cổng S0/1. Vì vậy cổng S0/1 là cổng RPF cho địa chỉ 10.1.1.10
3. R3 so sánh cổng đã xác định ở bước 2 với cổng mà gói tin multicast nhận được. Nếu cổng này là trùng nhau, router sẽ chấp nhận gói tin và truyền đi, nếu không trùng, router sẽ loại bỏ gói tin. Trong trường hợp này, R3 sẽ phát tán gói tin nhận trên cổng S0/1 từ R1 nhưng sẽ bỏ qua những gói tin nhận được trên S0/0 từ R2.
Phép kiểm tra RPF triển khai một chiến lược trong đó router chỉ chấp nhận những gói tin đến đúng trên đường đi ngắn nhất và loại bỏ những gói tin nào đến từ đường đi dài hơn. Các giao thức định tuyến multicast không thể dùng địa chỉ đích để giúp router truyền gói tin bởi vì địa chỉ này tượng trưng cho nhóm. Vì vậy, các giao thức định tuyến multicast dùng phép kiểm tra RPF để xác định rằng gói tin multicast có đến router dùng đường đi ngắn nhất từ nguồn đến router. Nếu là đúng, giao thức sẽ chấp nhận gói tin và truyền đi. Các giao thức khác nhau sẽ xác định của cổng RPF khác nhau theo những cách như sau:
- Distance Vector Multicast Routing Protocol (DVMRP) duy trì một bảng định tuyến multicast và dùng nó để kiểm tra RPF check.
- Protocol Independent Multicast (PIM) và Core-Based Tree (CBT) thường dùng bảng định tuyến uicast để kiểm tra RPF.
- PIM và CBT cũng có thể dùng bảng định tuyến của DVMRP, hoặc bảng định tuyến Multiprotocol Border Gateway Protocol (MBGP) hoặc các route cấu hình tĩnh cho kiểm tra RPF.
- Multicast OSPF không dùng phép kiểm tra RPF bởI vì nó tính toán cả chiều đến và chiều đi ngắn nhất dựa trên thuật toán Dijkstra.
Tầm vực Multicast
Tầm vực multicast giới hạn việc truyền lưu lượng multicast đến một nhóm của router nhằm mục đích quản trị, bảo mật hay các chính sách. Nói cách khác, tầm vực multicast là việc định nghĩa giới hạn các lưu lượng multicast có thể đi xa đến đâu trong hệ thống mạng. Các mục sau sẽ thảo luận hai phương pháp giới hạn tầm vực multicast:
- Giới hạn dựa trên thông số TTL (TTL scoping)
- Giới hạn quản trị (administrative scoping).
Giới hạn dựa trên thông số TTL
Khi dùng phương thức này, router so sánh giá trị TTL trên một gói tin multicast với một giá trị TTL được chỉ định trước trên từng cổng của router. Một router truyền các gói tin multicast chỉ trên những cổng mà giá trị TTL được cấu hình thì nhỏ hơn hoặc bằng giá trị của các gói multicast. Cơ chế dùng TTL này sẽ khởi động giá trị TTL về giá trị 0 hoặc vài số cao hơn khi router loại bỏ các gói multicast. Hình dưới đây mô tả một ví dụ của router multicast với các giá trị TTL khác nhau được cấu hình trên các cổng:
Trong hình trên, một gói tin multicast đến trên cổng S1 với giá trị TTL bằng 18. Router sẽ trừ giá trị TTL của gói tin đi 1, còn lại 17. Giả sử rằng router được cấu hình với chế độ dense và cả bốn cổng của router đều kiểm tra RPF thành công. Nói cách khác, router sẽ muốn truyền một bản sao của gói tin trên từng cổng. Router sẽ xem xét giá trị TTL còn lại của gói tin, hiện là 17, với giá trị TTL được cấu hình trên từng cổng ra. Nếu giá trị TTL của gói tin là cao hơn giá trị TTL được cấu hình trên cổng, router sẽ nhân bản gói tin ra cổng đó. Nếu khác đi, router sẽ không truyền. Trên Cisco router, giá trị TTL mặc định của tất cả các cổng là 0.
Trên cổng S0 và S2, người quản trị đã cấu hình giá trị TTL bằng 8 và 32. Một phiên bản của gói tin sẽ được truyền trên cổng S0 và E0 bởi vì giá trị giới hạn TTL là nhỏ hơn 17. Tuy nhiên, gói tin sẽ không được truyền trên cổng S2 vì giá trị TTL của cổng là 32, lớn hơn 17. Cơ chế dùng TTL này có vài điểm yếu. Đầu tiên là nó triển khai khó trên một hệ thống mạng lớn và phức tạp bởi vì việc phỏng đoán giá trị TTL chính xác trên nhiều router và nhiều cổng là một công việc tốn sức.
Một vấn đề khác với cơ chế giới hạn tầm vực dùng TTL là các giá trị TTL được cấu hình trên các cổng sẽ áp dụng tới tất cả các gói multicast. Nếu bạn muốn hỗ trợ cho nhiều phiên multicast khác nhau, bạn phải thao tác trên ứng dụng để thay đổi giá trị TTL khi gói tin rời khỏi nguồn.
Giới hạn dùng tầm vực quản trị
Trong các chương trước, tầm vực quản trị của các địa chỉ multicast là trong tầm từ 239.0.0.0 đến 239.255.255.255. Dãy địa chỉ này có thể được dùng để giớI hạn việc truyền dữ liệu multicast ra ngoài một domain. Cơ chế này yêu cầu phảI cấu hình thủ công. Bạn có thể cấu hình và áp dụng bộ lọc trên một cổng của router sao cho các dữ liệu multicast và địa chỉ nhóm trong tầm địa chỉ private sẽ không được phép đi vào hay đi ra.
Giao thức PIM
Protocol Independent Multicast (PIM) là một giao thức định tuyến có thể được dùng để chuyển các multicast traffic. PIM hoạt động độc lập với các giao thức định tuyến unicast IP vì vậy PIM sử dụng bảng định tuyến IP. Cần chú ý là bảng unicast routing cũng không phụ thuộc vào các giao thức định tuyến vì nhiều giao thức định tuyến có thể đóng góp vào cùng một bảng định tuyến. PIM có thể hoạt động ở ba chế độ:
+ PIM Dense Mode
+ PIM Sparse Mode
+ PIM Sparse Dense Mode (do Cisco đưa ra)
PIM Dense Mode
Các giao thức định tuyến hoạt động theo chế độ dày đặc (dense mode) giả sử rằng các ứng dụng multicast là nhiều đến mức ở mọi subnet đều có ít nhất một máy nhận lưu lượng. Vì vậy, các giao thức hoạt động theo chế độ dày đặc này làm cho router đẩy lưu lượng multicast ra tất cả những cổng đã được cấu hình, với một vài ngoại lệ để ngăn ngừa vòng lặp. Ví dụ, một gói tin multicast sẽ không bao giờ được chuyển ra một cổng mà nó được nhận. Hình dưới đây mô tả một giao thức định tuyến hoạt động ở chế độ dense nhận một gói multicast trên một cổng và đẩy những phiên bản sao chép ra tất cả những cổng khác.
Hình trên mô tả hoạt động của chế độ dense trên R1. R1 sẽ phát tán tất cả các bản sao của gói tin ra khỏi tất cả các cổng, ngoại trừ cổng mà gói tin được nhận. Mặc dù trên hình chỉ hiển thị một router, các router khác có thể nhận lưu lượng multicast này và sẽ lặp lại cùng một tiến trình. Tất cả các mạng sẽ nhận một bản sao của gói tin multicast ban đầu. Chế độ dense giả sử rằng tất cả các subnet đều cần nhận một bản sao của gói tin, tuy nhiên chế độ dense cho phép router không nhận lưu lượng của một nhóm multicast cụ thể. Chế độ dense thường không muốn nhận gói multicast của một nhóm nếu cả hai điều kiện sau là đúng:
1. Router này không có một router láng giềng bên dưới cần nhận gói cho nhóm đó
2. Router không biết bất kỳ host nào trên cổng kết nối trực tiếp đã tham gia vào nhóm đó.
Khi cả hai điều kiện này là đúng, router cần phải thông báo cho router láng giềng bên trên là không cần gửi lưu lượng cho nhóm đó. Thông điệp này được gọi là thông điệp loại bỏ nhánh Prune. Các PIM router có thể được cấu hình theo kiểu Dense Mode (còn gọi là PIM-DM) nếu các host tham gia vào multicast group nằm ở khắp nơi trên tất cả các subnet. Một sơ đồ mạng được xem là dense nếu có rất nhiều nhóm multicast so với số host tương đối. Dense mode thường được dùng trong môi trường LAN và campus. Sparse mode thường được dùng trong môi trường WAN. Địa chỉ multicast nguồn trở thành gốc của cây và cây multicast được xây dựng từ nguốn đến đích. Cơ chế này còn được gọi bằng ký hiệu (S,G) trong đó đường đi từ nguồn đến các thành viên trong nhóm là duy nhất và được xác định.
+ Đặng Quang Minh
Định tuyến cho traffic multicast
Chức năng của bất kỳ giao thức định tuyến nào là giúp router chuyển một gói tin đi theo đúng hướng để cuối cùng giúp gói tin đến được địa chỉ đích dự kiến. Để định tuyến một gói tin, router sẽ kiểm tra địa chỉ đích của gói tin, tìm ra giá trị next-hop trong bảng định tuyến và đẩy gói tin ra cổng phù hợp. Một gói tin unicast sẽ được truyền dọc theo một đường đi duy nhất từ nguồn đến đích.
Hình trên mô tả một router sẽ ra quyết định về việc định tuyến một gói tin unicast như thế nào thông qua việc tham khảo bảng định tuyến. Tuy nhiên khi router nhận được một gói tin multicast, router không thể tiếp tục chuyển gói tin đi bởi vì địa chỉ IP multicast không được liệt kê trong bảng định tuyến unicast.
Ngoài ra, router thường phải chuyển các gói multicast đồng thời ra nhiều cổng để đến tất cả các máy nhận. Các yêu cầu này làm cho quá trình định tuyến multicast phức tạp hơn unicast. Trên hình vẽ hiển thị một router đã nhận được một gói tin multicast với địa chỉ đích là 226.1.1.1. Địa chỉ đích tượng trưng cho một nhóm thường xuyên biến động của các máy nhận, không chỉ là địa chỉ của một máy nhận. Làm thế nào để router tìm ra các người dùng này nằm ở đâu? Router sẽ đẩy những gói tin multicast này về đâu?
Chức năng của unicast-routing là tìm đường đi ngắn nhất đến một địa chỉ đích nào đó. Tác vụ này được thực hiện bằng cách dùng các giao thức distance vector hay dùng các cơ sở dữ liệu liên kết (linkstate). Kết quả của tác vụ này là một hàng trong bảng định tuyến, chỉ ra cổng outbound hoặc chỉ ra router kế tiếp. Interface đầu ra có thể hiểu như là interface gần nhất để đi về mạng đích.
Trái lại, chức năng của multicast routing là tìm ra upstream interface, tức là đường đi gần nhất về source. Bởi vì các multicast routing protocol quan tâm tìm ra đường đi ngắn nhất về source hơn là đường đi ngắn nhất về đích nên quá trình chuyển gói tin multicast được gọi là reverse path forwarding.
Cách tốt nhất để một giao thức định tuyến multicast xác định đường đi ngắn nhất về máy nguồn là tham khảo bảng định tuyến unicast. Tuy nhiên, các gói multicast sẽ được truyền đi dựa trên thông tin của bảng multicast routing riêng biệt. Lý do cho việc này là router không chỉ lưu lại cổng upstream mà còn lưu lại cổng downstream của cả nhóm multicast.
Các traffic IP phải được định tuyến giống như bất cứ một gói tin L3 nào. Sự khác nhau là ở điểm cần phải biết để chuyển gói tin về đâu. Các gói tin L3 dạng unicast chỉ có một cổng ra duy nhất trên router (ngay cả khi có quá trình load-balancing xảy ra), trong khi multicast traffic có thể được chuyển mạch ra nhiều cổng, tuỳ thuộc vào các máy nhận nằm ở đâu. Một vài giao thức định tuyến multicast hiện có.
Đầu tiên, ta phải cho phép định tuyến multicast bằng lệnh
Switch(config)# ip multicast-routing
Cây Multicast
Các router hoặc các multilayer switch trong một mạng phải xác định một tuyến đường để phân phối các gói tin multicast từ máy nguồn đến từng máy nhận. Khi đó, toàn bộ mạng giống như một cấu trúc cây, trong đó gốc của cây là nguồn của luồng traffic đó. Mỗi router dọc theo đường đi sẽ là một nhánh rẽ của cây. Nếu một router biết tất cả các địa chỉ multicast, router cũng phải biết cần phải nhân bản luồng multicast đó ra những nhánh nào của cây. Một vài router không có các máy nhận trong các phân đoạn mạng của nó thì các router đó sẽ không chuyển traffic. Các router khác sẽ có thể có các máy nhận multicast traffic. Cấu trúc cây này tương tự như cấu trúc cây Spanning Tree vì nó có một root và các lá. Cấu trúc cây này cũng đảm bảo là không bị vòng lặp sao cho traffic multicast không bị chuyển ngược về cây.
Kiểm tra RPF (Reverse Path Forwarding)
Các router thường phải thực hiện một phép kiểm tra trên tất cả các gói multicast mà nó nhận. Reverse Path Forwarding (RPF) là một công cụ để đảm bảo rằng các gói tin không bị đưa ngược trở về cây multicast ở một vị trí bất kỳ nào đó. Khi một gói tin multicast được nhận trên một cổng của router, ví dụ cổng E0 của router, địa chỉ nguồn của gói sẽ được kiểm tra. Sau đó router sẽ so sánh địa chỉ nguồn này với một entry trong bảng định tuyến unicast. Nếu cột out-going interface của bảng định tuyến cũng đúng bằng cổng nhận gói multicast (tức E0 trong ví dụ này), gói multicast sẽ được xử lý và chuyển ra các nhánh của cây. Nếu cổng là không so trùng, điều này có nghĩa là có một ai đó đã đưa gói vào một vị trí không mong đợi, chuyển gói tin ngược về root. Gói tin lúc này sẽ bị loại bỏ. Để thực hiện phép kiểm tra RPF này, router chạy giao thức PIM phải tìm kiếm địa chỉ nguồn trong bảng định tuyến unicast.
Router không thể chỉ nhận gói multicast và sau đó chuyển bản sao ra tất cả các cổng mà không gây vòng lặp. Để ngăn ngừa loop, các router không chuyển các gói multicast ra cùng một cổng mà nó nhận. Các multicast router dùng một phép kiểm tra gọi là reverse-path-forwarding (RPF) check để ngăn ngừa loop.
Phép kiểm tra này sẽ thêm vào một số bước trong hoạt động của một router.
Xem địa chỉ nguồn IP của gói multicast. Nếu có một tuyến đường đúng bằng vớI địa chỉ nguồn trên, hãy kiểm tra cổng ra trên bảng định tuyến xem có đúng là cổng mà router nhận được gói tin. Nếu đúng, gói tin đã vượt qua phép kiểm tra RPF. Nếu cổng nhận gói tin khác với cổng đi ra trong bảng định tuyến, gói tin sẽ không được nhân bản và không được truyền.
Trên hình mô tả một ví dụ trong đó R3 dùng phép kiểm tra RPF để kiểm tra hai bản sao của cùng một gói multicast. Máy S1 gửi một gói multicast, R1 phát tán gói này ra R2 và R3. R2 nhận được phiên bản này và cũng tiếp tục phát tán. Kết quả R3 nhận được cùng một gói tin từ hai nguồn R2 trên cổng S0/0 và từ R1 trên cổng S0/1. Nếu không có phép kiểm tra RPF, R3 sẽ tiếp tục chuyển gói tin mà nó nhận được từ R1 đến R2 và ngược lại. Quá trình loop bắt đầu. Với cùng thuật toán này, R1 và R2 cũng lặp lại quá trình. Vòng lặp xảy ra làm lãng phí băng thông và tài nguyên router. Một router sẽ không tiếp tục chuyển gói tin multicast cho đến khi nào gói tin đã vượt qua phép kiểm tra RPF. Trong hình dướI đây, R3 sẽ quyết định nó có chấp nhận gói tin multicast đến từ R1 hay R2 hay không. Các bước kiểm tra RPF như sau:
1. R3 kiểm tra địa chỉ nguồn của từng gói tin muliticast đi vào, địa chỉ này là 10.1.1.10. Địa chỉ nguồn này sẽ được dùng trong quá trình kiểm tra bước 2.
2. R3 xác định cổng của router dùng để đi về địa chỉ 10.1.1.10. Trong trường hợp này, đường đi của R3 về mạng 10.1.1.0/24 là tìm thấy trong bảng định tuyến unicast. Cổng của router để đi ra mạng này là cổng S0/1. Vì vậy cổng S0/1 là cổng RPF cho địa chỉ 10.1.1.10
3. R3 so sánh cổng đã xác định ở bước 2 với cổng mà gói tin multicast nhận được. Nếu cổng này là trùng nhau, router sẽ chấp nhận gói tin và truyền đi, nếu không trùng, router sẽ loại bỏ gói tin. Trong trường hợp này, R3 sẽ phát tán gói tin nhận trên cổng S0/1 từ R1 nhưng sẽ bỏ qua những gói tin nhận được trên S0/0 từ R2.
Phép kiểm tra RPF triển khai một chiến lược trong đó router chỉ chấp nhận những gói tin đến đúng trên đường đi ngắn nhất và loại bỏ những gói tin nào đến từ đường đi dài hơn. Các giao thức định tuyến multicast không thể dùng địa chỉ đích để giúp router truyền gói tin bởi vì địa chỉ này tượng trưng cho nhóm. Vì vậy, các giao thức định tuyến multicast dùng phép kiểm tra RPF để xác định rằng gói tin multicast có đến router dùng đường đi ngắn nhất từ nguồn đến router. Nếu là đúng, giao thức sẽ chấp nhận gói tin và truyền đi. Các giao thức khác nhau sẽ xác định của cổng RPF khác nhau theo những cách như sau:
- Distance Vector Multicast Routing Protocol (DVMRP) duy trì một bảng định tuyến multicast và dùng nó để kiểm tra RPF check.
- Protocol Independent Multicast (PIM) và Core-Based Tree (CBT) thường dùng bảng định tuyến uicast để kiểm tra RPF.
- PIM và CBT cũng có thể dùng bảng định tuyến của DVMRP, hoặc bảng định tuyến Multiprotocol Border Gateway Protocol (MBGP) hoặc các route cấu hình tĩnh cho kiểm tra RPF.
- Multicast OSPF không dùng phép kiểm tra RPF bởI vì nó tính toán cả chiều đến và chiều đi ngắn nhất dựa trên thuật toán Dijkstra.
Tầm vực Multicast
Tầm vực multicast giới hạn việc truyền lưu lượng multicast đến một nhóm của router nhằm mục đích quản trị, bảo mật hay các chính sách. Nói cách khác, tầm vực multicast là việc định nghĩa giới hạn các lưu lượng multicast có thể đi xa đến đâu trong hệ thống mạng. Các mục sau sẽ thảo luận hai phương pháp giới hạn tầm vực multicast:
- Giới hạn dựa trên thông số TTL (TTL scoping)
- Giới hạn quản trị (administrative scoping).
Giới hạn dựa trên thông số TTL
Khi dùng phương thức này, router so sánh giá trị TTL trên một gói tin multicast với một giá trị TTL được chỉ định trước trên từng cổng của router. Một router truyền các gói tin multicast chỉ trên những cổng mà giá trị TTL được cấu hình thì nhỏ hơn hoặc bằng giá trị của các gói multicast. Cơ chế dùng TTL này sẽ khởi động giá trị TTL về giá trị 0 hoặc vài số cao hơn khi router loại bỏ các gói multicast. Hình dưới đây mô tả một ví dụ của router multicast với các giá trị TTL khác nhau được cấu hình trên các cổng:
Trong hình trên, một gói tin multicast đến trên cổng S1 với giá trị TTL bằng 18. Router sẽ trừ giá trị TTL của gói tin đi 1, còn lại 17. Giả sử rằng router được cấu hình với chế độ dense và cả bốn cổng của router đều kiểm tra RPF thành công. Nói cách khác, router sẽ muốn truyền một bản sao của gói tin trên từng cổng. Router sẽ xem xét giá trị TTL còn lại của gói tin, hiện là 17, với giá trị TTL được cấu hình trên từng cổng ra. Nếu giá trị TTL của gói tin là cao hơn giá trị TTL được cấu hình trên cổng, router sẽ nhân bản gói tin ra cổng đó. Nếu khác đi, router sẽ không truyền. Trên Cisco router, giá trị TTL mặc định của tất cả các cổng là 0.
Trên cổng S0 và S2, người quản trị đã cấu hình giá trị TTL bằng 8 và 32. Một phiên bản của gói tin sẽ được truyền trên cổng S0 và E0 bởi vì giá trị giới hạn TTL là nhỏ hơn 17. Tuy nhiên, gói tin sẽ không được truyền trên cổng S2 vì giá trị TTL của cổng là 32, lớn hơn 17. Cơ chế dùng TTL này có vài điểm yếu. Đầu tiên là nó triển khai khó trên một hệ thống mạng lớn và phức tạp bởi vì việc phỏng đoán giá trị TTL chính xác trên nhiều router và nhiều cổng là một công việc tốn sức.
Một vấn đề khác với cơ chế giới hạn tầm vực dùng TTL là các giá trị TTL được cấu hình trên các cổng sẽ áp dụng tới tất cả các gói multicast. Nếu bạn muốn hỗ trợ cho nhiều phiên multicast khác nhau, bạn phải thao tác trên ứng dụng để thay đổi giá trị TTL khi gói tin rời khỏi nguồn.
Giới hạn dùng tầm vực quản trị
Trong các chương trước, tầm vực quản trị của các địa chỉ multicast là trong tầm từ 239.0.0.0 đến 239.255.255.255. Dãy địa chỉ này có thể được dùng để giớI hạn việc truyền dữ liệu multicast ra ngoài một domain. Cơ chế này yêu cầu phảI cấu hình thủ công. Bạn có thể cấu hình và áp dụng bộ lọc trên một cổng của router sao cho các dữ liệu multicast và địa chỉ nhóm trong tầm địa chỉ private sẽ không được phép đi vào hay đi ra.
Giao thức PIM
Protocol Independent Multicast (PIM) là một giao thức định tuyến có thể được dùng để chuyển các multicast traffic. PIM hoạt động độc lập với các giao thức định tuyến unicast IP vì vậy PIM sử dụng bảng định tuyến IP. Cần chú ý là bảng unicast routing cũng không phụ thuộc vào các giao thức định tuyến vì nhiều giao thức định tuyến có thể đóng góp vào cùng một bảng định tuyến. PIM có thể hoạt động ở ba chế độ:
+ PIM Dense Mode
+ PIM Sparse Mode
+ PIM Sparse Dense Mode (do Cisco đưa ra)
PIM Dense Mode
Các giao thức định tuyến hoạt động theo chế độ dày đặc (dense mode) giả sử rằng các ứng dụng multicast là nhiều đến mức ở mọi subnet đều có ít nhất một máy nhận lưu lượng. Vì vậy, các giao thức hoạt động theo chế độ dày đặc này làm cho router đẩy lưu lượng multicast ra tất cả những cổng đã được cấu hình, với một vài ngoại lệ để ngăn ngừa vòng lặp. Ví dụ, một gói tin multicast sẽ không bao giờ được chuyển ra một cổng mà nó được nhận. Hình dưới đây mô tả một giao thức định tuyến hoạt động ở chế độ dense nhận một gói multicast trên một cổng và đẩy những phiên bản sao chép ra tất cả những cổng khác.
Hình trên mô tả hoạt động của chế độ dense trên R1. R1 sẽ phát tán tất cả các bản sao của gói tin ra khỏi tất cả các cổng, ngoại trừ cổng mà gói tin được nhận. Mặc dù trên hình chỉ hiển thị một router, các router khác có thể nhận lưu lượng multicast này và sẽ lặp lại cùng một tiến trình. Tất cả các mạng sẽ nhận một bản sao của gói tin multicast ban đầu. Chế độ dense giả sử rằng tất cả các subnet đều cần nhận một bản sao của gói tin, tuy nhiên chế độ dense cho phép router không nhận lưu lượng của một nhóm multicast cụ thể. Chế độ dense thường không muốn nhận gói multicast của một nhóm nếu cả hai điều kiện sau là đúng:
1. Router này không có một router láng giềng bên dưới cần nhận gói cho nhóm đó
2. Router không biết bất kỳ host nào trên cổng kết nối trực tiếp đã tham gia vào nhóm đó.
Khi cả hai điều kiện này là đúng, router cần phải thông báo cho router láng giềng bên trên là không cần gửi lưu lượng cho nhóm đó. Thông điệp này được gọi là thông điệp loại bỏ nhánh Prune. Các PIM router có thể được cấu hình theo kiểu Dense Mode (còn gọi là PIM-DM) nếu các host tham gia vào multicast group nằm ở khắp nơi trên tất cả các subnet. Một sơ đồ mạng được xem là dense nếu có rất nhiều nhóm multicast so với số host tương đối. Dense mode thường được dùng trong môi trường LAN và campus. Sparse mode thường được dùng trong môi trường WAN. Địa chỉ multicast nguồn trở thành gốc của cây và cây multicast được xây dựng từ nguốn đến đích. Cơ chế này còn được gọi bằng ký hiệu (S,G) trong đó đường đi từ nguồn đến các thành viên trong nhóm là duy nhất và được xác định.
Comment