前文我們主要聊了下交換機的作業原理和以太網介面的速率和雙工相關話題,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/15088183.html;今天我們主要來聊一聊二層交換技術vlan相關話題;
在二層交換技術中vlan的概念是相當重要的,我們知道交換機天生就有隔離沖突域的特點,但它不隔離廣播域;如果在一個大型的網路環境中,接入的終端設備過多,那么對于二層網路來講,廣播報文可能成為影響網路性能的“罪魁禍首”;為了解決廣播域帶來的廣播風暴,vlan技術由此誕生;什么是vlan呢?vlan就是virtual local area network的首字母縮寫;翻譯成中文就是虛擬局域網;它可以將一臺物理交換機邏輯的劃分為多個不同廣播域;從而實作隔離廣播域;
vlan技術

提示:vlan作業在二層,所以它更不看ip地址,所以不管是不是同一網段,默認情況下只要不再同一vlan都不可通信,其原因就在于vlan隔離了廣播域,那么對于不同vlan的兩個設備通信,首先A設備發送arp請求廣播,設備B收不到,從而設備A也無法拿到設備B的mac地址,沒有mac地址在以太網環境中就無法封裝以太網協議包;這里必須提醒一下,在同一vlan中的兩個設備通信,必須是同一網段;可能有的同學會感到奇怪,二層通信不是不看ip地址的嗎?怎么在同一vlan下兩者的ip地址必須是同一網段才能通信呢?其實兩個網路設備通信時,首先會看ip地址是不是同一網段,如果是同一網段,那么在以太網環境中,二層封裝就封裝對方的mac地址,如果本端沒有對方的mac地址,則本端發送arp請求廣播;如果有,則直接封裝對方的mac地址;如果不在同一網段,那么二層封裝就會封裝網關的mac地址;如果有網關的mac就直接封裝,如果沒有就發送arp請求廣播;

提示:有了vlan,其實我們可以理解為把一個物理交換機邏輯的劃分了多個交換機;只有在同一vlan下的介面可以相互收到廣播,不同vlan下的介面是收不到對方的廣播;如上f0/1發送一條arp請求廣播,那么就只能在f0/2介面上收到此廣播,對于f0/3和f0/4這兩個介面,它們是無法收到f0/1發送到arp請求廣播;


提示:對于不同交換機來講,只要vlan相同的介面都可以通信;比如A交換機上的vlan3是可以和B交換機上的vlan3通信的;同樣的道理一個大型網路里,只要vlan相同,都可以互相邏輯的組織成一個局域網;從上面的示例可以看到,有了vlan,我們就可以根據業務和現場網路環境的不同來劃分對應的vlan;從而提高網路性能,隔離廣播域的同時也為網路管理員帶來了管理上的方便;
總結:vlan的優點
1、有效控制廣播域的范圍;
2、增強局域網的安全性(這個安全性主要是從有vlan和沒有vlan,受攻擊的范圍來講);
3、靈活構建虛擬作業組(我們可以根據不同業務,不同部門等來劃分vlan,從而實作在二層彼此隔離);
4、簡化網路管理(這個有點主要體現在二層網路出現故障,能快速找到原因);
VLAN范圍

提示:vlan范圍是0-4095,0和4095為保留,默認是vlan 1 ;
vlan標簽
不帶標簽的資料包格式

提示:不帶標簽的資料包在二層以太網封裝就只有目標mac和源mac地址以及type,后面就是ip頭部和資料;
帶標簽的資料包格式

提示:帶標簽的資料包在原有沒有標簽的資料包多了一個802.1q的頭部,其中里面有vlan id,后面接type 和ip頭部和資料;

提示:IEEE 802.1q:dot1q,是VLAN的正式標準,對 Ethernet 幀格式進行了修改,在源 MAC 地址欄位和協議型別欄位之間加入 4 位元組的 802.1q Tag每臺支持 802.1q 協議的交換機發送的資料包都會包含 VLAN ID,以指明交換機屬于哪一個 VLAN,因此,在一個 VLAN 交換網路中,以太網幀有以下兩種形式有標記幀(tagged frame)和無標記幀(untagged frame);
vlan鏈路型別
1、接入鏈路(access link): 用于連接主機和交換機的鏈路,接入鏈路上傳輸的幀都是untagged幀,
2、干道/中繼鏈路(trunk link):用于交換機間的互連或交換機與路由器之間的鏈路,干道鏈路上傳輸的幀幾乎都是tagged幀用于兩端識別,只有對應資料包的標簽和trunk的pvid相等時,干道鏈路之間就是以untagged幀;

