BACnet標(biāo)準(zhǔn)已成為我國(guó)智能建筑的國(guó)家標(biāo)準(zhǔn),但我國(guó)樓宇自控系統(tǒng)的發(fā)展現(xiàn)狀與國(guó)際標(biāo)準(zhǔn)仍有很大差距。一是非ISO標(biāo)準(zhǔn)的應(yīng)用遠(yuǎn)大于BACnet標(biāo)準(zhǔn)就應(yīng)用;二是在工程應(yīng)用上,即使采用BACnet標(biāo)準(zhǔn),也基本上是全部引進(jìn)國(guó)外的產(chǎn)品和技術(shù),嚴(yán)重影響和制約著我國(guó)樓宇自控行業(yè)的發(fā)展。海思投入巨資研發(fā)Bacnet技術(shù)產(chǎn)品,正是基于海思“自主創(chuàng)新,產(chǎn)業(yè)報(bào)國(guó)”的宗旨,為樓宇自控系統(tǒng)解決方案的國(guó)產(chǎn)化增添新的動(dòng)力。
MS/TP協(xié)議是BACnet標(biāo)準(zhǔn)中所特有的,實(shí)現(xiàn)MS/TP協(xié)議對(duì)于推廣BACnet標(biāo)準(zhǔn)有著重要作用和深遠(yuǎn)影響。
作為Bacnet協(xié)議中用于現(xiàn)場(chǎng)設(shè)備通信的Bacnet MS/TP總線通信協(xié)議,是智能建筑系統(tǒng)集成技術(shù)中的一個(gè)十分重要的應(yīng)用。本文將對(duì)MSTP協(xié)議作簡(jiǎn)要介紹,并對(duì)MSTP通信配置作出說明,供海思員工學(xué)習(xí)、參考。
MSTP配置 (多生成樹)
一、什么是MSTP 當(dāng)前和STP相關(guān)的協(xié)議有:IEEE 802.1D(STP),802.1W(RSTP),802.1(MSTP)。其中802.1D是最早關(guān)于STP的標(biāo)準(zhǔn)。RSTP(Rapid Spanning Tree Protocol)是STP的擴(kuò)展,其主要特點(diǎn)是增加了端口狀態(tài)快速切換的機(jī)制,能夠?qū)崿F(xiàn)網(wǎng)絡(luò)拓?fù)涞目焖俎D(zhuǎn)換。
一、什么是MSTP
當(dāng)前和STP相關(guān)的協(xié)議有:IEEE 802.1D(STP),802.1W(RSTP),802.1(MSTP)。其中802.1D是最早關(guān)于STP的標(biāo)準(zhǔn)。RSTP(Rapid Spanning Tree Protocol)是STP的擴(kuò)展,其主要特點(diǎn)是增加了端口狀態(tài)快速切換的機(jī)制,能夠?qū)崿F(xiàn)網(wǎng)絡(luò)拓?fù)涞目焖俎D(zhuǎn)換。MSTP(Multiple Spanning Tree Protocol)提出了多生成樹的概念,可以把不同的vlan映射到不同的生成樹,從而達(dá)到網(wǎng)絡(luò)負(fù)載均衡的目的。
1.1 配置MSTP
1.1.1 設(shè)置模式
STP分為CST,MST兩種模式,用戶可以根據(jù)需要選擇合理的模式:
CST模式
CST(Common Spanning Tree)整個(gè)網(wǎng)絡(luò)形成一顆生成樹,STP基于端口設(shè)置狀態(tài)。如STP設(shè)置端口阻塞,則所有VLAN在該端口上都處于阻塞狀態(tài)。該模式的特點(diǎn)是配置、實(shí)現(xiàn) 簡(jiǎn)單,適合小型網(wǎng)絡(luò)。缺點(diǎn)是沒有vlan的概念,當(dāng)用戶VLAN的拓?fù)渑渲貌灰粯拥臅r(shí)候,可能造成部分VLAN不能正常通信。
MST模式
MST(Multiple Spanning Tree)是對(duì)CST的擴(kuò)展,其有如下特點(diǎn):
可以把多臺(tái)交換機(jī)虛擬成一個(gè)MST域,該MST域類似CST的一個(gè)橋,和CST橋互通。
在MST域內(nèi),可以把具有相同拓?fù)涞亩鄠€(gè)vlan映射到一個(gè)生成樹實(shí)例,即MSTI(Multiple Spanning Tree Instance)。每個(gè)MSTI在域內(nèi)可以有不同的拓?fù)洌瑢?shí)現(xiàn)流量均衡的目的。
配置生成樹模式的步驟如下:
步驟1 進(jìn)入spanning-tree配置模式并配置生成樹模式
步驟2 spanning-tree mode [cst | mst] 選擇生成樹模式
步驟3 show spanning-tree mst 顯示MSTP配置, mst-instance為0時(shí)候顯示的是IST的信息,其他的為MSTI的參數(shù)config spanning-tree
12.1.2 設(shè)置快速特性
RSTP引入了快速狀態(tài)轉(zhuǎn)換的機(jī)制,合理的配置端口屬性,可以達(dá)到網(wǎng)絡(luò)快速轉(zhuǎn)換。
Edge屬性
處于網(wǎng)絡(luò)邊緣的交換機(jī)一般與終端設(shè)備相連,如PC機(jī)、工作站。把和這些終端設(shè)備相連的端口配置成為Edge端口,可以實(shí)現(xiàn)端口狀態(tài)的快速轉(zhuǎn)換,而不需要DiscardingàLearningàForwarding的轉(zhuǎn)換過程。
Edge屬性配置步驟
步驟1 config spanning-tree 進(jìn)入spanning-treespanning-tree配置模式
步驟2 Spanning-tree mode mst 配置mst工作模式
步驟3 spanning-tree port [edge] [yes | no] {}*1 配置交換機(jī)的指定端口是否參與指定域的STP協(xié)議計(jì)算,缺省為參與計(jì)算
步驟4 show spanning-tree mst 顯示MSTP配置, mst-instance為0時(shí)候顯示的是IST的信息,其他的為MSTI的參數(shù)
P2P屬性
交換機(jī)端口和交換機(jī)端口直連,則該端口就是P2P接口。RSTP針對(duì)P2P接口采用協(xié)商機(jī)制,可以實(shí)現(xiàn)端口狀態(tài)的快速轉(zhuǎn)換(DiscardingàForwarding)。
P2P屬性配置步驟
步驟1 config spanning-tree 進(jìn)入spanning-tree配置模式
步驟2 spanning-tree port [none-stp] [yes | no] {}*1 配置交換機(jī)的指定端口是否參與指定域的STP協(xié)議計(jì)算,缺省為參與計(jì)算
步驟3 show spanning-tree mst 顯示MSTP配置, mst-instance為0時(shí)候顯示的是IST的信息,其他的為MSTI的參數(shù)
/*如果端口沒有和共享介質(zhì)相連,盡量把端口設(shè)置為P2P屬性。*/
1.1.3 設(shè)置時(shí)間參數(shù)
MST有四個(gè)可以配置的時(shí)間參數(shù):
Hello-time:STP報(bào)文發(fā)送的間隔;
Forward-delay:端口處于從DiscardingàLearning,LearningàForwarding狀態(tài)的時(shí)間
Maximum-age:報(bào)文最大的生存周期;
Max-hops:MST域內(nèi)報(bào)文的最大生存周期。
下面說明MST模式接口的時(shí)間參數(shù)配置:
設(shè)置時(shí)間參數(shù)配置步驟
步驟1 config spanning-tree 進(jìn)入spanning-tree配置模式
步驟2 Spanning-tree mode mst 配置mst工作模式
步驟3 spanning-tree [hello-time] {}*1 配置當(dāng)本交換機(jī)被選為根橋時(shí)發(fā)送BPDU的時(shí)間間隔,單位為秒, 缺省為2。hello-time必須小于等于forward-delay – 2
步驟4 spanning-tree [forward-delay] {}*1 設(shè)置當(dāng)本交換機(jī)被選為根橋時(shí)端口狀態(tài)切換的時(shí)間間隔,單位為秒, 缺省為15。forward-delay的時(shí)間必須大于等于hello-time + 2
步驟5 spanning-tree [maximum-age] {}*1 配置交換機(jī)在指定域上的BPDU報(bào)文老化的最長(zhǎng)時(shí)間間隔,單位為秒,缺省為20,收到超過這個(gè)時(shí)間的BPDU報(bào)文,就直接丟棄。
maximum-age的時(shí)間必須大于等于2 *(hello-time + 1),小于等于2 * (forward-delay–1)
步驟6 spanning-tree max-hops mst 配置橋Forward delay 參數(shù)
步驟7 show spanning-tree mst 顯示MSTP配置, mst-instance為0時(shí)候顯示的是IST的信息,其他的為MSTI的參數(shù)
1.1.4 設(shè)置橋?qū)嵗齼?yōu)先級(jí)
用戶可以手動(dòng)配置橋優(yōu)先級(jí)對(duì)網(wǎng)絡(luò)進(jìn)行合理規(guī)劃。優(yōu)先級(jí)最高的橋(數(shù)值越小)就是網(wǎng)絡(luò)的根橋。當(dāng)兩條鏈路到根橋的距離一樣的時(shí)候,選擇指定橋優(yōu)先級(jí)高的路徑。配置交換機(jī)在指定MSTID上的MSTI橋優(yōu)先級(jí),缺省為32768, MSTI橋優(yōu)先級(jí)必須是4096的倍數(shù)。
橋?qū)嵗齼?yōu)先級(jí)配置步驟
步驟1 config spanning-tree 進(jìn)入spanning-tree配置模式并配置生成樹模式
步驟2 Spanning-tree mode mst 配置mst工作模式
步驟3 spanning-tree priority mst 配置橋?qū)嵗齼?yōu)先級(jí)
步驟4 exit 退出spanning-tree 配置模式
步驟5 show spanning-tree mst 顯示MSTP配置, mst-instance為0時(shí)候顯示的是IST的信息,其他的為MSTI的參數(shù)
1.1.5 設(shè)置端口優(yōu)先級(jí)
當(dāng)兩條鏈路到根橋的距離一樣,指定橋優(yōu)先級(jí)一樣,根據(jù)端口優(yōu)先級(jí)決定拓?fù)浣Y(jié)構(gòu)。
端口優(yōu)先級(jí)配置步驟
步驟1 config spanning-tree 進(jìn)入spanning-tree配置模式并配置生成樹模式
步驟2 Spanning-tree mode mst 配置mst工作模式
步驟3 spanning-tree port priority mst 配置端口的優(yōu)先級(jí)
步驟4 exit 退出spanning-tree 配置模式
步驟5 show spanning-tree mst 顯示MSTP配置, mst-instance為0時(shí)候顯示的是IST的信息,其他的為MSTI的參數(shù)
1.1.6 設(shè)置端口路徑
在根橋選定以后,端口路徑對(duì)網(wǎng)絡(luò)拓?fù)溆兄卮笠饬x。到根的距離越小,就越有可能成為通路。選擇好根橋以后,根據(jù)端口速率等情況,合理的配置端口路徑,可以形成理想的拓?fù)洹?/span>
端口pathcost配置步驟
步驟1 config spanning-tree 進(jìn)入spanning-tree配置模式并配置生成樹模式
步驟2 Spanning-tree mode mst 配置mst工作模式
步驟3 spanning-tree port path-cost [auto | ] mst 配置端口的pathcost
步驟4 exit 退出spanning-tree 配置模式
步驟5 show spanning-tree mst 顯示MSTP配置, mst-instance為0時(shí)候顯示的是IST的信息,其他的為MSTI的參數(shù)
1.1.7 設(shè)置端口non-stp特性
MSTP可以將某些端口設(shè)置為不參與協(xié)議計(jì)算的端口,其方法是設(shè)置non-stp屬性。
non-stp屬性配置步驟
步驟1 config spanning-tree 進(jìn)入spanning-tree配置模式并配置生成樹模式
步驟2 spanning-tree port [none-stp] [yes|no] {}*1 配置端口是否參加STP運(yùn)算,端口不參加STP運(yùn)算后,處于Forward狀態(tài)。
步驟3 show spanning-tree mst 顯示MSTP配置, mst-instance為0時(shí)候顯示的是IST的信息,其他的為MSTI的參數(shù)
1.1.8 設(shè)置MSTP域
屬于MSTP同一個(gè)域必須滿足:在設(shè)備之間有物理連接的情況下,name,revision, Vlan與MSTI的映射關(guān)系完全一致。
MSTP域配置步驟
步驟1 config spanning-tree 進(jìn)入spanning-tree配置模式
步驟2 Spanning-tree mode mst 配置mst工作模式
步驟3 spanning-tree mst name 配置MSTP域標(biāo)識(shí)符名稱
步驟4 spanning-tree mst revision 配置MSTP域標(biāo)識(shí)符版本
步驟5 spanning-tree map vlan mst 配置MSTP域與vlans的映射
步驟6 exit 退出spanning-tree 配置模式
步驟7 show spanning-tree mst 顯示MSTP配置, mst-instance為0時(shí)候顯示的是IST的信息,其他的為MSTI的參數(shù)
1.1.9 設(shè)置MSTP使能
接口配置
MSTP在只二層接口上起作用,包括普通以太網(wǎng)和Trunk端口,以太網(wǎng)和Trunk缺省都為二層接口。當(dāng)用戶希望使能某以太網(wǎng)或trunk的二層轉(zhuǎn)發(fā)功能,以使其參與生成樹計(jì)算時(shí),可以進(jìn)行以下配置:
MSTP在二層接口上的配置步驟
步驟1 interface ethernet 進(jìn)入以太網(wǎng)接口
步驟2 forward l2 enable 禁止該接口的二層轉(zhuǎn)發(fā)功能
步驟3 exit 退出以太網(wǎng)配置模式
VLAN配置
MST模式涉及到VLAN。MSTP關(guān)心的是VLAN的二層屬性;而SuperVlan,基于協(xié)議的Vlan等都不是MSTP考慮的情況。
MST在VLAN上的配置步驟
步驟1 interface vlan 進(jìn)入vlan配置模式
步驟2 add port untagged 將端口以u(píng)ntagged的方式加入VLAN
步驟3 exit 退出VLAN配置模式
使能MSTP
使能MSTP的配置步驟
步驟1 config spanning-tree 進(jìn)入spanning-tree配置模式
步驟2 Spanning-tree mode mst 配置mst工作模式
步驟3 Spanning-tree enable 使能MSTP
步驟4 exit 退出spanning-tree 配置模式
步驟5 show spanning-tree mst 顯示MSTP配置, mst-instance為0時(shí)候顯示的是IST的信息,其他的為MSTI的參數(shù)
配置案列:
案例描述
本例主要為交換機(jī)配置MSTP域。在三臺(tái)交換機(jī)上分別創(chuàng)建單MST Region,并在其中創(chuàng)建3個(gè)Instance。通過配置實(shí)例優(yōu)先級(jí)使得在Instance1 中bridge1(MAC: 0005:3b80:03cf)為根橋,Instance 2中bridge2(MAC: 0005.3b81.1278)為根橋,在Instance3中 bridge3(MAC: 2222:2222:2222)為根橋。
MSTP將整個(gè)網(wǎng)絡(luò)劃分為多個(gè)域(不同的域用不同的name和revision區(qū)分),每個(gè)域中最多可包含64個(gè)實(shí)例,每個(gè)實(shí)例內(nèi)部生成一棵生成樹;每個(gè) 實(shí)例又可包含多個(gè)VLAN,多個(gè)vlan映射到一個(gè)Spaning Tree,所有的VLAN缺省都在Instance 0中。
在MST配置中,若配置最后帶Instance ,生成樹改變就只在特定的Instance中有效,對(duì)其它Instance的生成樹沒有影響;缺省情況下,改變參數(shù)只對(duì)該Region(Instance 0)中的生成樹計(jì)算有影響。
在Bridge1上的配置步驟
步驟1 創(chuàng)建vlan,并添加端口
Harbour (config )#interface vlan vlan10 10
Harbour (config -vlan-vlan10)#add port 2/1-5 tag
Harbour (config -vlan-vlan10)#exit
Harbour (config )#interface vlan vlan20 20
Harbour (config -vlan-vlan20)#add port 2/1-5 tag
Harbour (config -vlan-vlan20)#exit
Harbour (config )#interface vlan vlan30 30
Harbour (config -vlan-vlan30)#add port 2/1-5 tag
Harbour (config -vlan-vlan30)#exit
步驟2 進(jìn)入config -mstp配置模式
Harbour (config ) # config spanning-tree
Harbour(config -cst) # spanning-tree mode mst
步驟3 創(chuàng)建一個(gè)mst region
Harbour(config -mst)# spanning-tree mst name region2
Harbour(config -mst)# spanning-tree mst revision 2
步驟4 使能MSTP
Harbour(config -mst)# spanning-tree enable
步驟5 創(chuàng)建三個(gè)實(shí)例
Harbour(config -mst)# spanning-tree map vlan 10-19 mst 1
Harbour(config -mst)# spanning-tree map vlan 20-29 mst 2
Harbour(config -mst)# spanning-tree map vlan 30-39 mst 3
步驟6 配置實(shí)例優(yōu)先級(jí)
Harbour(config -mst)# spanning-tree priority 4096 mst 1
Harbour(config -mst)# spanning-tree priority 32768 mst 2
Harbour(config -mst)# spanning-tree priority 61440 mst 3
在Bridge2上的配置步驟
步驟1 創(chuàng)建vlan,并添加端口
Harbour (config )#interface vlan vlan10 10
Harbour (config -vlan-vlan10)#add port 2/1-5 tag
Harbour (config -vlan-vlan10)#exit
Harbour (config )#interface vlan vlan20 20
Harbour (config -vlan-vlan20)#add port 2/1-5 tag
Harbour (config -vlan-vlan20)#exit
Harbour (config )#interface vlan vlan30 30
Harbour (config -vlan-vlan30)#add port 2/1-5 tag
Harbour (config -vlan-vlan30)#exit
步驟2 進(jìn)入config -mstp配置模式 Harbou
Harbour (config -vlan-vlan20)#exit
Harbour (config )#interface vlan vlan30 30
Harbour (config -vlan-vlan30)#add port 2/1-5 tag
Harbour (config -vlan-vlan30)#exit
步驟2 進(jìn)入config -mstp配置模式
Harbour (config ) # config spanning-tree
Harbour(config -cst) # spanning-tree mode mst
步驟3 創(chuàng)建一個(gè)mst region
Harbour(config -mst)# spanning-tree mst name region2
Harbour(config -mst)# spanning-tree mst revision 2
步驟4 使能MSTP
Harbour(config -mst)# spanning-tree enable
步驟5 創(chuàng)建三個(gè)實(shí)例
Harbour(config -mst)# spanning-tree map vlan 10-19 mst 1
Harbour(config -mst)# spanning-tree map vlan 20-29 mst 2
Harbour(config -mst)# spanning-tree map vlan 30-39 mst 3
步驟6 配置實(shí)例優(yōu)先級(jí)
Harbour(config -mst)# spanning-tree priority 61440 mst 1
Harbour(config -mst)# spanning-tree priority 4096 mst 2
Harbour(config -mst)# spanning-tree priority 32768 mst 3
在Bridge3上的配置步驟
步驟1 創(chuàng)建vlan,并添加端口
Harbour (config )#interface vlan vlan10 10
Harbour (config -vlan-vlan10)#add port 2/1-5 tag
Harbour (config -vlan-vlan10)#exit
Harbour (config )#interface vlan vlan20 20
Harbour (config -vlan-vlan20)#add port 2/1-5 tag
Harbour (config -vlan-vlan20)#exit
Harbour (config )#interface vlan vlan30 30
Harbour (config -vlan-vlan30)#add port 2/1-5 tag
Harbour (config -vlan-vlan30)#exit
步驟2 進(jìn)入config -mstp配置模式
Harbour (config ) # config spanning-tree
Harbour(config -cst) # spanning-tree mode mst
步驟3 創(chuàng)建一個(gè)mst region
Harbour(config -mst)# spanning-tree mst name region2
Harbour(config -mst)# spanning-tree mst revision 2
步驟4 使能MSTP
Harbour(config -mst)# spanning-tree enable
步驟5 創(chuàng)建三個(gè)實(shí)例
Harbour(config -mst)# spanning-tree map vlan 10-19 mst 1
Harbour(config -mst)# spanning-tree map vlan 20-29 mst 2
Harbour(config -mst)# spanning-tree map vlan 30-39 mst 3
步驟6 配置實(shí)例優(yōu)先級(jí)
Harbour(config -mst)# spanning-tree priority 32768 mst 1
Harbour(config -mst)# spanning-tree priority 61440 mst 2
Harbour(config -mst)# spanning-tree priority 4096 mst 3
分別顯示三個(gè)交換機(jī)的配置結(jié)果:
brideg1上顯示結(jié)果:
Harbour(config -mst)# sh sp mst