每個(gè) vlan 都是一個(gè)單獨(dú)的子網(wǎng),單獨(dú)的廣播域。
默認(rèn)情況下,所有交換接口都處于 vlan 1??梢酝ㄟ^配置添加 vlan,并將一些接口劃入該 vlan。
從 PC 發(fā)出的是‘純凈’的數(shù)據(jù),進(jìn)入交換接口時(shí)被打上 vlan 標(biāo)簽,并重新計(jì)算幀校驗(yàn)值(dot1q 協(xié)議),如果轉(zhuǎn)發(fā)出去的是 access(接入)接口,則轉(zhuǎn)發(fā)時(shí)會(huì)去掉 vlan 標(biāo)簽。如果轉(zhuǎn)發(fā)出去的是 trunk(干線)接口,則會(huì)帶著 vlan 標(biāo)簽轉(zhuǎn)發(fā)。與 trunk 接口相連接的也是 trunk 接口,收到數(shù)據(jù)后讀取標(biāo)簽中的 vlan 信息并去除標(biāo)簽,從其他vlan 接口轉(zhuǎn)發(fā)出去
vlan 之間默認(rèn)無法通信,如果要通信需要借助三層設(shè)備(路由器,三層交換機(jī)等)
以下內(nèi)容學(xué)習(xí)自 www.qingsword.com 與 紅茶三杯老師的網(wǎng)絡(luò)課程 http://ccietea.com/
第一種方式 - 依靠三層設(shè)備的物理接口進(jìn)行轉(zhuǎn)發(fā)

先來看一下這張網(wǎng)絡(luò)拓?fù)鋱D,一臺(tái)路由器一個(gè)交換機(jī),兩臺(tái)PC
兩臺(tái) PC 處于不同的子網(wǎng),網(wǎng)關(guān)分別設(shè)在 路由器的 兩個(gè)接口上
交換機(jī)劃分 vlan,e0/0 和 e3/2 處于 vlan 10, e0/1 和 e3/3 處于 vlan 20
這樣就可以通過一臺(tái)路由器實(shí)現(xiàn)兩個(gè)vlan 間的通信,下邊分析一下封包的流向和傳遞過程
PC-1 ping PC-2 的過程就是 PC-1 向 PC-2 發(fā)送一個(gè) icmp 報(bào)文,然后 PC-2 收到報(bào)文發(fā)送一個(gè) Reply 給 PC-1
分析:
PC-1 的網(wǎng)卡 ip 是 192.168.1.1/24,報(bào)文要去往 192.168.2.1/24。但是該地址不在自己的子網(wǎng)內(nèi),因此 PC-1 需要先把報(bào)文發(fā)送給自己的網(wǎng)關(guān) 192.168.1.254,由網(wǎng)關(guān)代為轉(zhuǎn)發(fā)。該報(bào)文的源地址是 192.168.1.1,目的地址是 192.168.1.254。
報(bào)文不能在鏈路上傳輸,二層是不認(rèn)識(shí)ip 的,所以需要進(jìn)一步封裝。也就是把報(bào)文封裝為二層的數(shù)據(jù)幀,但是現(xiàn)在還不知道 192.168.1.254 的 mac 地址,因此沒有辦法發(fā)送到 網(wǎng)關(guān) 192.168.1.254
為了得到 192.168.1.254 的 mac 地址,PC-1 發(fā)出一個(gè)arp 發(fā)現(xiàn)報(bào)文,源mac 為 MAC-PC1,目的mac 為 ff:ff:ff:ff:ff:ff(廣播地址)。
我們可以通過在 PC1-SW1 抓包抓取到該 arp 報(bào)文,報(bào)文內(nèi)數(shù)據(jù)如下:

交換機(jī) SW-1 收到分片,成幀之后發(fā)現(xiàn)目的mac 是一個(gè)廣播地址(ff:ff:ff:ff:ff:ff),于是把幀從所有其他的 vlan 10 端口泛洪出去。在這里,幀從 e3/2 接口出去,到達(dá) e0/0
路由器 R1 成幀后,發(fā)現(xiàn)mac 為廣播地址,進(jìn)行解封裝,取出 arp 數(shù)據(jù)報(bào)文,發(fā)現(xiàn)目的 ip 地址就是自己。(如果目的ip 地址不是自己,默認(rèn)丟棄該報(bào)文。所以 tcpdump 等抓包軟件需要將 網(wǎng)卡/設(shè)備置于 混雜模式,才可以抓取任意經(jīng)過該網(wǎng)卡/設(shè)備的報(bào)文)
R1 發(fā)出一個(gè) arp 回應(yīng)報(bào)文,源 ip 是 192.168.1.254,目的 ip 是 192.168.1.1。封裝成幀,源mac 是MAC-R1e00,目的mac 是MAC-PC1。從 e0/0 發(fā)回去
交換機(jī)成幀后拿到目的mac MAC-PC1,查找 mac 地址轉(zhuǎn)換表,將幀從 e0/0 轉(zhuǎn)發(fā)出去
由于交換機(jī)是透?jìng)鞯模ㄔ趺催M(jìn)來的還怎么出去),我們同樣在 PC1-SW1 鏈路上抓取到arp 回應(yīng)報(bào)文,數(shù)據(jù)如下:

