<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一文讀懂什么是SNMP

          共 7559字,需瀏覽 16分鐘

           ·

          2021-05-29 20:20

          關(guān)注「開源Linux」,選擇“設(shè)為星標(biāo)”
          回復(fù)「學(xué)習(xí)」,有我為您特別篩選的學(xué)習(xí)資料~


          簡(jiǎn)介

          簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議SNMP(Simple Network Management Protocol)用于網(wǎng)絡(luò)設(shè)備的管理。網(wǎng)絡(luò)設(shè)備種類多種多樣,不同設(shè)備廠商提供的管理接口(如命令行接口)各不相同,這使得網(wǎng)絡(luò)管理變得愈發(fā)復(fù)雜。為解決這一問題,SNMP應(yīng)運(yùn)而生。SNMP作為廣泛應(yīng)用于TCP/IP網(wǎng)絡(luò)的網(wǎng)絡(luò)管理標(biāo)準(zhǔn)協(xié)議,提供了統(tǒng)一的接口,從而實(shí)現(xiàn)了不同種類和廠商的網(wǎng)絡(luò)設(shè)備之間的統(tǒng)一管理。

          SNMP協(xié)議分為三個(gè)版本:SNMPv1、SNMPv2cSNMPv3
          @歡迎關(guān)注公眾號(hào):網(wǎng)絡(luò)工程師阿龍
          SNMPv1是SNMP協(xié)議的最初版本,提供最小限度的網(wǎng)絡(luò)管理功能。SNMPv1基于團(tuán)體名認(rèn)證,安全性較差,且返回報(bào)文的錯(cuò)誤碼也較少。

          SNMPv2c也采用團(tuán)體名認(rèn)證。在SNMPv1版本的基礎(chǔ)上引入了GetBulk和Inform操作,支持更多的標(biāo)準(zhǔn)錯(cuò)誤碼信息,支持更多的數(shù)據(jù)類型(Counter64、Counter32)。

          SNMPv3主要在安全性方面進(jìn)行了增強(qiáng),提供了基于USM(User Security Module)的認(rèn)證加密和基于VACM(View-based Access Control Model)的訪問控制。SNMPv3版本支持的操作和SNMPv2c版本支持的操作一樣。


          SNMP系統(tǒng)組成


          SNMP系統(tǒng)由網(wǎng)絡(luò)管理系統(tǒng)NMS(Network Management System)、SNMP Agent、被管對(duì)象Management object和管理信息庫(kù)MIB(Management Information Base)四部分組成。NMS作為整個(gè)網(wǎng)絡(luò)的網(wǎng)管中心,對(duì)設(shè)備進(jìn)行管理。

          每個(gè)被管理設(shè)備中都包含駐留在設(shè)備上的SNMP Agent進(jìn)程、MIB和多個(gè)被管對(duì)象。NMS通過與運(yùn)行在被管理設(shè)備上的SNMP Agent交互,由SNMP Agent通過對(duì)設(shè)備端的MIB進(jìn)行操作,完成NMS的指令。

          圖1-1 SNMP系統(tǒng)組成

          NMS

          NMS是網(wǎng)絡(luò)中的管理者,是一個(gè)采用SNMP協(xié)議對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行管理/監(jiān)視的系統(tǒng),運(yùn)行在NMS服務(wù)器上。


          NMS可以向設(shè)備上的SNMP Agent發(fā)出請(qǐng)求,查詢或修改一個(gè)或多個(gè)具體的參數(shù)值。


          NMS可以接收設(shè)備上的SNMP Agent主動(dòng)發(fā)送的SNMP Traps,以獲知被管理設(shè)備當(dāng)前的狀態(tài)。


          SNMP Agent

          SNMP Agent是被管理設(shè)備中的一個(gè)代理進(jìn)程,用于維護(hù)被管理設(shè)備的信息數(shù)據(jù)并響應(yīng)來自NMS的請(qǐng)求,把管理數(shù)據(jù)匯報(bào)給發(fā)送請(qǐng)求的NMS。

          SNMP Agent接收到NMS的請(qǐng)求信息后,通過MIB表完成相應(yīng)指令后,并把操作結(jié)果響應(yīng)給NMS。


          當(dāng)設(shè)備發(fā)生故障或者其它事件時(shí),設(shè)備會(huì)通過SNMP Agent主動(dòng)發(fā)送SNMP Traps給NMS,向NMS報(bào)告設(shè)備當(dāng)前的狀態(tài)變化。


          Managed Object

          Managed object指被管理對(duì)象。每一個(gè)設(shè)備可能包含多個(gè)被管理對(duì)象,被管理對(duì)象可以是設(shè)備中的某個(gè)硬件,也可以是在硬件、軟件(如路由選擇協(xié)議)上配置的參數(shù)集合。


          MIB

          MIB是一個(gè)數(shù)據(jù)庫(kù),指明了被管理設(shè)備所維護(hù)的變量。MIB在數(shù)據(jù)庫(kù)中定義了被管理設(shè)備的一系列屬性:對(duì)象的名稱、對(duì)象的狀態(tài)、對(duì)象的訪問權(quán)限和對(duì)象的數(shù)據(jù)類型等。MIB也可以看作是NMS和SNMP Agent之間的一個(gè)接口,通過這個(gè)接口,NMS對(duì)被管理設(shè)備所維護(hù)的變量進(jìn)行查詢/設(shè)置操作。


          MIB是以樹狀結(jié)構(gòu)進(jìn)行存儲(chǔ)的,如圖1-2所示。樹的節(jié)點(diǎn)表示被管理對(duì)象,它可以用從根開始的一條路徑唯一地識(shí)別,這條路徑就稱為OID,如system的OID為1.3.6.1.2.1.1,interfaces的OID為1.3.6.1.2.1.2。


          子樹可以用該子樹根節(jié)點(diǎn)的OID來標(biāo)識(shí)。如以private為根節(jié)點(diǎn)的子樹的OID為private的OID——{1.3.6.1.4}。


          圖1-2 OID樹結(jié)構(gòu)


          用戶可以配置MIB視圖來限制NMS能夠訪問的MIB對(duì)象。MIB視圖是MIB的子集合,用戶可以將MIB視圖內(nèi)的對(duì)象配置為exclude或include。exclude表示當(dāng)前視圖不包含該MIB子樹的所有節(jié)點(diǎn);include表示當(dāng)前視圖包含該MIB子樹的所有節(jié)點(diǎn)。

          @歡迎關(guān)注公眾號(hào):網(wǎng)絡(luò)工程師阿龍

          SNMP查詢

          SNMP查詢是指NMS主動(dòng)向SNMP Agent發(fā)送查詢請(qǐng)求,如圖1-3所示。SNMP Agent接收到查詢請(qǐng)求后,通過MIB表完成相應(yīng)指令,并將結(jié)果反饋給NMS。


          SNMP查詢操作有三種:Get、GetNext和GetBulk。SNMPv1版本不支持GetBulk操作。


          Get操作:NMS使用該操作從SNMP Agent中獲取一個(gè)或多個(gè)參數(shù)值。

          GetNext操作:NMS使用該操作從SNMP Agent中獲取一個(gè)或多個(gè)參數(shù)的下一個(gè)參數(shù)值。

          GetBulk操作:基于GetNext實(shí)現(xiàn),相當(dāng)于連續(xù)執(zhí)行多次GetNext操作。在NMS上可以設(shè)置被管理設(shè)備在一次GetBulk報(bào)文交互時(shí),執(zhí)行GetNext操作的次數(shù)。


          圖1-3 SNMP查詢操作


          SNMP查詢操作的報(bào)文

          SNMPv1和SNMPv2c查詢報(bào)文格式如圖1-4所示。SNMPv1和SNMPv2c的報(bào)文主要由版本、團(tuán)體名、SNMP PDU組成。各類SNMP操作的報(bào)文封裝在SNMP PDU中。


          圖1-4 SNMPv1/SNMPv2c查詢操作報(bào)文格式



          報(bào)文中的主要字段如下:


          版本:表示SNMP的版本,如果是SNMPv1報(bào)文則對(duì)應(yīng)字段值為0,SNMPv2c則為1。

          團(tuán)體名:用于在SNMP Agent與NMS之間完成認(rèn)證,字符串形式,用戶可自行定義。團(tuán)體名包括“read”和“write”兩種,執(zhí)行SNMP查詢操作時(shí),采用“read”團(tuán)體名進(jìn)行認(rèn)證;執(zhí)行SNMP設(shè)置操作時(shí),則采用“write”團(tuán)體名進(jìn)行認(rèn)證。

          Request ID:用于匹配請(qǐng)求和響應(yīng),SNMP給每個(gè)請(qǐng)求分配全局唯一的ID。

          Non repeaters/Max repetitions:GetBulk操作基于GetNext操作實(shí)現(xiàn),相當(dāng)于多次執(zhí)行GetNext操作,這兩個(gè)參數(shù)用于設(shè)置執(zhí)行GetNext操作次數(shù)。

          Error status:用于表示在處理請(qǐng)求時(shí)出現(xiàn)的狀況。

          Error index:差錯(cuò)索引。當(dāng)出現(xiàn)異常情況時(shí),提供變量綁定列表(Variable bindings)中導(dǎo)致異常的變量的信息。

          Variable bindings:變量綁定列表,由變量名和變量值對(duì)組成。

          通過捕獲報(bào)文工具獲取設(shè)備發(fā)送的SNMPv2c版本Get請(qǐng)求報(bào)文如圖1-5所示,SNMPv2c版本GetNext請(qǐng)求報(bào)文如圖1-6所示。SNMPv2c版本GetBulk請(qǐng)求報(bào)文如圖1-7所示。


          圖1-5 SNMPv2c版本Get請(qǐng)求報(bào)文


          圖1-6 SNMPv2c版本GetNext請(qǐng)求報(bào)文

          圖1-7 SNMPv2c版本GetBulk請(qǐng)求報(bào)文

          SNMPv3查詢報(bào)文格式如圖1-8所示,SNMPv3報(bào)文主要由版本、MsgID、MaxSize、Flags、Security Model、Security Parameters、Context EngineID、Context Name和SNMP PDU組成。SNMPv3報(bào)文的SNMP PDU的格式與SNMPv2c的一致。SNMPv3版本的報(bào)文可以使用鑒權(quán)機(jī)制,會(huì)對(duì)Context EngineID、Context Name和SNMP PDU進(jìn)行加密。


          圖1-8 SNMPv3報(bào)文格式


          報(bào)文中的主要字段定義如下:


          版本:表示SNMP的版本,如果是SNMPv3報(bào)文則對(duì)應(yīng)字段值為3。

          MsgID:請(qǐng)求報(bào)文的序列號(hào)。

          MaxSize:消息發(fā)送者所能夠容納的消息最大字節(jié),同時(shí)也表明了發(fā)送者能夠接收到的最大字節(jié)數(shù)。

          Flags:消息標(biāo)識(shí)位,占一個(gè)字節(jié),有三個(gè)特征位:reportableFlag,privFlag和authFlag。

          reportableFlag=1,在能夠?qū)е翿eport PDU生成的情況下,SNMPv3報(bào)文接收方必須向發(fā)送方發(fā)送Report PDU;reportableFlag=0,SNMPv3報(bào)文接收方不發(fā)送Report PDU。只有在SNMP PDU部分不能被解密時(shí)(比如由于密鑰錯(cuò)誤導(dǎo)致解密失敗等)才會(huì)用到Report。

          privFlag=1,對(duì)SNMPv3報(bào)文進(jìn)行加密;privFlag=0,不對(duì)SNMPv3報(bào)文進(jìn)行加密。

          authFlag=1,對(duì)SNMPv3報(bào)文進(jìn)行鑒權(quán);authFlag=0,不對(duì)SNMPv3報(bào)文進(jìn)行鑒權(quán)。

          除了privFlag=1,authFlag=0的情況外,其他任意組合都可以,所以在配置SNMPv3的安全級(jí)別的時(shí)候需要注意:如果用戶組是privacy級(jí)別,用戶和告警主機(jī)就必須是privacy級(jí)別;用戶組是authentication級(jí)別,用戶和告警主機(jī)可以是privacy或者authentication級(jí)別。


          SecurityModel:消息采用的安全模型,發(fā)送方和接收方必須采用相同的安全模型。

          SecurityParameters:安全參數(shù),包含SNMP實(shí)體引擎的相關(guān)信息、用戶名、鑒權(quán)參數(shù)、加密參數(shù)等安全信息。

          Context EngineID:SNMP唯一標(biāo)識(shí)符,和PDU類型一起決定應(yīng)該發(fā)往哪個(gè)應(yīng)用程序。

          Context Name:用于確定Context EngineID對(duì)被管理設(shè)備的MIB視圖。


          SNMPv3提供了鑒權(quán)機(jī)制,推薦用戶使用SNMPv3版本。通過捕獲報(bào)文工具獲取設(shè)備發(fā)送的SNMPv3版本加密的Get請(qǐng)求報(bào)文如圖1-9所示,SNMPv3版本不加密的Get請(qǐng)求報(bào)文如圖1-10所示。


          圖1-9 SNMPv3版本加密的Get請(qǐng)求報(bào)文

          圖1-10 SNMPv3版本不加密Get請(qǐng)求報(bào)文

          SNMP查詢操作的工作原理

          不同版本的SNMP查詢操作的工作原理基本一致,唯一的區(qū)別是SNMPv3版本增加了身份驗(yàn)證和加密處理。下面以SNMPv2c版本的Get操作為例介紹SNMP查詢操作的工作原理。


          假定NMS想要獲取被管理設(shè)備MIB節(jié)點(diǎn)sysContact的值,使用可讀團(tuán)體名為public,過程如下所示:


          NMS:向SNMP Agent發(fā)送Get請(qǐng)求報(bào)文。報(bào)文中各字段的設(shè)置如下:版本號(hào)為所使用的SNMP版本;團(tuán)體名為public;PDU中PDU類型為Get類型,綁定變量填入MIB節(jié)點(diǎn)名sysContact。


          SNMP Agent:首先對(duì)報(bào)文中攜帶版本號(hào)和團(tuán)體名進(jìn)行認(rèn)證,認(rèn)證成功后,SNMP Agent根據(jù)請(qǐng)求查詢MIB中的sysContact節(jié)點(diǎn),得到sysContact的值并將其封裝到Response報(bào)文中的PDU,向NMS發(fā)送響應(yīng);如果查詢不成功,SNMP Agent會(huì)向NMS發(fā)送出錯(cuò)響應(yīng)。


          SNMP設(shè)置

          SNMP設(shè)置是指NMS主動(dòng)向SNMP Agent發(fā)送對(duì)設(shè)備進(jìn)行Set操作的請(qǐng)求,如圖1-11所示。SNMP Agent接收到Set請(qǐng)求后,通過MIB表完成相應(yīng)指令,并將結(jié)果反饋給NMS。


          SNMP設(shè)置操作只有一種Set,NMS使用該操作可設(shè)置SNMP Agent中的一個(gè)或多個(gè)參數(shù)值。


          圖1-11 SNMP Set操作


          SNMP Set操作的報(bào)文

          SNMPv1和SNMPv2c的Set操作報(bào)文格式如圖1-12所示。一般情況下,SNMPv3的Set操作信息是經(jīng)過加密封裝在SNMP PDU中,其格式與SNMPv2c的Set操作報(bào)文格式一致。


          圖1-12 SNMPv1/SNMPv2c Set操作報(bào)文格式


          報(bào)文中主要字段的含義如下:


          Request ID:用于匹配請(qǐng)求和響應(yīng),SNMP給每個(gè)請(qǐng)求分配全局唯一的ID。

          Error status:用于表示在處理請(qǐng)求時(shí)出現(xiàn)的狀況。

          Error index:差錯(cuò)索引。當(dāng)出現(xiàn)異常情況時(shí),提供變量綁定列表(Variable bindings)中導(dǎo)致異常的變量的信息。

          Variable bindings:變量綁定列表,由變量名和變量值對(duì)組成。

          通過捕獲報(bào)文工具獲取設(shè)備發(fā)送的SNMPv2c版本Set請(qǐng)求報(bào)文如圖1-13所示。


          圖1-13 SNMPv2c版本Set請(qǐng)求報(bào)文

          @歡迎關(guān)注公眾號(hào):網(wǎng)絡(luò)工程師阿龍

          SNMP Set操作的工作原理

          不同版本的SNMP Set操作的工作原理基本一致,唯一的區(qū)別是SNMPv3版本增加了身份驗(yàn)證和加密處理。下面以SNMPv3版本的Set操作為例介紹SNMP Set操作的工作原理。


          假定NMS想要設(shè)置被管理設(shè)備MIB節(jié)點(diǎn)sysName的值為HUAWEI,過程如下所示:


          NMS:向Agent發(fā)送不帶安全參數(shù)的Set請(qǐng)求報(bào)文,向SNMP Agent獲取Context EngineID、Context Name和安全參數(shù)(SNMP實(shí)體引擎的相關(guān)信息)。

          SNMP Agent:響應(yīng)NMS的請(qǐng)求,并向NMS反饋請(qǐng)求的參數(shù)。

          NMS:再次向SNMP Agent發(fā)送Set請(qǐng)求,報(bào)文中各字段的設(shè)置如下:

          版本:SNMPv3

          報(bào)文頭數(shù)據(jù):指明采用鑒權(quán)、加密方式。

          安全參數(shù):NMS通過配置的算法計(jì)算出鑒權(quán)參數(shù)和加密參數(shù)。將這些參數(shù)和獲取的安全參數(shù)填入相應(yīng)字段。

          PDU:將獲取的Context EngineID和Context Name填入相應(yīng)字段,PDU類型設(shè)置為Set,綁定變量填入MIB節(jié)點(diǎn)名sysName和需要設(shè)置的值HUAWEI,并使用已配置的加密算法對(duì)PDU進(jìn)行加密。

          SNMP Agent:首先對(duì)報(bào)文中攜帶版本號(hào)和團(tuán)體名進(jìn)行認(rèn)證,認(rèn)證成功后,SNMP Agent根據(jù)請(qǐng)求設(shè)置管理變量在管理信息庫(kù)MIB中對(duì)應(yīng)的節(jié)點(diǎn),設(shè)置成功后向NMS發(fā)送響應(yīng);如果設(shè)置不成功,Agent會(huì)向NMS發(fā)送出錯(cuò)響應(yīng)。

          SNMP Traps

          SNMP Traps是指SNMP Agent主動(dòng)將設(shè)備產(chǎn)生的告警或事件上報(bào)給NMS,以便網(wǎng)絡(luò)管理員及時(shí)了解設(shè)備當(dāng)前運(yùn)行的狀態(tài)。


          SNMP Agent上報(bào)SNMP Traps有兩種方式:Trap和Inform。SNMPv1版本不支持Inform。Trap和Inform的區(qū)別在于,SNMP Agent通過Inform向NMS發(fā)送告警或事件后,NMS需要回復(fù)InformResponse進(jìn)行確認(rèn),如圖1-14所示。


          圖1-14 SNMP Traps操作



          SNMP Traps報(bào)文格式

          SNMPv1的Trap操作報(bào)文格式如圖1-15所示,Trap PDU由PDU type、enterprise、Agent addr、Generic trap、Specific trap、Time stamp和Variable bindings組成。


          圖1-15 SNMPv1版本Trap操作報(bào)文格式

          @歡迎關(guān)注公眾號(hào):網(wǎng)絡(luò)工程師阿龍

          報(bào)文中的主要字段定義如下:


          enterprise:Trap源(生成Trap的設(shè)備)的類型。

          Agent addr:Trap源的地址。

          Generic trap:通用Trap類型,包括coldStart、warmStart、linkDown、linkUp、authenticationFailure、egpNeighborLoss、enterpriseSpecific。

          Specific trap:企業(yè)私有Trap信息。

          Time stamp:上次重新初始化網(wǎng)絡(luò)實(shí)體和產(chǎn)生Trap之間所持續(xù)的時(shí)間。

          Variable bindings:變量綁定列表,由變量名和變量值對(duì)組成。

          通過捕獲報(bào)文工具獲取設(shè)備發(fā)送的SNMPv1版本Trap報(bào)文如圖1-16所示。


          圖1-16 SNMPv1版本Trap報(bào)文


          SNMPv2c的Trap操作的報(bào)文格式和Inform操作的報(bào)文格式如圖1-17所示。一般情況下,SNMPv3的Trap操作或inform操作是經(jīng)過加密封裝在SNMP PDU中,其格式與SNMPv2c的Trap操作或inform操作的報(bào)文格式一致。


          圖1-17 SNMPv2版本Trap/Inform操作報(bào)文格式


          報(bào)文中的主要字段定義如下:


          Request ID:用于匹配請(qǐng)求和響應(yīng),SNMP給每個(gè)請(qǐng)求分配全局唯一的ID。

          Variable bindings:變量綁定列表,由變量名和變量值對(duì)組成。

          通過捕獲報(bào)文工具獲取設(shè)備發(fā)送的SNMPv2版本Trap報(bào)文如圖1-18所示,SNMPv2版本Inform報(bào)文如圖1-19所示。


          圖1-18 SNMPv2版本Trap報(bào)文


          圖1-19 SNMPv2版本Inform報(bào)文


          SNMP Traps工作原理

          Trap操作工作原理


          Trap不屬于NMS對(duì)被管理設(shè)備的基本操作,它是被管理設(shè)備的自發(fā)行為。當(dāng)被管理設(shè)備達(dá)到告警的觸發(fā)條件時(shí),會(huì)通過SNMP Agent向NMS發(fā)送Trap消息,告知設(shè)備側(cè)出現(xiàn)的異常情況,便于網(wǎng)絡(luò)管理人員及時(shí)處理。例如被管理設(shè)備熱啟動(dòng)后,SNMP Agent會(huì)向NMS發(fā)送warmStart的Trap。


          這種Trap信息是受限制的。只有在設(shè)備端的模塊達(dá)到模塊預(yù)定義的告警觸發(fā)條件時(shí),SNMP Agent才會(huì)向管理進(jìn)程報(bào)告。這種方法的好處是僅在嚴(yán)重事件發(fā)生時(shí)才發(fā)送Trap信息,減少報(bào)文交互產(chǎn)生的流量。


          Inform操作工作原理


          Inform操作也是被管理設(shè)備向NMS主動(dòng)發(fā)送告警。與Trap告警不同的是,被管理設(shè)備發(fā)送Inform告警后,需要NMS進(jìn)行接收確認(rèn)。如果被管理設(shè)備沒有收到確認(rèn)信息則:


          將告警或事件暫時(shí)保存在Inform緩存中。

          重復(fù)發(fā)送該告警或事件,直到NMS確認(rèn)收到該告警或者發(fā)送次數(shù)達(dá)到最大重傳次數(shù)。

          被管設(shè)備上會(huì)生成相應(yīng)的告警或事件日志。

          由此可知,使用Inform操作會(huì)占用較多的系統(tǒng)資源。

          SNMP 端口號(hào)

          SNMP報(bào)文是普通的UDP報(bào)文,協(xié)議中規(guī)定有兩個(gè)默認(rèn)端口號(hào):


          端口號(hào)161:NMS發(fā)送Get、GetNext、GetBulk和Set操作請(qǐng)求以及SNMP Agent響應(yīng)這些請(qǐng)求操作時(shí),使用該端口號(hào)。

          該端口號(hào)支持用戶配置,但是需要保證NMS發(fā)送請(qǐng)求報(bào)文使用的端口號(hào)與SNMP Agent響應(yīng)請(qǐng)求報(bào)文使用的端口號(hào)要一致。


          端口號(hào)162:SNMP Agent向NMS發(fā)送Trap或Inform時(shí),使用該端口號(hào)。

          該端口號(hào)支持用戶配置,但是需要保證SNMP Agent發(fā)送Trap或Inform的端口號(hào)與NMS監(jiān)聽Trap或Inform的端口號(hào)要一致。


          來源:公眾號(hào) 網(wǎng)絡(luò)工程師阿龍


          關(guān)注「開源Linux」加星標(biāo),提升IT技能

          瀏覽 60
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色做爱日本动漫网站 | 97在线观看视频 | 大片毛片 | 羞羞影院午夜男女爽爽视频 | 午夜精品少妇 |