写给非网工的CCNA教程(6)VLAN和802.1q协议
1 VLAN的引入
? ? 上文中,我們說(shuō)到通過(guò)LAN的方式實(shí)現(xiàn)同網(wǎng)段通信,在級(jí)聯(lián)的交換機(jī)數(shù)量和終端設(shè)備數(shù)量很大時(shí),會(huì)導(dǎo)致廣播域的擴(kuò)大,浪費(fèi)交換機(jī)的帶寬,也白白消耗非目標(biāo)設(shè)備的性能。
? ? 因此我們 引入了VLAN機(jī)制:我們可以在這些級(jí)聯(lián)的交換機(jī)上啟用VLAN,然后把需放在同一個(gè)廣播域的端口配置成相同的VLAN ID。這樣的話,廣播就只會(huì)在具有相同的VLAN ID的端口上轉(zhuǎn)發(fā)。如下圖所示:
? ? PC-A和PC-B連接二層交換機(jī)SW-A上,PC-C和PC-D連接在二層交換機(jī)SW-B上,PC-E和PC-F連接在二層交換機(jī)SW-C上。
? ? PC-A的IP地址為192.168.10.1 /24,PC-F的IP地址為192.168.10.6 /24,兩者在同一個(gè)網(wǎng)段,也處于同一VLAN 10(Access VLAN);
? ? PC-B的IP地址為192.168.20.2 /24,PC-C的IP地址為192.168.20.3 /24,兩者在同一個(gè)網(wǎng)段,也處于同一VLAN 20(Access VLAN);
? ? PC-D的IP地址為192.168.30.4 /24,PC-E的IP地址為192.168.30.5 /24,兩者在同一個(gè)網(wǎng)段,也處于同一VLAN 30(Access VLAN);
? ? SW-A和SW-B級(jí)聯(lián),級(jí)聯(lián)口屬于Trunk VLAN,放行VLAN 10和20;
? ? SW-B和SW-E級(jí)聯(lián),級(jí)聯(lián)口也屬于Trunk VLAN,放行VLAN 10和30。
? ? 各個(gè)終端設(shè)備的IP地址和MAC地址對(duì)照表,如下所示。
| 設(shè)備 | IP地址 | MAC地址 | 所連交換機(jī)端口 | 所連交換機(jī)端口屬于的VLAN |
| PC-A | 192.168.10.1 /24 | 1111.1111.1111 | SW-A:Gi0/1 | VLAN 10 |
| PC-B | 192.168.20.2 /24 | 2222.2222.2222 | SW-A:Gi0/2 | VLAN 20 |
| PC-C | 192.168.20.3 /24 | 3333.3333.3333 | SW-B:Gi0/1 | VLAN 20 |
| PC-D | 192.168.30.4 /24 | 4444.4444.4444 | SW-B:Gi0/2 | VLAN 30 |
| PC-E | 192.168.30.5 /24 | 5555.5555.5555 | SW-C:Gi0/1 | VLAN 30 |
| PC-F | 192.168.10.6 /24 | 6666.6666.6666 | SW-C:Gi0/2 | VLAN 10 |
?
2 VLAN對(duì)報(bào)文的影響
? ? VLAN是在802.1q這個(gè)協(xié)議里面定義的,當(dāng)然802.1q協(xié)議除了定義VLAN以外,還定義了二層的QoS功能。沒(méi)有啟用VLAN時(shí),我們的報(bào)文是不帶vlan tag的,當(dāng)啟用VLAN 后,有些報(bào)文會(huì)帶上vlan tag,當(dāng)然也有些仍然不帶vlan tag。
? ? 不帶vlan tag和帶有vlan tag的報(bào)文,有何區(qū)別呢,如下圖所示。藍(lán)色部分即為802.1q的頭部,占4個(gè)字節(jié),也表示該數(shù)據(jù)帶有vlan tag。如果報(bào)文不帶vlan tag,那么藍(lán)色的802.1q頭部是不存在的。
? ? ?說(shuō)說(shuō)802.1q的頭部,如下三點(diǎn):
? ? (1)802.1q頭部是在Ethernet II幀的【源MAC地址】和【Type】之間加入的,占據(jù)4個(gè)字節(jié)長(zhǎng)度。
? ? (2)802.1q頭部本身分為兩個(gè)部分,Tag Protocol ID為固定值0x8100,用于指明該Ethernet II幀帶了VLAN tag,如果不帶VLAN tag,那么Ethernet II幀就不會(huì)出現(xiàn)802.1q頭部。
? ? (3)802.1q頭部另一個(gè)部分為T(mén)ag Control Information,占2個(gè)字節(jié),這部分分成三個(gè)小部分:前3bit用于二層QoS;第4個(gè)bit保留,一般為0;后面12個(gè)bit表示VLAN ID,因此VLAN ID的數(shù)量為2^12-2=4094個(gè),12bit的0和12bit的1的要去掉。
?
3 在交換機(jī)上啟用VLAN
? ? 上圖中,我們提到的Access VLAN和Trunk VLAN,都是手動(dòng)在交換機(jī)上配置的,而且是針對(duì)交換機(jī)的端口配置的。
? ? 交換機(jī)端口所屬的VLAN可以有一個(gè)或者多個(gè),我們把屬于一個(gè)VLAN的端口,稱(chēng)為Access口,對(duì)應(yīng)的VLAN稱(chēng)為Access VLAN,屬于多個(gè)VLAN的端口,稱(chēng)為T(mén)runk口,對(duì)應(yīng)的VLAN稱(chēng)為T(mén)runk VLAN。
? ? Access口一般用于連接PC、服務(wù)器等終端設(shè)備,而Trunk口一把用于交換機(jī)之間的級(jí)聯(lián),上圖就是這么去做的。關(guān)于交換機(jī)的Access VLAN和Trunk VLAN的配置,我們以思科交換機(jī)為例,如下圖所示的SW-A的配置。
SW-A#show running-config interface gigabitEthernet 0/1 Building configuration...Current configuration : 141 bytes ! interface GigabitEthernet0/1switchport access vlan 10switchport mode accessspanning-tree portfast endSW-A#show running-config interface gigabitEthernet 0/2 Building configuration...Current configuration : 141 bytes ! interface GigabitEthernet0/2switchport access vlan 20switchport mode accessspanning-tree portfast endSW-A#show running-config interface gigabitEthernet 0/21 Building configuration...Current configuration : 86 bytes ! interface GigabitEthernet1/0/21switchport trunk allowed vlan add 10switchport trunk allowed vlan add 20switchport trunk native vlan 1 switchport mode trunkswitchport nonegotiate end?
4 啟用VLAN后,交換機(jī)處理機(jī)制發(fā)生了哪些改變
4.1 交換機(jī)端口如何處理報(bào)文
? ? 我們知道交換機(jī)端口有兩種類(lèi)型,Access口和Trunk口,它們的處理方式還是有點(diǎn)不一樣,我們分開(kāi)討論。通過(guò)本節(jié),我們可以更加深入地理解,對(duì)于帶有802.1q(vlan tag)和不帶802.1q(vlan tag)數(shù)據(jù)幀的處理機(jī)制的不同。如下表所示。?
| 交換機(jī)端口類(lèi)型 | 如何處理接收到的數(shù)據(jù)幀 | 如何處理發(fā)送的數(shù)據(jù)幀(不帶tag的數(shù)據(jù)幀,不會(huì)到這一步) | |
| 數(shù)據(jù)幀不帶vlan tag | 數(shù)據(jù)幀帶有vlan tag | ||
| Access口 | 接收此數(shù)據(jù),并且給該數(shù)據(jù)打上access vlan tag | 僅僅接收與access vlan tag相同vlan tag的數(shù)據(jù)幀,其他的丟棄 | 僅僅轉(zhuǎn)發(fā)與自己相同vlan tag的數(shù)據(jù)幀,并且轉(zhuǎn)發(fā)前會(huì)剝掉vlan tag |
| Trunk口 | 接收此數(shù)據(jù),并且該該數(shù)據(jù)打上native vlan tag | 接收allowed vlan列表中的vlan tag的數(shù)據(jù)幀,其他的丟棄 | 僅僅轉(zhuǎn)發(fā)allowed vlan列表中的帶有vlan tag的數(shù)據(jù)幀,并且如果該vlan tag與native vlan相同則剝掉vlan tag,其他不作處理,直接轉(zhuǎn)發(fā) |
4.2 交換機(jī)MAC表有哪些改動(dòng)
? ??當(dāng)我們?cè)诮粨Q機(jī)上把一個(gè)端口劃到一個(gè)VLAN時(shí),此端口對(duì)應(yīng)的MAC表項(xiàng)會(huì)加上VLAN ID,如果沒(méi)有給端口指定VLAN,那么此端口對(duì)應(yīng)的VLAN ID為默認(rèn)的,一般是1。
? ? 不難看出啟用VLAN后,MAC表會(huì)新增一列,用于記錄各個(gè)端口對(duì)應(yīng)的VLAN ID,如下圖中SW-A上的MAC表所示。
SW-A#show mac address-table Mac Address Table -------------------------------------------Vlan Mac Address Type Ports ---- ----------- -------- -----10 1111.1111.1111 DYNAMIC Gi/0/120 2222.2222.2222 DYNAMIC Gi/0/220 3333.3333.3333 DYNAMIC Gi/0/2110 6666.6666.6666 DYNAMIC Gi/0/21? ? 仔細(xì)觀察上圖,有兩個(gè)問(wèn)題,我們需要注意:
? ? (1)SW-A的MAC表里面沒(méi)有PC-D和PC-E的表項(xiàng),為什么呢?
? ? ? ? 這就得回到上一級(jí)我們對(duì)SW-A的配置了,我們?cè)贕i0/1口、Gi0/2口、Gi0/21口,加起來(lái)也就啟用了VLAN 10和20,根本沒(méi)有啟用VLAN 30,而PC-D和PC-E都屬于VLAN 30,所以SW-A的MAC表里面不會(huì)有PC-D和PC-E的表項(xiàng)。
? ? (2)SW-A的MAC表中最后兩行,代表的PC-C和PC-F表項(xiàng),端口都是Gi0/21口,為何VLAN ID不一樣呢?
? ? ? ? 聰明的你,肯定知道PC-C接在SW-B的Gi0/1口,屬于VLAN 20;而PC-F接在SW-C的Gi0/2口,屬于VLAN 10;那PC-C在SW-A上的VLAN ID為20,PC-F在SW-A上的VLAN ID為10,沒(méi)毛病啊。
? ? ? ? 真的是這樣嗎?提個(gè)問(wèn)題,SW-A怎么就知道PC-C和PC-F連接在SW-B和SW-C的哪個(gè)端口呢,它兩又不是直接連在SW-A上,SW-A又怎么知道呢?
? ? ? ? 其實(shí)這個(gè)得從啟用VLAN后,交換機(jī)轉(zhuǎn)發(fā)數(shù)據(jù)的機(jī)制說(shuō)起了,接著看下文。
4.3 交換機(jī)數(shù)據(jù)轉(zhuǎn)發(fā)機(jī)制有哪些改變
? ? 其實(shí)啟用VLAN后,二層交換機(jī)會(huì)對(duì)進(jìn)入到端口的數(shù)據(jù)幀先處理下,處理過(guò)程前面已經(jīng)說(shuō)過(guò)。處理后的數(shù)據(jù)在交換機(jī)內(nèi)部一定帶有VLAN ID,無(wú)論它進(jìn)入交換機(jī)前是否帶有VLAN ID。
? ? 接下來(lái)根據(jù)目的MAC地址查找MAC表時(shí),只會(huì)在與數(shù)據(jù)源VLAN ID相同的MAC表項(xiàng)中查找,找不到再?gòu)V播。因此啟用VLAN后,就讓廣播的范圍局限一個(gè)VLAN內(nèi)部。
總結(jié)
以上是生活随笔為你收集整理的写给非网工的CCNA教程(6)VLAN和802.1q协议的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 前端学习(1316):静态资源
- 下一篇: 网管员的任务与职责漫谈