PVID
PVID是Port Vlan ID 的縮寫,代表埠的預設VLAN;X7系列交換機每個介面PVID=1

VLAN埠型別
1、access(接入埠):用于連接主機,該埠有收到資料后會添加VLAN Tag,VLAN ID和埠的PVID相同,轉發資料前會移除VLAN Tag,

提示:正常情況下主機和主機的通信,其資料包里是沒有標簽的,如果有標簽主機是無法識別的;所以在主機A和主機C通信,最后到達主機c的資料包一定是沒有標簽的,否則兩者不可能互通;上圖主機A向主機C通信,首先主機A發送一個無標簽的資料包給交換機;交換機的g0/0/1口收到該資料包以后,會根據其埠的屬性(如access型別),它會把主機A發送到資料包打上標簽,以表示該埠屬于那個VLAN;打好標簽以后,交換機會查找mac地址表,看看有沒有主機C的mac地址,如果有,就直接將資料包轉發給對應的介面,如果沒有泛洪(這里泛洪只是在同一vlan里泛洪,不是同一vlan的介面是收不到對應的資料包);當資料包從g0/0/3轉發時,交換機又會根據g0/0/3的埠屬性(如access埠,在轉發資料時,它會看對應資料包里是否有標簽,如果有,然后對比是否和本埠的pvid相同,如果相同則剝離該標簽,然后將資料包發送出去);最后主機C就收到主機A的資料包;回包也是一樣的程序;
2、Trunk(干道埠):用于連接交換機或路由器,干道埠有如下特點,收到幀時,如果該幀不包含Tag,將打上埠的PVID;如果該幀包含Tag,則不改變,發送幀時,該幀的VLAN ID在Trunk的允許發送串列中:若與埠的PVID相同時,則剝離Tag發送;若與埠的PVID不同時,則直接發送,

提示:主機A和主機C通信,首先主機A發送的資料包是不帶標簽的,在交換機收到主機A發送的資料包是首先會將其打上對應埠的pvid的標簽(與主機相連的介面是access,收到沒有標簽的資料包會打上對應埠的pvid的標簽),在打好標簽以后,交換機會根據mac地址表進行資料包轉發,然后從swa的trunk口發送,在發送之前,交換機會查看轉發的資料包是否帶標簽,如果帶標簽,它會再查看對應標簽是否允許在trunk口通過,如果在允許的串列里,它會和trunk口的pvid做比較,看看是否和trunk的pvid相等,如果相等就把對應標簽給剝離了,然后在發送;如果不相等則直接發送;如果不被允許則丟棄;所以主機A和主機C通訊,在trunk之間傳輸就是以untagged的形式傳輸;而主機B和主機D通訊就不一樣了,在trunk允許類表里,但不和對應trunk的pvid相同,所以主機B和主機D的通信是以有標簽的形式傳輸;
3、Hybrid(混雜埠):該型別埠既可以連接主機,又可以連接其他交換機,既可以連接接入鏈路又可以連接干道鏈路,允許多個 VLAN 的幀通過,并可以在出介面方向將某些 VLAN 幀的Tag剝掉(由命令決定);

提示:hybrid埠可以根據實際的網路環境設定是否帶標簽,它可以實作特定的訪問需求;它可以允許多個vlan在一條鏈路上以untagged的形式通過,而對應trunk埠只能允許預設vlan以untaged的形式通過;
配置vlan

實驗:如下拓撲,配置vlan

配置sw1
sys sys sw1 vlan batch 10 20 int g0/0/2 port link-type access port default vlan 10 int g0/0/3 port link-type access port default vlan 20 int g0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 port trunk pvid vlan 10View Code

配置sw2
sys sys sw2 vlan batch 10 20 int g0/0/2 port link-type access port default vlan 10 int g0/0/3 port link-type access port default vlan 20 int g0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 port trunk pvid vlan 10View Code

驗證sw1上的vlan


提示:可以看到在sw1上有三個vlan,vlan 10和20是我們剛才新建的,vlan1是默認就有的;其中vlan 10有兩個埠,其中g0/0/1和g0/0/2口untagged不帶標簽;vlan20 中g0/0/3是untagged不帶標簽,但在g0/0/1口是以帶標簽通過;第二條命令中可以看到g0/0/2和g0/03口是access介面,并且各自屬于不同的vlan;g0/0/1口為trunk口,預設vlan10 ,允許vlan 1 10 20 通過;
驗證sw2上的vlan


