一.生成樹的概述 生成樹協(xié)議工作在第二層,,通過一定技術(shù)將網(wǎng)絡(luò)的結(jié)構(gòu)變成樹形結(jié)構(gòu)。原因【防止網(wǎng)絡(luò)中出現(xiàn)環(huán)路】,;出現(xiàn)環(huán)形的網(wǎng)絡(luò)拓?fù)鋾r存在的問題【信息無法到達(dá)對方,,信息在網(wǎng)絡(luò)中始終循環(huán)】 參考1: 參考2:https://blog.51cto.com/dengqi/1253320 二.生成樹網(wǎng)絡(luò)中的接口類型【注意的問題:所有的端口都是需要進行學(xué)習(xí){優(yōu)先級,MAC,,帶寬}】 (1)根端口:【首先必須找到根橋,,根橋所對應(yīng)的端口均為根端口】【由優(yōu)先級<0-61440> 和MAC地址來決定】【優(yōu)先級0是最高級別,61440是最低級別的,,4096為倍數(shù),;即0,,4096,8192.......】 (2)指定端口:【根橋上的所有端口均為指定端口】 (3)阻塞端口:【根據(jù)MAC地址和到達(dá)根橋花費值來決定】 (4)可以通過修改端口的優(yōu)先級,,來調(diào)整該端口是指定端口還是阻塞端口,;<0-240>的參數(shù),0的優(yōu)先級最低,,240的優(yōu)先級最高,;是以16位倍數(shù)進行調(diào)整,即0,16,32......; 三.生成樹的基礎(chǔ)實例 分析: 1-由兩臺交換機和4臺PC機構(gòu)成的一個簡單的局域網(wǎng),; 2-兩臺交換機之間由兩條鏈路連接在一起,;即在兩臺交換機之間形成了一個環(huán)路;其中的一個接口將處于監(jiān)聽狀態(tài),;則該鏈路不參與數(shù)據(jù)的傳輸,,只作為備份的鏈路存在; 3-看到在兩條鏈路上的四個節(jié)點之間,,有一個節(jié)點處于監(jiān)聽狀態(tài)【在交換機上默認(rèn)啟動了生成樹協(xié)議】 4-所有PC機在同一個VLAN下,,所有只規(guī)劃了192.168.10.0/24的C類標(biāo)準(zhǔn)網(wǎng)絡(luò); 5-在交換的網(wǎng)絡(luò)中,,每個VLAN都能夠構(gòu)成一個生產(chǎn)樹,;即有自己的樹根、根端口,、指定端口和阻塞端口等,; 驗證:四臺PC機在同一個局域網(wǎng)中,在默認(rèn)情況下,,可以相互通信,; 實例1:在沒有關(guān)閉生成樹協(xié)議的情況下,PC0到PC1【沒有經(jīng)過環(huán)路,,是SW1上的設(shè)備】 C:\>ping 192.168.10.2 Reply from 192.168.10.2: bytes=32 time=5ms TTL=128 Reply from 192.168.10.2: bytes=32 time<1ms TTL=128 Reply from 192.168.10.2: bytes=32 time<1ms TTL=128 Reply from 192.168.10.2: bytes=32 time<1ms TTL=128 實例2:在沒有關(guān)閉生成樹協(xié)議的情況下,,PC0到PC2【經(jīng)過環(huán)路,是SW1到sw2】 C:\>ping 192.168.10.3 Reply from 192.168.10.3: bytes=32 time=1ms TTL=128 Reply from 192.168.10.3: bytes=32 time<1ms TTL=128 Reply from 192.168.10.3: bytes=32 time<1ms TTL=128 Reply from 192.168.10.3: bytes=32 time<1ms TTL=128 實例3:在關(guān)閉生成樹協(xié)議的情況下,,PC0到PC1【沒有經(jīng)過環(huán)路,,是SW1上的設(shè)備】 (1)關(guān)閉sw1的生成樹協(xié)議 Switch>en Switch#conf t Switch(config)#host sw1 sw1(config)#no spanning-tree mode //關(guān)閉生成樹 sw1(config)#no spanning-tree vlan 1 //關(guān)閉VLAN1的生成樹協(xié)議 (2)關(guān)閉sw2的生成樹協(xié)議 Switch>en Switch#conf t Switch(config)#host sw1 Sw2(config)#no spanning-tree mode //關(guān)閉生成樹 Sw2(config)#no spanning-tree vlan 1 //關(guān)閉VLAN1的生成樹協(xié)議 (3)現(xiàn)象:兩臺交換機之間鏈路的監(jiān)聽端口不存在了;即存在環(huán)路,; C:\>ping 192.168.10.4 Request timed out. Reply from 192.168.10.4: bytes=32 time=23ms TTL=128 Request timed out. Request timed out. PC0與PC4【跨交換機之間的連接就出現(xiàn)了斷點,;是由于網(wǎng)絡(luò)中存在環(huán)路的原因?!?/span> (4)結(jié)論,,當(dāng)網(wǎng)絡(luò)中存在環(huán)路時,無論是跨交換機通信還是不跨交換機通信,,網(wǎng)絡(luò)設(shè)置之間的連接都將存在一定的問題,,有不規(guī)則的斷點存在,。 四.根橋的選取 1.根橋的選舉: (1)選擇方法1:根據(jù)優(yōu)先級(0~61440)來選擇,優(yōu)先級最小的為根,;若優(yōu)先級相同,,則看交換機背板的基本MAC地址,MAC地址最小的為根,,MAC最大的就必定有一個端口為阻塞端口,; 注意:交換機的背板MAC地址的查看方法【sw1#show version】 (2)選取方法2:通過直接修改交換機設(shè)備的優(yōu)先級,來決定生成樹的根,;默認(rèn)情況下,所有交換機的優(yōu)先級都是【32768】,;由于默認(rèn)情況下所有交換機上只有一個VLAN1,所以在查看生成樹信息時,,只能看到VLAN1優(yōu)先級信息。命令: sw1(config)#spanning-tree vlan 1 priority 0 //設(shè)置VLAN1的優(yōu)先級為0,,0為最高優(yōu)先級,; (3)選取方法3:通過命令直接定義主根和副根; 定義主根的命令:spanning-tree vlan * root primary //配置為主根 定義副根的命令:spanning-tree vlan * root se //配置為福根 實例1:正常狀態(tài)下的根橋選擇實例【即未對交換機做任何的配置】 如何來確定SW1是否為根橋,?通過【sw1#show spanning-tree】命令后,,查看在結(jié)果中是否存在【This bridge is the root】,如果有存在,,則SW1是根橋,,否則,SW1不是根橋,; sw1#show spanning-tree //查看生成樹協(xié)議信息 VLAN0001 //vlan的編號信息 Spanning tree enabled protocol ieee //表示交換機使用的生成樹協(xié)議是"PVST+",這也是思科默認(rèn)的生成樹協(xié)議,。 Root ID Priority 32769 //根橋的優(yōu)先級【生成樹的默認(rèn)優(yōu)先級+VLAN的編號】 Address 0001.4237.CEAB //根橋的基本MAC地址 Cost 19 //從SW1都根橋的花費值 Hello Time 2sec Max Age 20sec Forward Delay 15sec //BPDU發(fā)送間隔默認(rèn)2秒,最大存在時間是20秒,,轉(zhuǎn)發(fā)延時是15秒,。 Bridge ID Priority 32769 //sw1的優(yōu)先級【生成樹的默認(rèn)優(yōu)先級+VLAN的編號】 Address 0030.A351.C7CE //SW1的MAC地址 Interface【接口】Role【角色】Sts【狀態(tài)】Cost【花費】 Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/4 Desg FWD 19 128.4 P2p Fa0/3 Desg FWD 19 128.3 P2p Fa0/2 Altn BLK 19 128.2 P2p Fa0/1 Root FWD 19 128.1 P2p 角色:Desg:指定端口;Root:根端口,;Altn:替換端口 狀態(tài):FWD:轉(zhuǎn)發(fā)狀態(tài),,BLK:阻塞狀態(tài),LRN:學(xué)習(xí)狀態(tài) 類型:P2P:點到點【指的是接口的類型】 花費:19【說明sw1與sw2之間的鏈路帶寬是100M】 sw2#show spanning-tree //查看生成樹協(xié)議信息 VLAN0001 //顯示VLAN1的相關(guān)生成樹的信息 Spanning tree enabled protocol ieee //表示交換機使用的生成樹協(xié)議是"PVST+",這也是思科默認(rèn)的生成樹協(xié)議,。 Root ID Priority 32769 //根橋的優(yōu)先級【生成樹的默認(rèn)優(yōu)先級+VLAN的編號】 Address 0001.4237.CEAB //根橋的基本MAC地址 This bridge is the root //指出該交換機是根橋 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec //BPDU發(fā)送間隔默認(rèn)2秒,,最大存在時間是20秒,轉(zhuǎn)發(fā)延時是15秒,。 Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) //sw1橋ID的優(yōu)先級 Address 0001.4237.CEAB //sw2的MAC地址 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20 //BPDU發(fā)送間隔默認(rèn)2秒,,最大存在時間是20秒,轉(zhuǎn)發(fā)延時是15秒,。 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- ------- Fa0/2 Desg FWD 19 128.2 P2p Fa0/3 Desg FWD 19 128.3 P2p Fa0/4 Desg FWD 19 128.4 P2p Fa0/1 Desg FWD 19 128.1 P2p sw2# 實例2:通過改變優(yōu)先級來確定SW1為VLAN1的根橋 sw1(config)#spanning-tree vlan 1 priority 0 //設(shè)置VLAN1的優(yōu)先級為0 sw1#show spanning-tree VLAN0001 Spanning tree enabled protocol ieee Root ID Priority 1 //優(yōu)先級0+VLAN的編號 Address 0030.A351.C7CE This bridge is the root //指定當(dāng)前的交換機為根交換機 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 1 (priority 0 sys-id-ext 1) Address 0030.A351.C7CE Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/4 Desg FWD 19 128.4 P2p Fa0/3 Desg FWD 19 128.3 P2p Fa0/2 Desg FWD 19 128.2 P2p Fa0/1 Desg FWD 19 128.1 P2p 實例3:通過命令來確定SW2為VLAN1的根橋 sw2(config)#spanning-tree vlan 1 root primary //指定當(dāng)前的交換機為主要根交換機 sw2#show spanning-tree VLAN0001 Spanning tree enabled protocol ieee Root ID Priority 1 //通過root primary命令后,,設(shè)備的優(yōu)先級變?yōu)? Address 0001.4237.CEAB This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 1 (priority 0 sys-id-ext 1) Address 0001.4237.CEAB 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/3 Desg FWD 19 128.3 P2p Fa0/4 Desg FWD 19 128.4 P2p Fa0/1 Desg FWD 19 128.1 P2p 實例4:根據(jù)拓?fù)鋱D完成根交換機的配置 配置要求: (1)創(chuàng)建vlan (2)將相應(yīng)的接口劃分到指定的vlan中 (3)設(shè)置trunk鏈路(8條) (4)啟用生成樹協(xié)議STP (5)配置主/副根 ①M1作為vlan2 和vlan1的主根,,vlan3的副根 ②M2作為vlan3 的主根,vlan2和vlan1的副根 (6)配置實例 ①spanning-tree vlan * root primary //配置為主根 ②spanning-tree vlan * root se //配置為福根 (7)查看配置情況【show spanning-tree】 配置過程: 1-創(chuàng)建VLAN信息及設(shè)備的主機名 Switch>en Switch#conf t Switch(config)#vlan 2 Switch(config-vlan)#vlan 3 Switch(config-vlan)#hostname S1 2-將接口劃分到指定的VLAN中 S1(config)#int f0/4 S1(config-if)#switchport mode access S1(config-if)#switchport access vlan 2 S1(config-if)#int f0/5 S1(config-if)#switchport mode access S1(config-if)#switchport access vlan 3 3-設(shè)置設(shè)備間的TRUNK鏈路 M1(config)#int range f0/1-4 M1(config-if-range)#switchport trunk encapsulation dot1q //封裝DOT1Q協(xié)議 M1(config-if-range)#switchport mode trunk //設(shè)置接口的工作模式為trunk M1(config-if-range)#switchport trunk allowed vlan 1-3 //只允許vlan1-3的信息通過該鏈路 M2(config)#int range f0/1,f0/3-4,f0/7 M2(config-if-range)#switchport trunk encapsulation dot1q M2(config-if-range)#switchport mode trunk M2(config-if-range)#switchport trunk allowed vlan 1-3 S1(config)#int range f0/1-3,f0/7 S1(config-if-range)#switchport mode trunk S1(config-if-range)#switchport trunk allowed vlan 1-3 S2(config)#int range f0/1-3,f0/6 S2(config-if-range)#switchport mode trunk S2(config-if-range)#switchport trunk allowed vlan 1-3 4-檢查VLAN的劃分情況 5-查看TRUNK鏈路的配置情況 6-啟動生成樹協(xié)議 M2(config)#spanning-tree mode pvst 7-配置主根和副根 (1)配置M1作為vlan2 和vlan1的主根,,vlan3的副根 M1(config)#spanning-tree vlan 1-2 root primary //配置M1為vlan1和vlan2的主根 M1(config)#spanning-tree vlan 3 root secondary //配置M1為vlan3的副根 (2)M2作為vlan3 的主根,,vlan2和vlan1的副根 M2(config)#spanning-tree vlan 3 root primary //配置M1為vlan3的主根 M2(config)#spanning-tree vlan 1-2 root secondary //配置M1為vlan1和vlan2的副根 8-檢查主根和副根的配置情況 9-改變端口的帶寬,從而改變端口的花費值,,觀察端口的狀態(tài),,以f0/6為例 M2(config)#int f0/6 M2(config-if)#speed 10 S2(config)#int f0/6 S2(config-if)#speed 10 說明:發(fā)現(xiàn)F0/6接口在VLAN1-3上的狀態(tài)均變成了【阻塞狀態(tài)】,且花費值變成了100,; 10-改變端口的優(yōu)先級,,觀察端口的狀態(tài)變化情況 S1(config)#int f0/1 S1(config-if)#spanning-tree vlan 1-3 port-priority 240 M1(config)#int f0/1 M1(config-if)#spanning-tree vlan 1-3 port-priority 240 說明:發(fā)現(xiàn)FO/1的優(yōu)先級變成240了; 五.最佳路徑 1.最佳路徑的選擇是根據(jù)“開銷路徑”來選擇,;【開銷路徑=路徑上各發(fā)送端口的開銷之和】【10G=2;1G=4;100M=19;10M=100】 2.阻塞端口的選擇【1.根據(jù)路由的花銷,,最大的花銷被設(shè)置阻塞端口】【如果說花銷是相同的,通過優(yōu)先級別來判斷,,優(yōu)先級別的數(shù)字越小,,則該端口被設(shè)置阻塞端口】【如果花銷相同,優(yōu)先級也相同,,MAC地址最大的被設(shè)置為阻塞端口】【當(dāng)在一個交換機上BID(橋ID)和MAC地址是相同的,,則通過兩個接口的PID號來決定,PID號最大的被設(shè)置為阻塞端口】 六.說明 STP通過以下四步使網(wǎng)絡(luò)收斂為無環(huán)拓?fù)?/span> (1)每廣播域選出唯一一個根橋 (2)每非根橋產(chǎn)生唯一一個根端口 (3)每網(wǎng)段有且只有一個指定端口 (4)既不屬于根端口也不是指定端口的端口將被阻塞,。 七.配置方法 1.通過命令直接指定主根和副根 spannning-tree vlan * root primary //指定該交換機為某個vlan的主根[通過這種方式設(shè)置的主根,,一般不會發(fā)生變化] spannning-tree vlan * root secondary //指定該交換機為某個vlan的副根[通過這種方式設(shè)置的副根,一般不會發(fā)生變化] 2.通過設(shè)置優(yōu)先級來指定主根和副根 spanning-tree vlan * priority <0~61440> //以4096的倍數(shù)設(shè)置生成樹的優(yōu)先級,,0的優(yōu)先級最高[通過這種方式設(shè)置的主根/副根,,一般不穩(wěn)定] 3.通過修改接口的speed來控制端口的狀態(tài)[阻塞、監(jiān)聽] speed [10/100/auto] 4.通過修改接口的參數(shù)來控制端口的狀態(tài)[根端口,、阻塞,、監(jiān)聽] Switch(config-if)#spanning-tree ? bpduguard Don't accept BPDUs on this interface //啟用BPDU保護功能 guard Change an interface's spanning tree guard mode //啟用根保護功能,防止其他交換機搶占根橋 link-type Specify a link type for spanning tree protocol use //設(shè)置端口的連接類型:全雙工模式端口被認(rèn)為是有點對點鏈接,;半雙工端口被認(rèn)為是有一個共享鏈接,。 portfast Enable an interface to move directly to forwarding on link up vlan VLAN Switch Spanning Tree //設(shè)置VLA下端口的優(yōu)先級別,<0~240>,0的優(yōu)先級別最低,,240的優(yōu)先級別最高,,16位倍數(shù) 八.帶寬的花費值說明 (1)10M的花費為100 (2)100M的花費為10 (3)1G的花費為4 (4)10G的花費為2 九.結(jié)論 1.根橋的選舉: (1)選擇方法1:根據(jù)優(yōu)先級(0~61440)來選擇,優(yōu)先級最小的為根,;若優(yōu)先級相同,,則看交換機背板的基本MAC地址,MAC地址最小的為根,MAC最大的就必定有一個端口為阻塞端口,; 注意:交換機的背板MAC地址的查看方法【sw1#show version】 (2)選取方法2:通過直接修改交換機設(shè)備的優(yōu)先級,,來決定生成樹的根;默認(rèn)情況下,,所有交換機的優(yōu)先級都是【32768】,;由于默認(rèn)情況下所有交換機上只有一個VLAN1,所以在查看生成樹信息時,只能看到VLAN1優(yōu)先級信息,。命令: sw1(config)#spanning-tree vlan 1 priority 0 //設(shè)置VLAN1的優(yōu)先級為0,,0為最高優(yōu)先級; (3)選取方法3:通過命令直接定義主根和副根,; 定義主根的命令:spanning-tree vlan * root primary //配置為主根 定義副根的命令:spanning-tree vlan * root secondary //配置為福根 2.根橋的所有端口都為指定端口【Desg】,;根橋所對應(yīng)的端口原則上都是根端口【Root】; 3.默認(rèn)狀態(tài)下所有的交換機均開啟生成樹協(xié)議,; 4.生成樹的作用之一是防止環(huán)路的產(chǎn)生,; 5.原則上每一個VLAN屬于一個生成樹,該生成樹的根是根據(jù)優(yōu)先級和交換機的背板MAC地址來決定,。每一個VLAN具有一個獨立的根,。也可以多個VLAN使用一個根,; 6.在設(shè)置生成樹的優(yōu)先級時,,是以4096的倍數(shù)為基礎(chǔ)進行設(shè)置【0,4096,,8192.......】,; 7.當(dāng)優(yōu)先級為0時,該交換機也不一定是根橋【如果在同一個VLAN的網(wǎng)絡(luò)中有設(shè)置某一個交換機為“primary”,,則此交換機為該VLAN的根】,; 8.在一個VLAN中可以設(shè)置主根和副根,副根只有在主根出現(xiàn)問題時才啟用,; 9.在查看生成樹配置時,,如果為根交換機將提示“this is bridge is the root”,且"ROOT ID"和“BRIDGE ID"的MAC地址是相同的,; 10.在一個VLAN中只能有一個主根和一個副根,; |
|