- 網管員世界2009超值精華本
- 《網管員世界》雜志社編
- 5305字
- 2018-12-28 17:22:16
局域網中配置PVLAN
中國南車集團武漢江岸車輛廠 張檣
PVLAN的典型應用
PVLAN就是Private VLAN,中文翻譯就是“私有虛擬局域網”。VLAN相信大家都已經很熟悉了,它能夠隔離廣播,提高VLAN之間的安全性,而PVLAN可以說是一種特殊的VLAN,主要用來提高VLAN內部的安全性及提高對IP地址資源的有效利用。
下面讓我們來看一看PVLAN的典型應用場景。
應用場景1
如圖1所示,現在很多企業越來越重視通過互聯網開展電子商務的應用、宣傳企業的形象、提高企業的知名度,但很多中小企業沒有相應的環境和技術能力來進行相關服務器系統的維護,于是將服務器托管到服務商那里就成了眾多中小企業的選擇。而提供服務器托管的服務商,需要為不同客戶提供專業安全的服務,各個客戶之間的服務器又必須要進行隔離,互相之間是不能進行訪問的。那么按照傳統的思路,就會在交換機上將每一個客戶劃分到各自的VLAN中。
圖1所示的例子,將客戶1放到VLAN 101中,客戶2放到VLAN 102中,依此類推,并且會在各VLAN之間建立ACL,阻止VLAN之間的通信,避免客戶1訪問到客戶2、客戶3等的資源。

圖1 服務器托管
如果來托管的客戶較少,這種管理方式不會出現任何問題,但在一個大的服務商那里,托管的服務器和客戶可能會達到幾百甚至上千個,這時問題就隨之出現了。服務商需要劃分幾百甚至上千個VLAN,而交換機能夠支持的活動的VLAN是有限的,對服務商來說就是限制了業務的發展。而且按照通常的管理方式,每個VLAN劃分一個子網。
如圖1中的示例,每個客戶劃分一個29 位掩碼的子網,那么每個子網就有6個可用的主機地址,如果每個客戶只托管了一臺服務器,那么每個子網就會浪費5個IP地址。這還是在采用了VLSM的情況下,假如沒有采用VLSM的話,IP地址的浪費就會更加驚人。而且如圖中的IP地址示例,由于192.168.100.0/29只支持32個子網,如果客戶數量超過了32個,就需要采用新的網段來劃分子網,這樣IP地址的管理又是一個很大的問題。一方面IP地址在浪費,另一方面又需要采用新的網段來支持業務的發展,使得IP地址的空間得不到有效的利用。此時,PVLAN的出現就是解決這種矛盾的最佳選擇了。
應用場景2
現在在企業內部,幾乎沒有不劃分VLAN的,它的優點也是顯而易見的,它隔離了VLAN之外的廣播,并通過ACL來提高VLAN之間的安全性。但在VLAN內部呢?各個客戶端之間是可以互相訪問的,VLAN內部的安全又該如何控制呢?而我們平常使用的ACL對VLAN內部的安全卻是無能為力的。而且很多企業出于安全和工作效率的考慮,都會限制員工對Internet的訪問。
如圖2 所示,假設某企業劃分了兩個VLAN——VLAN100和VLAN200,在VLAN100中只有PC1可以訪問Internet,并且出于應用的需要,PC2、PC3、PC4等計算機又必須與PC1 在同一VLAN中,那么員工就可以私自將PC1安裝成一臺代理服務器,開放8080端口或其他的代理服務器相應的端口,PC2、PC3、PC4 等計算機就可以通過這臺計算機作為代理的PC1接入Internet。由于VLAN之間建立了ACL,限制了VLAN200中的PC對VLAN100中的訪問權限,因此VLAN200中的計算機就無法通過VLAN100中的PC1 接入Internet。那么就會出現在同一個VLAN中,通過建立一個代理服務器的方式來實現整個VLAN中的PC對Internet的訪問,也就無法實現對Internet訪問的控制。作為企業的網絡技術人員又該如何在技術手段上實現控制呢?PVLAN也可以很好地解決這個問題。