驗證:配置好各主機的ip地址,看看pc1是否能ping 通pc2,pc3 或pc4 ?
pc1 ping pc2

提示:pc1 ping pc2 直接提示我們目標主機不可達;其原因是pc1 和pc2不再同一網段,所以它會找網關,而我們在主機上又沒有配置網關;
pc1 ping pc3

提示:可以看到pc1能夠正常ping通pc3,其原因是pc1 和 pc3是同一網段,并且兩者都屬于vlan10(在同一廣播域),所以pc1發送的arp請求廣播,pc3能夠正常收到并回復;
pc2 ping pc4

提示:可以看到pc2也是可以正常ping通pc4;
配置hybrid
實驗:如下拓撲,實作主機5不能訪問主機6,主機5和主機6可以正常訪問主機7

配置sw3
sys sys sw3 vlan batch 5 to 7 int g0/0/2 port link-type hybrid port hybrid pvid vlan 5 port hybrid untagged vlan 5 7 int g0/0/3 port link-type hybrid port hybrid pvid vlan 6 port hybrid untagged vlan 6 7 int g0/0/1 port link-type hybrid port hybrid tagged vlan 5 6 7View Code

配置sw4
sys sys sw4 vlan batch 5 to 7 int g0/0/2 port link-type hybrid port hybrid pvid vlan 7 port hybrid untagged vlan 5 6 7 int g0/0/1 port link-type hybrid port hybrid tagged vlan 5 6 7View Code

驗證:在sw3上查看對應介面vlan資訊

提示:可以看到在sw3上創建了3個vlan,分別為vlan 5,vlan 6,vlan 7;在vlan5里,g0/0/2是以untagged不打標簽的形式通過資料包;在g0/0/1口是以打標簽的方式通過;在vlan6里,g0/0/3口是不打標簽的方式通過,g0/0/1口是打標簽的方式通過;在vlan7里g0/0/2口和g0/0/3口都是以不打標簽的方式通過;在g0/0/1口是以打標簽的方式通過;以上描述資料包通過該介面是從該介面出去時是否帶標簽;
驗證:查看sw3的介面型別

提示:可以看到g0/0/1,2,3口的型別都為hybrid介面;其實從上面的的截圖也可以看到,g0/0/1介面有點類似trunk介面,允許帶有vlan 5,6,7標簽的資料包通過;
驗證:查看sw4上的vlan資訊

提示:可以看到在sw4上不管是vlan5,vlan6,vlan7在g0/0/2口都是以untagged方式通過;在g0/0/1口都是以tagged的方式通過;
驗證:pc5 ping pc7和pc 6 看看是否ping通?

提示:可以看到pc5可以正常ping通pc7,ping不同pc6;其原因是pc5發送的資料包在通過g0/0/2口時會被打上vlan 5的標簽(pc5發出的資料不帶標簽,hybrid介面收到一個未打標簽的資料包會打上自己pvid的標簽,以表示自己屬于某個vlan),而連接pc6的g0/0/3介面沒有允許帶有vlan 5標簽的資料包通過,所以對于pc6來說,它根本就收不到pc5的資料包;同樣的道理pc6發送的包,pc5也收不到,兩者相互隔離;pc5能夠ping通pc7的原因是在sw3的g0/0/1口允許帶有vlan5標簽的資料通過,在sw4的g0/0/1口允許帶有vlan5標簽的資料包通過;在sw4的g0/0/2口允許帶有vlan5標簽的資料包,剝離其標簽通過,所以pc5的資料包最終達到pc7是剝離其標簽,所以pc5能夠將資料包送給pc7;當pc7回復pc5的包時,在通過sw4的g0/0/2口時會被打上vlan7的標簽;在從g0/0/1介面發送出去也是以tagged方式發送,并且sw4和sw3的g0/0/1介面都允許vlan7通過,所以pc7的資料包達到sw3時,是有vlan7標簽的;在資料包從sw3的g0/0/2口發送出去時,vlan7的標簽會被剝離掉(sw3的g0/0/2口允許帶有vlan5和vlan7的資料包剝離標簽發送);所以最終pc7的資料包能夠順利到達pc5,兩者實作互通;
驗證:pc6 ping pc5 pc7 是否ping通?

提示:可以看到pc6 ping pc5 ping不同,ping pc7可以正常ping通,其通信程序和上述pc5 ping pc6 pc7的程序一樣;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/291405.html
標籤:其他
