交換機互聯不同vlan及不同網段通訊問題總結解析

2023-02-09 19:45:04 字數 5004 閱讀 4415

作者:北京 --慕容

第一節前言

這幾天群裡常聊到關於交換機打 tag 以及兩台二層交換機互聯不同 vlan 是否能通的問題, 也因此引發了很多討論, 我個人也私底下拿真機充分的做了實驗, 覺得挺有意思對底層知識也是個考驗, 但由於情況有好幾種, 一兩句話恐怕說不清楚, 正好群裡朋友也希望寫個總結, 所以才誕生這份文件。 而文件只有乙個目的, 就是希望能夠讓大家一起討論一起學習, 共同進步。

不過有個前提是必須先說一下的:

我不敢保證文件裡所有結果和原理描述都是百分百正確的,畢竟不同產商甚至不同 ios 版本結果也有可能會稍不一樣。 換句話說, 如果群裡任何朋友有任何任何不同的意見和看法, 我們熱烈歡迎一起討論,一起更正,一起完善。還是那句話,大家一起進步!

在此首先不得不提到的一點是非常感謝尾巴兄弟的辛勞付出,建立 56上專屬咱們的板塊, 為我們的共同交流和學習又提供了乙個更方便更完善的平台和空間。 除了尾巴兄弟當然還有很多其他群裡的朋友經常上傳文件資料供大家共享, 感激的真是無以復加! 我也希望我自己在進步的同時也為群裡多做出自己的貢獻。

另外老大文件裡提到的技術壁壘我個人也很不喜歡, 相信群裡很多朋友也很不喜歡, 所以,不管別的地方別的群別的圈子有沒有,我衷心希望紅盟群,咱們,一定不要存在這種現象!大家都是自己人,要是就是敞開心扉的溝通,不計利害的共享,共同進步共同成長!我們是乙個團體, 就要有團體該有的凝聚力, 對技術, 我們無比熱愛, 對朋友, 我們肝膽相照, 對未來,我們無所畏懼!

第二節提出問題

這一節的意思是先提出問題和各種情況的拓撲圖,也讓自己在看整個文件前心裡有個數,如果這些問題都能毫不猶豫的回答出來,那基本可以不用往下看,當然,即便這樣也希望你能繼續看下去, 說不定下面有很多問題需要你的指正。 不能全部答出來的, 可以好好看看下面寫的了,有任何意見,想法,都歡迎和我或者在群裡一起討論交流。

宣告:下面交換機都是二層交換機,接的是 pc ,只不過圖示是路由器。

一、兩台交換機互聯以及一台交換機上不同 vlan 的情況

