關於橋接 VLAN 的問題
如果在同一棟建築物中,我有兩個物理上獨立的網路,通過簡單的交換機將設備連接在一起,我的理解是,如果我改為使用智能交換機,通過中繼將它們相互連接,我可以節省一些硬體複雜性-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 地址。