网管员世界2009超值精华本
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

局域网中配置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来使用。