1、 pc1和 pc2 能不能通?(還要分兩種情況,兩台 pc 相同網段和不同網段

2、能不能通?(相同網段和不同網段

3、能不能通?(相同網段和不同網段

4、能不能通?(相同網段和不同網段

5、能不能通?(相同網段毋庸置疑,不同網段怎麼通?有幾種辦法?

6、能不能通?(相同網段和不同網段分別怎麼通。 -- 注:是二層交換機

二、下面是兩台 pc 互聯以及兩台路由器互聯幾種網段情況

1、能不能通?(把 20換成 21呢?

2、能不能通?

3、預設顯然不通,有什麼辦法通?

4、把上面的 pc 換成真的路由器,同樣是以上幾種網段情況,通的情況又如何?

第三節答案(不一定是百分百的標準答案,大家多提意見

一、先說第一部分:

首先我談一下我個人對交換機**報文最基本原理的理解 (當然, 這裡只說偏低端普通交換機,那些 cisco 6500,華三 9500等等高階交換機可能由於引擎等硬體和軟體原因導致報文**原理和一般交換機會有不同, 但那又是另乙個層面的問題,在此不討論。 交換機收到乙個報文後(當然,這裡還有先成幀,檢查 crc 等過程就先忽略,會先學習 mac ,放入自己的 mac 位址表裡,然後給報文打上 tag (vlan -id,接著檢視目的 mac ,根據自己的 mac 位址表找到此報文的輸出介面, 如果輸出介面是 access 介面就先把 tag 去掉再發出去。如果輸出介面是 trunk ,則會保留 tag 發出去。

(即便是二層裝置,也可能因為組播, qos 等因素會有更多更複雜的過程,在此也忽略。而三層交換機是會去檢視三層資訊再**的,在此也不討論。

所以, 其實交換機內部有乙個自己打 tag 的過程, 只是普通抓包看不見, 有的產商管這叫虛標(當然是和 trunk 上的 tag — 實標對應。 當然,這並沒有影響我們最常見的認知, 即 access 鏈路上的報文是沒有 tag 的, 而 trunk 鏈路上非 native vlan 的報文是有 tag 的。 而這一點足以解決第乙個圖的問題。

1、圖 1:

在這裡,也要簡單說一下 ping 通訊的基本過程。 (ps:這個很多面試都會考到,記得當時外包在華為工作時面試官就問了我這麼乙個題,說三颱路由器相連,最左邊路由器 ping 最右邊路由器的整個過程, 知道多詳細就說多詳細。

那次幸好提前有準備, 把每個報文裡面的位元位字段的數字都跟他們講了, 就差到作業系統層面了。 當然那是運氣好, 如果問別的底層問題我很可能答不上來,所以,底層真的很重要。

打出 ping 命令時, 作業系統會占用資源呼叫 ping 程序封裝報文從網絡卡發出去, 但封裝報文裡面有乙個特別重要的字段就是目的 mac 。

如果目的 ip 和自己乙個網段(網段是自己的 ip 和 mask 做與運算出來的結果,接著會直接傳送 arp 廣播請求目的 ip 的 mac ,交換機收到會從同 vlan 的其他埠發出去, pc 收到了回覆的 mac ,再封裝到 ping 報文裡發出去。接下來就是交換機的處理過程,前面已講。而當目的地收到時,會一級級的往上看,如果目的 mac 是自己,就看二層協議字段,根據二層協議字段值交給相應程序比如 ip 協議, 如果目的 ip 也是自己, 會根據三層協議字段交給相應程序比如 icmp 協議,以此繼續下去。

如果不是乙個網段,必須有預設閘道器,接著傳送 arp 廣播請求閘道器的 mac ,所以以後自己發出的任何上層協議報文目的 mac 都是閘道器的 mac ,不是目的地的 mac 。

在圖 1裡, 相同網段 :

pc1發出 arp 廣播請求 pc2的 mac ,交換機 1在和交換機 2互聯的鏈路上發出去的報文是沒有 tag 的,所以交換機 2收到後,打上 vlan 3的 tag ,然後從所有屬於 vlan 3的介面發出去(當然出去之前除掉 tag 。回來也是一樣。請求到了 mac ,其他通訊自然就沒問題。

不同網段 :

不同網段必須得有閘道器。在這裡無非也就兩種選擇,一是 pc1和 pc2 把閘道器分別設為交換機 1和交換機 2 對應 vlan 的位址。這種辦法我們來看, pc1 肯定能請求到 vlan 2位址的 mac ,能發出 ping 包,到了交換機 1以後,先看二層資訊,而目的 mac 就是自己介面, 會去檢視三層目的 ip ,但目的 ip 不是自己,又沒有那個網段的路由, ping 包**不出去。

這種方法不行。

接下來就是第二種辦法, 互指閘道器 。

pc1 得知閘道器是 pc2的位址時, 不會管究竟是不是和自己乙個網段 (在這裡和路由器有本質的區別,在第二部分會詳細說明。而是直接請求閘道器位址的 mac ,而交換機 1 收到 arp 廣播包只會從其他埠廣播(和上面不同的是,第一種辦法 pc 先是請求 vlan 2位址的 mac ,交換機看到 arp 報文的 target ip 是自己介面位址才會回覆 mac ,而這裡, target ip 是 pc2的位址,所以才會廣播。

就這樣交換機 2接受此廣播包, 因為 target ip 也不是自己, 發向 pc2, pc2看到 target ip 正是自己,才會回覆 mac 。

當然這裡還有一點是,不管是交換機還是 pc2,不管 target ip 是不是自己,首先是已經把 arp 廣播請求報文裡面的 sender ip 和 mac 的對應關係加到了自己的 arp 表項裡了的。 所以, 當 pc2回包的時候是已經有 pc1的 mac 了的, 不需要再發 arp 廣播請求 。 這也是我們平時經常見到的第一次 ping 時五個嘆號第乙個嘆號往往超時,而不是前兩個嘆號超時的原因。

這樣 pc1知道了閘道器(也就是 pc2位址的 mac ,就會發 ping 包到閘道器,目的 mac 用閘道器的 mac 封裝。而巧合的是,這裡的目的 mac 和目的 ip 都是 pc2,本來一般情況下, pc1把 ping 包交給閘道器,閘道器再交給目的地。這裡,既然都重合了,正好不用轉彎了, pc2直接就回覆了。

(在這裡個人覺得是這樣,其實 pc 也好,網路裝置也好,都是按程式辦事, 不會真那麼智慧型,所以 pc2 收到了報文,看到目的 mac 是自己,就拆了看三層目的 ip ,也是自己, 然後看協議型別, 是 icmp , 交給 icmp 程序, 繼續看 icmp 報文的內容, 型別為 0x8, 即回顯請求(echo request,很自然的,自己就會發 icmp 回覆 echo reply (ps :正因為協議和裝置都只是按程式操作, 所以能挖出協議程式漏洞的人就可以很容易做破壞式的攻擊,相信安全好的朋友勢必深諳此道 !

有曾經想過第二種辦法:分別為 vlan 2 和 vlan 3設定 secondary 位址,而且正是對方 vlan 的位址。 這樣相當於乙個 vlan 介面有兩個位址, 以為給交換機加了條直連路由, 兩個網段就能通。

實驗證明不行。 ping 包到了交換機 1 vlan 介面的時候,根本不會往另外乙個網段發,到不了交換機 2 。而一旦開啟三層功能立馬就能通。

所以,二層交換機即便是乙個介面的不同網段也互相通不了。

給圖 1做個小總結:

因為 access 鏈路上的報文沒有 tag ,所以不管交換機之間 access vlan 有多不一樣, 或者後面再串多少交換機(在這裡,交換機 2還可以繼續接很多,只要保證終端的 vlan 和交換機上要出去的介面 vlan 也就是這裡的 access vlan 一樣, 相同網段下是可以通訊的。

要保證這個要一樣,是因為預設情況下,二層交換機隔離廣播域,拿到乙個 vlan 的資料不管單播組播廣播,是不會給其他 vlan 的。

而不同網段的情況, 由於必須要有閘道器, 所以得有特別操作才行。 而其中一種特別操作是 pc 間互指閘道器。

2、圖 2:圖 3:圖 4:

這三個一起說,因為真的基本就是一回事。

先說圖 2,預設情況 trunk 下 native vlan 就是 vlan 1 (這裡預設封裝方式為 dot1q , 如果為思科私有的 isl 就沒有 native vlan的說法,那種沒意思也很少用,不討論。 然後從交換機 1出去的報文打上了 vlan 2的 tag , 交換機 2收到後顯然不會發往屬於 vlan 3的 pc 2 。所以圖 2肯定是不通的。

再說圖 3,既然由於 native vlan為 vlan 1導致其他 vlan 的報文都打了 tag ,那就修改本地 vlan ,因為如果修改本地 vlan 為 vlan 2,那從 vlan 2來的報文在 trunk 鏈路上是沒有 tag 的。 按照這種想法, 分別修改交換機 1和 2的本地 vlan , 分別為 vlan 2和 vlan 3 。 按理說,現在 trunk 上的 vlan 2 和 vlan 3的報文都是沒有 tag 的,相同網段情況下,是可以通訊的。

PoE供電器和PoE交換機有什麼不同

poe交換機和poe供電器均是可以給網路裝置提供電力 色傳輸裝置,但是兩者又有很大的區別。poe技術的簡介 poe power over ethernet 指的是在現有的乙太網cat.5佈線基礎架構不作做何改動的情況下,在為一些基於ip的終端 如ip 機 無線區域網接入點ap 網路攝像機等 傳輸資料...

交換機VLAN配置實驗報告 2

寧波工程學院電信學院計算機教研室 實驗報告 課程名稱 網路管理實驗實驗專案 交換機vlan配置 實驗人員 班級 計科10 4指導教師 盛嘯濤 實驗位置 網路實驗室第4組實驗日期 2012 12 4 一 實驗目的及要求 一 實驗目的 1 理解vlan的概念和作用 2 理解trunk的概念和作用 3 學...

交換機與VLAN的配置實驗報告

3 驗證同一vlan中的兩台計算機能否通訊,不同計算機之間的計算機能否通訊,並將結果記錄在表3 1中。表3 1 vlan的配置結果 六 實驗總結 通過在一台交換機上劃分vlan,並用ping命令測試在同一vlan和不同vlan中裝置的連通性,驗證了在交換機上劃分vlan的作用。學會怎樣用命令語言劃分...