不同VLAN之間互相通信

前話

我們經常到機房上課,想必對機房後面那層疊的跟DVD一樣的機器有印象吧,那些就是交換機。

交換機

交換機作用是什麼?

我這裏度娘一下:

交換機(Switch)意爲“開關”是一種用於電(光)信號轉發的網絡設備。它可以爲接入交換機的任意兩個網絡節點提供獨享的電信號通路。

說簡單點,就是爲主機之間創建通信道路的機器,如下圖,各主機連接同個交換機,且IP在同一網段,在同一VLAN,他們是可以互相通信的,他們就簡單構成了一個局域網。

簡單交換機局域網

剛纔提到了vlan,vlan又是什麼呢?

同樣度娘一下:

VLAN(Virtual Local Area Network)的中文名爲”虛擬局域網”。
虛擬局域網(VLAN)是一組邏輯上的設備和用戶,這些設備和用戶並不受物理位置的限制,可以根據功能、部門及應用等因素將它們組織起來,相互之間的通信就好像它們在同一個網段中一樣,由此得名虛擬局域網。VLAN是一種比較新的技術,工作在OSI參考模型的第2層和第3層,一個VLAN就是一個廣播域,VLAN之間的通信是通過第3層的路由器來完成的。與傳統的局域網技術相比較,VLAN技術更加靈活,它具有以下優點: 網絡設備的移動、添加和修改的管理開銷減少;可以控制廣播活動;可提高網絡的安全性。
在計算機網絡中,一個二層網絡可以被劃分爲多個不同的廣播域,一個廣播域對應了一個特定的用戶組,默認情況下這些不同的廣播域是相互隔離的。不同的廣播域之間想要通信,需要通過一個或多個路由器。這樣的一個廣播域就稱爲VLAN。

我個人理解呢,VLAN就是把一條大馬路用隔離帶分成多條小馬路的技術。
要注意的是,每條小馬路之間是不能相通的,圖示如下:

VLAN圖解

在交換機中可以添加VLAN和設置端口處於哪個VLAN,我們用之前簡單局域網示例來講解:

交換機不同VLAN示例

上面一臺主機 PC0 處於VLAN 1 ,下面兩個主機 PC1 和 PC2 處於 VLAN 2 ,三臺主機的IP處於同一網段。
PC0 接入交換機端口 Fa0/1 ,PC1 接入交換機端口 Fa0/2 ,PC2 接入交換機端口 Fa0/3 。
但由於VLAN不同,PC0 不能和 PC1 PC2 通信。
下面兩臺主機 PC1 和 PC2 的IP同網段,也同處於 VLAN 2 ,因此這兩臺主機可以互相通信。

交換機配置過程如下:

Switch> enable                                  //進入特權模式
Switch# vlan database                           //進入vlan數據庫
Switch(vlan)# vlan 2                            //添加一個vlan,vlan號爲 2 。默認所有端口處於vlan 1 ,因此本例子只需添加添加 vlan 2
Switch(vlan)# exit                              //退出 vlan數據庫
Switch# configure terminal                      //進入全局配置模式
Switch(config)# interface FastEthernet 0/2      //進入端口Fa0/2設置
Switch(config-if)# switchport access vlan 2     //設置端口Fa0/2處於vlan 2,默認所有端口處於vlan 1 ,所以本實例不用對端口Fa0/1設置vlan
Switch(config-if)# exit                         //退出端口Fa0/2設置
Switch(config)# interface FastEthernet 0/3      //進入端口Fa0/3設置
Switch(config-if)# switchport access vlan 2     //設置端口Fa0/3處於vlan 2
Switch(config-if)# end                          //設置完成退出

那麼我們的主要問題來了,不同VLAN之間該如何進行通信呢?下面我們開始主題!

開始主題前,先上一張我對學校機房網絡的圖示 >_< ,有錯請輕噴。

學校機房網絡拓撲


不同VLAN之間互相通信