PC-1 成幀后,發(fā)現(xiàn)目的mac 是自己。進(jìn)一步解封裝,目的ip 是自己,于是進(jìn)行處理,知道了 192.168.1.254 的 mac 地址 MAC-R1e00。
然后 PC-1 就可以發(fā)出icmp 報(bào)文(ping 在底層是icmp 報(bào)文),源ip 192.168.1.1,目的ip 192.168.2.1(PC-2),源mac MAC-PC1,目的mac MAC-R1e00。
交換機(jī)查詢mac 地址轉(zhuǎn)換表,從 e3/2 轉(zhuǎn)發(fā)出去,報(bào)文到達(dá) R1
R1 發(fā)現(xiàn) 目的mac 是自己,解封裝。取出目的 ip 192.168.2.1
因?yàn)?R1 的 e0/1 接口直接連接到 192.168.2.0/24 子網(wǎng),因此路由器可以直接學(xué)習(xí)到去往該子網(wǎng)的路由
通過查詢路由表,從 e0/1 轉(zhuǎn)發(fā)出去,源mac 替換為自己的mac MAC-R1e01(如果不替換,回包將無法收到),目的mac 為 192.168.2.1(PC-2) 的 mac 地址,該地址通過向 192.168.2.0/254 子網(wǎng)發(fā)出 arp 報(bào)文廣播得到
交換機(jī)把數(shù)據(jù) 從除了 e3/3 之外的所有 vlan 20 接口泛洪出去
幀通過 e0/1 接口出去到達(dá) e0
PC-2 發(fā)現(xiàn)目的 是自己,收到報(bào)文,并發(fā)出 reply 的回應(yīng)報(bào)文
配置如下
# PC-1
ip 192.168.1.1/24 192.168.1.254
# PC-2
ip 192.168.2.1/24 192.168.2.254
# SW-1
vlan 10
name vlan10
vlan 20
name vlan20
exit
int e 0/0
switchport mode access
switchport access vlan 10
int e 0/1
switchport mode access
switchport access vlan 20
int e 3/2
switchport mode access
switchport access vlan 10
int e 3/3
switchport mode access
switchport access vlan 20
end
show vlan brief
# R1
int e0/0
ip addr 192.168.1.254 255.255.255.0
no shut
int e0/1
ip addr 192.168.2.254 255.255.255.0
no shut
end
show ip interface brief
上述方式雖然簡便,但是卻使用了路由器的兩個(gè)接口。路由器的接口通常很少很寶貴,造成了極大的浪費(fèi)
下面的方式只需要使用路由器的一個(gè)接口就可以解決問題
第二種方式 - 單臂路由

這里將路由器 R1 的 e0/0 配置兩個(gè) 子接口,分別作為 PC-1 和 PC-2 的網(wǎng)關(guān)
路由器與交換機(jī)之間的鏈路 配置為 干線(trunk),運(yùn)行 dot1q 協(xié)議
配置如下:
# PC配置(PC-1)
ip 192.168.1.1/24 192.168.1.254
# PC-2
ip 192.168.2.1/24 192.168.2.254
# 交換機(jī)配置(SW-1)
vlan 10
name vlan10
vlan 20
name vlan20
exit
int e0/1
swi mod acc
swi acc vlan 10
int e0/2
swi mod acc
swi acc vlan 20
int e0/0
swi trunk enc dot1q
swi mod trunk
swi trunk allow vlan all
end
show vlan brief
# R1 配置 子接口
int e0/0
no shut
int e0/0.10
enc dot1q 10
ip addr 192.168.1.254 255.255.255.0
no shut
int e0/0.20
enc dot1q 20
ip addr 192.168.2.254 255.255.255.0
no shut
end
show ip interface brief
路由器的轉(zhuǎn)發(fā)處理過程是很復(fù)雜的,上邊的方法每次通信都需要經(jīng)過 解除tag,路由,貼上tag 一系列過程,并且會(huì)對(duì)路由器與交換機(jī)之間的鏈路造成很大的負(fù)荷
下邊的方法利用 交換機(jī)的 SVI 接口 來實(shí)現(xiàn)更優(yōu)的解決方案
第三種方式 - 三層交換機(jī)
待續(xù)...