Phần này mô tả những lợi điểm của việc triển khai chuyển mạch ở lớp 3 (L3 Switching) trong vấn đề định tuyến giữa các vlan. Switch lớp 3 (L3 Switch) được sử dụng trong định tuyến giữa các VLAN (Inter-VLAN Routing) hơn là dùng Router vì các lí do sau. Hiệu năng và chi phí: Chúng ta đã biết lượng lưu lượng trong các VLAN là rất lớn, vì thế nếu sử dụng L3 switching cho việc định tuyến giữa các VLAN rất hiệu quả về mặt giá cả. Hiệu năng của L3 switch cũng cao hơn nhiều so với router. Nó mang một lượng lớn dữ liệu của các VLAN đi với tốc độ rất cao. Ví dụ một Catalyst3550-24 EMI có giá là 4.990$ cung cấp 1 tốc độ luân chuyển lưu lượng lên đến 6.6 triệu gói tin/giây (packet/s), với 24 * 10/100BASE-T ports, 2*1000BASE-X ports. Tuy nhiên một con router Cisco 7300 chỉ chuyển gói tin với tốc độ 3,5 triệu packet/s và có 2*1000BASE-T ports nhưng nó lại có giá lên đến 22.000$. Lưu ý, ở đây ta đang so sánh hiệu quả sử dụng và giá cả trong việc thực hiện Inter-VLAN routing giữa L3 switch với router. Rõ ràng Cisco 7300 router vẫn có những tính năng đặc biệt và cung cấp nhiều tùy chọn Wan, tuy nhiên những tính năng này lại không cần thiết trong việc thực hiện inter-VLAN routing. L3 switch cũng không thể nào làm được những công việc mà Router 7300 đang làm. L3 switch cung cấp mật độ cổng cao, trong khi đó ở router ta thường thấy chỉ có một hoặc hai cổng FastEthernet. Tính uyển chuyển: L3 switch cho phép bạn chuyển đổi qua lại giữa hai chế độ L2 switch và L3 switch. Bình thường, bạn có thể để nó hoạt động như một switch lớp 2 (switch L2) truyền thống nhưng khi cần thì có thể bật tính năng lớp 3 lên. Ví dụ:
Trong hình là 3 VLAN đang được định tuyến bằng switch lớp 3 (L3 switch). L3 switch sử dụng một bộ bộ phận phần cứng đặc biệt gọi là mạch tích hợp ứng dụng đặt trưng (ASICs) được lập trình sẵn và thiết kế để định tuyến giữa các cổng Ethernet với tốc độ cao. Nếu người dùng lưu lượng cần đi ra ngoài và sử dụng dịch vụ mạng diện rộng (WAN) thì sẽ sử dụng Router. L3 switch chỉ làm nhiệm vụ Inter-VLAN routing. Bạn cũng có thể sử dụng router để inter-VLAN routing nhưng lượng lớn người dùng lưu lượng ở các VLAN đổ về có thể dẫn đến nghẽn cục bộ. Bạn có thể mua router với khả năng xử lý cao hơn nhưng giá cả lại không cho phép. Do đó nên sử dụng L3 switch cho việc định tuyến giữa các VLAN.
So sánh định tuyến lớp 3 (L3 routing) và chuyển mạch lớp 3 (L3 switching):
Cả 2 khái niệm mở ra vài điều cần phải làm sáng tỏ. Sự khác nhau giữa chúng có thể được giải thích tốt nhất qua việc xem xét làm thể nào mà một gói tin IP được định tuyến đi. Tiến trình định tuyến một gói tin có thể được chia ra làm 2 giai đoạn:
Mặt phẳng điều khiển: có nhiệm vụ xây dựng và duy trì bảng định tuyến. Đây là nơi mà một gói tin ip sẽ được xác định sẽ định tuyến ra giao diện nào với địa chỉ đích là bao nhiêu; sẽ đến bước nhảy kế tiếp (next-hop) là bao nhiêu và bước nhảy kế tiếp có đến được hay không. L3 routing thường được đề cập đến như là hoạt động của mặt phẳng điều khiển.
Mặt phẳng dữ liệu: thực sự làm nhiệm vụ định tuyến một gói tin ip dựa trên những thông tin học được từ mặt phẳng điều khiển. Trong khi mặt phẳng điều khiển định nghĩa ra giao diện mà gói tin (packet) đưa ra thì mặt phẳng dữ liệu lại định nghĩa gói tin này được định tuyến đi bằng cách nào? Mặt phẳng dữ liệu đưa ra những thông tin về địa chỉ lớp 2 để gói tin IP có thể đến được trạm kế tiếp. Nó cũng cung cấp các thông số cần thiết cho định tuyến IP hoạt động như: thời gian sống (TTL), thông tin kiểm soát lỗi ở phần đầu gói tin IP (ip header checksum). L3 switching thường được đề cập đến như là hoạt động của Mặt phẳng điều khiển. Ví dụ: mô tả sự khác nhau trong hoạt động của mặt phẳng dữ liệu và mặt phẳng điều khiển.
Máy tính A gửi gói tin đến máy tính B và phải đi qua 2 router A và router B. Địa chỉ IP của máy tính A là 1.1.1.10, địa chỉ IP của máy tính B là 3.3.3.10. Máy tính A nhận thấy địa chỉ IP đích nằm trên một mạng khác nên nó sẽ phải gửi đến cổng ra mặc định (default gateway) là router A. Máy tính A muốn đến được Router A phải đóng gói gói tin ip trong khung (frame) Ethernet do kết nối giữa máy tính A và router A là kết nối Ethernet. Trước khi đóng gói gói tin IP vào frame Ethernet, máy tính A phải biết được rằng địa chỉ MAC đích là bao nhiêu (là địa chỉ MAC của router A). máy tính A phải tìm kiếm trong bảng ARP của nó xem có MAC address của Router A hay không? Giả sử rằng máy tính A không biết MAC address của Router A, máy tính A sẽ phát tán yêu cầu ARP (ARP request) cho tất cả các thiết bị trong LAN để hỏi địa chỉ MAC ứng với địa chỉ Ip = 1.1.1.1 là bao nhiêu (ip 1.1.1.1 là ip trên cổng Ethernet của router A).
Vì router A được cấu hình cổng Ethernet có địa chỉ là 1.1.1.1 kết nối với máy tính A , nó sẽ trả lời bằng 1 gói trả lời ARP (ARP reply), cung cấp địa chỉ MAC của nó là 0000.0001.0001. Bây giờ máy tính A có thể đóng gói gói tin ip vào Ethernet Frame và gửi nó cho Router A. Địa chỉ MAC trong frame bây giờ là của Router A, địa chỉ đích IP vẫn không đổi. Trong suốt quá trình từ địa chỉ nguồn đến địa chỉ đích thì địa chỉ IP của nguồn và đích đều không đổi, chỉ có địa chỉ MAC nguồn và địa chỉ MAC đích là thay đổi. Router A nhận được Ethernet Frame và tiến trình xử lý của Mặt phẳng điều khiển bắt đầu. Để Router A có thể chuyển gói tin ra đúng giao diện (Interface) thì nó phải biết được giao diện kế tiếp (next hop interface) là gì và địa chỉ MAC của next hop interface. Để biêt interface next hop là gì, router sẽ xét địa chỉ IP đích, nó tìm kiếm ở bảng định tuyến (routing table) và thấy rằng để đến địa chỉ IP đích (3.3.3.10) thì phải qua bước kế tiếp (next hop) là 2.2.2.2 (router B). RouterA kết nối trực tiếp với router B cũng bằng Ethernet nên gói tin IP cũng được đóng gói vào khung Ethernet. Địa chỉ MAC nguồn và MAC đích bây giờ được thay đổi lại. Địa chỉ MAC nguồn là MAC của cổng Ethernet của Router A. Địa chỉ MAC đích là địa chỉ MAC cổng Ethernet của Router B. Router B nhận được gói tin (packet) này và lại bắt đầu lại tiến trình tương tự như trên, và packet được đưa đến đúng đích là máy tính B.
Để mặt phẳng điều khiển hoạt động tốt, đòi hỏi những hiểu biết về các giao thức định tuyến (routing protocol) đặt biệt là các giao thức (protocol) phức tạp như OSPF và BGP. Ngươc lại, mặt phẳng dữ liệu hoạt động đơn giản hơn mặt phẳng điều khiển, nó được thực hiện thường xuyên hơn các hoạt động của Mặt phẳng điều khiển, mặt phẳng dữ liệu được thực hiện mỗi lần cho mỗi gói tin đã được định tuyến. Mặt phẳng điều khiển hoạt động khi có sự thay đổi về mô hình mạng và bảng định tuyến (routing table) phải được cập nhật lại. Như vậy cuối cùng thì tốc độ định tuyến gói tin nhanh hay chậm phụ thuộc vào hiệu quả của việc triển khai mặt phẳng dữ liệu trong thiết bị định tuyến. Vì hoạt động của mặt phẳng điều khiển rất phức tạp nên người ta phải nhờ đến những ngôn ngữ lập trình cấp cao của CPU để tính toán và duy trì hoạt động của mặt phẳng điều khiển. Với khía cạnh này thì mặt phẳng điều khiển hoạt động dưới sự điều khiển của phần mêm và cả switch lớp 3 (L3 switch) cũng như router để thực hiên mặt phẳng điều khiển thì đều phải nhờ phần mêm. Mặt phẳng dữ liệu hoạt động để điều chỉnh các thông số sau khi nhận được khung (frame): địa chỉ MAC nguồn và địa chỉ MAC đích, thời gian sống (TTL), thông tin kiểm lỗi ở phần đầu gói tin IP (IP header checksum). Công việc này đơn giản, nhưng đối với Router truyền thống thì nó vẫn được thực hiện bằng phần mêm nên rất chậm. L3 switch đã cải tiến công việc này bằng cách hiện thực bằng phần cứng, dùng ASICs để thực hiện mặt phẳng dữ liệu nhanh hơn.
Mặt phẳng dữ liệu (data plain) phải tra cứu thông tin địa chỉ IP của bước nhảy kết tiếp (next hop) và địa chỉ của next hop và sau đó đóng gói lại các thông tin này trong gói tin và khung sẽ bị chậm lại. Để tránh bị tình trạng trì hoãn, L3 switch sử dụng một cấu trúc cơ sở dữ liệu đặc biệt để việc tìm kiếm nhanh chóng hơn. Cấu trúc của cơ sở dữ liệu này có thể được chia ra làm 2 loại:
Bộ đệm của con đường đi (route cache): Là nơi những thông tin của khung chuyển mạch lớp 3 (L3 switch frame) liên quan đến một luồng (flow) dữ liệu nào đó . Một flow là một cuộc trao đổi lưu lượng giữa 2 điểm trong mạng (ví dụ : luồng 1 là sự trao đổi thông tin của máy tính A với máy tính B, luồng 2 lại là sự trao đổi thông tin giữa máy tính A và máy tính C). Đối với gói tin đầu tiên thì luồng đươc chỉ ra bằng phần mềm, gói tin thứ 2 thuộc luồng đó sẽ được chuyển đi bằng phần cứng dựa trên những thông tin được cung cấp trong bộ đệm được thực hiện trước đó bởi phần mêm.
Bảng con đường đi tối ưu tìm kiếm: tìm kiếm tiến trình thường được nghĩ đến là quá trình tìm kiếm để định ra các thông tin về con đường đi (route), chi phí (metric) và AD của con đường đi trong bảng định tuyến. Những thông tin này không liên quan đến hoạt động của mặt phẳng dữ liệu (data plane). Bảng tìm kiếm được dùng bởi data plane là một loạt các thực thể (entry) có thể gọi là bảng láng giềngchứa thông tin về địa chỉ MAC kết hợp với những các giao diện bước nhảy kế tiếp (next hop interface) của các thiết bị mạng. bảng này được thực hiện trong L3 switch với tên gọi CEF.
CEF là một kỹ thuật chuyển mạch IP ở lớp 3. CEF giúp tối ưu hoá hiệu suất mạng và sự linh động cho mạng. CEF cung cấp những lợi ích sau:
Tăng hiệu suất: CEF giúp cho việc chuyển mạch diễn ra nhanh và đỡ tốn tài nguyên của hệ thống hơn. Tăng độ linh hoạt. Do đó, CEF được thiết kế cho những mạng chuyển mạch IP ở mạng sương sống (backbone network), và thường chạy ở lớp lõi (core layer) của thiết kế 3 lớp, giúp cho việc chuyển mạch được thực hiện một cách nhanh chóng.
Các thành phần của CEF:
CEF gồm hai thành phần chính: Forwarding Information Base(FIB), và Adjacency Tables.
Forwarding Information Base(FIB)
CEF sử dụng một bảng FIB để thực hiện việc chuyển mạch, FIB cũng giống như một bảng định tuyến, nó duy trì một bản sao của bảng định tuyến, khi quá trình định tuyến bị thay đổi, bảng định tuyến được cập nhật, và những thay đổi đó cũng sẽ ảnh hưởng đến FIB. FIB sẽ duy trì thông tin về các địa chỉ bước nhảy kế tiếp (next hop) dựa trên bảng định tuyến hiện tại của thiết bị. Và do đó nó sẽ có thể thực hiện việc chuyển mạch một cách nhanh chóng, và tối ưu.
Adjacency Tables
Các điểm trong một mạng được xem là gần kề khi chúng có thể liên lạc với nhau qua một thiết bị ở lớp 2. Cùng với bảng FIB, CEF sử dụng bảng gần kề để lưu giữ những thông tin về địa chỉ lớp 2. Do đó, bảng gần kề sẽ lưu trữ địa chỉ lớp của các next hop trong bảng FIB. Và quá trình xảy ra cũng giống như ARP.
Các trạng thái hoạt động của CEF
CEF có thể được bật ở 1 trong 2 trạng thái sau: CEF tập trung (Central CEF), CEF phân tán (Distributed CEF).
Chế độ Central CEF
Khi trạng thái này được kích hoạt, thì FIB và adjacency table sẽ nằm trên bộ xử lý định tuyến RP (Route Processor), và RP sẽ thực hiện quá trình chuyển mạch. Hình dưới đây cho biết mối quan hệ giữa bảng định tuyến, FIB, adjacency table trong trạng thái này. Switch sẽ chuyển tiếp các lưu lượng từ LAN đến Cisco 7500 chạy CEF. Và RP sẽ thực hiện quá trình chuyển mạch.
Figure 9: CEF Mode
Distributed CEF Mode
Khi trạng thái này được kích hoạt, thí các line card sẽ nắm giữ chức năng chuyển mạch và các bảng FIB, adjacency table sẽ nằm trên line card.
Figure 10: dCEF Mode
Cấu hình CEF
Để cấu hình CEF, ta thực hiện các bước sau:
Kích hoạt CEF or dCEF
Để kích hoạt, ta sử dụng lệnh sau,ở chế độ toàn cục:
Lệnh |
Mục đích |
Router(config)# ip cef |
Kích hoạt quá trình CEF |
Bật dCEF khi bạn muốn line card của bạn thực hiện tính năng chuyển mạch, và để cho RP thực hiện tính năng định tuyến. Để bật hay tắt dCEF ta sử dụng lệnh sau ở chế độ toàn cục:
Lệnh |
Mục đích |
Router(config)# ip cef distributed |
Bật dCEF |
Router(config)# no ip cef distributed |
Tắt dCEF |
Khi bạn bật dCEF hay CEF ở chế độ toàn cục thì tất cả các giao diện sẽ được bật. Và bạn cũng có thể tắt CEF ở một số giao diện mà bạn muốn.Để tắt CEF hay dCEF ta sử dụng lệnh sau:
Lệnh |
Mục đích |
Router(config-if)# [no] ip route-cache cef |
Tắt /bật CEF trên giao diện này |