淺談網絡協議(六) 交換機與VLAN

上一次,我們在宿舍裏組建了一個本地的局域網 LAN,可以愉快地玩遊戲了。這是一個非常簡單的場景,因爲只有一臺交換機,電腦數目很少。今天,讓我們切換到一個稍微複雜一點的場景,辦公室。 上一篇說了如何組建一個簡單的局域網,只用到了一個交換機,但是很多地方,比如辦公室,需要用到多臺交換機,這一篇說說如何實現。

拓撲結構

先說說看拓撲結構是什麼,以下引自百度百科:

計算機網絡拓撲結構是指網絡中各個站點相互連接的形式,在局域網中明確一點講就是文件服務器、工作站和電纜等的連接形式。現在最主要的拓撲結構有總線型拓撲、星形拓撲、環形拓撲、樹形拓撲(由總線型演變而來)以及它們的混合型。顧名思義,總線型其實就是將文件服務器和工作站都連在稱爲總線的一條公共電纜上,且總線兩端必須有終結器;星形拓撲則是以一臺設備作爲中央連接點,各工作站都與它直接相連形成星型;而環形拓撲就是將所有站點彼此串行連接,像鏈子一樣構成一個環形迴路;把這三種最基本的拓撲結構混合起來運用自然就是混合型了!
計算機網絡的拓撲結構是引用拓撲學中研究與大小、形狀無關的點、線關係的方法,把網絡中的計算機和通信設備抽象爲一個點,把傳輸介質抽象爲一條線,由點和線組成的幾何圖形就是計算機網絡的拓撲結構。
網絡的拓撲結構反映出網中各實體的結構關係,是建設計算機網絡的第一步,是實現各種網絡協議的基礎,它對網絡的性能,系統的可靠性與通信費用都有重大影響。

我們常見到的辦公室大多是一排排的桌子,每個桌子都有網口,一排十幾個座位就有十幾個網口,一個樓層就會有幾十個甚至上百個網口。如果算上所有樓層,這個場景自然比你宿舍裏的複雜多了。

一個交換機肯定不夠用,需要多臺交換機,交換機之間連接起來,就形成一個稍微複雜的拓撲結構。

先看兩臺交換機的情形。兩臺交換機連接着三個局域網,每個局域網上都有多臺機器。如果機器 1 只知道機器 4 的 IP 地址,當它想要訪問機器 4,把包發出去的時候,它必須要知道機器 4 的 MAC 地址。

1

機器 1 發起廣播,機器 2 收到這個廣播,但這不是找它的,所以沒它什麼事。交換機 A 一開始是不知道任何拓撲信息的,在它收到這個廣播後,採取的策略是,除了廣播包來的方向外,它還要轉發給其他所有的網口。機器 3 也收到廣播信息了,但是這和它也沒什麼關係。

交換機 B 也能收到廣播信息,但是這時候它也是不知道任何拓撲信息的,因而也是進行廣播的策略,將包轉發到局域網三。這個時候,機器 4 和機器 5 都收到了廣播信息。發送包的 MAC 地址是機器 4 的地址,於是機器 4 主動響應,一個 ARP 請求就成功完成了。

在這個請求完成時,交換機 A 就會知道機器 1 是直接與自己相連接的,就回記錄下機器 1 的 MAC 地址與內網地址。同時交換機 B 也會記錄機器 4 的 MAC 地址與內網地址。

當機器 2 要訪問機器 1 的時候,機器 2 並不知道機器 1 的 MAC 地址,所以機器 2 會發起一個 ARP 請求。這個廣播消息會到達機器 1,也同時會到達交換機 A。這個時候交換機 A 已經知道機器 1 是不可能在右邊的網口的,所以這個廣播信息就不會廣播到局域網二和局域網三。

當機器 3 要訪問機器 1 的時候,也需要發起一個廣播的 ARP 請求。這個時候交換機 A 和交換機 B 都能夠收到這個廣播請求。交換機 A 當然知道主機 A 是在左邊這個網口的,所以會把廣播消息轉發到局域網一。同時,交換機 B 收到這個廣播消息之後,由於它知道機器 1 是不在右邊這個網口的,所以不會將消息廣播到局域網三。

如何解決常見的環路問題?

這樣看起來,兩臺交換機工作得非常好。隨着辦公室越來越大,交換機數目肯定越來越多。當整個拓撲結構複雜了,這麼多網線,繞過來繞過去,不可避免地會出現一些意料不到的情況。其中常見的問題就是環路問題。

例如這個圖,當兩個交換機將兩個局域網同時連接起來的時候。你可能會覺得,這樣反而有了高可用性。但是卻不幸地出現了環路。出現了環路會有什麼結果呢?

2

我們來想象一下機器 1 訪問機器 2 的過程。一開始,機器 1 並不知道機器 2 的 MAC 地址,所以它需要發起一個 ARP 的廣播。廣播到達機器 2,機器 2 會把 MAC 地址返回來,看起來沒有這兩個交換機什麼事情。

但是問題來了,這兩個交換機還是都能夠收到廣播包的。交換機 A 一開始是不知道機器 2 在哪個局域網的,所以它會把廣播消息放到局域網二,在局域網二廣播的時候,交換機 B 右邊這個網口也是能夠收到廣播消息的。交換機 B 會將這個廣播息信息發送到局域網一。局域網一的這個廣播消息,又會到達交換機 A 左邊的這個接口。交換機 A 這個時候還是不知道機器 2 在哪個局域網,於是將廣播包又轉發到局域網二。就形成了閉環迴路。

