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.

CGMP và Router-Port Group Management Protocol

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

  • CGMP và Router-Port Group Management Protocol

    Tác giả:

    + Đặng Quang Minh

    CGMP


    IGMP giúp cho router xác định làm thế nào để phân phối multicast traffic. Tuy nhiên IGMP hoạt động ở lớp 3, và switch sẽ không hiểu các thông điệp IGMP. Mặc định, switch sẽ phát tán các multicast traffic trong một broadcast domain, làm lãng phí băng thông.



    Các máy H1, H2, H3, H4 và R1 là trong cùng broadcast domain của VLẠN. Ba bước dưới đây sẽ mô tả chuỗi các sự kiện xảy ra khi H3 gửi một thông điệp tham gia nhóm IGMP Join:

    1. H3 gửi một thông điệp tham gia nhóm IGMP Join cho nhóm 226.6.6.6.

    2. R1 sẽ gửi traffic của nhóm về SW1. Địa chỉ MAC đích trên frame là 0x0100.5e06.0606. SW1 không thể tìm thấy địa chỉ này trong bảng CAM của nó bởi vì nó không bao giờ được dùng bởi bất kỳ thiết bị nào như là địa chỉ nguồn. Vì vậy, SW1 bắt đầu đẩy các traffic vào các máy H1, H2 và SW2 bởi vì traffic của nhóm là cho Vlan5. Tương tự SW2 bắt đầu traffic đến máy H3 và H4.

    3. Tất cả các máy H1 và H4 nhận traffic của nhóm, nhưng chỉ có H3 là yêu cầu. H3 bắt đầu nhận traffic. Tuy nhiên, H1, H2 và H4 không yêu cầu traffic của nhóm và nó bị tràn ngập bởi các traffic này.

    Trong hình trên, chỉ có bốn máy là trong broadcast domain của VLẠN. Điều gì sẽ xảy ra nếu mạng này có hàng trăm người dùng? Mục đích của multicast là giúp sử dụng băng thông hiệu quả và phân phối traffic đến đúng host. Có hai phương thức để giúp các L3 switch xác định làm thế nào để phân phối trafic multicast đến host: CGMP và IGMP snooping. Khi một L2 switch không thể thực hiện tác vụ IGMP snooping, một router multicast láng giềng sẽ trợ giúp. Cisco phát triển ra một giao thức là Cisco Group Membership Protocol (CGMP) nhằm mục đích này.

    CGMP là một giao thức lớp 2 được cấu hình trên cả Cisco router và switch và cho phép router giao tiếp với các thông tin lớp 2 nó học được từ IGMP đến switch. Một router multicast biết địa chỉ MAC của các máy multicast và các nhóm đang lắng nghe dựa trên thông tin giao tiếp với các host thông qua IGMP. Mục tiêu của CGMP là cho phép router truyền thông tin này đến các switch sao cho switch có thể thay đổi động các thành phần trong bảng CAM. Chỉ có các router tạo ra các thông điệp CGMP trong khi switch chỉ lắng nghe các thông điệp CGMP. Một router hoặc một multilayer switch được cấu hình cho định tuyến multicast có thể được cấu hình cho CGMP. Khi các host gửi các thông điệp membership report để tham gia và rời khỏi một nhóm, Router CGMP sẽ trung chuyển các thông điệp này đến các switch quan tâm.

    Các thông điệp CGMP dùng các địa chỉ multicast nổi tiếng là 0100.0cdd.dddd. Theo định nghĩa, địa chỉ nhóm multicast này sẽ được phát tán như là một trường hợp đặc biệt sao cho các thông điệp CGMP có thể được truyền trên các non-CGMP switch. Các thông điệp CGMP bao gồm địa chỉ MAC của host cùng với địa chỉ MAC của nhóm multicast nó muốn tham gia hay rời bỏ. Khi một layer 2 switch nhận thông điệp CGMP này, tác vụ đơn giản của nó là thêm vào địa chỉ nhóm multicast và các host của nhóm đó vào bảng CAM. Router sẽ trở thành thiết bị “trợ thính” cho một switch trong việc lắng nghe các thông điệp CGMP. Việc sử dụng địa chỉ MAC đặc biệt này làm cho switch phát tán các thông điệp thông qua các cổng sao cho tất cả các switch trong hệ thống mạng nhận được thông điệp CGMP. Cặp địa chỉ MAC trong thông điệp CGMP là một thông tin quan trọng: Group Destination Address (GDA), Unicast Source Address (USA).

    Năm bước dưới đây mô tả hoạt động tổng quát của CGMP.

    1. Khi một router CGMP kết nối vào một switch, router gửi ra thông điệp join CGMP với giá trị GDA gán bằng không và giá trị USA gán bằng giá trị MAC của chính nó. Switch CGMP bây giờ biết rằng có một router multicast đang gắn vào cổng trên đó switch nhận được thông điệp CGMP. Router lập lại thông điệp mỗi 60 giây. Một router có thể báo cho switch là nó không còn tham gia nhóm CGMP bằng thông điệp CGMP Leave với giá trị GDA gán bằng không và USA gán bằng giá trị MAC của chính nó.

    2. Khi một host tham gia vào một nhóm, nó gửi thông điệp tham gia vào nhóm IGMP Join. Thông thường một multicast router kiểm tra chỉ thông tin lớp
    3 trong thông điệp IGMP và router không cần thiết xử lý thông tin lớp 2. Tuy nhiên khi CGMP được cấu hình trên router, router sẽ kiểm tra địa chỉ nguồn và đích MAC của thông điệp Join. Địa chỉ nguồn là địa chỉ unicast MAC của máy đang gửi thông điệp tham gia join. Router sau đó sẽ tạo ra các thông điệp tham gia CGMP join vao gồm địa chỉ MAC kết hợp với địa chỉ multicast IP (gán trong trường GDA của thông điệp tham gia CGMP join) và địa chỉ unicast MAC của host được gán vào trường USA của thông điệp CGMP. Router sau đó sẽ gửi thông điệp tham gia CGMP dùng địa chỉ multicast MAC address của CGMP là 0x0100.0cdd.dddd như là địa chỉ đích.

    3. Khi một switch nhận được thông điệp tham gia CGMP, switch tìm kiếm trong bảng CAM vị trí của cổng kết hợp với địa chỉ MAC chứa trong trường USA. Switch sẽ tạo ra một hàng mới trong bảng CAM (hoặc dùng một hàng có sẵn nếu nó đã được tạo ra trước đó) cho địa chỉ MAC multicast được liệt kê cho trường GDA của thông điệp CGMP Join, thêm cổng kết hợp với địa chỉ MAC liệt kê trong trường USA và bắt đầu đẩy traffic ra cổng đó.

    4. Khi một host rời khỏi một nhóm, nó gửi thông điệp rời khỏi nhóm IGMP. Router sẽ học địa chỉ unicast MAC của máy và địa chỉ nhóm multicast mà nó vừa rời khỏi. Bởi vì thông điệp Leave được gửi đến địa chỉ ‘tất cả các multicast router’ 0x0100.5e00.0002 và không gửi tới địa chỉ nhóm multicast, router sẽ tính toán địa chỉ multicast MAC (GDA) từ địa chỉ nhóm multicast mà host vừa rời bỏ. Router sau đó sẽ tạo ra thông điệp rời bỏ nhóm CGMP Leave. Thông điệp này chép toàn bộ địa chỉ multicast MAC mà nó vừa tính toán trong trường GDA và địa chỉ unicast MAC trong trường USA của thông điệp CGMP Leave và sau đó gửi nó về địa chỉ CGMP multicast MAC. Khi switch nhận được thông điệp rời bỏ nhóm, nó tìm kiếm vị trí cổng kết hợp với địa chỉ MAC liệt kê trong trường USA. Switch sẽ bỏ cổng này ra khỏi sự kết hợp với địa chỉ multicast MAC trong bảng CAM. Địa chỉ multicast MAC này được liệt kê trong trường GDA của thông điệp CGMP Leave. Switch sẽ ngừng đẩy traffic ra khỏi cổng đó.

    Như vậy CGMP giúp các switch gửi traffic đến những host muốn nhận nó, giúp tránh lãng phí băng thông.



    Hình trên mô tả một ví dụ đầy đủ làm thế nào routers và switch dùng CGMP khi có một host tham gia và rời khỏi nhóm. Hình trên bắt đầu bằng cách mô tả những phản ứng của router khi có một thông điệp báo cáo IGMP report. Router sẽ gửi một thông điệp CGMP join đến các switch trên LAN. Hai bước theo sau mô tả chuỗi các sự kiện khi H3 gửi ra một thông điệp tham gia IGMP Join. SW1 và SW2 tìm kiếm các hàng trong bảng CAM và tìm thấy host với địa chỉ USA là 0x0006.7c11.1103 nằmg trên các cổng f0/20 và f0/3. Sau đó SW1 và SW2 sẽ ánh xạ địa chỉ GDA 0x0100.5e06.0606 đến các cổng f0/20 và f0/3 tương ứng.



    Khi router truyền các traffic multicast với địa chỉ nhóm GDA 0x0100.5e06.0606 đến SW1, SW1 tìm kiếm trong bảng CAM và thấy rằng traffic này phải được đẩy ra cổng F0/20. Vì vậy, chỉ có SW2 nhận được traffic của nhóm. Tương tự, SW2 tìm kiếm bảng CAM và đẩy traffic của nhóm ra cổng F0/3 và chỉ máy H3 nhận traffic.

    CGMP tối ưu việc chuyển traffic. Mặc dù không hiển thị trên hình vẽ, giả sử rằng H1 gửi một thông điệp tham gia nhóm IGMP Join vào nhóm 226.6.6.6. R1 sẽ gửi một thông điệp CGMP Join và SW1 sẽ cập nhật địa chỉ GDA 0x0100.5e06.0606 đến cổng F0/1. Khi một router gửi một thông điệp truy vấn IGMP, switch sẽ trung chuyển các traffic này đến các thành viên đã tham gia bất kỳ nhóm nào, ví dụ như H1 và H3. Khi các máy gửi các thông điệp báo cáo IGMP reports, switch sẽ chuyển các thông điệp này đến các thành viên của nhóm và của router.

    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
    Khi máy H3 rời khỏi nhóm, các sự kiện sau sẽ diễn ra:

    1. H3 gửi ra một thông điệp rời khỏi nhóm IGMP Leave. Ở lớp 2, H3 sử dụng địa chỉ multicast MAC 0x0100.5e00.002 như là địa chỉ đích và địa chỉ MAC BIA 0x0006.7c11.11.03 như là địa chỉ nguồn.

    2. R1 tạo ra thông điệp rời khỏi nhóm CGMP. Khi một router nhận được một thông điệp rời khỏi nhóm IGMP, nó sẽ tạo ra một thông điệp rời khỏi nhóm ở mức 2 CGMP. Địa chỉ đích trên frame là địa chỉ MAC 0x0111.0cdd.dddd.

    3. R1 tính toán địa chỉ 0x0100.5e06.0606 từ địa chỉ lớp 3 226.6.6.6 và trường GDA bằng với giá trị đó. R1 gán trường USA bằng giá trị MAC unicast của H3 0x0006.7c11.11.03. Thông điệp rời khỏi nhóm này sẽ báo cho switch rằng “Có một host với địa chỉ USA 0x0006.7c11.1103 không còn muốn nhận multicast traffic cho địa chỉ GDA 0x0100.5e06.0606. Vì vậy hãy cập nhật bảng CAM tương ứng”. Thông điệp này được nhận bởi cả hai switch. Các switch cập nhật bảng CAM. SW1 và SW2 tìm kiếm bảng CAM và tìm thấy host với địa chỉ USA 0x0006.7c11.1103 được nằm trên cổng f0/20 và f0/3. SW1 và SW2 đã xóa địa chỉ GDA 0x0100.5e06.0606 ra khỏi các cổng F0/20 và f0/3 một cách tương ứng.

    H1 vẫn là một thành viên của nhóm 266.6.6.6, vì vậy R1 vẫn tiếp tục đẩy traffic với GDA 0x0100.5e06.0606 đến SW1. SW1 tìm kiếm bảng CAM và thấy rằng địa chỉ này chỉ nên đẩy ra cổng F0/1. Bây giờ giả sử rằng H1 gửi ra một thông điệp rời khỏi nhóm IGMP Leave 226.6.6.6, R1 sẽ gửi một thông điệp truy vấn cho nhóm 226.6.6.6. Bởi vì không còn host nào là thành viên của nhóm này, R1 không nhận bất kỳ một thông điệp báo cáo IGMP report cho nhóm. R1 sẽ tạo ra và gửi thông điệp CGMP leave trong đó trường GDA gán bằng giá trị MAC của nhóm và trường USA gán bằng 0. Thông điệp này báo cho switch rằng “không còn host nào quan tâm đến multicast traffic cho địa chỉ MAC 0x0100.5e06.0606, vì vậy hãy xóa hết tất cả các hàng trong bảng CAM liên quan đến nhóm này”.

    Ở chế độ mặc định, CGMP là tắt trên tất cả các cổng của multicast router. Để cho phép, dùng lệnh

    Switch(config-if)# ip cgmp

    Chỉ có router multicast phải được cấu hình cho CGMP. Tất cả các IOS-based L2 switch đều có CGMP cho phép ở chế độ mặc định, vì vậy switch sẽ tự động xử lý CGMP từ routers. Mặc dù là cả router và switch đều cấu hình để chạy CGMP, thật sự chỉ có router là tạo ra các gói tin CGMP. Có hai loại gói tin CGMP. Loại thứ nhất, gói tin join được gửi ra bởi router, ra lệnh cho switch thêm vào các member mới. Loại thứ hai, gói tin leave được dùng để báo cho switch xóa bớt thành viên hoặc xóa hẳn một nhóm.



    Thông điệp cuối cùng trong bảng trên, xóa tất cả các nhóm, được dùng bởi router cho mục đích bảo trì. Ví dụ, khi lệnh clear ip cgmp được nhập vào router để xóa tất các các hàng CGMP trên switch, router sẽ gửi ra thông điệp CGMP với giá trị GDA được gán về bằng 0 và USA gán về bằng 0. Khi các switch nhận được thông điệp này, nó sẽ xóa tất cả các nhóm ra khỏi bảng CAM.

    Router-Port Group Management Protocol


    RGMP là một giao thức lớp 2 cho phép router giao tiếp với switch để chỉ ra những traffic nào mà router muốn nhận và không muốn nhận từ switch. Bằng cách giới hạn địa chỉ địa chỉ đích multicast mà một switch chuyển đến một router, một router có thể giảm phí tổn xử lý. Thật ra, RGMP được thiết kế để giúp router giảm phí tổn khi nó được kết nối vào các mạng LAN tốc độ cao. Mặc dù RGMP là một giao thức của Cisco, nó không thể cùng hoạt động với CGMP. Khi RGMP được bật trên một router hay một switch, CGMP sẽ bị tắt. Nếu CGMP là bật, RGMP sẽ bị tắt. Mặc dù là của Cisco, RGMP được mô tả ở RFC3488.

    RGMP làm việc tốt khi kết hợp với IGMP snooping. IGMP snooping thường học tất cả các cổng có router thông qua việc lắng nghe IGMP và các thông điệp khác. Trong một vài trường hợp, một vài router có thể không muốn nhận tất cả các multicast traffic vì vậy RGMP sẽ cung cấp một cách thức để giảm những lưu lượng không mong muốn. Điểm mấu chốt của nhu cầu cho sự tồn tại của một giao thức như RGMP là khi dùng IGMP snooping, người ta nhận ra một khía cạnh quan trọng. IGMP snooping giúp các switch kiểm soát việc phân phối các lưu lượng multicast trên những cổng có host gắn vào nhưng nó không giúp switch kiểm soát việc phân phốI lưu lượng multicast trên những cổng có router gắn vào.



    Xem một sơ đồ mạng đơn giản như trên. SW2 đã nhận biết các router R3 và R4 thông qua giao thức IGMP snooping, vì vậy nó chuyển tất cả các multicast của tất cả các nhóm về R3 và R4. R3 thuật sự chỉ nhận lưu lượng của nhóm A và R4 cần phải nhận traffic chỉ của nhóm B. Tuy nhiên IGMP snooping làm cho switch sẽ chuyển tất cả các traffic multicast về từng router. Để khắc phục vấn đề này, router có thể dùng RGMP để báo cho switch chỉ truyền những gói multicast đặc biệt cho từng nhóm.



    Hình trên cũng mô tả một sơ đồ mạng giống như trước nhưng với RGMP snooping. Trong trường hợp này, các thông điệp RGMP Join được bật lên trên cả router và switch. Có ba bước chính, trong đó bước đầu tiên hiển thị chức năng của RGMP với thông điệp tham gia RGMP Join. Thông điệp Join cho phép router nhận dạng được nhóm mà router muốn nhận lưu lượng.

    1. R3 gửi ra một thông điệp Join cho nhóm A và R4 gửi ra thông điệp Join cho nhóm B. Kết quả là, SW2 biết phải chuyển traffic multicast cho nhóm A chỉ cho R3 và cho nhóm B chỉ đến R4.

    1. Một nguồn gửi ra một gói tin về địa chỉ nhóm A và nhóm B tương ứng.

    2. SW2 chuyển traffic của nhóm A chỉ về R3 và các gói tin của nhóm B chỉ đến R4.

    RGMP bao gồm bốn loại thông điệp khác nhau. Tất cả các thông điệp RGMP được tạo ra bởi router và được gửi tới địa chỉ multicast 224.0.0.25. Danh sách dưới đây mô tả các kiểu thông điệp này:

    1. Khi router bật RGMP, router sẽ gửi ra thông điệp RGMP Hello mỗi 30 giây. Khi switch nhận được các thông điệp RGMP, switch sẽ ngừng việc đẩy các lưu lượng multicast trên những cổng mà nó nhận thông điệp hello.

    2. Khi router muốn nhận lưu lượng multicast cho một nhóm multicast, router sẽ gửi một thông điệp Join G tới switch, trong đó G là địa chỉ nhóm multicast. Khi switch nhận được thông điệp RGMP Join, nó bắt đầu chuyển các yêu cầu tham gia nhóm trên những cổng mà nó nhận thông điệp hello.

    3. Khi router không muốn nhận traffic cho một nhóm RGMP, router sẽ gửi một thông điệp RGMP Leave G tới switch, trong đó G là địa chỉ nhóm. Khi switch nhận được một thông điệp RGMP Leave, nó ngừng chuyển lưu lượng nhóm trên những cổng mà nó nhận được thông điệp Hello.

    4. Khi RGMP là tắt trên router, router sẽ gửi một thông điệp RGMP Bye đến switch. Khi switch nhận thông điệp RGMP Bye, nó bắt đầu truyền tất cả các lưu lượng multicast trên những cổng mà nó nhận thông điệp Hello.
    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
      @admin: anh có thể up lại hình được không? Em cần lắm. Thanks

      Comment

      Working...
      X