| 自從發(fā)布了將于明年3月份出版的<Cisco/H3C交換機高級配置與管理技術(shù)手冊>目錄后,許多讀者朋友就迫不及待地希望我發(fā)布一些試讀內(nèi)容。為此,從本篇開始,以后將不定期發(fā)布一些試讀內(nèi)容,以幫助大家對本書內(nèi)容的基本了解。 本篇介紹的是華為/H3C交換機隔離用戶VLAN工作原理的剖析,這也是許多讀者朋友一直弄不明白的。通過本文的介紹,相信你對這類特殊的VLAN工作原理有一個比較基本的了解。 20.1.2 Isolate-user-VLAN工作原理     Isolate-user-VLAN是利用Hybrid端口(這是華為和H3C設備上特有的端口類型)允許對多個VLAN的報文去除VLAN標記的特性,通過對MAC地址表項在各VLAN的MAC地址表間進行復制的方法,實現(xiàn)對網(wǎng)絡中VLAN資源的節(jié)約。 通過設定端口的Hybrid屬性,可以使所有Secondary VLAN中包含的端口和交換機的上行端口都屬于isolate-user-vlan。同時在上行端口處設定在轉(zhuǎn)發(fā)所有Secondary VLAN的報文時都去掉VLAN標記。這樣對上層交換機來說,從下層設備收到的報文全部是不攜帶VLAN標記的,所以不必關(guān)心下層的VLAN配置,可以在本地重新規(guī)劃VLAN結(jié)構(gòu),節(jié)約了VLAN資源。   圖20-2是Isolate-user-VLAN的典型應用,Isolate-user-VALN為VLAN 5,Secondary VLAN為VLAN 3。下面以該圖為例說明isolate-user-VLAN的報文傳輸過程。首先對Switch B作如下配置: l 配置Ethernet2/0/4端口為Hybrid端口,缺省VLAN ID為3,該端口同時屬于VLAN 3和VLAN 5,對VLAN 3和VLAN 5的報文采取去標記操作; l 配置Ethernet2/0/3端口為Hybrid端口,缺省VLAN ID為5,該端口同時屬于VLAN 3和VLAN 5,對VLAN 3和VLAN 5的報文采取去標記操作。   為保證Switch A下發(fā)的報文在Switch B上能夠按下層設備的VLAN設置進行轉(zhuǎn)發(fā),需要在Switch A上配置與Switch B相連的端口為Hybrid類型,使其在向Switch B轉(zhuǎn)發(fā)報文時進行去標記操作(也就是不打VLAN標記)。    下面我們來分析一下連接在Switch B的PC用戶向Switch A發(fā)送報文的傳輸過程。 (1)當PC發(fā)出的報文到達Switch B的Ethernet2/0/4端口后,因為是不帶VLAN標記的,所以在Ethernet2/0/4 Hybrid端口會自動打上該端口的缺省VLAN ID,即VLAN 3的VLAN標記3。 (2)Switch B從收到的報文中學習到PC的MAC地址,并添加到VLAN 3的MAC地址轉(zhuǎn)發(fā)表中,同時復制該表項到VLAN 5的MAC地址轉(zhuǎn)發(fā)表中。 (3)由于Switch B的Ethernet2/0/3 Hybrid端口也屬于VLAN 3,所以原來打上VLAN 3標記的報文可以從此端口發(fā)送,但同時會通過port hybrid vlan untagged命令去VLAN標記命令配置去掉報文中的VLAN 3標記(如果不執(zhí)行此命令,則報文仍是會帶有VLAN 3標記的),這樣一來到達Switch A的報文是不帶有VLAN標記的。   下面是Switch B的PC用戶接收來自Switch A報文的傳輸過程。 (1)當Switch A從連接Switch B的Hybrid端口發(fā)出的報文(也事先經(jīng)過port hybrid vlan untagged命令配置,該報文不攜帶VLAN標記)到達Switch B的端口Ethernet2/0/3時,因為是不帶VLAN標記的,所以在Ethernet2/0/3端口上會自動打上其缺省VLAN ID,即VLAN 5的標記。 (2)根據(jù)前面PC向Switch A發(fā)送報文傳輸過程中復制的VLAN 5的MAC地址轉(zhuǎn)發(fā)表,系統(tǒng)可以找到該報文的出端口為Switch B的Ethernet2/0/4。 (3)由于Switch B的Ethernet2/0/4又加入了VLAN 5,因此前面打上了VLAN 5標記的報文可以正常轉(zhuǎn)發(fā)VLAN 5的報文,然后同樣通過port hybrid vlan untagged命令的去標記配置將報文以不帶VLAN標記的方式轉(zhuǎn)發(fā)到到目的PC。   從以上兩個相反方面的報文傳輸過程可以看出(有關(guān)Hybrid端口報文收發(fā)規(guī)則請參見本書第16章16.1.2節(jié)),在isolate-user-vlan中最關(guān)鍵的就是兩種操作:一是在一些Hybrid端口上要通過port hybrid vlan untagged命令配置發(fā)送報文時去VLAN標記操作,二是Secondary VLAN和isolate-user-vlan之間的MAC地址復制,具體將在下面兩小節(jié)中介紹。這需要在本端設備進行配置同步和MAC地址同步處理,在上行設備需要進行如下配置:①創(chuàng)建VLAN,VLAN ID等于Isolate-user-VLAN的VLAN ID;②配置入端口參數(shù),將端口類型設置為Hybrid,將端口缺省VLAN值設置為Isolate-user-VLAN ID,配置端口允許缺省VLAN的報文以不帶VLAN標記方式通過。    在上節(jié)就提到了,配置Isolate-user-VLAN時需要在本端設備上配置“配置同步”和“MAC地址同步”。本節(jié)先介紹Isolate-user-VLAN的配置同步。配置Isolate-user-VLAN功能后,系統(tǒng)會自動對同時包含Isolate-user-VLAN和Secondary VLAN的端口進行如下配置同步: l   對于上行端口,會自動將端口類型修改為Hybrid,并允許來自Secondary VLAN的報文以不打VLAN標記方式通過(相當于自動將這個上行Hybrid端口上加入到了所有Secondary VLAN中)。而上行設備的入端口(就是與這個上行Hybrid端口相連的對端設備端口)已通過手動配置將端口的缺省VLAN值設置為Isolate-user-VLAN ID,根據(jù)Hybird端口發(fā)送報文規(guī)則可知,在上行設備收到這樣的不帶VLAN標記的報文后,均認為這些報文來自Isolate-user-VLAN,并給它們打開Isolate-user-VLAN ID的VLAN標記,從而屏蔽了Secondary VLAN信息。 l   對于下行端口,也會自動將端口類型修改為Hybrid,并允許來自Isolate-user-VLAN的報文以不打VLAN標記方式通過(相當于自動將這些下行Hybrid端口上加入到了Isolate-user-VLAN中)。    如圖20-3所示的網(wǎng)絡中,端口缺省都為Access端口,交換機的Ethernet1/2端口屬于VLAN 2, Ethernet1/3端口屬于VLAN 3, Ethernet1/5端口屬于VLAN 5,它們的相關(guān)屬性如表20-1所示。然后配置VLAN 5為Isolate-user-VLAN,VLAN 2、VLAN 3均為Secondary VLAN。配置同步后,端口的相關(guān)屬性改變了,如表20-2所示。 表20-1 配置同步前端口的相關(guān)屬性 
 表20-2  配置同步后端口的相關(guān)屬性 
 圖20-3 Isolate-user-VLAN配置同步示意圖   通過以上的分析,可以得出圖20-3所示的示例中,在配置好Isolate-user-VLAN方案后,在VLAN 5的端口成員包括了Isolate-user-VLAN以及它所映射的Secondary VLAN 2和Secondary VLAN 3中的所有端口,即Ethernet1/2、Ethernet1/3和Ethernet1/5這三個端口;Secondary VLAN 2中的端口成員包括Ethernet1/2和Ethernet1/5這兩個端口;Secondary VLAN 3中的端口成員包括Ethernet1/3和Ethernet1/5這兩個端口。而且這些端口均自動配置成了Hybird類型,以不帶VLAN標記方式發(fā)送報文,這些都無需手動配置,可通過display isolate-user-vlan命令查看相應Isolate-user-VLAN配置得到驗證。這些將在本章后面介紹的具體的Isolate-user-VLAN配置示例中會得到體現(xiàn)。 20.1.4  Isolate-user-VLAN MAC地址同步   通過上節(jié)介紹的Isolate-user-VLAN配置同步,來自Secondary VLAN的報文能以不打VLAN標記方式從上行端口發(fā)送出去,來自Isolate-user-VLAN的報文也能以不打VLAN標記方式從下行端口發(fā)送出去。這些報文是如何找到相應的出端口的呢?那就是通過MAC地址學習。   在沒有配置Isolate-user-VLAN前,交換機是通過MAC地址學習功能來學習目的MAC地址的。在如圖20-3所示網(wǎng)絡中交換機會生成并維護一張MAC地址表(如表20-3所示)。如果上行的Device設備給Host 2發(fā)送報文(源MAC地址為mac_a,目的MAC為mac_2);交換機會為報文打開該端口的缺省VLAN ID的VLAN標記,即5;然后以mac_2+VLAN 5為條件去查詢MAC地址表。由于找不到相應的表項,該報文會在VLAN 5內(nèi)廣播,從Eth1/2、Eth1/3同時發(fā)送出去。 
   同理,每次上行和下行的報文都需要廣播才能到達目的地。當Secondary VLAN和Isolate-user-VLAN包含的端口較多時,這樣的處理方式會占用大量的帶寬資源,而且不安全(廣播報文容易被截獲和偵聽)。通過Isolate-user-VLAN的MAC地址同步機制可以解決這個問題。Isolate-user-VLAN的MAC地址同步機制如下(是一種相互復制關(guān)系): l   Secondary VLAN到Isolate-user-VLAN的同步,即下行端口在Secondary VLAN內(nèi)學習到的動態(tài)MAC地址都會自動同步復制到Isolate-user-VLAN內(nèi)。 l   Isolate-user-VLAN到Secondary VLAN的同步,即上行端口在Isolate-user-VLAN學習到的動態(tài)MAC地址會自動同步復制到所有的Secondary VLAN內(nèi)。   當Isolate-user-VLAN下面配置了很多Secondary VLAN時,MAC地址同步復制后可能會導致MAC地址表過于龐大,從而影響設備的轉(zhuǎn)發(fā)性能。同時考慮到用戶的下行流量要遠遠大于上行流量,下行流量需要進行單播,上行流量可以進行廣播,所以Secondary VLAN到Isolate-user-VLAN的同步復制在所有產(chǎn)品中都支持,而Isolate-user-VLAN到Secondary VLAN的同步復制僅部分產(chǎn)品(主要是一些中高端交換機系列)支持。   在如圖20-3所示網(wǎng)絡中,MAC地址同步后各VLAN中的MAC地址表項如表20-4所示。從中可以看出,Isolate-user-VLAN 5中不僅有自己的mac_a表項,還添加了Secondary VLAN 2中的mac_2和Secondary VLAN 3中的mac_3這兩個表項,包括了整個Isolate-user-VLAN中的所有MAC地址表項;在Secondary VLAN 2中也不僅有自己的mac_2表項,還添加了Isolate-user-VLAN 5中的mac_a表項;在Secondary VLAN 3中也不僅有自己的mac_3表項,也添加了Isolate-user-VLAN 5中的mac_a表項。每個Secondary VLAN中除了包括自己的MAC地址表項,還將包括所映射的Isolate-user-VLAN中的MAC地址表項。這樣一來,在整個Isolate-user-VLAN中不會再需要進行MAC地址廣播尋址了,可以直接從自己的MAC地址表中找到對應的MAC地址表項(包括目的MAC地址和對應的出端口),提高了報文發(fā)送效率。 
   下面再通過圖20-3中Host 2的報文流程來闡述Isolate-user-VLAN的實現(xiàn)機制。 (1)Host 2第一次發(fā)出單播上行報文,報文為不打VLAN標記的,源MAC地址為mac_2,目的MAC地址為mac_a。 (2)Switch通過下行端口Ethernet1/2收到報文后會給報文打上端口缺省VLAN的標記2(因為Ethernet1/2是屬于VLAN 2的Access端口),并學習報文中的源MAC地址(mac_2)及相關(guān)信息,形成MAC地址表項(mac_2+VLAN2+Eth1/2)(此時的mac_2是作為該端口將來轉(zhuǎn)發(fā)報文的目的MAC地址,VLAN 2表示MAC_2主機在VLAN 2中,出接口為Ethernet1/2)。 (3)根據(jù)MAC地址同步原則,該MAC地址同時同步學習到VLAN 5內(nèi),設備同時記錄MAC地址表項(mac_2+VLAN5+Eth1/2)。 (4)由于Switch當前沒有報文中目的MAC地址mac_a的MAC表項,因此設備會在VLAN 2內(nèi)廣播該報文。 (5)由于配置了配置同步功能,交換機的上行Ethernet1/5端口允許VLAN 2的報文以不打VLAN標記方式通過,所以報文去掉VLAN標記后通過Ethernet1/5發(fā)送出去。 (6)Device 收到報文后,比較發(fā)現(xiàn)自己的MAC地址正是廣播報文中的目的mac_a,于是進行響應。交換機通過其上行端口Ethernet1/5收到響應報文,給報文打上該端口缺省VLAN的標記5,并學習報文中的源MAC地址,記錄MAC地址表項(mac_a+VLAN5+Eth1/5)。通過MAC地址同步功能,又在兩個Secondary VLAN中生成兩條MAC地址表項(mac_a+VLAN2+Eth1/5)和(mac_a+VLAN3+Eth1/5)。 (8)Switch以“mac_2+VLAN 5”為條件(因為原來的廣播報文中的源MAC地址為mac_a)去查詢MAC地址表,找到出接口Ethernet1/2,并將報文去VLAN標記后發(fā)送給Host 2。這樣就實現(xiàn)了Host 2和Device之間的報文交互。 | 
|  |