圖2 企業劃分為兩個VLAN
理解PVLAN
談了這么多PVLAN應用的優點,也知道了PVLAN是一種特殊的VLAN,那么它又是怎樣的一種結構呢?
主從VLAN結構
PVLAN其實就是定義若干個VLAN,將其中一個VLAN定義為Primary VLAN即主VLAN,其他幾個VLAN為Secondary VLAN,即輔助VLAN,輔助VLAN與主VLAN建立關聯,成為主VLAN的成員。各個輔助VLAN共享主VLAN的地址資源,包括IP地址、網關等。而在PVLAN外部,所有的輔助VLAN都被看成是一個VLAN,即主VLAN,其結構如圖3所示。

圖3 PVLAN結構
在圖3 示例中,我們一共定義了5 個VLAN,其中VLAN100、VLAN110、VLAN120 被定義在同一個PVLAN中,VLAN100為主VLAN,VLAN110和VLAN120為輔助VLAN,VLAN110、VLAN120和VLAN100建立關聯。整個PVLAN使用192.168.100.0/24地址空間,各個輔助VLAN中的計算機也都使用該網段的IP地址。VLAN200和VLAN220則為普通的VLAN,VLAN200使用192.168.200.0/24網段,VLAN220使用192.168.220.0/24網段。VLAN之間通過配置ACL實現VLAN的安全,PVLAN則是通過將輔助VLAN定義為不同類型的VLAN來實現VLAN內部的安全。
相信通過圖3我們對PVLAN的結構有了一個大概的了解,下面再來熟悉一下PVLAN所特有的幾個概念。
PVLAN端口
Promiscuous端口——中文意思為混雜模式端口,處于此種模式下的端口可與所有的端口進行通信。
Isolated端口——中文意思為隔離端口,顧名思義,處于此種模式下的端口是被隔離的,互相之間不能訪問,只能與Promiscuous端口和TRUNK端口通信。
Community端口——中文意思為公共端口,在這種模式下的端口,就像是組成了一個社團,社團內的端口可以互相通信,但不同社團之間的端口是不能通信的。所有社團的端口都可以與Promiscuous端口和TRUNK端口通信。
PVLAN特有的VLAN類型
以上是PVLAN中的幾種端口類型,再看一下PVLAN中所特有的VLAN類型。
Primary VLAN——中文意思為“主VLAN”,每個PVLAN中有且只能有一個主VLAN,PVLAN中各種類型的端口都是Primary VLAN的成員。
Isolated VLAN——中文意思為“隔離VLAN”,每個PVLAN中只能有一個隔離VLAN。隔離VLAN中的端口處于Isolated端口模式下,只能與混雜模式的端口和TRUNK端口通信。隔離端口之間也不能互相通信,具有Isolated端口的特征。
Community VLAN——中文意思為“公共VLAN”,每個PVLAN中可以配置多個公共VLAN,Community VLAN中的端口就處于Community端口模式下,具有Community端口的特征。
熟悉了這幾個概念之后,再結合圖3,PVLAN的結構就很容易理解了。PVLAN在邏輯上可以將它看成是一個層次結構,那么圖3中的PVLAN也可以如圖4所示。

圖4 PLAN的層次結構
在這個PVLAN中,Isolated VLAN即VLAN110中的計算機和Community VLAN,即VLAN120中的計算機是不可以互相通信的,僅僅只有VLAN120中的計算機可以互相通信。但VLAN110和VLAN120又共享同一個地址空間(即VLAN100的地址空間——192.168.100.0/24),也共享VLAN100的網關,并且都可以和網關通信,可以通過網關訪問這個網段,即VLAN100以外的資源。通過對PVLAN的合理配置,既實現了VLAN內部的安全,又不影響VLAN內計算機對VLAN內外各種資源的使用。
PVLAN配置實例
由于PVLAN的這種特性我們可以發現,對于前面所提到的兩種應用場景,PVLAN就是最佳的解決方案。
ISP服務商PLAN解決方案
對應用場景1可以采取如圖5的方式。在某ISP服務商處,先劃分一個VLAN,并將這個VLAN定義為Primary VLAN,然后為所有的托管服務器分別劃分VLAN,再將每個客戶的VLAN定義為相應的Comunnity VLAN。

圖5 ISP服務商PLAN解決方案
在圖5所示的示例中,24位掩碼的IP地址空間中除去一個作為網關地址外,最多可以有253 個服務器。如果每個客戶托管一臺服務器,這一個網段就可以為253 個客戶提供服務。每個客戶的服務器都使用192.168.100.0/24網段的地址,但由于在不同的Community VLAN中,各個客戶雖然在同一個網段當中,但是卻不能互相訪問。這樣就解決了安全問題,而且如果同一個客戶有多臺托管的服務器,只需要將這個客戶的服務器都劃分在同一個Community VLAN中,就可以實現同一個客戶的服務器的互訪,網絡結構也不需要做大的更改,具有很好的擴展性。同時,由于所有的客戶都在同一個PVLAN中,不需要為每個客戶建立不同的子網,所以IP地址也得到了有效的利用,管理起來也就更加簡單了。
VLAN內部安全控制方案
而對于場景2,我們可以采用如圖3所示的方案,通過建立PVLAN,將能夠訪問Internet的計算機劃到Isolated VLAN中,即隔離VLAN中,這樣即使這臺計算機安裝了代理軟件,由隔離VLAN的特性我們知道,在這個PVLAN中其他的計算機因為無法訪問這臺代理服務器,也就無法通過它來訪問Internet了,可以說,從根本上杜絕了員工私設代理服務器,而且并不影響那臺具有訪問Internet權限的計算機的正常應用。
下面就讓我們以一臺Cisco WS-C3560-24TS為例,來介紹PVLAN的具體配置過程。
首先對將要配置的VLAN規劃一下:建立四個VLAN,VLAN號分別為100、110、120、130,將VLAN 100作為Primary VLAN,VLAN 110作為Isolated VLAN,VLAN 120和VLAN 130作為Community VLAN。交換機的9和10號端口劃到Isolated VLAN——VLAN 110中,14號和15號端口劃到VLAN 120中,17號端口和18號端口劃分到VLAN 130中,16號端口作為混雜模式端口,主VLAN的地址段為192.168.100.0/24,網絡拓撲如圖6所示。

