Vlan

關於橋接 VLAN 的問題

  • January 18, 2014

如果在同一棟建築物中,我有兩個物理上獨立的網路,通過簡單的交換機將設備連接在一起,我的理解是,如果我改為使用智能交換機,通過中繼將它們相互連接,我可以節省一些硬體複雜性-ports,並讓他們根據設備應屬於哪個“物理”網路,將連接到設備的不同埠分配到兩個 VLAN 之一。

在兩個獨立的物理網路的場景中,如果我想將它們組合成一個物理網路,我只需要在硬體方面做的就是在兩者之間連接一個交換機。如果我理解正確,我可以等效地在兩者之間插入一個 linux 路由器並橋接兩個網路連接的兩個埠。

為了在 VLAN 的場景中做同樣的事情,我可以通過中繼埠將路由器連接到交換機,創建虛擬介面 eth0.10 和 eth0.20(例如)並將這兩者橋接在一起。這會按預期工作嗎?

我問的原因是因為我只是在考慮交換機如何轉發流量。在物理網路的情況下,每台交換機都會建構一個 ARP 表,告訴它哪些 MAC 地址可以通過哪個埠到達。如果一個埠連接到另一台交換機,則該埠最終應該會收到連接到該另一台交換機的所有 MAC 地址的所有流量。

假設我有以下物理網路佈局:

____________     ___________     __________     ___________     ____________
|            |   |           |   |          |   |           |   |            |
| Device 1   |___| Network 1 |___| "Bridge" |___| Network 2 |___| Device 2   |
| MAC ...:01 |   | Switch    |   | Switch   |   | Switch    |   | MAC ...:02 |
|____________|   |___________|   |__________|   |___________|   |____________|

現在,如果設備 1 想向設備 2 發送數據包,交換機 1 知道 MAC …:02 連接到其正確埠的某個位置,因此它將數據包傳遞給橋接交換機等。

如果我要將網路更改為以下佈局:

____________               ________               ____________
|            |             |        |             |            |
| Device 1   |_____________| Smart  |_____________| Device 2   |
| MAC ...:01 |  VLAN ID 1  | Switch |  VLAN ID 2  | MAC ...:02 |
|____________|             |________|             |____________|
                              ||
                              || Trunk
                          ____||____
                         |          |
                         | "Bridge" |
                         | Router   |
                         |__________|

然後,如果設備 1 想向設備 2 發送數據包,智能交換機不應僅僅將數據包從其正確的埠發送出去,因為這是目標 MAC 地址匹配的地方。相反,它需要將數據包從底部埠轉發到網橋路由器,然後它應該將其從頂部埠發送回,但現在標記為 VLAN 2,而不是 VLAN 1。

這意味著智能交換機和網橋路由器都需要維護兩個(或更多)獨立的 ARP 表,每個 VLAN 一個,並且在智能交換機的情況下,MAC …:02 應該是如果流量屬於 VLAN 2,則連結到正確的埠,如果流量屬於 VLAN 1,它應該連結到底部埠。

是這樣嗎?或者這個設置不能工作,因為智能開關會混淆?

另外,我上面描述的理解完全正確嗎?:)

您使用的術語“智能開關”不是標準術語。當您說“智能交換機”時,我認為您的意思是“支持 VLAN 的交換機”。

交換機維護第 2 層鄰接表。這些表標識物理埠和 MAC 地址關聯,並允許交換機僅將流量引導到預期目標。這些實際上不是“ARP 表”——它們與將第 3 層地址映射到第 2 層地址無關。這些實際上是將第 2 層地址映射到可以說是第 1 層地址的表。

在支持 VLAN 的交換機中,鄰接表還將考慮埠 VLAN 成員關係,以防止未連接到同一 VLAN 成員埠的相鄰設備之間的直接第 2 層通信,並限制幀泛洪(非單播幀和發往未知目的地的幀)到單個 VLAN。

路由器不維護第 2 層鄰接表,但它們維護 ARP 表。路由器通常會為每個邏輯介面維護至少一個 ARP 表,將第 3 層地址映射到該介面媒體的第 2 層地址。路由器本身並不特別“關心” VLAN。VLAN 將作為物理介面的邏輯子介面呈現給路由器(eth0.1例如,在 Linux 機器上,表示eth0介面上的 VLAN 1),如果該邏輯子介面具有分配的 IP 地址。

引用自:https://serverfault.com/questions/568170