不同虛擬機器區域網Vlan之間訪問
上篇部落格講了什麼是虛擬區域網,以及如何搭建虛擬區域網。這篇講述如何使不同虛擬區域網之間進行通訊。
不同虛擬區域網通訊需要路由裝置進行轉發。路由裝置可以是路由器也可以是具有路由功能的三層交換機。
上一講:認識虛擬區域網及搭建(https://mp.csdn.net/postedit/80199792)
這一講:
1、利用二層交換機——路由器方式來實現不同虛擬區域網之間的訪問。
方式一:
我們稱為雙臂路由法,所謂雙臂是指交換機到路由器有兩個線路,其實三個也行,但是路由器介面很少,很少使用這種雙臂路由法實現不同虛擬區域網通訊。不過,話雖如此,方法還是要將出來的,請看下圖:
上圖中,我們將路由器與交換機用兩根直通線連線在一起。在交換機中劃分兩個子網,192.168.1.0/24和192.168.2.0/24。
用交換機劃分兩個虛擬區域網vlan10 和Vlan20。Vlan10虛擬區域網中有兩臺主機pc0和pc5,Vlan20虛擬區域網中有一臺pc1主機。
交換機接路由器的埠fa0/3和fa0/4都設定為Access模式,fa0/3設定為Vlan10,fa0/4設定為vlan20。這樣交換機的兩個虛擬區域網分別都有到路由器的的通道了。虛擬區域網vlan10的資料通過fa0/3埠轉發到路由器fa0/0埠,Vlan20的資料通過fa0/4埠轉發到路由器fa0/4埠。
這樣兩個虛擬區域網之間可以相互訪問。下圖是虛擬區域網Vlan10的pc0來ping虛擬區域網vlan20的pc1,ping通了,說明不同虛擬區域網之間實現了訪問。
方式二:
單臂路由:
單臂路由的意思就是隻有一條物理資料鏈路到路由器,簡單說路由器和交換機之間只有一條線相連,不像雙臂一樣每個虛擬區域網都要一跟線與路由器相連。
這裡有個問題,只用一個物理線路的話,路由器是怎麼識別交換機發來的資料到底是Vlan10虛擬區域網的資料還是Vlan20的呢?
這裡就使用到了二種協議,和ISL協議。這這兩個協議就是給資料幀進行標記虛擬區域網號的,這樣路由器就知道是哪個虛擬區域網傳來的資料了。IEEE802.1Q和ISL,下面是協議的簡單介紹:
802.1Q:基本標準的IEEE協議,屬業界標準。
ISL(Inter-Switch Link):Cisco專有的Trunk封裝方式。
802.1q協議是在乙太網幀的源MAC個和Type欄位之間插入4個位元組的Tag欄位,並將原有的FCS重寫。TAG欄位裡包括priority和VLANID,TPID=0X8100表示是乙太網幀。
ISL協議是在乙太網幀的最外層家個26位元組的幀頭,重新計算的CRC放在幀尾。在26位元組的報頭裡有15bit用來表示VLAN,但只用到低10位。即1024個VLAN數目。在26位元組的報頭裡有15bit用來表示VLAN,但只用到低10位。即1024個VLAN數目。
這裡我們只用802.1q,因為這個協議是業界標準,所以推薦使用802.1q協議。
先給拓撲圖看看:
我們用主機pc0來ping 主機pc5。
我們先來看看一般資料鏈路層封裝的乙太網幀是什麼樣子。下圖主機pc0正常傳送交換機switch0的Ethernet II幀格式和例項,屬於乙太網幀格式的一種,共有四種,讀者可以自己百度其他三種格式。
從上面可以看出乙太網幀中,並沒有標註這個資料幀是屬於哪個虛擬區域網的。正常情況下,這個資料幀應該是交換機直接轉發出去,不做任何修改。但是當交換機轉發的埠使用了8021.q協議後,就會將上面的乙太網幀進行封裝標記。看下圖,交換機轉發出去的乙太網幀格式和例項。
增加的的欄位說明:
Start-of-Frame Delimiter(SFD) - 1位元組。欄位中1和0互動使用,結尾是兩個連續的1,表示下一位是利用目的地址的重複使用位元組的重複使用位。
TPID - 值為8100(hex)。當幀中的 EtherType 也為8100時,該幀傳送標籤 IEEE 802.1Q/802.1P。
TCI - 標籤控制資訊欄位,包括使用者優先順序(User Priority)、規範格式指示器(Canonical Format Indicator)和 VLAN ID。
我們發現,乙太網幀出現了其他欄位。其中TPID是用來表示封裝協議的型別,例如上面的數值TPID表示封裝協議是802.1q。
TCI主要是用來標記VLan ID。
看到你也許明白了,802.1q協議其實就是將資料鏈路層的乙太網幀加上一些標號,例如虛擬區域網ID(Vlan ID),這樣交換機將乙太網幀轉發給路由器後,路由器埠如果也使用了802.1q協議,就知道了這些資料是屬於那些虛擬區域網的,然後下一步儘可以轉發了。
所以關鍵點就在802.1q協議。
所以,關於交換機和路由器相連的埠必須封裝802.1q協議,才能讓不同的虛擬區域網之間通訊。
所以關於802.1q協議的作用,你懂了嗎?
那怎麼配置交換機和路由器的埠802.1q協議呢,請往下繼續看
接下來我們開始進入配置操作:
首先我們劃分兩個子網1 192.168.1.0/24和子網2 192.168.2.0/24。子網1有兩個主機,子網2有一個主機。
請看下圖:
圖中我們使用了一個思科模擬器中的交換機2950和路由器1841,然後選擇三個主機。三個pc0和pc5屬於虛擬區域網Vlan10,pc1屬於虛擬區域網Vlan20。下面試具體的配置資訊。
1、交換機: Vlan資料庫我們建立兩個虛擬區域網,名稱Vlan10和Vlan20, Vlan號為10和20,交換機與主機之間的埠設定為Access模式,交換機連線路由器的埠fa0/3設定為Trunk模式。
2、路由器:我們使用直通線將路由器的fa0/0埠連線到交換機埠fa0/3。
說明:路由器fa0/0埠不用設定i和子網掩碼,因為我們要使用的不是物理介面fa0/0,我們要使用的是路由器fa0/0埠的邏輯子介面,你可以想象成這個埠有多個子介面可以與交換機相連,就好像雙臂路由一樣,只是肉眼看不見而已。
路由器我們使用兩個邏輯子介面fa/0.1和fa0/0.2,來連線兩個子網,fa0/0.1的設定為ip:92.168.1.1子網掩碼255.255.255.0, fa0/0.2介面設定為ip:192.168.2.1和255.255.255.0,這兩個ip地址分別作為兩個子網的閘道器。
3、pc0: ip:192.168.1..2 ,子網掩碼:255.255.255.0 閘道器:192.168.1.1 接入交換機的fa0/1埠,交換機的埠fa0/1設定為Access和Vlan10。
pc1: ip:192.168.2.1 子網掩碼:255.255.255.0 閘道器:192.168.2.1 接入交換機的fa0/2埠,交換機的埠fa0/2設定為Access和Vlan20。
pc5: ip:192.168.1.3 子網掩碼:255.255.255.0 閘道器:192.168.2.1 接入交換機的fa0/5埠, 交換機的埠fa0/5設定為Access和Vlan10。
具體配置步驟,你也可以選擇命令列配置,我是為了讓大家看的更直觀,採用圖形介面配置。
第一步:
1.主機資訊配置:下圖只是一個主機例項,其他主機類似。
第二步:
1、給交換機新增vlan資料庫,並將設定相應的交換機的埠。
新增Vlan10和Vlan20。
2、配置交換機連線主機的埠:下圖只是一個fa0/1,其他埠類似。
3、配置交換機連線路由器的埠:設定為Trunk模式。
關於dot1.q協議封裝的說明:
2950只支援802.1Q,所以配置trunk的時候,預設封裝dot1.q的
3560這些,支援多種,所以需要指定是哪一種封裝模式。
2950交換機預設封裝的是dot1q協議,所以你就不用在fa0/3埠再封裝802.1q協議了。如果其他交換機,可能需要封裝802.1q協議,就輸入下面命令,進入相應的介面,輸入switchport trunk encapsulationdot1q。例如這裡的fa0/3埠,命令如下:
enable
config t
switchport trunk encapsulation dot1q
這裡出錯,是因為2950交換機已經封裝了802.1q協議。所以其實沒必要再封裝這個埠的協議。
第三步:
路由器配置,這裡我們使用fa0/0的邏輯子埠,所以不能通過圖形介面配置,只能命令列配置。
路由器配置圖如下:
首先給路由器新增同樣的Vlan資料庫Vlan10和Vlan20
路由配置命令:
Router>enableRouter#configConfiguring from terminal, memory, or network [terminal]?Enter configuration commands, one per line. End with CNTL/Z. .................進入全域性配置模式Router(config)#interface fa0/0 ................進入和交換機連線的那個介面fa0/0Router(config-if)#no shutdown ................啟用該埠Router(config-if)#exit ……………返回到全域性配置模式Router(config)#interface fa0/0.1 ...........配置 子介面 這是配置單臂路由的關鍵,這個介面是個 邏輯介面,並不是實際存在的物理介面,但是功能卻和物理介面是一樣的。Router(config-subif)#encapsulation dot1q 2 .......為這個介面配置802.1Q協議,最後面的 2 是vlan 號,這也是關鍵部分Router(config-subif)#ip address 192.168.1.1 255.255.255.0 .........為該介面劃分閘道器地址。Router(config-subif)#exitRouter(config)#interface fa0/0.2 .....同樣,進入第2個子介面,進行配置Router(config-subif)#encapsulation dot1q 3 .........配置802.1Q協議Router(config-subif)#ip address 192.168.2.1 255.255.255.0 ......劃分閘道器地址和子網掩碼Router(config-subif)#end%SYS-5-CONFIG_I: Configured from console by console ..........完成配置經過分別對pc0和pc1兩臺機子互相ping的測試,可以發現能夠ping通,說明實驗成功。下圖是配置圖;將滑鼠放在路由器上幾秒,就會顯示所有介面的資訊。可以檢視是否設定成功。
測試結果:成功了。寫的好累!!!
方式三:
前面介紹的都是路由器與二層交換機組合使用來實現路由轉發的。其實只要交換機有路由功能,就可以不用連線路由器了。三層交換機及以上就具有這樣的功能。
下面就用三層交換機來實現不同虛擬區域網的通訊。
大致分為兩種情況
1、先看第一種情況,三層交換機直接與主機相連。
思科模擬器中的三層交換機是一般3開頭的,如下圖型號3560,如果開頭是2,就是二層交換機了,沒有路由功能。
上圖三層交換機劃分了兩個虛擬區域網Vlan10和Vlan20。主機pc0和pc1屬於虛擬區域網Vlan10,主機pc2屬於虛擬區域網Vlan20。ip地址配置子網掩碼配置,如圖所示。
然後在三層交換機中新增Vlan資料庫Vlan10和Vlan20。
也可以命令列輸入:輸入如下:
(1)建立Vlan並命名
Switch>enableSwitch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#vlan 10
Switch(config-vlan)#name Vlan10
Switch(config-vlan)#exit
Switch(config)#vlan 20
Switch(config-vlan)#name Vlan20
(2)把VLAN號分配給介面
Switch(config)#int fa0/1 //進入交換機埠fa0/1
Switch(config-if)#switchport mode access //將fa0/1埠設定為Access模式。
Switch(config-if)#switchport access vlan 10//將fa0/1埠劃分為Vlan 10
圖形
下面就是配置交換機的路由功能了:
Switch> enable
Switch# configure terminal
Switch(config)#ip routing //啟動三層交換機路由功能
Switch(config)# interface Vlan 10//新增設定關聯Vlan號為10的路由埠
Switch(config-if)# ip address 192.168.1.1255.255.255.0//為該路由埠設定IP和子網掩碼
Switch(config-if)# no shutdown //啟動該埠
Switch(config-if)# exit//退出該埠
Switch(config)# interface Vlan 20 //新增設定關聯Vlan號為20的路由埠
Switch(config-if)# ip address 192.168.2.1255.255.255.0//為該路由埠設定IP和子網掩碼
Switch(config-if)# no shutdown //啟動該埠
Switch(config-if)# exit//退出該埠
Switch(config-if)# end//完成退出
Switch# show ip route //檢視路由資訊
下圖最後出現了配置資訊,說明配置成功。
主機pc0來ping主機pc2,測試成功:
2、再來看第二種情況:
路由器的配置跟第一種一樣,開啟路由功能, ip routing ,然後建立Vlan10 和Vlan20, 再然後命令列進入Vlan10和Vlan20介面。配置ip和子網掩碼。
顯示路由表
測試: