Các giải pháp chống LOOP trong distance vector Tác giả: Đặng Quang Minh CƠ CHẾ HOẠT ĐỘNG CỦA CÁC GIẢI PHÁP NHẰM TRÁNH "LOOP" TRONG GIẢI THUẬT DISTANCE VECTOR I. Routing Loop là gì? Error! Trước khi network 1 bị down thì thì tất cả router đều xem đường route tới network là tốt. Router C nhận định rằng muốn tới network 1 thì fải qua router B với metric là 3 (ví dụ ta chạy RIP). Khi network 1 bị down xuống thì router E mới gửi 1 bản update tới A là: N1 down rồi nhưng router B, C, D không biết. Nhưng B và D có thể nhận biết được N1 down 1 cách nhanh chóng vì nó connect trực tiếp tới A nên nhận update nhanh hơn. Tuy nhiên do C không nhận được update là N1 down nến vẫn gửi 1 bản update tới B và D là đường tới N1 vẫn tồn tại. Và như thế B và D update lại bản routing table của mình là N1 vẫn tốt. Muốn đến N1 hãy đi qua C. Như thế là sai và quá trình này cứ lặp đi lặp lại (vì A sẽ gửi lại 1 update nói với B và D r ằng la N1 vẫn good) ===> routing loop Nguyên nhân: B và D có thể nhận được update từ A còn C thì không , bởi vì 1 "HÔI TỤ CHẬM" ( SLOW CONVERGENCE) Vậy convergence là gì : sau khi topology change thì tất cả router cần 1 time để tính toán lại các đường route của mình, và quá trình và thời gian đó gọi là TIME TO CONVERGENCE II. CÁC GIẢI PHÁP ĐỂ TRÁNH LOOP 1. SPLIT HORIZON: Router B và D nhận update về N1(down) sẽ không gửi lại update về N1 (up, sau khi nhận được từ C) tới cho router A. Split horizon được sử dụng để đảm bảo rằng thông tin về một route do m ột router phát ra không quay lại chính nó. Ví dụ, khi network 1 chưa down, router E gửi thông tin update đến router A. Router A sẽ không gửi lại thông tin update đến N1 quay lại E vì nếu làm như thế, đương nhiên E sẽ không dùng thông tin đó ==> lãng phí. Còn trong trường hợp route bị poison ==> Do có Split horizon, thông tin về route đến N1 không bị lặp đi lặp lại trên link giữa A và E (count-to-infinite) Split horizon with Poison reverse : Bình thường, A không gửi lại cho E thông tin về route đến N1. Nhưng khi A nhận đư ợc bản tin update nói rằng route đến N1 là unreachable > A gửi lại cho E thông tin về route đến N1 với metric là infinite. 2. HOLD DOWN TIMER : Khi router nhận được thông tin về một route là unreachable, router s ẽ đánh dấu route đó và đặt nó vào trạng thái hold-down (Router đ ặt bộ định thời = thời gian hold-down). Trong thời gian hold-down, router vẫn tiếp tục d ùng route đó để forward gói tin, nhưng sẽ bỏ qua tất cả các thông tin về route với thông số metric bằng hoăc xấu hơn metric router đang có về route đó . Hold-down timer bị reset khi thời gian hold-down đã h ết, hoặc router nhận được thông tin về route với metric tốt hơn metric nó đang giữ. Ví dụ: Khi A nhận được thông tin route đến N1 bị down, hold-down timer cho route đó được thiết lập. Tương tự với B, D. Do đó khi D nhận được update từ C, vì metric mà C gửi lớn hơn (xấu hơn) metric D đang có về route N1 nên D bỏ qua ==> Không còn loop 3. POSION REVERSE UPDATE : Là bản update đặc biệt được gửi từ router connect với 1 network down tới các router neighbor của mình ( khong bao gồm router có network bị down ) rằng đường route tới network đó là infinity. Khi một router phát hiện ra một route R bị down (router không nhận được bản tin update từ router neighbor mà từ đó nó học được route R), router sẽ đặt giá trị metric của route R bằng giá trị không xác định (infinite) và gửi đi trong bản tin cập nhật định tuyến để thông báo với các router trên mạng rằng route R unreachable. Trong hình vẽ, router E không nhận được thông tin về route đến N1, nó đặt metric của route đến N1 là infinite rồi gửi đi trong bản tin định tuyến. Đồng thờ, E hủy bỏ route đến N1 trong bảng định tuyến của nó. 4. TRIGGER UPDATE: Trigger updates là bản update được gửi ngay khi có route bị fail, không cần chờ đến thời gian định kỳ để gửi update. Các kiểu STP - Trong phần 3.1 ta đã tìm hiểu hoạt động của STP làm thế nào để ngăn chăn và khôi phục từ sự thay đổi topolofy mạng một cách kịp thời. Đầu tiên STP được phát triển để hoạt động trong môi trường bridge, về cơ bản hỗ trợ một LAN (hoặc một VLAN). Việc thực thi STP trong môi trường switch đòi hỏi thêm sự thay đổi và cân nhắc để hỗ trợ cho nhiều VLAN. Vì vậy, IEEE và Cisco đã tiếp cận STP khác nhau. Trong phần này ta sẽ xem lại ba kiểu STP truyền thống bắt gặp trong mạng switch và nó liên quan với nhau như thế nào. - Chú ý: IEEE bổ sung vào chuẩn STP để cải tiến tính leo thang và hội tụ. 1. Common Spanning Tree (CSP) - Chuẩn IEEE 802.1Q đã nói rõ về liên kết trunk giữa các switch cho VLAN, và nó cũng nói rõ trường hợp cho tất cả VLAN. Trường hợp này được gọi là Common Spanning Tree – CSP. Tất cả các CST BPDU được truyền trên VLAN như là frame không gán thẻ. Có một STP cho nhiều VLAN làm đơn giản hóa cấu hình switch và giảm bớt tải cho CPU của switch trong khi tính toán STP. Tuy nhiên chỉ có một STP thì cũng có nhiều giới hạn. Các liên kết dự phòng giữa các switch sẽ bị khóa và không có khả năng cân bằng tải, làm cho việc chuyển tiếp trên một liên kết không hỗ trợ cho tất cả VLAN, trong khi các liên kết khác thì bị khóa. 2. Per-VLAN Spanning Tree (PVSP) - Cisco có một phiên bản riêng của STP cung cấp tính mềm dẻo hơn CST. Per- VLAN Spanning Tree – PVST hoạt động tách rời đối với mỗi VLAN riêng. Điều này cho phép STP trên mỗi VLAN được cấu hình độc lập, cung cấp khả năng hoạt động tốt hơn và điều chỉnh các điều kiện rõ ràng. Nhiều Spanning Tree cũng có khả năng cân bằng tải trên các liên kết dự phòng khi các liên kết này được gán cho cá VLAN khác nhau. 3. Per-VLAN Spanning Tree Plus (PVSP+) - Cisco đưa ra phiên bản thứ 2 của STP là Per-VLAN Spanning Tree Plus (PVSP+) cho phép các thiết bị hoạt động bên trong với cả PVST và CST. PVST+ hỗ trợ hiệu quả ba nhóm hoạt động STP trong cùng mạng Campus: • Catalyst switch chạy PCST. • Catalyst switch chạy PCST+. • Switch chạy CST trên 802.1Q. - Để làm được điều này, PVST+ hoạt động như là bộ chuyển đổi giữa các nhóm CST switch. PVST+ cũng truyền thông trực tiếp với PVST bằng cách sử dụng ISL trunk. Tuy nhiên để truyền thông với CST, PVST+ phải thay đổi các BPDU vì không còn gán thẻ cho frame qua VLAN. Các BPDU từ STP khác (VLAN khác) được truyền qua phần CST của mạng bằng tunnel. PVST+ gửi các BPDU này bằng cách sử dụng địa chỉ multicast duy nhất để các CST switch chuyển tiếp nó đến các lân cận downstream mà cần phiên dịch nó. Như vậy PVST+ và CST có thể làm việc với nhau. - STP - Spanning Tree Protocol Xin cho hỏi các khái niệm chung quanh nó (để nắm chắc). Cách xác định Root Bridge và Root Port, Designated port và Nondesigned port (blocking). Thanks Error! bestirboy # 2 Error! 10-17-2003 phieudu Error! Join Date: May 2003 Member Member Posts: 86 Error! Re: STP - Spanning Tree Protocol Theo mình hiểu thì thế này Spanning tree protocol là giao thức được dùng trong switch để tránh lặp hay nói cách khác là theo dạng cây,cứ 2s mỗi switch sẽ gửi BPDU(Bridge protocol data unit) tới switch khác ,BPDU này bao gồm bridge ID, trong đó Bridge ID gồm 8 byte trong đó 2 byte ưu tiên(prioty) có mặc định là 32768 và 6 byte cho địa chỉ MAC, khi trao đổi các BPDU này giữa các switch nó sẽ bầu ra một root bridge dựa vào Bridge ID thấp nhất, bởi vì mặc định của 2 byte ưu tiên là 32768 nên nó sẽ dựa vào địa chỉ MAC để bầu chọn root bridge, vì địa chỉ MAC là ko thể thay đổi cho nên đôi khi nhà quản trị muốn chọn root bridge theo ý mình, họ sẽ thay đổi 2 byte ưu tiên đó. sau khi chọn root bridge sẽ tiếp tục chọn root port dựa trên giá trị đi tới root bridge là thấp nhất hay nói cách khác là đi tới root bridge là nhanh nhất. Designated port: tất cả các port trên root bridge là designated port, các port trên các switch khác là designated port dựa trên path cost or bridge ID, nếu path cost củ a các port đến root bridge là như nhau thì sẽ dựa trên bridge ID để lựa chọn designate port Blocking:các cổng còn lại Error!