三層交換服務器
n 單臂路由的 缺陷能夠歸結爲如下三點:網絡
1) 「單臂」自己將成爲網絡的骨幹鏈路,容易造成網絡瓶頸ide
2) 子接口依然依託於物理接口,就實際應用而言不靈活測試
3) 每次VLAN間轉發都須要查看路由表,嚴重浪費設備資源ui
n 三層交換機的轉發原理spa
三層交換機經過硬件來交換和路由選擇數據包。爲完成在硬件中處理數據包的高層信息,Cisco Catalyst交換機使用傳統的MLS(Multilayer Switching,多層交換)體系結構或基於CEF(Cisco Express Forwarding,Cisco快速轉發)的MLS體系結構。傳統MLS是一種老式特性,而全部新型的Catalyst交換機都支持CEF多層交換。接口
1. 傳統的MLSip
MLS讓ASIC(Application-Specific Integrated Circuit,應用專用集成電路)可以對被路由的數據包執行第2層重寫操做。第2層重寫操做包括重寫源和目標MAC地址,以及寫入從新計算獲得的循環冗餘效驗碼(CRC)。ci
支持傳統MLS的Catalyst交換機使用一種MLS協議從MLS路由器那裏獲悉第2層重寫信息。使用傳統MLS時,第3層引擎(路由處理器)和交換ASIC協同工做,在交換機上創建第3層條目。資源
使用傳統MLS時,交換機將數據流中的第一個數據包轉發給第3層引擎,後者以軟件交換的方式對數據包進行處理。對數據流中的第一個數據包進行路由處理後,第3層引擎對硬件交換組件進行程序處理,使之爲後續的數據包選擇路由。
如圖所示,處於VLAN1中的主機要將數據包發送給鏈接在VLAN2中的主機,這個過程須要通過如下幾個步驟:
(1)VLAN1的主機將數據包發送給默認網關。三層交換機是主機的網關,所以,三層交換機上的VLAN1的端口接受到主機發來的數據包。這個數據幀中,源MAC地址時VLAN1主機的MAC地址,目標MAC地址是默認網關的MAC地址。
(2)三層交換機的第3層引擎接收到這個數據包,在轉發數據包前重寫數據幀的2層封裝。三層交換機首先要使用ARP協議來得到VLAN2主機的MAC地址。
(3)三層交換機用VLAN2的主機的MAC地址做爲發送幀的目標MAC地址來封裝數據幀,並從新CRC值。同時,在硬件中建立一個MLS條目,以便可以重寫和轉發這個流中的後續數據包。
(4)VLAN1主機發送給VLAN2主機的後續數據包直接由三層交換機的ASIC進行處理,ASIC根據剛纔建立的MLS條目重寫第2層封裝,並快速轉發數據包。
這個過程經常被稱爲「一次路由,屢次交換」。也就是說,交換機的三層引擎只須要處理數據流中的第一個數據包,然後續的數據所有由硬件來執行轉發,這樣就是實現了三層交換機的快速轉發功能。
2. 基於CEF的MLS
CEF 是一種基於拓撲的轉發模型,可預先將全部路由選擇信息加入到轉發信息表(FIB)中。這樣,交換機就可以快速查找路由選擇信息。
CEF主要包含以下兩個轉發用的信息表:
? 轉發信息庫(FIB):CEF使用FIB來作出基於目標IP前綴的轉發決策。從概念上說,FIB相似於路由表,包含路由表中轉發信息的鏡像。當網絡的拓撲發生變化時,路由表將被更新,而FIB也將隨之變化。FIB中包含下一跳地址信息,這些信息是根據路由表中的信息獲得的。使用基於CEF的MLS時,第3層引擎和硬件交換組件都維護一個FIB。
? 鄰接關係表:在網絡中,若是兩個節點之間在數據鏈路層只有一跳,則它們彼此相鄰。除FIB外,CEF還使用鄰接關係表來存儲第2層編址信息。對於每一個FIB條目,鄰接關係表中都包含相應的第2層地址。和FIB同樣,使用基於CEF的MLS時,第3層引擎和硬件交換組件都維護一個鄰接關係表。
如圖所示:在使用基於CEF的MLS狀況下,鏈接在VLAN1上的主機A,要經過三層交換機將數據發送給鏈接在VLAN2上的主機B時,須要通過如下步驟:
(1)主機A發送數據包給本身的默認網關,三層交換機時主機A的網關,於是可接收到這個數據包。
(2)三層交換機查找FIB表,數據包的目標IP地址10.20.20.2,與三層交換機直連。
(3)三層交換機查找鄰接關係表,在鄰接關係表中,有IP地址與源MAC地址、目標MAC地址的對應關係,並找到轉發端口。
(4)三層交換機的硬件交換組件根據鄰接關係表重寫數據幀的二層封裝,並快速轉發。
若是三層交換機接收到主機A發送來的數據包,但鄰接關係表中沒有主機B的二層重寫信息,那麼三層交換機會將數據包交給三層引擎進行處理。三層引擎會發送ARP請求獲取主機B的MAC地址信息。而後,第3層引擎將一個解析後的鄰接關係條目加入到本身的鄰接關係表中,硬件交換組件也將這條鄰接關係條目加入到本身的鄰接關係表中。
從上面能夠看出,基於CEF的MLS與傳統的MLS相比,主要優點是傳統的MLS每一個數據流的第一個數據包都要進行路由,而基於CEF的MLS在第一次路由後,就會在鄰接關係表和FIB表中保存目標信息,那麼有數據須要轉發時,就能夠直接用硬件查找鄰接關係表和FIB表。
3. 虛接口的引入
這裏的interface vlan 1實際就是一個虛擬口,你們沒有留意的是,咱們並無強調管理這臺交換機須要從哪兒實際的物理接口鏈接到交換機。實際上,不管從哪一個物理接口鏈接,只要該接口能夠正常通訊且屬於VLAN1(默認狀況全部接口都屬於VLAN1),均可以遠程訪問管理交換機(固然須要正確的口令),這正是虛接口的最重要特性——只要在交換機上「開啓」相關VLAN的虛接口,並配置網關IP地址,屬於該VLAN的物理接口均可以動態的充當該VLAN的網關。
n 三層交換機的配置
1. 啓動路由功能
三層交換機在默認狀況下的配置與二層交換機相同,若是想要在三層交換機上配置路由,首先須要在三層交換機上啓動路由功能。配置命令以下:
Switch(config)# ip routing
2. 配置虛接口的IP地址
其配置命令以下:
Switch(config)# interface vlan vlan-id
Switch(config-if)# ip address ip-address netmask
Switch(config-if)# no shutdown
3. 配置路由接口
三層交換機的接口在默認狀況下是二層接口,若是須要讓三層交換機與路由器實驗點到點的鏈接,須要將交換機上的某個接口配置爲路由接口,才能爲這個接口配置IP地址。配置命令以下:
Switch(config-if)# no switchport
4. DHCP中繼的配置
SW3L(config-if)# ip helper-address DHCPsrv-IPAddress
DHCPsrv-IPAddress:是DHCP服務器的IP地址。
n 三層交換機實現VLAN互通實例
具體步驟:
1. 在二層交換機SW1上分別建立VLAN二、VLAN3
分配端口到VLAN
配置Trunk
2. 在三層交換上SW3L1上分別建立VLAN二、VLAN3
配置Trunk並指定接口封裝方式爲802.1q
啓動三層交換的路由功能
在三層交換機上配置各VLAN的IP地址
3. 給各個主機配置IP地址
4. 驗證主機是否可以互相ping通
n 在三層交換機上配置路由實例
具體步驟:
1. 在二層交換機SW1上分別建立VLAN二、VLAN3
分配端口到VLAN
配置Trunk
2. 在三層交換上SW3L1上分別建立VLAN二、VLAN3
配置Trunk並指定接口封裝方式爲802.1q
啓動三層交換的路由功能
在三層交換機上配置各VLAN的IP地址
在三層交換機上配置路由接口,並配置接口的IP地址
在三層交換機上配置路由
3. 在路由器上配置接口和路由
4. 給各個主機配置IP地址
5. 驗證主機是否可以互相ping通
n 三層交換機配置DHCP中繼
1. 在三層交換機SW3L上:建立vlan二、vlan三、vlan四、vlan5。
啓用VTP修剪,並配置VTP域名爲benet。
給每一個vlan配置一個不一樣網段的IP地址,並配置中繼轉發,指向DHCP服務器。
將F0/0接口改成路由接口,並配置一個IP地址。
啓用三層交換的路由功能。
將F0/1和F0/2接口改成Trunk並指定接口封裝方式爲802.1q。
2. 在二層交換機SW1上:啓用VTP修剪,並配置VTP域名爲benet(要和三層交換機的VTP域名一致)
將F0/0接口改成Trunk模式。
此時,查看一下SW1的vlan信息,可以看到三層交換機SW3L上建立的vlan信息所有複製到二層交換機SW1上來了。
將端口相應的加到VLAN當中。
3. 在二層交換機SW2上:啓用VTP修剪,並配置VTP域名爲benet(要和三層交換機的VTP域名一致)
將F0/0接口改成Trunk模式。
此時,查看一下SW2的vlan信息,可以看到三層交換機SW3L上建立的vlan信息所有複製到二層交換機SW2上來了。
將端口相應的加到VLAN當中。
4. 給路由器R1的接口配置一個IP地址,也就是DHCP服務器的IP地址。
建立不一樣網段的地址池。
配置路由器R1的默認網關,指向鏈接三層交換機的接口F0/0的IP地址。
關閉路由器R1的路由功能。
5. 在客戶端上測試自動獲取IP地址。
6. 測試是否全網互通。