這還是一個包轉來轉去,每臺機器都會發廣播包,交換機轉發也會複製廣播包,當廣播包越來越多的時候,按照上一節講過一個共享道路的算法,也就是路會越來越堵,最後誰也別想走。所以,必須有一個方法解決環路的問題,怎麼破除環路呢?

STP 協議中那些難以理解的概念

在數據結構中,有一個方法叫作最小生成樹。有環的我們常稱爲圖。將圖中的環破了,就生成了樹。在計算機網絡中,生成樹的算法叫作STP,全稱Spanning Tree Protocol。

3

在 STP 協議裏面有很多概念:

  • Root Bridge,也就是根交換機。顧名思義,最底層的交換機,主管一切。
  • Designated Bridges,有的翻譯爲指定交換機。其他交換機通過這個交換機到達根交換機。這裏注意是樹枝,不是葉子,因爲葉子往往是主機。
  • Bridge Protocol Data Units (BPDU) ,網橋協議數據單元。
  • Priority Vector,優先級向量。

STP 的工作過程是怎樣的? 接下來,我們來看 STP 的工作過程。

一開始,每個網橋都被分配了一個 ID。這個 ID 裏有管理員分配的優先級,當然網絡管理員知道哪些交換機貴,哪些交換機好,就會給它們分配高的優先級。

其他的交換機互相都連着網線,就互相發送 BPDU 來比比較誰的效率比較高。高的級別就比較高,後面就能繼續發 BPDU,而效率低的只能收到上級發的 BPDU 的時候進行轉發。由此形成高級與低級的基本單元進行進一步合併。

最終,生成一棵樹狀的機構。

如何解決廣播問題和安全問題?

機器多了,交換機也多了,就算交換機比 Hub 智能一些,但是還是難免有廣播的問題,一大波機器,相關的部門、不相關的部門,廣播一大堆,性能就下來了。就像一家公司,創業的時候,一二十個人,坐在一個會議室,有事情大家討論一下,非常方便。但是如果變成了 50 個人,全在一個會議室裏面吵吵,就會亂的不得了。

而且,不同部門之間也許還會存在一些保密信息,那麼怎麼辦呢?答案是分離。

有兩種分的方法,一個是物理隔離。每個部門設一個單獨的會議室,對應到網絡方面,就是每個部門有單獨的交換機,配置單獨的子網,這樣部門之間的溝通就需要路由器了。路由器咱們還沒講到,以後再說。這樣的問題在於,有的部門人多,有的部門人少。人少的部門慢慢人會變多,人多的部門也可能人越變越少。如果每個部門有單獨的交換機,口多了浪費,少了又不夠用。

另外一種方式是虛擬隔離,就是用我們常說的VLAN,或者叫虛擬局域網。使用 VLAN,一個交換機上會連屬於多個局域網的機器,那交換機怎麼區分哪個機器屬於哪個局域網呢?

10

我們只需要在原來的二層的頭上加一個 TAG,裏面有一個 VLAN ID,一共 12 位。爲什麼是 12 位呢?因爲 12 位可以劃分 4096 個 VLAN。這樣是不是還不夠啊。現在的情況證明,目前雲計算廠商裏面絕對不止 4096 個用戶。當然每個用戶需要一個 VLAN 了啊,怎麼辦呢,這個我們在後面的章節再說。

如果我們買的交換機是支持 VLAN 的,當這個交換機把二層的頭取下來的時候,就能夠識別這個 VLAN ID。這樣只有相同 VLAN 的包,纔會互相轉發,不同 VLAN 的包,是看不到的。這樣廣播問題和安全問題就都能夠解決了。

11

而且對於交換機來講,每個 VLAN 的口都是可以重新設置的。一個財務走了,把他所在的作爲的口從 VLAN 30 移除掉,來了一個程序員,坐在財務的位置上,就把這個口設置爲 VLAN 10,十分靈活。

有人會問交換機之間怎麼連接呢?將兩個交換機連接起來的口應該設置成什麼 VLAN 呢?對於支持 VLAN 的交換機,有一種口叫作Trunk 口。它可以轉發屬於任何 VLAN 的口。交換機之間可以通過這種口相互連接。

好了,解決這麼多交換機連接在一起的問題,辦公室的問題似乎搞定了。然而這只是一般複雜的場景,因爲你能接觸到的網絡,到目前爲止,不管是你的臺式機,還是筆記本所連接的網絡,對於帶寬、高可用等都要求不高。就算出了問題,一會兒上不了網,也不會有什麼大事。

我們在宿舍、學校或者辦公室,經常會訪問一些網站,這些網站似乎永遠不會“掛掉”。那是因爲這些網站都生活在一個叫做數據中心的地方,那裏的網絡世界更加複雜。

小結 好了,這節就到這裏,我們這裏來總結一下:

當交換機的數目越來越多的時候,會遭遇環路問題,讓網絡包迷路,這就需要使用 STP 協議,將有環路的圖變成沒有環路的樹,從而解決環路問題。 交換機數目多會面臨隔離問題,可以通過 VLAN 形成虛擬局域網,從而解決廣播問題和安全問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章