• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于MAPS監(jiān)控策略的FC交換機(jī)自動(dòng)化運(yùn)維方案設(shè)計(jì)

      2021-12-23 12:49:58張璇陳瑛
      微型電腦應(yīng)用 2021年12期
      關(guān)鍵詞:交換機(jī)端口運(yùn)維

      張璇, 陳瑛

      (上海杉達(dá)學(xué)院 信息科學(xué)與技術(shù)學(xué)院,上海 201209)

      0 引言

      存儲(chǔ)區(qū)域網(wǎng)絡(luò)(Storage Area Network,SAN)作為目前應(yīng)用最為廣泛的存儲(chǔ)通道連接技術(shù),核心在于通過(guò)FC交換機(jī)連接存儲(chǔ)設(shè)備和服務(wù)器主機(jī),建立用于數(shù)據(jù)存儲(chǔ)的區(qū)域網(wǎng)絡(luò)。隨著SAN被廣泛應(yīng)用于銀行、保險(xiǎn)、運(yùn)營(yíng)商等企業(yè)的大型數(shù)據(jù)中心生產(chǎn)場(chǎng)景,F(xiàn)C交換機(jī)的自動(dòng)監(jiān)控和人工干預(yù)技術(shù)始終是運(yùn)維人員重點(diǎn)關(guān)注的問(wèn)題之一[1-6]。

      在交換機(jī)的監(jiān)控管理領(lǐng)域,使用最廣泛的網(wǎng)絡(luò)監(jiān)控管理協(xié)議是簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議SNMP(Simple Network Management Protocol),其相關(guān)的研究或文獻(xiàn)也屢見(jiàn)不鮮。如趙琳、吳姣等[7]設(shè)計(jì)了一套基于SNMP的FC網(wǎng)絡(luò)管理軟件,把FC網(wǎng)絡(luò)上各個(gè)節(jié)點(diǎn)和交換機(jī)定義為MIB庫(kù)中的實(shí)例對(duì)象,通過(guò)對(duì)自擴(kuò)展的網(wǎng)絡(luò)管理信息庫(kù)進(jìn)行操作和維護(hù),通過(guò)FC網(wǎng)絡(luò)發(fā)送查詢(xún)命令以及相應(yīng)回復(fù)判斷網(wǎng)絡(luò)系統(tǒng)狀態(tài),為網(wǎng)絡(luò)管理者提供決策依據(jù);楊明光、張?jiān)骑w等[8]利用Python語(yǔ)言編程實(shí)現(xiàn)了一種基于SNMP協(xié)議的網(wǎng)絡(luò)交換機(jī)狀態(tài)的監(jiān)測(cè)系統(tǒng);武韡、石亞軍[9]在Windows平臺(tái)上采用MySQL數(shù)據(jù)庫(kù),通過(guò)ODBC連接,從底層開(kāi)發(fā)實(shí)現(xiàn)基于SNMP協(xié)議的網(wǎng)絡(luò)預(yù)警系統(tǒng)。

      但是對(duì)于特定產(chǎn)品如FC交換機(jī),SNMP的監(jiān)控粒度過(guò)大,交互能力不足,無(wú)法應(yīng)對(duì)突發(fā)故障并做出及時(shí)響應(yīng)處理。因此,在日常運(yùn)維中,客戶普遍依賴(lài)于各廠家提供的專(zhuān)用工具,或是基于SNMP協(xié)議開(kāi)發(fā)的第三方集中監(jiān)控平臺(tái)。博通(Broadcom)公司旗下的博科(Brocade)系列交換機(jī)(FC Switch)作為目前市場(chǎng)的主流產(chǎn)品,因其可靠性、安全性和高性?xún)r(jià)比而聞名。然而,受限于Brocade市場(chǎng)推廣策略、培訓(xùn)課程及參考資料的不足,國(guó)內(nèi)對(duì)于其FC交換技術(shù)及其網(wǎng)絡(luò)設(shè)備應(yīng)用領(lǐng)域的研究并不多見(jiàn)。

      本文將以MAPS(Monitoring and Alerting Policy Suite)監(jiān)控策略為切入點(diǎn),探討博科(Brocade)DCX8510 FC交換機(jī)(Fabric OS 7.4.2a)的自動(dòng)運(yùn)維及干預(yù)策略。

      1 相關(guān)技術(shù)

      1.1 Monitoring and Alerting Policy Suite

      博科FC交換機(jī)采用自主研發(fā)的Fabric OS系統(tǒng),自Fabric OS 7.2.0開(kāi)始,引入了Monitoring and Alerting Policy Suite(MAPS)網(wǎng)絡(luò)監(jiān)控策略。通過(guò)這套監(jiān)控策略機(jī)制,系統(tǒng)可以實(shí)時(shí)獲取硬件狀態(tài)、觸發(fā)錯(cuò)誤報(bào)警,并自動(dòng)運(yùn)行各種預(yù)定義的保護(hù)策略[10]。

      (1)MAPS可監(jiān)控狀態(tài)

      MAPS將其可監(jiān)控的狀態(tài)進(jìn)行歸類(lèi),共劃分為11類(lèi),如表1所示。

      表1 MAPS監(jiān)控狀態(tài)

      這些狀態(tài)劃分保證了MAPS對(duì)FC交換機(jī)系統(tǒng)各模塊的詳細(xì)監(jiān)測(cè),用戶可以根據(jù)這些監(jiān)測(cè)值來(lái)設(shè)計(jì)不同的策略及應(yīng)對(duì)動(dòng)作,以適應(yīng)各種突發(fā)狀況。

      (2)MAPS默認(rèn)策略

      監(jiān)控策略(Policy)是針對(duì)監(jiān)控對(duì)象所定義的一組規(guī)則(Rule)的集合。MAPS默認(rèn)包含3項(xiàng)策略,涵蓋了常用監(jiān)控狀態(tài)及其相應(yīng)閾值,這些默認(rèn)策略按照監(jiān)控強(qiáng)度和閾值靈敏度進(jìn)行劃分,旨在簡(jiǎn)化用戶配置流程,以便用戶使用時(shí)可以在其基礎(chǔ)上進(jìn)行規(guī)則的自定義。

      1.2 MAPS監(jiān)控策略與SNMP協(xié)議的比較

      簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(SNMP)是目前使用最為廣泛的網(wǎng)絡(luò)管理及設(shè)備通訊協(xié)議,該協(xié)議具有兼容性高、可擴(kuò)展性強(qiáng)、二次開(kāi)發(fā)度便利等優(yōu)點(diǎn)。同SNMP協(xié)議相比,MAPS存在以下幾點(diǎn)明顯優(yōu)勢(shì)。

      (1)部署簡(jiǎn)單。SNMP采用客戶端服務(wù)器架構(gòu),且需要維護(hù)管理信息庫(kù)(MIB)的內(nèi)容。相比之下,MAPS僅需要根據(jù)不同需求創(chuàng)建策略即可。

      (2)針對(duì)性強(qiáng)。相比于SNMP的廣泛兼容性,MAPS的針對(duì)性更強(qiáng),可以完全滿足FC交換機(jī)的日常維護(hù)要求。

      (3)故障處理及時(shí)。同使用SNMP的監(jiān)控平臺(tái)相比,MAPS可以在發(fā)現(xiàn)故障的第一時(shí)間實(shí)現(xiàn)動(dòng)作干預(yù),而無(wú)需與后臺(tái)服務(wù)器進(jìn)行通訊響應(yīng)。

      (4)節(jié)約成本。同搭建SNMP監(jiān)控平臺(tái)相比,使用MAPS的成本及維護(hù)時(shí)間更少。

      2 基于MAPS的FC交換機(jī)自動(dòng)化運(yùn)維策略

      對(duì)于FC交換機(jī)而言,鏈路錯(cuò)誤(Link Layer Issue)是一類(lèi)最常見(jiàn)且對(duì)用戶影響最大的故障。生產(chǎn)環(huán)境中對(duì)于SAN鏈路錯(cuò)誤的判定和排查,通常有3個(gè)判定依據(jù)場(chǎng)景。

      (1)對(duì)應(yīng)鏈路存在CRC報(bào)錯(cuò)且具有“good_eof”標(biāo)識(shí)

      (2)對(duì)應(yīng)鏈路存在大量ENC_OUT、ITW或Link reset事件

      (3)對(duì)應(yīng)Port連接的光電轉(zhuǎn)換模塊SFP(Small Form-factor Pluggable)存在發(fā)送/接收功率(RXP/TXP)異常

      其中,場(chǎng)景(2)通常依賴(lài)于運(yùn)維人員的經(jīng)驗(yàn)判斷,而(1)和(2)則可以通過(guò)設(shè)計(jì)監(jiān)控策略來(lái)實(shí)現(xiàn)自動(dòng)運(yùn)維。本文主要針對(duì)(3)即鏈路錯(cuò)誤中常見(jiàn)的RXP/TXP異常設(shè)計(jì)監(jiān)控策略,設(shè)計(jì)FC交換機(jī)的自動(dòng)化運(yùn)維方案并實(shí)現(xiàn)。

      2.1 RXP/TXP異常監(jiān)控策略設(shè)計(jì)思路

      本策略主要針對(duì)RXP/TXP異常情況處理,通過(guò)配置Brocade DCX8510交換機(jī)端口(FC Port)的最大發(fā)送/接收功率的經(jīng)驗(yàn)閾值,定義“強(qiáng)制停用對(duì)應(yīng)端口”(Fence)的應(yīng)對(duì)動(dòng)作(Action)。一旦MAPS監(jiān)控到功率達(dá)到或超過(guò)了定義閾值,會(huì)自動(dòng)將對(duì)應(yīng)端口設(shè)置為禁用狀態(tài)(Disable),這樣既能夠定位并處置了故障端口,也能避免其他設(shè)備受到故障鏈路的影響。

      RXP/TXP異常監(jiān)控策略的設(shè)計(jì)思路與流程如圖1所示。

      圖1 RXP/TXP異常監(jiān)控策略設(shè)計(jì)流程

      2.2 RXP/TXP異常監(jiān)控策略實(shí)現(xiàn)

      步驟1:查看系統(tǒng)當(dāng)前監(jiān)控閾值

      該步驟的目的在于確定系統(tǒng)MAPS默認(rèn)策略定義的端口最大發(fā)送/接收功率(RXP/TXP)監(jiān)控閾值,并根據(jù)當(dāng)前使用的SFP類(lèi)型確定合適的監(jiān)控范圍。

      系統(tǒng)MAPS默認(rèn)最大發(fā)送、接收功率如圖2、圖3所示。

      圖2、圖3說(shuō)明對(duì)于不同速率的SFP模塊系統(tǒng)默認(rèn)的RXP和TXP的監(jiān)控范圍。由于當(dāng)前監(jiān)控閾值范圍過(guò)大,遠(yuǎn)遠(yuǎn)大于判定故障的經(jīng)驗(yàn)值100,因此需要重新進(jìn)行設(shè)置,詳見(jiàn)步驟3。

      圖2 系統(tǒng)MAPS默認(rèn)最大發(fā)送功率

      圖3 系統(tǒng)MAPS默認(rèn)最大接收功率

      步驟2:創(chuàng)建監(jiān)控策略并關(guān)聯(lián)至相應(yīng)對(duì)象組

      為了更好地對(duì)監(jiān)控對(duì)象進(jìn)行管理和劃分,MAPS將其監(jiān)控對(duì)象進(jìn)行了分組(Group)管理,用戶可以根據(jù)需要?jiǎng)?chuàng)建不同的對(duì)象組。對(duì)象組具有不同的類(lèi)型(Type),該類(lèi)型可以保證組內(nèi)監(jiān)控對(duì)象的一致性,避免不同對(duì)象混用造成的策略設(shè)計(jì)失誤。

      查看系統(tǒng)監(jiān)控對(duì)象組、關(guān)聯(lián)策略如圖4、圖5所示。

      圖4 查看系統(tǒng)監(jiān)控對(duì)象組

      圖5 查看系統(tǒng)關(guān)聯(lián)策略

      在圖4與圖5中,使用logicalgroup——show命令和mapspolicy-show-summary命令列出并查看系統(tǒng)現(xiàn)有的監(jiān)控對(duì)象組(Group)及關(guān)聯(lián)策略(Policy),請(qǐng)注意對(duì)象組的類(lèi)型(Type)標(biāo)志了FC交換機(jī)上不同的硬件,如“Port”“Fan”“Power Supply”“WWN”“Sfp”“Blade”“Flash”等,而RXP/TXP監(jiān)控需要將 “Sfp”作為監(jiān)控對(duì)象的類(lèi)型。

      步驟3:創(chuàng)建規(guī)則

      監(jiān)控策略(Policy)是我們針對(duì)監(jiān)控對(duì)象所定義的一組規(guī)則(Rule)集合。對(duì)象組(Group)創(chuàng)建后我們可以將其與設(shè)計(jì)好的監(jiān)控策略(Policy)進(jìn)行關(guān)聯(lián)。為了監(jiān)控最大發(fā)送/接收功率(RXP/TXP),需要分別創(chuàng)建LowRXP和LowTXP兩條規(guī)則,其采樣監(jiān)測(cè)間隔為1小時(shí)且該值無(wú)法修改,規(guī)則觸發(fā)后的應(yīng)對(duì)動(dòng)作(Action)為強(qiáng)制停用對(duì)應(yīng)端口(Fence)并將其加入到對(duì)應(yīng)策略(Policy)中。

      1.LowRXP規(guī)則的創(chuàng)建過(guò)程如下。

      (1)判定條件:RXP<100時(shí)發(fā)送SNMP trap。

      (2)監(jiān)控策略:copy_dflt_moderate_policy,采樣監(jiān)測(cè)間隔為1小時(shí)且該值無(wú)法修改,規(guī)則觸發(fā)后的應(yīng)對(duì)動(dòng)作(Action)為強(qiáng)制停用對(duì)應(yīng)端口(Fence)。

      (3)配置命令:

      DCX:FID128:admin> mapsrule--create LowRXP-monitor RXP-group ALL_SFP-op l-value 100-action fence-policy copy_dflt_moderate_policy

      Rule has been created but policy is not present.

      2.LowTXP規(guī)則的創(chuàng)建過(guò)程如下。

      (1)判定條件:TXP<100時(shí)發(fā)送SNMP trap。

      (2)監(jiān)控策略:copy_dflt_moderate_policy,采樣監(jiān)測(cè)間隔為1小時(shí)且該值無(wú)法修改,規(guī)則觸發(fā)后的應(yīng)對(duì)動(dòng)作(Action)為強(qiáng)制停用對(duì)應(yīng)端口(Fence)。

      (3)配置命令:

      DCX:FID128:admin> mapsrule--create LowTXP-monitor TXP-group ALL_SFP-op l-value 100-action fence-policy copy_dflt_moderate_policy

      Rule has been created but policy is not present.

      步驟4:將步驟3規(guī)則導(dǎo)入新策略并啟用

      上述規(guī)則創(chuàng)建后會(huì)出現(xiàn)系統(tǒng)提示“Rule has been created but policy is not present”,說(shuō)明規(guī)則已經(jīng)創(chuàng)建但是策略尚未啟用,因此需要使用下列命令啟用該策略。

      DCX:FID128:admin> mapspolicy--enable < copy_dflt_moderate_policy >

      規(guī)則和策略創(chuàng)建完成后需要進(jìn)行可用性測(cè)試,如測(cè)試出現(xiàn)異??墒褂萌缦旅钸M(jìn)行刪除回退操作。

      DCX:FID128:admin> mapsrule--delete LowRXP

      DCX:FID128: admin> mapsrule--delete LowTXP

      2.3 MAPS的全局應(yīng)對(duì)動(dòng)作

      2.2針對(duì)發(fā)送/接收功率(RXP/TXP)異常情況定義的動(dòng)作為“強(qiáng)制停用對(duì)應(yīng)端口”,即“Fence”應(yīng)對(duì)動(dòng)作。事實(shí)上,除了“Fence”“Decommissioning”等針對(duì)不同平臺(tái)及監(jiān)控對(duì)象定義的10余種應(yīng)對(duì)動(dòng)作外,MAPS還可以自定義全局應(yīng)對(duì)動(dòng)作。

      使用mapsconfig--actions raslog,snmp,email,sfp_margina命令和mapsconfig--show命令可以添加并驗(yàn)證全局MAPS應(yīng)對(duì)動(dòng)作,如圖6所示。

      圖6 添加并驗(yàn)證全局MAPS應(yīng)對(duì)動(dòng)作

      特別需要注意的是,全局MAPS應(yīng)對(duì)動(dòng)作的優(yōu)先級(jí)要高于規(guī)則中定義的應(yīng)對(duì)動(dòng)作,一旦兩者產(chǎn)生沖突,系統(tǒng)會(huì)按照全局動(dòng)作的設(shè)置來(lái)進(jìn)行應(yīng)對(duì)動(dòng)作。

      3 MAPS與第三方監(jiān)控平臺(tái)的交互

      除了以上通過(guò)設(shè)置MAPS監(jiān)控策略實(shí)現(xiàn)系統(tǒng)自動(dòng)運(yùn)維外,MAPS還預(yù)留了與第三方監(jiān)控平臺(tái)的通訊接口,將所有的監(jiān)控信息利用SNMP協(xié)議或郵件文本發(fā)送給第三方監(jiān)控平臺(tái),幫助相關(guān)人員在統(tǒng)一平臺(tái)下完成決策及維護(hù)。

      3.1 第三方監(jiān)控平臺(tái)接口設(shè)計(jì)

      SNMP的網(wǎng)絡(luò)管理由3部分組成,即SNMP本身、管理信息結(jié)構(gòu)SMI(Structure of Management Information)和管理信息庫(kù)MIB(Management Information Base)。SNMP定義了管理站和代理之間所交換的分組格式。SMI定義了命名對(duì)象和定義對(duì)象類(lèi)型的通用規(guī)則,以及把對(duì)象和對(duì)象的值進(jìn)行編碼的規(guī)則。MIB在被管理的實(shí)體中創(chuàng)建了對(duì)象并規(guī)定了其類(lèi)型。即SMI建立規(guī)則,MIB對(duì)變量進(jìn)行說(shuō)明,而SNMP完成網(wǎng)管的動(dòng)作[11]。在MAPS設(shè)計(jì)中,每個(gè)MAPS Trap都定義了問(wèn)題嚴(yán)重級(jí)別并包含在MAPS Config Severity Level變量中,如圖7所示。

      圖7 MAPS Traps定義的變量名示意

      MAPS Severity Level包含的嚴(yán)重程度級(jí)別有“None”“Critical”“Error”“Warings”“Informational”“Debug”幾種,通?!癈ritical”和“Error”表明出現(xiàn)較為嚴(yán)重的硬件錯(cuò)誤,需要人工干預(yù),如圖8所示。

      圖8 MAPS SeverityLevel

      第三方監(jiān)控平臺(tái)可通過(guò)SNMP Trap實(shí)時(shí)抓取數(shù)據(jù)并進(jìn)行響應(yīng),預(yù)警信息通過(guò)郵件組進(jìn)行轉(zhuǎn)發(fā),可以自動(dòng)關(guān)聯(lián)到短信網(wǎng)關(guān)通知到運(yùn)維人員。首先,SNMP Trap接口接收含有OID 與MIB值的字符串;然后,利用MAPS的MIB庫(kù)文件,將字符串翻譯成明文;最后,經(jīng)過(guò)判斷找出帶有Critical或Error字段的明文,發(fā)送短信。過(guò)程如圖9所示。

      圖9 MAPS與第三方監(jiān)控平臺(tái)交互設(shè)計(jì)流程

      發(fā)送的MAPS短信范例如圖10所示。

      圖10 短信內(nèi)容范例

      3.2 第三方監(jiān)控平臺(tái)接口偽代碼

      利用Python語(yǔ)言設(shè)計(jì)MAPS與第三方監(jiān)控平臺(tái)交互接口的偽代碼如下。

      (1)使用snmp trap 接口接收oid與mib值

      cg = cmdgen.CommandGenerator()#獲取CommandGenerator對(duì)象

      errorIndication, errorStatus, errorIndex, varBinds = cg.getCmd

      (

      0代表SNMPv1版本,1代表SNMPv2c版本

      cmdgen.CommunityData('myagent', 'public', 1),

      cmdgen.UdpTransportTarget(('127.0.0.1', 161)), #傳輸通道

      '.1.3.6.1.2.1.1.1.0'#傳送的OID

      )

      print(str(varBinds[0][1]))#varBinds返回MIB值及獲得值

      (2)使用mib查看器翻譯成明文

      # Assemble MIB viewer

      mibBuilder = builder.MibBuilder()

      compiler.addMibCompiler(mibBuilder, sources=['file:///usr/share/snmp/mibs','http://mibs.test.com/test/@mib@'])

      mibViewController = view.MibViewController(mibBuilder)

      # Pre-load MIB modules we expect to work with

      mibBuilder.loadModules('SNMPv2-MIB', 'SNMP-COMMUNITY-MIB')#mib文件的配置

      # This is what we can get in TRAP PDU

      varBinds =[

      ('1.3.6.1.2.1.1.3.0', 12345),

      ('1.3.6.1.6.3.1.1.4.1.0', '1.3.6.1.6.3.1.1.5.2'),

      ('1.3.6.1.6.3.18.1.3.0', '0.0.0.0'),

      ('1.3.6.1.6.3.18.1.4.0', ''),

      ('1.3.6.1.6.3.1.1.4.3.0', '1.3.6.1.4.1.20408.4.1.1.2'),

      ('1.3.6.1.2.1.1.1.0', 'my system')

      ]

      (3)通過(guò)對(duì)每一次接收的oid翻譯,通過(guò)varBins所獲得的mid值判斷帶有critical或error字段

      text = '#oid翻譯明文

      for varBind in varBinds:

      a = 0

      test = varBind[1].prettyPrint()

      text = text + test + ' '

      if 'critical' in test:

      a = 1

      elif 'CRITICAL' in test:

      a = 1

      elif 'error' in test:

      a = 1

      elif 'ERROR' in test:

      a = 1

      (4)根據(jù)a 的值來(lái)決定是否發(fā)送短信

      from twilio.rest import Client

      # Your Account SID from twilio.com/console

      account_sid = "your account sid"

      # Your Auth Token from twilio.com/console

      auth_token = "your token"

      client = Client(account_sid, auth_token)

      message = client.messages.create(

      # 這里中國(guó)的號(hào)碼前面需要加86

      to="+接收者的號(hào)碼",

      from_="+twilio給你的號(hào)碼 ",

      body="text")

      print(message.sid)

      print(call.sid)

      # 發(fā)送到短信網(wǎng)關(guān)實(shí)現(xiàn)報(bào)警

      4 總結(jié)

      本文提出了一種基于博科(Brocade)MAPS(Monitoring and Alerting Policy Suite)監(jiān)控策略實(shí)現(xiàn)FC交換機(jī)自動(dòng)運(yùn)維的方案,詳細(xì)介紹了MAPS監(jiān)控策略的創(chuàng)建、定義、關(guān)聯(lián)及測(cè)試回退過(guò)程,并嘗試?yán)肧NMP Trap接口,將MAPS預(yù)警消息同第三方監(jiān)控平臺(tái)整合,提供了一種交互報(bào)警、人工干預(yù)的設(shè)計(jì)思路。本設(shè)計(jì)方案旨在盡可能節(jié)約資金與人力成本的前提下,充分利用交換機(jī)的現(xiàn)有機(jī)制,及時(shí)發(fā)現(xiàn)并自動(dòng)處理常見(jiàn)交換機(jī)故障,為自動(dòng)化運(yùn)維工程提供了新的研究方向。

      猜你喜歡
      交換機(jī)端口運(yùn)維
      一種端口故障的解決方案
      運(yùn)維技術(shù)研發(fā)決策中ITSS運(yùn)維成熟度模型應(yīng)用初探
      修復(fù)損壞的交換機(jī)NOS
      風(fēng)電運(yùn)維困局
      能源(2018年8期)2018-09-21 07:57:24
      雜亂無(wú)章的光伏運(yùn)維 百億市場(chǎng)如何成長(zhǎng)
      能源(2017年11期)2017-12-13 08:12:25
      端口阻塞與優(yōu)先級(jí)
      使用鏈路聚合進(jìn)行交換機(jī)互聯(lián)
      基于ITIL的運(yùn)維管理創(chuàng)新實(shí)踐淺析
      初識(shí)電腦端口
      電腦迷(2015年6期)2015-05-30 08:52:42
      生成樹(shù)協(xié)議實(shí)例探討
      五寨县| 台北市| 青河县| 巴南区| 德化县| 海安县| 敖汉旗| 通州区| 八宿县| 金寨县| 毕节市| 镇巴县| 绵竹市| 英山县| 富顺县| 三河市| 盐边县| 普兰县| 文昌市| 卓尼县| 沁水县| 大竹县| 东光县| 腾冲县| 大理市| 行唐县| 昌图县| 舒城县| 唐河县| 吉木萨尔县| 突泉县| 德阳市| 高碑店市| 尉氏县| 揭西县| 尼勒克县| 巴塘县| 衡山县| 墨脱县| 瓮安县| 伊春市|