交換機(Switch)是一種用于電信號轉(zhuǎn)發(fā)的網(wǎng)絡設備,,它可以為接入交換機的任意兩個網(wǎng)絡節(jié)點提供獨享的電信號通路,,最常見的交換機是以太網(wǎng)交換機,其他常見的還有電話語音交換機,、光纖交換機等,,交換機是集線器的升級替代產(chǎn)品,理論上講交換機就是按照通信兩端傳輸信息的需求,,將需要的信息發(fā)送到目標設備上的網(wǎng)絡組件.
文字描述,,摘抄自《網(wǎng)絡設備配置與管理》精簡內(nèi)容,部分內(nèi)容來自華為《HCIP 安全認證》課程筆記,,適合學習面試,,其中的架構圖,與搭建流程為自己規(guī)劃并實驗的,。
STP 技術簡介
冗余技術概述
STP生成樹協(xié)議
RSTP 快速生成樹
生成樹的配置
配置端口聚合
配置端口安全
1 STP 技術簡介 冗余技術概述 冗余技術又稱為儲備技術 ,,是利用并聯(lián)模型來提高網(wǎng)絡可靠性的一種手段,它通過向網(wǎng)絡中增加備用的鏈路,當一條通信信道出現(xiàn)故障時,,自動切換到備用的通信信道,,從而提高網(wǎng)絡的穩(wěn)定性和可靠性.
冗余技術雖然可以提高網(wǎng)絡的穩(wěn)定性和可靠性,但是也會產(chǎn)生許多的問題,,如果兩個交換機相連的話會造成交換機環(huán)路,,出現(xiàn)的問題就是隨機出現(xiàn)網(wǎng)絡不通的現(xiàn)象,嚴重的話還會導致網(wǎng)絡廣播風暴,,重復拷貝幀,,MAC地址表不穩(wěn)地等情況,但如果是智能交換機的話則不會出現(xiàn)此種情況,,以下將分別介紹這幾種環(huán)路的基本原理.
廣播風暴 : 在物理網(wǎng)絡中出現(xiàn)環(huán)路現(xiàn)象,,且沒有采取解決措施的情況下,一旦域內(nèi)有某個主機發(fā)送了廣播幀,,則當域內(nèi)的交換機接收到數(shù)據(jù)后,,就會不停的發(fā)送和轉(zhuǎn)發(fā)廣播幀,從而形成網(wǎng)絡廣播風暴,,網(wǎng)絡廣播風暴會長時間占用網(wǎng)絡帶寬,,和交換機CPU資源,影響網(wǎng)絡性能,,甚至引起整個網(wǎng)絡癱瘓.
重復拷貝幀 : 重復拷貝幀也稱多幀復制,,是指單播幀可能被多次復制傳送到目標主機上去,此時數(shù)據(jù)幀的多個副本會保存在目標主機上,,從而造成主機資源的浪費,,甚至會造成目的主機無法選擇其他來源的數(shù)據(jù)幀而導致數(shù)據(jù)丟失,簡單的來講就是數(shù)據(jù)分別從兩個口進入了目的主機,,導致目的主機MAC地址表中存在多個數(shù)據(jù)幀,,有時還會導致數(shù)據(jù)的多次覆蓋,從而無法接收到準確的數(shù)據(jù).
MAC地址表不穩(wěn)定 : 一般情況下交換機接收到數(shù)據(jù)時,,會將接收數(shù)據(jù)幀的端口與發(fā)送主機MAC地址的對應關系添加到本機的MAC地址表中,,那么如果交換機在不同的端口接收到同一個數(shù)據(jù)幀的多份副本,將造成MAC地址表在短時間內(nèi)被多次修改,,和循環(huán)重復的覆蓋,,從而影響MAC地址表的穩(wěn)定性.
以上幾種情況是冗余技術的技術瓶頸所在,在實際的應用中網(wǎng)絡的結構往往會很復雜,,有更多的冗余鏈路,,從而會產(chǎn)生更多的交換機環(huán)路,因此所帶來的網(wǎng)絡廣播風暴,,多幀復制會更加的嚴重,,就因為這種需求,STP就由此誕生了.
STP生成樹協(xié)議 為了解決網(wǎng)絡冗余鏈路所產(chǎn)生的問題,IEEE定義了802.1D協(xié)議,,即生成樹協(xié)議STP,,利用生成樹協(xié)議可以避免幀在環(huán)路中的增生和無限循環(huán),生成樹的主要思想是,,當兩個交換機之間存在多條鏈路時,,通過一定的算法只激活其中最主要的一條鏈路,而將其他冗余鏈路阻塞掉變?yōu)閭溆面溌?,當主鏈路出現(xiàn)問題時,,生成樹協(xié)議將自動啟用備用鏈路,整個過程不需要認為干預.
STP協(xié)議中定義了,,根橋 (RootBridge),根端口 (Root Port),,指定端口 (Designated Port),,路徑開銷 (Path Cost)等概念,目的在于通過構建一棵自然樹的方法阻塞冗余鏈路,,同時實現(xiàn)鏈路備份和鏈路最優(yōu)化.
STP協(xié)議的通信,,是通過橋協(xié)議數(shù)據(jù)單元(BPDU)進行通信的,它是運行STP的交換機之間交流消息幀,,所有的支持STP協(xié)議的交換機都能接收并處理BPDU報文.
STP工作過程: 選舉根橋->選舉根端口->選舉指定端口->STP阻塞非根
選舉根橋 :交換機假定自己是根,,然后發(fā)送BPDU報文給其他交換機,最終選出ID號最小的交換機作為根橋.選舉根端口 :每臺非根交換機都會選舉出一個根端口,,并且僅有一個根端口,,并按照優(yōu)先級選擇一個根端口.選舉指定端口 :選擇一條網(wǎng)橋到根橋的路徑成本最小的路徑,或者發(fā)送方的網(wǎng)橋ID最大的作為指定端口.選擇阻塞端口 :至此,,就會根據(jù)STP算法,,從多個鏈路中選擇性的阻塞掉一些端口的數(shù)據(jù)通信.STP端口狀態(tài): 阻塞 (Blocking):端口只接受BPDU,不能接收或發(fā)送數(shù)據(jù),,也不能把學習到的MAC地址天機到MAC地址表中.轉(zhuǎn)發(fā) (Forwarding):端口能夠接收并轉(zhuǎn)發(fā)數(shù)據(jù),,也能夠?qū)W習MAC地址,并添加到MAC地址表中.偵聽 (Listening):該狀態(tài)是從阻塞到轉(zhuǎn)發(fā)狀態(tài)過程中的臨時狀態(tài),,該狀態(tài)只能發(fā)送和接受BPDU數(shù)據(jù).學習 (Learning):該狀態(tài)是從阻塞到轉(zhuǎn)發(fā)狀態(tài)過程中的臨時狀態(tài),,該狀態(tài)不能夠發(fā)送或接收數(shù)據(jù).關閉 (Disable):該狀態(tài)端口只提供網(wǎng)絡管理服務,不能接受發(fā)送任何數(shù)據(jù),,也就是停止服務的狀態(tài).RSTP 快速生成樹 STP協(xié)議雖然解決了鏈路閉合引起的死循環(huán)問題,,但是在端口從阻塞狀態(tài)到轉(zhuǎn)發(fā)狀態(tài)間經(jīng)過了一個只學習MAC地址但不參與轉(zhuǎn)發(fā)的過程,產(chǎn)生了轉(zhuǎn)發(fā)延時(默認15秒),,從而使得生成樹的收斂過程需要較長的時間,,一般是轉(zhuǎn)發(fā)延時的兩倍.
為了解決STP收斂時間過長的缺點,IEEE又推出了802.1w標準,定義了RSTP(快速生成樹)協(xié)議.RSTP協(xié)議在網(wǎng)絡配置參數(shù)發(fā)生變化時,,能夠顯著的減少網(wǎng)絡的收斂時間,,由于RSTP是從STP發(fā)展而來的,其與STP協(xié)議保持高度的兼容性,,RSTP協(xié)議規(guī)定,,在某些情況下,處于阻塞狀態(tài)的端口不必經(jīng)歷阻塞->偵聽->學習->轉(zhuǎn)發(fā)這一個過程,,就可以直接進入轉(zhuǎn)發(fā)狀態(tài).
RSTP協(xié)議只有以下三種:
丟棄 (Discarding):RSTP將STP中的阻塞,,禁用,和偵聽統(tǒng)稱為丟棄模式.學習 (Learning):拓撲有所變動情況下,,端口處于學習狀態(tài)并學習MAC地址,,將其添加到MAC地址表.轉(zhuǎn)發(fā) (Forwarding):在網(wǎng)絡拓撲穩(wěn)定后,端口處于轉(zhuǎn)發(fā)狀態(tài),,并開始轉(zhuǎn)發(fā)數(shù)據(jù)包.以上就是生成樹協(xié)議的常用內(nèi)容,,對比后會發(fā)現(xiàn),RSTP的收斂時間明顯低于STP,,解決了數(shù)據(jù)同步過慢的問題所在.
2 生成樹的配置 接下來通過一個具體的實例,,來完成生成樹的配置命令和配置流程的實踐,以下實驗我們將把Switch1(三層交換)配置成根橋,,將Switch2(二層交換)配置為備份根橋,,實驗拓撲結構如下圖:
判斷根橋: 首先我們需要判斷當前的根橋是哪一個設備,我們分別在四臺交換機上執(zhí)行show spanning-tree 命令,,來查詢默認那一臺是根橋設備,,以下實驗顯示結果為Switch4是根橋設備.
Switch1# show spanning-tree // 查詢switch1是否為根橋 Switch2# show spanning-tree // 查詢switch2是否為根橋 Switch3# show spanning-tree // 查詢switch3是否為根橋 Switch4# show spanning-tree // 查詢switch4是否為根橋 VLAN0001 Spanning tree enabled protocol ieee Root ID Priority 32769 // 根橋ID的優(yōu)先級 Address 0003.E41C.0B2C // 根橋的MAC地址 This bridge is the root // 出現(xiàn)這條語句,則說明這臺是交換機根橋 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 // 網(wǎng)橋ID優(yōu)先級 Address 0003.E41C.0B2C // 網(wǎng)橋的MAC地址 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/2 Desg FWD 19 128.2 P2p Fa0/1 Desg FWD 19 128.1 P2p
指定根橋: 我們想讓Switch1(三層交換)作為根橋設備,,此時可在三層交換機上,,直接通過以下命令,更換根橋設備.
Switch1> enable Switch1# configure terminal Switch1(config)# spanning-tree vlan 1 root primary // 將本設備配置成根橋 Switch1(config)# exit Switch1# show spanning-tree // 查詢是否配置成功 VLAN0001 Spanning tree enabled protocol ieee Root ID Priority 24577 Address 0004.9A4C.052D This bridge is the root // 看到這里,,說明配置成功了 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 24577 (priority 24576 sys-id-ext 1) Address 0004.9A4C.052D Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Desg FWD 19 128.1 P2p Fa0/2 Desg FWD 19 128.2 P2p
指定備份根橋: 接下來將Switch2(二層交換)指定為備份根橋,,當Switch1出現(xiàn)故障后,Switch2將被選舉為根橋設備,,從而保證網(wǎng)絡的正常運轉(zhuǎn),,修改方式通過以下命令即可實現(xiàn).
Switch2> enable Switch2# configure terminal Switch2(config)#spanning-tree vlan 1 root secondary // 將本設備配置成根橋 Switch2(config)#exit Switch2#show spanning-tree VLAN0001 Spanning tree enabled protocol ieee Root ID Priority 24577 Address 0004.9A4C.052D Cost 19 Port 1(FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 28673 (priority 28672 sys-id-ext 1) Address 00E0.8FAC.DC89 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/2 Desg FWD 19 128.2 P2p Fa0/1 Root FWD 19 128.1 P2p
此時配置到這里,我們可以手動關閉Switch1(三層交換),,然后去查看Switch2(二層交換),,通過show spanning-tree命令,你會發(fā)現(xiàn)當三層交換機關機的時候,,二層交換機默認變成了根橋,,頂替了Switch1的工作,,當Switch1啟動后,默認會將Switch1再次恢復成根橋.
3 配置端口聚合 在我們的實際生產(chǎn)環(huán)境中,,常常將交換機之間用多條鏈路連接起來,,以獲得更高的傳輸能力和網(wǎng)絡性能,但根據(jù)之前的生成樹協(xié)議,,當交換機之間有冗余鏈路時,,實際工作的鏈路只有一條,也就是說生成樹協(xié)議阻礙了網(wǎng)絡傳輸能力的提高.
為了解決生成樹協(xié)議的傳輸能力的不足,,出現(xiàn)了一種名為端口聚合的技術,,它將多條物理鏈路組合成一條邏輯線路,實現(xiàn)鏈路帶寬的增加,,且還具有冗余作用,,當其中部分鏈路出現(xiàn)故障時,其他鏈路還可以繼續(xù)傳輸數(shù)據(jù).
但是并不是所有的端口都可以任意聚合,,端口聚合需要滿足以下條件.
聚合的端口配置需要相同,,包括端口速率和傳輸介質(zhì)等. 聚合的端口必須屬于同一個VLAN,也就是不許再一個虛擬局域網(wǎng)中. 聚合的端口類型必須相同,,二層端口只能二層聚合,三層端口只能三層聚合. 端口聚合形成的邏輯端口稱為聚合端口,,端口聚合后原來端口的屬性就會被聚合端口的屬性所覆蓋,,也不能在源端口上做任何配置,實現(xiàn)端口聚合后,,即使網(wǎng)絡鏈路出現(xiàn)故障,,只要不是所有鏈路都故障,網(wǎng)絡還是可以繼續(xù)運行的,,只不過網(wǎng)絡傳輸速度會降低而已.
下面將用一個具體的實例講解端口聚合的配置方法和配置過程,,包括創(chuàng)建聚合端口,配置聚合端口的工作方式和配置負載平衡,,首先分別創(chuàng)建兩個三層交換機,,并通過網(wǎng)線fa0/1-4相連,拓撲圖如下:
創(chuàng)建 聚合端口: 在兩臺交換機上分別創(chuàng)建聚合端口,,且兩臺交換機端口要一致.
#----在Switch1上操作------------------------- Switch1(config)#interface port-channel 1 // 創(chuàng)建端口號為1的聚合端口(Switch1) Switch1(config-if)#exit #----在Switch2上操作------------------------- Switch2(config)#interface port-channel 1 Switch2(config-if)#exit
添加 聚合端口: 將圖中的fa0/1-4端口加入到聚合端口中,,且兩臺交換機都需要配置.
#----在Switch1上操作------------------------- Switch1(config)# interface range fa0/1-4 // 選擇配置聚合的端口范圍 Switch1(config-if-range)# channel-group 1 mode on // 將所選端口加入到1號聚合,并啟動 #----在Switch2上操作------------------------- Switch2(config)# interface range fa0/1-4 Switch2(config-if-range)# channel-group 1 mode on
配置負載平衡: 接下來分別在,,交換機Switch1和交換機Switch2上配置根據(jù)源MAC地址的負載平衡.
#----在Switch1上操作------------------------- Switch1(config)# port-channel load-balance src-mac // 配置負載平衡模式為src-mac #----在Switch2上操作------------------------- Switch2(config)# port-channel load-balance src-mac
配置 聚合端口: 繼續(xù)配置聚合端口屬性,,在交換機Switch2上配置聚合的屬性.
#----在Switch2上操作------------------------- Switch2(config)# interface port-channel 1 // 選擇聚合端口 Switch2(config-if)# switchport mode trunk // 配置聚合端口工作模式為Trunk
查詢是否生效: 最后通過使用show etherchannel summary命令,查詢聚合情況,,兩臺交換機都可查詢到.
Switch1# show etherchannel summary Flags: D - down P - in port-channel I - stand-alone s - suspended H - Hot-standby (LACP only) R - Layer3 S - Layer2 U - in use f - failed to allocate aggregator u - unsuitable for bundling w - waiting to be aggregated d - default port Number of channel-groups in use: 1 Number of aggregators: 1 Group Port-channel Protocol Ports // 四個端口都加入了聚合鏈路中 ------ ------------- ----------- ---------------------------------------------- 1 Po1(SU) - Fa0/1(P) Fa0/2(P) Fa0/3(P) Fa0/4(P) // 這里顯示
根據(jù)上面的返回信息可以看到,,fa0/1,,fa0/2,fa0/3,,fa0/4都加入到了聚合端口1,,使用相同的命令也可以查詢到二號交換機的配置情況.
4 配置端口安全 在實際的生產(chǎn)環(huán)境中,對于有較高安全要求的設備,,可以使用端口安全技術(Port Security)來提高網(wǎng)絡的安全性,,端口安全技術可在接入層驗證接入設備,防止未經(jīng)允許的設備接入到網(wǎng)絡中,,還可以限制端口接入的設備數(shù)量,,防止過多設備接入網(wǎng)絡,影響網(wǎng)絡速率.
配置端口安全有兩種,,動態(tài)綁定
和靜態(tài)綁定
動態(tài)綁定 :該方法是配置端口安全最簡單的方法,,在一個已經(jīng)啟用的端口上配置動態(tài)綁定后,可以讓交換機自動綁定最先接入的規(guī)定數(shù)量的設備,,該方法也是最常用的一種綁定方式.靜態(tài)綁定 :動態(tài)綁定時,,一旦交換機重啟,首先接入交換機的設備可用會發(fā)生變化,,為保證安全性,,可以根據(jù)MAC地址或IP地址指定可接入網(wǎng)絡的設備.接下來看一個具體的實例,來實現(xiàn)端口安全的配置,,包括端口綁定端口違規(guī)的處理等,,實驗拓撲圖參數(shù)如下:
啟用端口安全 : 配置交換機Switch0啟用fa0/1端口,配置端口時應先關閉端口,,否則會報錯誤.
Switch0(config)# interface fa0/1 // 選擇1號端口 Switch0(config-if)# shutdown // 先關閉端口,,防止沖突 Switch0(config-if)# switchport mode access // 配置端口工作模式為Trunk Switch0(config-if)# switchport port-security // 啟用端口安全 Switch0(config-if)# no shutdown // 開啟端口
配置靜態(tài)地址: 靜態(tài)指定允許接入的設備的MAC地址,首先要知道MAC地址是多少.
C:\>arp -a // 首先查詢到兩臺機器MAC地址是多少 PC0 0001.4272.5EE7 PC1 00D0.589B.0C35
#----綁定MAC地址列表----------------------------- Switch0(config)# interface fa0/1 // 選擇配置端口 Switch0(config-if)# switchport port-security maximum 2 // 配置最大允許2臺設備接入 Switch0(config-if)# switchport port-security mac-address 0001.4272.5EE7 // 綁定MAC地址 Switch0(config-if)# switchport port-security mac-address 00D0.589B.0C35 Switch0(config-if)# switchport port-security violation shutdown // 配置違規(guī)后關閉指定端口 Switch0(config-if)# no shutdown // 啟動這些端口 Switch0(config-if)# exit
#----查詢綁定MAC地址列表------------------------- Switch0# show port-security address // 查詢綁定的MAC地址列表 Secure Mac Address Table ------------------------------------------------------------------------------- Vlan Mac Address Type Ports Remaining Age (mins) ---- ----------- ---- ----- ------------- 1 00D0.589B.0C35 SecureConfigured FastEthernet0/1 - // 綁定的MAC地址 1 0001.4272.5EE7 SecureConfigured FastEthernet0/1 - ------------------------------------------------------------------------------ Total Addresses in System (excluding one mac per port) : 1 Max Addresses limit in System (excluding one mac per port) : 1024
配置動態(tài)地址: 動態(tài)分配接入設備的MAC地址,,此配置無需綁定MAC地址,,會接入最先訪問的主機MAC地址.
Switch0(config)# interface fa0/1 // 選擇指定端口 Switch0(config-if)# switchport port-security maximum 2 // 配置最大接入MAC地址為2 Switch0(config-if)# switchport port-security mac-address sticky // 自動獲取接入設備 Switch0(config-if)# switchport port-security violation shutdown // 對違規(guī)設備拒絕服務 Switch0(config-if)# no shutdown // 啟動這些端口 Switch0(config-if)# exit
最后查詢結果: 查看配置結果以及分配情況,使用show port-security interface fa0/1
命令,,查看fa0/1端口的配置結果.
Switch0# show port-security interface fa0/1 // 查看端口fa0/1的接入情況 Port Security : Enabled // 端口安全是否啟用 Port Status : Secure-up // 端口狀態(tài) Violation Mode : Shutdown // 違規(guī)端口的處理方式 Aging Time : 0 mins Aging Type : Absolute SecureStatic Address Aging : Disabled Maximum MAC Addresses : 2 // 允許接入的最大設備 Total MAC Addresses : 2 // 當前接入的設備數(shù)量 Configured MAC Addresses : 2 // 靜態(tài)配置的MAC地址數(shù)量 Sticky MAC Addresses : 0 // 動態(tài)配置的MAC地址數(shù)量 Last Source Address:Vlan : 0000.0000.0000:0 // 標注出違規(guī)設備的MAC地址 Security Violation Count : 0 // 安全違規(guī)計數(shù)器
完成上方的配置后,,手動在Switch0交換機上新添加一個PC2主機,則一切正常,,而如果在Hub集線器上添加一個PC3主機,,那么鏈路將觸發(fā)違規(guī)動作,如果此時使用show port-security interface fa0/1
命令查詢會發(fā)現(xiàn),,Security Violation Count:1安全違規(guī)計數(shù)變成了1.
如果更換了主機設備,,這里通過更改PC1主機的MAC地址來模擬設備的更換,然后再測試會發(fā)現(xiàn)Last Source Address:Vlan這一個選項,,會具體的標注出違規(guī)設備的MAC地址.