圖6 VLAN內部安全控制方案
規劃好后,下面就開始配置過程。
第一步:登錄到交換機,進入到特權模式。
3560TS>en
Password:
3560TS#config t
Enter configuration commands, one per line. End with CNTL/Z.
3560TS(config)#
順便說一下,在3560 交換機中,VLAN的配置不建議在VLAN Database配置模式下,而是統一到全局配置模式下來配置VLAN。
第二步:增加預先規劃的四個VLAN。
3560TS(config)#vlan 100
3560TS(config-vlan)#exit
3560TS(config)#vlan 110
3560TS(config-vlan)#exit
3560TS(config)#vlan 120
3560TS(config-vlan)#exit
3560TS(config)#vlan 130
3560TS(config-vlan)#exit
3560TS(config)#
第三步:分別將四個VLAN劃分到不同模式的PVLAN中,并建立關聯。
將VLAN 100劃分到PrimaryVLAN中:
3560TS(config)#vlan 100
3560TS(config-vlan)#private-vlan primary
3560TS(config-vlan)#exit
3560TS(config)#
將VLAN 110劃分到Isolated VLAN中:
3560TS(config)#vlan 110
3560TS(config-vlan)#private-vlan isolated
3560TS(config-vlan)#exit
3560TS(config)#
將VLAN 120和130劃分到Community VLAN中:
3560TS(config)#vlan 120
3560TS(config-vlan)#private-vlan community
3560TS(config-vlan)#exit
3560TS(config)#vlan 130
3560TS(config-vlan)#private-vlan community
3560TS(config-vlan)#exit
3560TS(config)#exit
3560TS#
將VLAN110,VLAN120,VLAN130關聯到主VLAN中:
3560TS(config)#vlan 100
3560TS(config-vlan)#private-vlan association 110,120,130
3560TS(config-vlan)#end
完成以上命令后,用sh runn命令查看配置:
vlan 100
private-vlan primary
!
vlan 110
private-vlan isolated
!
vlan 120
private-vlan community
!
vlan 130
private-vlan community
再執行sh vlan private-vlan命令:
Primary Secondary Type Ports
----------
100110 isolated
100120 community
100130 community
我們可以發現,各個VLAN已按照我們的要求配置到相應的PVLAN中去了,并且各Secondary VLAN也已關聯到主VLAN中。
第四步:按照計劃將各端口關聯到各輔助VLAN中。
3560TS(config)#int range fa0/9-10
3560TS(config-if-range)#switchport mode private-vlan host
//將端口配置為PVLAN的主機模式
3560TS(config-if-range)#switchport private-vlan host-association 100110
//將端口關聯到Primary VLAN為100,Secondary VLAN為110的PVLAN中
3560TS(config)#exit
3560TS(config)#int range fa0/14-15
3560TS(config-if-range)#switchport mode private-vlan host
3560TS(config-if-range)#switchport private-vlan host-association 100120
//將端口關聯到Primary VLAN為100,Secondary VLAN為120的PVLAN中
3560TS(config-if-range)#exit
3560TS(config)#int range fa0/17-18
3560TS(config-if-range)#switchport mode private-vlan host
3560TS(config-if-range)#switchport private-vlan host-association 100130
//將端口關聯到Primary VLAN為100,Secondary VLAN為130的PVLAN中
3560TS(config-if-range)#exit
3560TS(config)#int fa0/16
3560TS(config-if)#switchport mode private-vlan promiscuous
//將端口配置為PVLAN的混雜模式
3560TS(config-if)#switchport private-vlan mapping 100110,120,130
//將端口映射到Primary VLAN 100中,并且選擇混雜模式端口允許通過的Secondary VLAN
以上的命令分別將9、10號端口劃分到了Isolated VLAN(即VLAN 110)中,14、15號端口劃分到了Community VLAN(即VLAN 120)中,17、18號端口劃分到了Community VLAN(即VLAN 130)中。16號端口劃分為混雜模式端口,并且允許各Isolated VLAN、Community VLAN都能夠和16號端口通信。
用sh vlan private-vlan查看:
3560TS#sh vlan private-vlan
Primary Secondary Type Ports
----------
100110 isolated Fa0/9, Fa0/10, Fa0/16
100120 community Fa0/14, Fa0/15, Fa0/16
100130 community Fa0/16, Fa0/17, Fa0/18
由顯示結果可以發現已經達到了預期的配置目的,特別注意的是Fa0/16號端口,在每個Secondary VLAN中都顯示有該端口,即表示每個Secondary VLAN都能夠和16號端口的計算機通信。
端口配置完成后,還有一點重要的配置,這也是筆者在學習PVLAN時忽視的一個配置,但偏偏是非常重要的一點,導致筆者在配置后發現VLAN不能通信,直到仔細檢查配置后才發現。
第五步:最后的配置
3560TS(config)#int vlan 100
3560TS(config-if)#ip address 192.168.100.1255.255. 255.0
3560TS(config-if)#ip helper-address 192.168.24.10
3560TS(config-if)#private-vlan mapping 110,120,130
//將Secondary VLAN映射到三層接口
3560TS(config-if)#end
以上命令首先是將Primary VLAN配置上IP地址,那么在這個PVLAN中的PC都屬于192.168.100.0/24的地址空間中,并且將110、120、130三個Secondary VLAN都映射到Primary VLAN中,這樣就允許了三個Secondary VLAN在三層的交換,配置中的IP地址192.168.24.10為DHCP服務器的地址。到此PVLAN配置全部完成。
驗證PVLAN的網絡配置
配置完成后,我們來進行測試。將Cisco 3560交換機和另一Cisco 3750交換機的級聯口配置為TRUNK接口,DHCP服務器就接在這個Cisco 3750交換機上。Cisco 3560交換機的PVLAN中的PC配置為動態獲取地址,在16號端口上連接一臺Intranet Web服務器(為了測試,所以將服務器也配置成了動態獲取地址),其他的9、10、14、15、17和18號端口分別接入六臺PC,開始進行測試。以下為測試結果:
(1)六臺PC均正常分配了IP地址(如圖7所示)。

