Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Định tuyến cho traffic multicast, kiểm tra RPF và hoạt động của giao thức PIM-DM

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Định tuyến cho traffic multicast, kiểm tra RPF và hoạt động của giao thức PIM-DM

    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.
    Email : vnpro@vnpro.org
    ---------------------------------------------------------------------------------------------------------------
    Trung Tâm Tin Học VnPro
    149/1D Ung Văn Khiêm P25 Q.Bình thạnh TPHCM
    Tel : (08) 35124257 (5 lines)
    Fax: (08) 35124314

    Home page: http://www.vnpro.vn
    Support Forum: http://www.vnpro.org
    - Chuyên đào tạo quản trị mạng và hạ tầng Internet
    - Phát hành sách chuyên môn
    - Tư vấn và tuyển dụng nhân sự IT
    - Tư vấn thiết kế và hỗ trợ kỹ thuật hệ thống mạng

    Network channel: http://www.dancisco.com
    Blog: http://www.vnpro.org/blog

  • #2
    Hoạt động của giao thức PIM-DM

    Giao thức PIM định nghĩa một loạt các giao thức và các luật để qua đó, router có thể giúp định tuyến hiệu quả gói tin multicast. PIM trước đây nguyên là giao thức của cisco mặc dù nó đã được xem như là một giao thức thử nghiệm được đặc tả trong các RFC2326,3446 và 3973. Đặc tả của PIM chỉ ra tất cả các đặc điểm đã mô tả trước đây như phép kiểm tra RPF, cơ chế PIM dense phát tán các traffic cho đến khi nào router gửi thông điệp Prune và PIM-SM sẽ không gửi lưu lượng cho đến khi nào router nhận được thông điệp Join.

    PIM có cái tên như vậy là do khả năng của nó dùng bảng định tuyến unicast routing cho quá trình kiểm tra RPF, độc lập với giao thức định tuyến unicast được dùng để xây dựng nên bảng định tuyến unicast routing. Thật ra tên PIM cũng gợI ý nhiều về hai giao thức chạy chế độ dense khác là DVMRP và MOSPF. Hai giao thức kia không dùng bảng định tuyến unicast cho việc kiểm tra RPF. Thay vào đó, router xây dựng bảng một cách độc lập. PIM đơn giản dựa trên bảng định tuyến unicast độc lập với bất kỳ một giao thức định tuyến unicast.

    Hình thành các quan hệ láng giếng PIM dùng cơ chế hello
    Các router PIM hình thành các quan hệ láng giềng vớI các router chạy PIM khác.

    Phiên bản hiện hành của PIM, PIMv2, gửI thông điệp hello mỗI 30 giây trên tất cả các cổng mà PIM được cấu hình. Bằng cách nhận hello trên cùng một cổng, router sẽ tìm ra các láng giềng, thiết lập và duy trì quan hệ. Thông điệp hello của PIMv2 dùng gói tin IP, số giao thức là 103 và dành địa chỉ 224.0.0.13 được gọi là địa chỉ tất cả các router PIM. Cơ chế hello chứa một giá trị Holdtime, thông thường ba lần thời gian gửi hello của PIM. Nếu bên router nhận không nhận được thông điệp Hello từ máy gửi trong khoảng thời gian holdtime, nó sẽ xem rằng router láng giềng đã chết. Giao thức PIMv1 không dùng hello. Thay vào đó PIMv1 dùng thông điệp truy vấn PIM Query. PIMv1 được đóng gói trong gói tin IP, số giao thức là 2 và dùng địa chỉ multicast là 224.0.0.2. Một router PIM chỉ gửi thông điệp PIM ra những cổng mà nó nhận biết có router PIM láng giềng.

    Cây phân phối theo nguồn

    Giao thức định tuyến dense thì phù hợp cho các sơ đồ mạng trong đó có nhiều nhóm multicast so với một số tương đối các host trong một mạng. Khi một router PIM-DM nhận được một gói tin multicast, router sẽ kiểm tra RPF. Nếu phép kiểm tra RPF là thành công, router sẽ truyền bản sao của gói tin đến tất cả các router PIM láng giềng ngoại trừ cổng mà nó nhận gói tin. MỗI PIM-DM lập lại tiến trình và phát tán lưu lượng của nhóm ra toàn bộ mạng. Kết quả là, các gói sẽ được phát tán ra tất cả các router nhánh. Hoạt động vừa mô tả là bản chất của một tiến trình mà PIM gọi là cây phân phối theo nguồn, thỉnh thoảng còn được gọi là cây có đường đi ngắn nhất. Cây sẽ định nghĩa một đường đi từ host nguồn (tạo ra các gói multicast) và tất cả các subnet cần phải nhận một phiên bản của gói multicast được gửi bởi máy đó. Cây này sẽ dùng máy nguồn như là gốc của cây, router như là các nút của cây, các phân đoạn mạng nối vào router như là các nhánh và các lá của cây.
    Chế độ cấu hình trên ba router thì đơn giản. Chỉ cần thêm vào lệnh ở chế độ toàn cục: ip multicast-routing trên từng router và lệnh ở interface ip pim dense-mode trên tất cả các cổng của router. PIM-DM có thể có một cây phân phối theo nguồn khác nhau cho từng tổ hợp của nguồn và nhóm multicast, bởI vì cây đường đi ngắn nhất SPT sẽ khác nhau dựa trên vị trí của nguồn và của các host lắng nghe đến địa chỉ nhóm. Ký hiệu (S,G) tượng trưnng cho một cây SPT hoặc tượng trưng cho một phần của một cây SPT trong đó S là địa chỉ nguồn của gói tin IP và G là địa chỉ nhóm. Ví dụ ký hiệu (S,G) trong hình trên sẽ được viết là (10.1.1.10, 226.1.1.1). Đoạn cấu hình dướI đây mô tả một phần của cấu trúc cây (S,G) trên R3 cho toàn bộ cấu trúc cây (10.1.1.0,226.1.1.1). Máy S1 đang gửI gói tin về 226.1.1.1 và máy H2 đang gửi thông điệp tham gia IGMP Join cho nhóm 226.1.1.1.

    #show ip mroute
    (10.1.1.10/32, 226.1.1.1), 00:00:12/00:02:48, flags: CT
    Incoming interface: Serial0/1, RPF nbr 10.1.4.1
    Outgoing interface list:
    FastEthernet0/0, Forward/Dense, 00:00:12/00:00:00

    Diễn dịch của các thông tin trên như sau:

    - Dòng đầu tiên hiển thị rằng hàng (S,G) cho cây (10.1.1.10/32,226.1.1.1) đã được up trong 12 giây và nếu R3 không có truyền bất kỳ của nhóm (S,G) trong vòng 2 phút và 48 giây, nhóm (S,G) này sẽ hết hạn. Mỗi lần R3 truyền một gói tin theo hàng này, đồng hồ sẽ thiết lập lại giá trị 3 phút.

    - Cờ C chỉ ra rằng R3 có một kết nối trực tiếp cho nhóm 226.1.1.1. Cờ T chỉ ra rằng lưu lượng (S,G) được truyền trên cây đường đi ngắn nhất.

    - Cổng vào cho nhóm 226.1.1.1 là s0/1 và router láng giềng RPF (là địa chỉ kế tiếp đi theo chiều ngược về nguồn 10.1.1.10) là 10.1.4.1.

    - Lưu lượng nhóm được truyền ra cổng F0/0. Cổng này đã trong trạng thái forwarding trong 12 giây. Thông số thời gian thứ hai là 00:00:00 bởi vì nó không thể hết hạn với PIM-DM vì cổng này sẽ tiếp tục truyền lưu lượng cho đến khi cổng này bị loại bỏ (prune).

    Theo đặc tả của PIM-DM, bảng định tuyến multicast chỉ cần các hàng (S,G). Tuy nhiên, đốI vớI từng hàng (S,G), một router sẽ tạo ra một (*,G) như là một hàng cha để tăng tính hiệu quả thiết kế. Hàng (*,G) không được dùng để chuyển lưu lượng multicast cho một nhóm dùng PM-DM. Vì vậy để đơn giản và rõ ràng, hàng (*,G) không được hiển thị trong ví dụ dùng PIM-DM. Nếu bạn xây dựng như cùng một hình vẽ trên và cấu hình PIM-DM, hàng (*,G) cũng sẽ được liệt kê trong kết quả của lệnh show ip mroute.

    Thông điệp Prune

    PIM-DM tạo ra một cây đường đi ngắn nhất khi một nguồn gửi một gói tin multicast đầu tiên đến một địa chỉ nhóm multicast mới. Cấu trúc cây đường đi ngắn nhất bao gồm tất cả các cổng, ngoại trừ các cổng RPF, bởi vì PIM-DM giả sử rằng tất cả các máy cần phải nhận một bản sao của từng gói tin multicast. Tuy nhiên một vài phân đoạn mạng có thể không cần các bản sao của multicast, vì vậy PIM-DM định nghĩa ra một tiến trình trong đó router có thể xóa các cổng ra khỏi một cây đường đi ngắn nhất bằng cách dùng thông điệp Prune. Ví dụ, giả sử máy H1 và H2 cần một bản sao của gói multicast gửi về địa chỉ 226.1.1.1. Tuy nhiên, như đã hiển thị, khi R2 nhận lưu lượng multicast từ R1, sau đó R2 sẽ truyền các lưu lượng multicast đến R3. R3 sẽ bỏ các gói tin của lưu lượng từ 10.1.1.1 đến 226.1.1.1, bởi vì các gói tin này không vượt qua phép kiểm tra RPF. Trong trường hợp này, R3 có thể làm cho R2 xóa cổng S0/1 ra khỏi danh sách cổng ra cho nhóm (10.1.1.10,226.1.1.1) bằng cách gửi ra một thông điệp Prune đến R2. Kết quả là, R2 sẽ không truyền lưu lượng multicast đến R3, vì vậy giảm lãng phí băng thông.
    Thuật ngữ danh sách cổng ra (outgoing interface list) muốn ám chỉ danh sách các cổng trong trạng thái forwarding của một hàng trong bảng định tuyến multicast.

    Dưới đây là một định nghĩa của thông điệp Prune:
    Thông điệp Prune được gửi bởi một router đến một router thứ hai làm cho router thứ hai xóa kết nối mà trên đó nó nhận được thông điệp Prune từ một cây (S,G).

    Hình dưới đây mô tả sơ đồ mạng với R3 gửi thông điệp Prune đến R2.



    Như là kết quả của thông điệp Prune từ R3 đến R2, R2 sẽ chặt bỏ cổng s0/1 ra khỏi cây SPT của nhóm (10.1.1.10, 226.1.1.1). Dưới đây là bảng định tuyến cho R2, trong đó hiển thị trạng thái bị loại bỏ.

    #show ip mroute
    (10.1.1.10/32, 226.1.1.1), 00:00:14/00:02:46, flags: CT
    Incoming interface: Serial0/0, RPF nbr 10.1.2.1
    Outgoing interface list:
    FastEthernet0/0, Forward/Dense, 00:00:14/00:00:00
    Serial0/1, Prune/Dense, 00:00:08/00:02:52

    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 thông điệp 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 thông điệp 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 thông điệp Prune là hết, router thay đổi ngược về trạng thái forwarding 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 thông điệp 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.

    PIMv2 có một giải pháp tốt hơn để duy trì tình trạng bị loại bỏ pruned của một cổng dùng thông điệp State Refresh. Lưu ý rằng một multicast router có thể có nhiều hơn một cổng trong danh sách cổng ra, nhưng router chỉ có thể có một cổng trên danh sách cổng vào. Cổng duy nhất mà router sẽ nhận và xử lý multicast từ một nguồn đặc biệt là cổng RPF. Router vẫn thực hiện một phép kiểm tra RPF với thông tin trên cổng vào và các cổng RPF (thông tin trong kết quả câu lệnh show ip mroute có chỉ ra cổng RPF và các router láng giềng).

    PIM-DM: Phản ứng với một kết nối bị sự cố


    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.



    Trên hình, khi kết nối giữa R1 và R2 bị đứt. Sau khi giao thức định tuyến unicast hội tụ, R3 cần phải cập nhật các router RPF láng giềng từ 10.1.4.1 (R1) sang thành 10.1.3.2 (R2). Trong trường hợp này, H1 gửi ra một thông điệp Leave. Dưới đây là kết quả bảng multicast routing trên R3. Lưu ý rằng cổng RPF và các router láng giềng đã thay đổi, chỉ sang R2.

    (10.1.1.10/32, 226.1.1.1), 00:02:16/00:01:36, flags: CT
    Incoming interface: Serial0/0, RPF nbr 10.1.3.2
    Outgoing interface list:
    FastEthernet0/0, Forward/Dense, 00:02:16/00:00:00

    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 đã loại bỏ cổng S0/1 của nó ra khỏi cây SPT. Vì vậy R2 cần phải thay đổi cổng S0/1 của nó trở lại trạng thái forwarding cho cây SPT (10.1.1.10, 226.1.1.1). Ví dụ kế tiếp hiển thị bảng định tuyến multicast cho (10.1.1.10, 226.1.1.1) trên R2.

    (10.1.1.10/32, 226.1.1.1), 00:03:14/00:02:38, flags: T
    Incoming interface: Serial0/0, RPF nbr 10.1.2.1
    Outgoing interface list:
    Serial0/1, Forward/Dense, 00:02:28/00:00:00

    R2 thay đổi cổng S0/1 của nó sang trạng thái forwarding bởi vì thông điệp PIM graft được gửi bởi R3. Trong ví dụ trên, 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 thông điệp 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 thông điệp Prune về R2.

    Các luật cho quá trình loại bỏ

    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 thông điệp 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. 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. Một router downstream là một router mà R1 chuyển một vài gói multicast cho một cây SPT. Ví dụ, R1 là upstream của R1 cho những gói tin mà R1 đang gửi đến 226.1.1.1. R3 là downstream router của R2 cũng cho những gói tin này bởi vì R2 gửi những gói tin này đến R3. PIM-DM có thể chọn lựa để gửi thông điệp Prune vì nhiều lý do. Những lý do chính là:

    - 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 cả hai sự kiện sau là đúng. Một là không có host cục bộ nào trong một nhóm đang lắng nghe đến multicast. Hai là không có router downstream nào đang lắng nghe đến nhóm.

    Phần này giải thích nguyên nhân thứ hai của việc gửi thông điệp prune. Máy duy nhất cần gửi gói tin đế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 dưới đây mô tả máy H2 gửi thông điệp rời khỏi nhóm Leave. Sau đó PIM-DM dùng thông tin này để cập nhật động SPT.



    Hình trên mô tả tiến trình hoạt động gồm ba bước:

    1. Máy H2 rời khỏi nhóm multicast bằng cách gửi ra thông điệp rời khỏi nhóm.

    2. R3 dùng thông điệp 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 thông điệp 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 thông điệp 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 thông điệp 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).

    Bảng định tuyến multicast cho nhóm 226.1.1.1 trên R3
    (10.1.1.10/32, 226.1.1.1), 00:03:16/00:01:36, flags: PT
    Incoming interface: Serial0/0, RPF nbr 10.1.3.2
    Outgoing interface list: Null

    Sau khi tất cả các bước đã hoàn tất, R1 cũng không cần gửi gói tin về 226.1.1.1 ra bất kỳ cổng nào. Sau khi nhận thông điệp Prune từ R2, R1 cũng cập nhật danh sách cổng ra, trong đó hiển thị rằng chỉ có một cổng ra và cổng đó trong danh sách loại bỏ.

    (10.1.1.10/32, 226.1.1.1), 00:08:35/00:02:42, flags: CT
    Incoming interface: FastEthernet0/0, RPF nbr 0.0.0.0
    Outgoing interface list:
    Serial0/0, Prune/Dense, 00:00:12/00:02:48

    Trong đoạn kết quả trên, 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 thông điệp Prune và thông điệp Join, thay vào đó PIM-DM và PIM-SM dùng một thông điệp đơn duy nhấn gọI là thông điệp Join/Prune. Một thông điệp Prune là một thông điệp Join/Prune có địa chỉ nhóm được chỉ ra trong trường Prune. Một thông điệp Join là một thông điệp Join/Prune có địa chỉ nhóm liệt kê trong trường Join.
    Email : vnpro@vnpro.org
    ---------------------------------------------------------------------------------------------------------------
    Trung Tâm Tin Học VnPro
    149/1D Ung Văn Khiêm P25 Q.Bình thạnh TPHCM
    Tel : (08) 35124257 (5 lines)
    Fax: (08) 35124314

    Home page: http://www.vnpro.vn
    Support Forum: http://www.vnpro.org
    - Chuyên đào tạo quản trị mạng và hạ tầng Internet
    - Phát hành sách chuyên môn
    - Tư vấn và tuyển dụng nhân sự IT
    - Tư vấn thiết kế và hỗ trợ kỹ thuật hệ thống mạng

    Network channel: http://www.dancisco.com
    Blog: http://www.vnpro.org/blog

    Comment


    • #3
      Các hình vẽ bị mất hết rồi, admin có thể up lại không?

      Many thanks,

      Comment


      • #4
        Admin up lại giúp cái hình đi .Bài viết hay quá mà lại thiếu hình

        Comment


        • #5
          Bài viết của admin hay quá nhưng tiếc là ko xem dc hình.

          Comment


          • #6
            Admin up lại giúp cái hình đi .Bài viết hay quá mà lại thiếu hình


            Comment

            Working...
            X