交換機vlan有什麼用呢?谷歌娘度娘會跟你說什麼降低一條網絡線路的網絡風暴提高利用率啊什麼的。
我目前爲止覺得很有用的是,實現通過不同vlan通信可以使不同網絡段的主機能夠進行通信。
上面這句話有點長,我舉個例子吧,比如我們知道,若子網掩碼爲 255.255.255.0 ,IP爲 192.168.10.100 的主機不能和 IP爲 192.168.20.100 的主機進行通信,它們兩不在同一子網。

那麼有什麼辦法解決呢?有一種是通過路由器,路由器一般有兩三個端口,接入子網的端口設置爲子網的網關即可實現兩個子網的通信,如下圖所示:

路由連接兩個子網

上圖的確可以兩臺不同子網的主機的通信問題,那麼問題又來了,兩個子網各有3臺或者更多主機呢?好吧,加上個交換機,一臺交換機和主機組成一個子網,子網設置網關爲接入的路由器端口IP,如下圖所示:

交換機路由器兩個子網

上圖也的確可以使兩個不同子網多臺主機進行通信,但是一般一個交換機有24個端口,一個子網兩三臺主機那也太浪費了。

如果忽略成本這個方案可以通過,那麼問題又來了,如果有3個子網或者更多的子網呢,主機也更多呢?

一臺路由器也就那麼兩三個端口哦。也許大家會說,加多幾個交換機,加多幾個路由器來組網。
這種粗暴式的通過增加硬件成本組網肯定會導致後面很多的問題,

具體什麼嚴重問題呢?大家有錢可以買來組網試試。

感覺錢就是最爲嚴重的問題了~~~

VLAN技術的出現,可以大大減少開銷成本,高大上的技術十分省錢!

開玩笑的 :)


實現不同VLAN之間通信的兩種標準方式

單臂路由

講解單臂路由前先看看雙臂路由(好像是這樣叫吧 =_= ) ,如下圖:

雙臂路由

上圖一個VLAN連接一個路由器端口,兩三個子網路由器還可以對付,但是子網更多時,路由器端口就不夠用了。

因此路由器端口多了一個子端口技術,來實現單臂路由。

路由器只需一個端口和交換機進行連接,並設置該端口的子端口對應的vlan信息,而交換機只需將連接路由器的端口設置vlan模式爲trunk即可。

通過單臂路由實現不同vlan通信,可以節省路由端口消耗,單臂路由圖解如下:

單臂路由

交換機設置

對主機VLAN的劃分的部分省略

Switch> enable
Switch# configure terminal
Switch(config)# interface FastEthernet 0/24             //Fa0/24端口連接路由器
Switch(config-if)# switchport mode trunk                //設置該端口vlan模式爲trunk
Switch(config-if)# switchport trunk allowed vlan all    //設置該端口trunk模式下接收所有vlan線路的信息
Switch(config-if)# end                                  //完成設置退出

注意,若交換機端口未啓動,需要進入到未啓動的端口,然後鍵入命令 no shutdown 對其進行啓動。

路由器設置

路由器端口 Fa0/0連接交換機,該端口不要設置IP地址。

Router> enable
Router# configure terminal
Router(config)# interface FastEthernet 0/0
Router(config-if)# no shutdown                                  //啓動Fa0/0端口

Router(config-if)# interface FastEthernet 0/0.1                 //添加設置Fa0/0端口的子端口Fa0/0.1
                                                                //同理Fa0/1端口的子端口可以爲Fa0/1.1,Fa0/0.6等

Router(config-subif)# encapsulation dot1Q 1                     //對該子端口Fa0/0.1進行802.1q協議的封裝
                                                                //後面的數字 1 代表是的偵聽VLAN號爲 1 的傳輸數據

Router(config-subif)# ip address 192.168.10.1 255.255.255.0     //設置該子端口Fa0/0.1的IP和子網掩碼
Router(config-subif)#no shutdown                                //啓動該子端口

Router(config-if)# interface FastEthernet 0/0.2                 //添加設置Fa0/0端口的子端口Fa0/0.2
Router(config-subif)# encapsulation dot1Q 2                     //對該子端口Fa0/0.2進行802.1q協議的封裝

Router(config-subif)# ip address 192.168.20.1 255.255.255.0     //設置該子端口Fa0/0.2的IP和子網掩碼
Router(config-subif)# no shutdown                               //啓動該子端口

Router(config-subif)# end                                       //完成設置退出