圖7 六臺PC的配置狀況
(2)9、10號端口的PC都能夠和DHCP服務器、Web服務器通信,但是這兩臺PC之間不能通信,和其他的四臺PC也不能通信。
(3)14、15號端口的PC都能夠和DHCP服務器、Web服務器通信,這兩臺PC之間可以互相通信,但不能和其他的四臺PC(包括17、18號端口的PC)通信。
(4)17、18號端口的PC和14、15號端口PC的情況類似,兩臺PC可以相互通信,也可以和外部DHCP服務器和內部Web服務器通信,但和PVLAN中其他的四臺主機(包括14、15號端口的PC)不能通信。
以上的測試結果和我們的預期完全一致,通過實踐也證明了PVLAN能夠滿足在本文開頭所設想的兩種場景的應用。
當然,PVLAN的應用場景遠遠不止這些,在熟悉和理解了PVLAN的原理和配置之后,我們可以將這種特性靈活應用,以滿足不同的業務需求。
PVLAN應用注意事項
1.PVLAN跨越多交換機的問題
常規的VLAN跨越多交換機大家都已經知道了,直接通過配置VTP來傳播VLAN信息,一個VTP域中的處于Client模式的交換機就都會學習到VLAN信息。但PVLAN不能通過VTP域的方式來傳播,因為VTP本身不支持PVLAN。
那么在多交換機上配置時,就需要將VTP配置為透明模式,手動配置VLAN,并且手動將各輔助VLAN和主VLAN建立關聯,然后再將端口劃到相應的輔助VLAN中。
交換機之間相連接的端口要配置成Trunk端口,這樣不同的交換機上同一個PVLAN中的交換機端口就具有相同的特性了,實現了PVLAN跨越多交換機。
2.PVLAN各端口間的通信問題
PVLAN內只能定義一個Isolated VLAN,但可以將多個端口定義為Isolated端口。Isolated端口的廣播只能到達Trunk端口和Promiscuous端口,Community端口的廣播只能到達Trunk端口、Promiscuous端口和同一個Community內的端口。Promiscuous端口的廣播就可以到達本PVLAN內的所有端口和Trunk端口,和前面介紹的各類型端口的特性是一致的。
3.PVLAN的三層功能和應用訪問列表
只能在PVLAN的Primary VLAN上啟用PVLAN的三層功能,也就是在Primary VLAN的SVI接口上來配置IP地址,Secondary VLAN上的SVI特性是被禁止的。一旦Secondary VLAN和Primary VLAN建立關聯,Primary VLAN上的任何配置都會傳播到Secondary VLAN上。
PVLAN上同樣可以應用訪問列表來限制PVLAN和其他VLAN之間的訪問。PVLAN的訪問列表是應用在Primary VLAN的三層接口上的,同時也自動地應用到PVLAN的各個輔助VLAN上。
4.不要在PVLAN的端口上應用以下功能
(1)以太通道Ether Channel,包括LACP和PagP;
(2)DTP協議;
(3)Voice VLAN;
(4)動態VLAN等。
5.端口監控與PVLAN
很多情況下,我們需要使用SPAN來監控和分析網絡的狀態。在PVLAN中,可以指定PVLAN的各種端口來作為PVLAN的源端口,但不能作為目標端口來使用,也不能將PVLAN的Primary VLAN和各Secondary VLAN作為RSPAN VLAN來使用。
- 走入IBM小型機世界
- 計算機原理
- Learning Apache Cassandra(Second Edition)
- ROS機器人編程與SLAM算法解析指南
- 聊天機器人:入門、進階與實戰
- Mastering ServiceNow Scripting
- 悟透AutoCAD 2009案例自學手冊
- 電子設備及系統人機工程設計(第2版)
- INSTANT VMware vCloud Starter
- Hands-On SAS for Data Analysis
- 手把手教你學Photoshop CS3
- 西門子S7-1200/1500 PLC從入門到精通
- PostgreSQL 10 High Performance
- Python語言從入門到精通
- 工業機器人基礎