CHƯƠNG 3 - GIAO THỨC CÂY MỞ RỘNG-STP (PHẦN 2)
III. TỐI ƯU CÂY MỞ RỘNG
Nếu hoạt động ở chế độ mặc định, IEEE 802.1D vẫn hoạt động tốt nhưng thời gian hội tụ có thể mất đến một phút hoặc hơn cho toàn bộ hệ thống mạng. Ví dụ, khi gốc bị chết, không hoạt động được, một switch phải chờ khoảng thời gian 20 giây trôi qua. Sau đó các cổng sẽ mất khoảng 15 giây trong trạng thái học và lắng nghe. Tổng thời gian mất cho quá trình hội tụ là 50 giây.
1.PortFast, UplinkFast và BackboneFast
Các đặc điểm này do Cisco đưa ra nhằm giải quyết các vấn đề STP cụ thể khác nhau
Đặc điểm |
Vị trí sử dụng |
Thời gian tiết kiệm được |
Chuyển cổng nhanh (Port Fast) |
Được dùng trên những cổng truy cập không kết nối vào hub và switch. |
Đặt các cổng vào trạng thái chuyển tiếp ngay khi các kết nối vật lý đã hoạt động |
Chuyển cổng lên nhanh (Uplink Fast) |
Được dùng trên những thiết bị lớp truy cập. Những thiết bị này có nhiều đường lên về thiết bị lớp phân tán |
Thay thế các RP bằng các cổng dự phòng ngay sau khi RP bị hỏng. Tính năng này đưa các cổng về trạng thái chuyển tiếp và yêu cầu các switch cập nhật bảng CAM tức thời. |
Cổng chính nhanh (Backborn Fast) |
Thường được dùng để phát hiện các kết nối bị đứt mà các kết nối này không trực tiếp phát hiện. |
Switch không cần phải chờ cho thời gian tồn tại tối đa (Max Age) bị hết hạn. |
Bảng 3.3: Bảng tóm tắt chức năng của PortFast, UplinkFast, BackboneFast
1.1. Chuyển cổng nhanh
Tính năng chuyển cổng nhanh (PortFast) sẽ bỏ qua các trạng thái lắng nghe và học trên các cổng. Nếu như có sự thay đổi trong mạng, ngay lập tức cổng của switch sẽ chuyển từ trạng thái khoá sang ngay trạng thái chuyển tiếp. Quá trình hội tụ gần như tức thời trên những cổng có bật tính năng PortFast. PortFast thường được bật trên những cổng dự kiến có những thiết bị của người dùng cuối gắn vào. Để an toàn, bạn nên dùng kết hợp PortFast với các tính năng BPDUGuard.
1.2. Chuyển cổng lên nhanh
Tính năng chuyển cổng lên nhanh (UplinkFast) giúp tối ưu hóa quá trình hội tụ khi một kết nối cổng lên lớp trên (lớp phân tán) bị sự cố trên một thiết bị lớp truy cập của một mạng trường đại học. Để thiết kế SPT được xem là tốt, các switch nằm ở lớp truy cập không nên trở thành switch gốc hoặc trở thành switch trung gian. Hình dưới đây sẽ mô tả các hành động xảy ra khi tính năng UplinkFast được bật trên một switch và khi cổng gốc bị lỗi.
Khi bật tính năng UplinkFast ở chế độ toàn cục (global config mode) trên một switch, switch sẽ thực hiện ba hành động sau
Tăng giá trị độ ưu tiên của gốc lên 49152.
Tăng chi phí của cổng lên giá trị 3000. Theo dõi các cổng RP dự phòng, là các cổng vẫn còn nhận được hello. Khi RP bị lỗi, SW3 có thể dự phòng đường upliên kết như là cổng gốc mới và chuyển sang trạng thái chuyển tiếp ngay tức thời.
Bước cuối cùng trong hoạt động của UplinkFast là làm cho các switch hết hạn các hàng trong bảng CAM nhưng nó không dùng cơ chế của TCN. Thay vào đó, các switch lớp truy cập sẽ tìm tất cả các địa chỉ MAC của các thiết bị cục bộ và gửi ra các khung tin multicast với địa chỉ nguồn là địa chỉ MAC của thiết bị. Điều này làm cho tất cả các switch khác cập nhật bảng CAM. Các switch ở lớp truy cập cũng sẽ xóa các hàng còn lại trong bảng CAM.
1.3. Chuyển cổng đường trục nhanh
Chuyển cổng đường trục nhanh (BackboneFast) tối ưu thời gian hội tụ cho bất kỳ sơ đồ mạng nào, cải tiến thời gian hội tụ khi có các hỏng hóc gián tiếp xảy ra. Khi một vài kết nối trực tiếp xảy ra, switch sẽ không chờ cho khoảng thời gian MaxAge hết. Các switch không nhận được gói tin BPDU hello sẽ chờ khoảng thời gian MaxAge trôi qua thì mới bắt đầu thử thay đổi sơ đồ.
Tính năng backboneFast sẽ làm các switch học các sự cố gián tiếp của cây mở rộng và hỏi các switch ở lớp trên là các switch này có biết về sự cố hay không. Để thực hiện việc này, khi gói tin hello đầu tiên bị mất, switch sẽ gửi ra các khung tin truy vấn gốc gọi là RLQ (Root Link Query) trên tất cả các cổng mà lẽ ra phải nhận được hello. RLQ sẽ hỏi switch láng giềng rằng switch láng giềng có còn nhận BPDU hello từ gốc. Nếu switch láng giềng đó đang gặp sự cố hỏng hóc trực tiếp, nó sẽ trả lời là đường đi từ nó về gốc đã mất. Khi biết được điều này, switch ban đầu sẽ tiếp tục tính toán lại mà không chờ khoảng thời gian MaxAge. Tất cả các switch trong sơ đồ mạng sẽ phải yêu cầu cấu hình tính năng backboneFast.
2. Công nghệ ghép kênh
2.1. Giới thiệu
Công nghệ ghép kênh (EtherChannel) của Cisco cho phép kết hợp các kết nối Etheret thành một bó (bundle) để tăng băng thông. Mỗi bó có thể bao gồm từ hai đến tám kết nối Fast Ethernet hay Gigabit Ethernet, tạo thành một kết nối luận lý gọi là FastEtherChannel hay Gigabit EtherChannel. Kết nối này cung cấp một băng thông lên đến 1600Mbps hoặc 16Gbps.
Công nghệ này được xem là một cách đơn giản để nâng cấp kết nối giữa các switch mà không cần phải mua phần cứng mới. Ví dụ, một kết nối Fast Ethernet (có thông lượng là 200Mbps) có thể mở rộng lên đến 8 kết nối FE (1600Mbps) để trở thành một kết nối FastEtherChannel. Nếu lưu lượng tăng quá mức này, quá trình nâng cấp có thể lại bắt đầu với một kết nối Gigabit Ethernet. Sau đó, ta có thể lại tiếp tục mở rộng kết nối này lên thành GigabitEtherChannel. Quá trình này có thể được lặp lại với việc tiếp tục chuyển sang kết nối 10Gbps. Bình thường, việc có nhiều kết nối giữa các switch tạo ra khả năng bị lặp vòng. EtherChannel sẽ tránh tình huống này bằng cách xem cả một bó như là một kết nối đơn duy nhất, hoặc là truy cập, hoặc là trung kế.
Mặc dù liên kết EtherChannel được xem như một kết nối đơn duy nhất, kết nối này không nhất thiết phải có băng thông bằng với tổng của các kết nối thành phần. Ví dụ, giả sử một FEC được tạo ra từ 4 kết nối song công 100-Mbps. Mặc dù kết nối FEC này có thể mang một thông lượng lên đến 800Mbps (nếu mỗi kết nối là 100% tải), FEC sẽ không hoạt động ở tốc độ này. Thay vào đó, lưu lượng sẽ được phân phối trên các kết nối riêng lẻ bên trong EtherChannel. Các kết nối này hoạt động ở tốc độ của nó (200Mbps) nhưng chỉ truyền những khung tin được gán bởi thuật toán FEC. Nếu một liên kết bên trong một bó là ưu tiên hơn do kết quả của thuật toán phân phối tải, kết nối thành viên này sẽ không mang lưu lượng theo một tỉ lệ tương ứng. Nói cách khác, tải không phải luôn luôn phân phối đều giữa các kết nối thành phần.
FEC còn cung cấp đặc tính dự phòng với vài kết nối vật lý. Nếu một trong những kết nối vật lý bị hỏng, lưu lượng trên liên kết đó sẽ được tự động chuyển sang kết nối kế cận. Quá trình chuyển đổi xảy ra trong vài ms. Khi có nhiều kết nối tiếp tục hỏng, các lưu lượng sẽ tiếp tục chuyển sang các kết nối láng giềng khác. Khi có một kết nối thành viên được khôi phục lại, tải sẽ tự động phân phối trên các kết nối đang hoạt động. Ta có thể quan sát tiến trình này bằng cách quan sát đèn LED trên switch hoặc dùng các phần mềm như PRTG, MRTG.
2.2. Kết hợp cổng bên trong việc ghép kênh
EtherChannel có thể bao gồm tối đa tám kết nối vật lý của cùng kiểu phần cứng và cùng tốc độ. Một vài ràng buộc phải được đáp ứng sao cho chỉ có những kết nối tương tự là được kết hợp. Thông thường, tất cả các cổng phải thuộc về cùng một VLAN. Nếu được dùng như một kết nối trung kế, tất cả các cổng phải ở trong chế độ trung kế, có cùng VLAN dạng native và truyền cùng một tập hợp của VLAN. Mỗi cổng phải có cùng tốc độ, cơ chế song công và có cùng cấu hình cây mở rộng.
2.3. Phân phối lưu lượng bên trong việc ghép kênh
Các lưu lượng bên trong EtherChannel có thể được phân phối trên các kết nối riêng lẻ theo một cách thức xác định. Tuy nhiên, tải không nhất thiết phải được cân bằng trên tất cả các kết nối. Thay vào đó, các khung tin sẽ được đưa vào trên một kết nối cụ thể như là kết quả của một thuật toán băm (hash). Thuật toán băm có thể dùng địa chỉ IP nguồn, địa chỉ IP đích hoặc là kết hợp của địa chi nguồn, đích, MAC nguồn, MAC đích hoặc cổng TCP/UDP. Thuật toán băm sẽ tính toán ra giá trị nhị phân, giá trị này sẽ chọn ra một kết nối trong bó để chọn ra kết nối thành viên nào sẽ mang khung tin đó. Nếu chỉ một địa chỉ hay một cổng được băm, switch sẽ gửi khung tin đi bằng cách dùng một hoặc nhiều bit thấp để đưa vào kết nối. Nếu hai địa chỉ hay cổng được băm, switch sẽ thực hiện thuật toán XOR trên một hoặc nhiều bit thấp của địa chỉ IP hoặc cổng TCP/UDP. Ví dụ, nếu kết quả phép băm bằng 0, liên kết 0 được dùng, nếu kết quả bằng 1, liên kết 1 được dùng. Nếu một bó dùng 4 kết nối, thuật toán băm sẽ dùng 2 bit cuối. Tương tự, một bó có 8 kết nối sẽ dùng một thuật toán băm trên 3 bit cuối.
Giá trị method |
Thông số băm đầu vào |
Thuật toán băm |
Các dòng switch |
Src-ip |
Địa chỉ nguồn IP |
bit |
6500/4500 |
Dst-ip |
Địa chỉ IP đích |
bit |
6500/4500 |
Src-dst-ip |
Địa chỉ nguồn và đích |
XOR |
6500/4500/3550 |
Src-mac |
Địa chỉ nguồn MAC |
bit |
6500/4500/3550 |
Dst-mac |
Địa chỉ MAC đích |
bit |
6500/4500/3550 |
Src-dst-mac |
Địa chỉ MAC nguồn và đích |
XOR |
6500/4500 |
Src-port |
Địa chỉ cổng nguồn |
bit |
6500/4500 |
Dst-port |
Địa chỉ cổng đích |
bit |
6500/4500 |
Src-dst-port |
Địa chỉ cổng nguồn và đích |
XOR |
6500/4500 |
Bảng 3.4: Các phương pháp kết hợp
Cấu hình mặc định là dùng XOR của địa chỉ IP đích hoặc dùng phương thức src-dst-ip. Mặc định cho switch 2970 và 3560 là dùng src-mac. Nếu L3 switch được dùng trên kết nối EtherChannel, phương thức src-dst-ip luôn luôn được dùng, mặc dù nó không cấu hình được. Bình thuờng, trạng thái mặc định là việc phân phối tĩnh các khung tin. Tuy nhiên, bạn phải xác định khi nào thì EtherChannel là không cân bằng tuỳ theo mẫu lưu lượng. Lấy ví dụ, nếu một server nhận phần lớn các lưu lượng của FEC, địa chỉ của server (địa chỉ đích) sẽ luôn giống nhau trong nhiều phiên làm việc. Điều này làm cho một kết nối sẽ được dùng nhiều lần nếu trong thuật toán băm ta dùng địa chỉ đích IP. Để kiểm tra xem thuật toán cân bằng tải (load-balancing) nào đang được thực hiện, bạn có thể dùng lệnh show etherchannel port-channel. Mỗi kết nối trong kênh được hiển thị cùng với giá trị tải dạng hex. Khi các cổng được nhóm lại trong EtherChannel, sẽ không có broadcast và multicast nào được gửi ra những cổng còn lại trong kênh. Các broadcast và multicast khung tin sẽ được cân bằng tải giống như những loại lưu lượng khác: các địa chỉ multicast và broadcast trở thành một phần của thuật toán băm.
2.4. Các giao thức bắt tay của việc EtherChannel
Có hai giao thức được dùng để hình thành nên EtherChannel đó là PAGP và LACP.
Các gói tin PAGP được trao đổi giữa các switch trên các cổng EtherChannel. Các thông số của switch láng giềng được xác định (như khả năng của cổng) và sẽ được so sánh với switch cục bộ. Các cổng có cùng định danh láng giềng và khả năng hình thành nhóm sẽ được nhóm lại với nhau thành các kết nối FEC.
PAGP hình thành nên EtherChannel chỉ trên những cổng được cấu hình cùng VLAN cố định hoặc là cùng loại trung kế. PAGP cũng thay đổi các thông số động của EtherChannel nếu một trong những cổng của bó bị thay đổi. Ví dụ nếu thông số VLAN, tốc độ, chế độ song công của một cổng trong một EtherChannel bị thay đổi, PAGP sẽ thay đổi các thông số đó trong tất cả các cổng còn lại. PAGP có thể được cấu hình ở chế độ hoạt động trong đó một switch chủ động yêu cầu switch đầu xa hình thành nên EtherChannel. Khi switch hoạt động trong chế độ bị động của PAGP, switch sẽ chỉ bắt tay nếu switch đầu xa yêu cầu nó.
LACP cũng gửi các gói trên các cổng EtherChannel của switch. Tuy nhiên LACP cũng gán vai trò cổng đến các đầu cuối của EtherChannel.
Các switch có độ ưu tiên thấp nhất sẽ được phép ra quuyết định về các cổng nào sẽ được tham gia vào EtherChannel ở một thời điểm. Các cổng được chọn lựa và trở thành active theo giá trị độ ưu tiên của nó, trong đó giá trị ưu tiên thấp sẽ có mức ưu tiên cao.
Một tập hợp 16 kết nối tiềm năng có thể được chỉ ra cho một EtherChannel. Thông qua LACP, một switch sẽ chọn lựa ra 8 cổng có độ ưu tiên thấp nhất như là các thành viên đang hoạt động của EtherChannel. Các cổng còn lại sẽ nằm trong trạng thái chờ (standby) và sẽ được bật lên nếu một trong những kết nối đang hoạt động sẽ không hoạt động. Cũng giống như PAGP, LACP có thể được cấu hình trong chế độ chủ động (active), trong đó một switch sẽ chủ động hỏi switch đằng xa bắt tay hình thành EtherChannel. Chế độ bị động (passive) thì switch chỉ chủ động hình thành EtherChannel chỉ nếu switch đầu xa khởi tạo nó.
2.5. Cấu hình việc EtherChannel
Khi các cổng được cấu hình như là thành viên của EtherChannel, switch sẽ tự động tạo ra các cổng EtherChanel. Giao diện này (interface) sẽ đại diện cho cả bó
Switch(config)# interface type mod/num
Switch(config-if)# channel-protocol PAGP
Switch(config-if)# channel-group number mode {on | {auto | desirable} [non-silent]}
Trên tất cả các switch của Catalyst (2970, 3560, 4500 và 6500), ta có thể cấu hình để chọn giao thức PAGP và LACP. Các dòng cũ hơn như 2950 có thể chỉ hỗ trợ PAGP. Từng cổng nằm trong EtherChannel phải được cấu hình và gán cùng một nhóm duy nhất (từ 1 đến 64).
Cấu hình LACP
Switch(config)# lacp system-priority priority
Switch(config)# interface type mod/num
Switch(config-if)# channel-protocol lacp
Switch(config-if)# channel-group number mode {on | passive | active}
Switch(config-if)# lacp port-priority priority
IV. GIAO THỨC CÂY MỞ RỘNG NHANH (RSTP)
Giao thức cây mở rộng nhanh (Rapid Spanning Tree Protocol - RSTP) IEEE 802.1w cải tiến hoạt động của 802.1D truyền thống với một mục đích duy nhất: cải tiến sự hội tụ của STP. Để thực hiện được việc này, RSTP định nghĩa ra một dạng biến thể khác của BPDU, các trạng thái mới của cổng và các vai trò cổng mới. Tất cả các dạng thay đổi này đều đảm bảo tính tương thích ngược với 802.1D. Các yếu tố chủ chốt giúp cho việc tăng tốc khả năng hội tụ bao gồm:
Chỉ chờ một khoảng thời gian tối đa là 3 lần thời gian hello trên một RP trước khi phản ứng với sự thay đổi. Trước đây, khoảng thời gian này là MaxAge.
Các tiến trình mới cho phép chuyển đổi từ trạng thái disabed (thay thế cho trạng thái khoá trong 802.1D) sang trạng thái học, bỏ qua trạng thái lắng nghe của 802.1D.
Chuẩn hóa các đặc điểm như PortFast, UplinkFast và BackboneFast.
Thêm vào các đặc điểm như cho phép cổng dự phòng cho DP khi switch có nhiều cổng kết nối vào cùng một phân đoạn mạng dùng chung.
Để hỗ trợ các tiến trình mới này, RSTP dùng cùng cơ chế BPDU hello, sử dụng thêm một số bit chưa dùng trước đây. Ví dụ, RSTP sẽ định nghĩa thông điệp hello có thêm tuỳ chọn giống như chức năng RLQ của BackboneFast. RSTP nhóm các cổng lại, dùng các kiểu kết nối khác nhau để mô tả từng nhóm. RSTP có thể quyết định trạng thái của cổng dựa trên loại thiết bị kết nối vào từng cổng, vì vậy giúp cho quá trình hội tụ nhanh hơn.
Kiểu kết nối |
Mô tả |
Điểm - Điểm |
Kết nối một switch đến một switch khác. Switch của Cisco xem các kết nối FullDupleX trong đó hello BPDU được nhận là các kết nối điểm - điểm. |
Dùng chung (Shared) |
Kết nối một switch đến một hub |
Biên (Edge) |
Kết nối đến một thiết bị của người dùng cuối. |
Bảng 3.5: Mô tả các mô hình kết nối
Trong phần lớn các thiết kế mạng LAN hiện đại, hub không được dùng nữa. Vì vậy tất cả các kết nối phải là hoặc là điểm - điểm (point-to-point) hoặc là kiểu biên (edge). Kiểu kết nối là biên (edge) nghĩa là cổng đang gắn vào một thiết bị và thiết bị không phải là một switch. Vì vậy, RSTP xem các kết nối edge giống như tính năng PortFast. Và thật ra, câu lệnh spanning-tree portFast được dùng để định nghĩa một kết nối như là edge trong RSTP. Nói cách khác, RSTP đặt các kết nối kiểu edge vào trạng thái chuyển tiếp một cách tức thì.
Đối với các kết nối điểm - điểm, RSTP sẽ hỏi switch láng giềng về tình trạng của nó. Ví dụ nếu một switch không nhận được gói hello định kỳ trên kết nối điểm - điểm, switch sẽ truy vấn switch láng giềng. Thiết bị láng giềng sẽ trả lời, nêu rõ là nó có mất đường đi về gốc hay không. Tính năng này giống như tính năng BackboneFast của Cisco, nhưng dùng thông điệp chuẩn của IEEE để đạt cùng một mục đích. RSTP cũng định nghĩa lại các trạng thái cổng của 802.1D, trong đó trạng thái lắng nghe là không còn cần thiết nữa.
Trạng thái quản trị |
Trạng thái của 802.1D |
Trạng thái 802.1w |
Tắt |
Tắt |
Loại bỏ |
Bật |
Khoá |
Loại bỏ |
Bật |
Lắng nghe |
Loại bỏ |
Bật |
Học |
Học |
Bật |
Chuyển tiếp |
Chuyển tiếp |
Bảng 3.6: So sánh trạng thái của 802.1D và 802.1w
Trong RSTP, trạng thái loại bỏ (discarding) có nghĩa là cổng sẽ không truyền hay nhận khung tin hoặc học địa chỉ MAC, bất chấp cổng có bị tắt, sự cố… Khi RSTP đã quyết định chuyển trạng thái từ discarding sang chuyển tiếp, cổng đó sẽ ngay lập tức đi vào trạng thái học. Từ thời điểm đó, quá trình tiếp tục giống như trong 802.1D. RSTP không còn cần trạng thái lắng nghe bởi vì nó sẽ chủ động hỏi các thiết bị láng giềng, đảm bảo sao cho không bị vòng lặp.
RSTP dùng thuật ngữ vai trò cổng (role) để chỉ ra một cổng là RP hay là một DP. RSTP sử dụng RP và DP giống như trong 802.1D, tuy nhiên RSTP thêm vào vài vai trò khác.
Vai trò cổng RSTP |
Định nghĩa |
Cổng gốc |
Giống như trong 802.1D |
Cổng được lựa chọn |
Giống như trong 802.1D |
Cổng thay thế |
Giống như cổng dự phòng trong chuyển cổng lên nhanh |
Cổng dự phòng |
Một cổng kết nối vào cùng một phân đoạn mạng dùng chung giống như nhiều cổng khác trên cùng switch nhưng cổng kia là DP cho phân đoạn mạng đó. Cổng dự phòng sẽ thay thế khi cổng DP bị sự cố. |
Bảng 3.7: Vai trò các cổng trong RSTP
Khái niệm cổng thay thế (alternate port) thì giống như khái niệm UplinkFast. Chức năng cổng dự phòng (backup port) thì không có chức năng tương đương bên Cisco. Bạn có thể bật chức năng RSTP trong switch dùng lệnh spanning-tree mode rapid-pvst. Ngoài ra, bạn có thể dùng 802.1s MST.