Router# show ip route                                           //查看路由信息

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.10.0/24 is directly connected, FastEthernet0/0.1
C    192.168.20.0/24 is directly connected, FastEthernet0/0.2   

最後一下輸出路由信息,說明設置成功。

C    192.168.10.0/24 is directly connected, FastEthernet0/0.1
C    192.168.20.0/24 is directly connected, FastEthernet0/0.2   

三層交換機

普通交換機沒有路由功能,而三層交換機可以看作普通交換機和路由器合二爲一的機器。
因此三層交換機具有路由功能,而且三層交換機的端口是vlan端口。

三層交換機的使用很靈活,我這裏說兩種:

  • 主機——三層交換機——主機
  • 主機——交換機——三層交換機——交換機——主機

主機——三層交換機——主機

圖解如下:

主機三層交換機

三層交換機設置

三層交換機增加vlan和對主機的vlan劃分部分省略。

Switch> enable
Switch# configure terminal

Switch(config)#ip routing                                   //啓動三層交換機路由功能

Switch(config)# interface Vlan 1                            //添加設置關聯Vlan號爲1的路由端口
Switch(config-if)# ip address 192.168.10.1 255.255.255.0    //爲該路由端口設置IP和子網掩碼
Switch(config-if)# no shutdown                              //啓動該端口
Switch(config-if)# exit                                     //退出該端口

Switch(config)# interface Vlan 2                            //添加設置關聯Vlan號爲2的路由端口
Switch(config-if)# ip address 192.168.20.1 255.255.255.0    //爲該路由端口設置IP和子網掩碼
Switch(config-if)# no shutdown                              //啓動該端口
Switch(config-if)# exit                                     //退出該端口

Switch(config)# interface Vlan 3                            //添加設置關聯Vlan號爲3的路由端口
Switch(config-if)# ip address 192.168.30.1 255.255.255.0    //爲該路由端口設置IP和子網掩碼
Switch(config-if)# no shutdown                              //啓動該端口
Switch(config-if)# end                                      //完成退出

Switch# show ip route                                       //查看路由信息

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.10.0/24 is directly connected, Vlan1
C    192.168.20.0/24 is directly connected, Vlan2
C    192.168.30.0/24 is directly connected, Vlan3

輸出以上路由信息表示設置成功 :)


主機——交換機——三層交換機——交換機——主機

圖解如下:

交換機三層交換機

普通交換機添加vlan和對主機vlan劃分部分省略。
若普通交換機連接三層交換機的端口已設置vlan模式爲trunk,連接三層交換機後,三層交換機連接普通交換機的端口其模式會自動設置爲trunk。

普通交換機設置(示例兩個普通交換機設置相同)

Switch> enable
Switch# configure terminal
Switch(config)# interface FastEthernet 0/24
Switch(config-if)# switchport mode trunk        //設置Fa0/24端口vlan模式爲trunk
Switch(config-if)#end

三層交換機設置(與前面的類似)

Switch> enable
Switch#vlan database
Switch(vlan)# vlan 2                                        //添加vlan 2
Switch(vlan)# exit

Switch# configure terminal

Switch(config)#ip routing                                   //啓動三層交換機路由功能

Switch(config)# interface Vlan 1                            //添加設置關聯Vlan號爲1的路由端口
Switch(config-if)# ip address 192.168.10.1 255.255.255.0    //爲該路由端口設置IP和子網掩碼
Switch(config-if)# no shutdown                              //啓動該端口
Switch(config-if)# exit                                     //退出該端口

Switch(config)# interface Vlan 2                            //添加設置關聯Vlan號爲2的路由端口
Switch(config-if)# ip address 192.168.20.1 255.255.255.0    //爲該路由端口設置IP和子網掩碼
Switch(config-if)# no shutdown                              //啓動該端口
Switch(config-if)# end                                      //退出該端口

Switch# show ip route                                       //查看路由信息

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.10.0/24 is directly connected, Vlan1
C    192.168.20.0/24 is directly connected, Vlan2

輸出以上路由信息表示設置成功 :)


感想

畢竟這點內容寫了一天了,累但是很滿足,謝謝閱讀~~~

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