vlan 間路由

每個(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ā)

image.png

先來看一下這張網(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

分析:

  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。

  2. 報(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

  3. 為了得到 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(廣播地址)。

  4. 我們可以通過在 PC1-SW1 抓包抓取到該 arp 報(bào)文,報(bào)文內(nèi)數(shù)據(jù)如下:

image.png
  1. 交換機(jī) SW-1 收到分片,成幀之后發(fā)現(xiàn)目的mac 是一個(gè)廣播地址(ff:ff:ff:ff:ff:ff),于是把幀從所有其他的 vlan 10 端口泛洪出去。在這里,幀從 e3/2 接口出去,到達(dá) e0/0

  2. 路由器 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)文)

  3. 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ā)回去

  4. 交換機(jī)成幀后拿到目的mac MAC-PC1,查找 mac 地址轉(zhuǎn)換表,將幀從 e0/0 轉(zhuǎn)發(fā)出去

  5. 由于交換機(jī)是透?jìng)鞯模ㄔ趺催M(jìn)來的還怎么出去),我們同樣在 PC1-SW1 鏈路上抓取到arp 回應(yīng)報(bào)文,數(shù)據(jù)如下:

image.png
  1. PC-1 成幀后,發(fā)現(xiàn)目的mac 是自己。進(jìn)一步解封裝,目的ip 是自己,于是進(jìn)行處理,知道了 192.168.1.254 的 mac 地址 MAC-R1e00。

  2. 然后 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。

  3. 交換機(jī)查詢mac 地址轉(zhuǎn)換表,從 e3/2 轉(zhuǎn)發(fā)出去,報(bào)文到達(dá) R1

  4. R1 發(fā)現(xiàn) 目的mac 是自己,解封裝。取出目的 ip 192.168.2.1

  5. 因?yàn)?R1 的 e0/1 接口直接連接到 192.168.2.0/24 子網(wǎng),因此路由器可以直接學(xué)習(xí)到去往該子網(wǎng)的路由

  6. 通過查詢路由表,從 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)文廣播得到

  7. 交換機(jī)把數(shù)據(jù) 從除了 e3/3 之外的所有 vlan 20 接口泛洪出去

  8. 幀通過 e0/1 接口出去到達(dá) e0

  9. 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è)接口就可以解決問題

第二種方式 - 單臂路由

image.png

這里將路由器 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ù)...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容