应用场景:
Private VLAN的主要功能就是能够实现节约IP地址,隔离广播风暴,病毒攻击,控制端口二层互访。特别适用于大二层结构的环境,用户多,vlan多,但是IP地址又是同一个网段,又要实现彼此之间二层隔离,个别VLAN之间又有互访的需求。常见的场景有宾馆酒店,小区宽带接入,运营商与高校共建的校园网等,他们的特点是一个房间或者一户人家一个vlan,彼此隔离,但是IP地址有限,无法给数量庞大的vlan每个分一个网段IP,只能共用一个IP地址段,比如vlan 10的IP地址段10.10.10.0/24,这样一户人家可能就使用了1-2个IP,造成剩余200多个ip地址浪费。
另一种比较典型的PVLAN应用类似于端口隔离功能(switchport protected),即将所有用户端口设置为隔离VLAN((Isolated Port),这样即使同一vlan,同一网段的IP之间的用户也无法访问,可以有效隔离病毒度假。
功能简介:
服务提供商如果给每个用户一个VLAN,则由于一台设备支持的VLAN数最大只有4096而限制了服务提供商能支持的用户数;在三层设备上,每个VLAN被分配一个子网地址或一系列地址,这种情况导致IP地址的浪费;另外同一个vlan内的广播风暴,病毒攻击等安全问题让维护人员非常头疼,等等的这些问题的一种解决方法就是应用Private VLAN 技术。
Private VLAN将一个VLAN 的二层广播域划分成多个子域,每个子域都由一个私有VLAN对组成:主VLAN(Primary VLAN)和辅助VLAN(Secondary VLAN)。
在一个Private VLAN域中所有的私有VLAN对共享同一个主VLAN,每个子域的辅助VLAN ID 不同。一个Private VLAN域中只有一个主VLAN,有两种类型的辅助VLAN:
隔离VLAN(Isolated VLAN):同一个隔离VLAN 中的端口不能互相进行二层通信,一个私有VLAN 域中只有一个隔离VLAN。
群体VLAN(Community VLAN):同一个群体VLAN 中的端口可以互相进行二层通信,但不能与其它群体VLAN 中的端口进行二层通信。一个Private VLAN域中可以有多个群体VLAN。
在一个Private VLAN域内通常有三种常见的端口角色,通过定义交换机上面不通的端口的角色可以实现各用户间的二层互访,还是隔离的效果:
混杂端口(Promiscuous Port),属于主VLAN 中的端口,可以与任意端口通讯,包括同一个Private VLAN域中辅助VLAN的隔离端口和群体端口,通常是交换机上联网关设备的端口。
隔离端口(Isolated Port),隔离VLAN 中的端口彼此之间不能通信,只能与混杂口通讯。通常是下联接入用户端的接口。
群体端口(Community port),属于群体VLAN 中的端口,同一个群体VLAN 的群体端口可以互相通讯,也可以与混杂口通讯,不能与其它群体VLAN 中的群体端口及隔离VLAN 中的隔离端口通讯。通常是下联接入用户端的接口。
Private VLAN域中,只有主VLAN 可以创建SVI 接口,配置IP作为网关使用,辅助VLAN 不可以创建SVI。
一、组网需求
如下图,属于同一企业的用户群体分布在两台接入交换机上,两台接入交换机进行级联。这两台交换机上存在部分用户之间可以访问,部分用户不能访问的需求,而且他们所使用的IP地址在同一个网段,交换机管理VLAN和用户VLAN分离,可以实现设备管理。
示例:
SwitchA上的用户1(VLAN20内)的报文经Trunk口转发时带上VID为20的TAG,Switch B接收来自群体VLAN(VLAN 20)的报文允许转发到相应的群体端口,实现了跨设备的相互通信;用户3,用户5属于隔离VLAN(VLAN 30内),用户3的报文经Trunk口转发时带上VID为30的TAG,由于从Trunk口收到的报文不支持向同VLAN的隔离口转发,所以Switch B丢弃来自隔离VLAN的报文,实现了跨设备的隔离;Switch B的报文经Trunk口转发时带上VID为20或30的TAG,SwitchA的上联口为混杂TRUNK口,由于辅助VLAN的报文允许转发到主VLAN,所以相关报文都能够转发到网关,实现与外部的通信。
SWITCHA、SWITCHB、GW设备的管理地址为另一个网段,并且属于普通vlan100,在混杂TRUNK口直接透传。
二、组网拓扑
三、配置要点
1、switchA,switchB按照普通的pvlan配置方法,新建primary vlan 10(主VLAN),community vlan 20,isolated vlan 30,
并且将primary vlan同secondary vlan关联起来;新建管理vlan 100;
2、switchA,switchB上的用户端口加入secondary vlan(辅助VLAN);
3、switchA,switchB互联的端口设置为trunk模式,并且允许vlan10,20,30,100;
4、switchA同GW互联的端口设置为混杂trunk模式,实现透传管理VLAN并将私有VLAN的VID修改为主VLAN的功能。
5、网关交换机上建立vlan10,100,并设置ip,作为用户及管理段的网关,下联switchA的端口设置为trunk模式;
四、配置步骤
SWITCH A交换机的配置:
1、配置pvlan中的相关vlan并做关联
SWITCHA(config)#vlan 20
SWITCHA(config-vlan)#private-vlan community ------>创建团体vlan20
SWITCHA(config-vlan)#ex
SWITCHA(config)#vlan 30
SWITCHA(config-vlan)#private-vlan isolated ------>创建隔离vlan30
SWITCHA(config-vlan)#ex
SWITCHA(config)#vlan 10
SWITCHA(config-vlan)#private-vlan primary ------>创建主vlan,并关联secondary vlan
SWITCHA(config-vlan)#private-vlan association 20,30
2、将交换机端口划入pvlan的各属性端口
SWITCHA(config)#int range g0/10-11
SWITCHA(config-if-range)#switchport mode private-vlan host
SWITCHA(config-if-range)#switchport private-vlan host-association 10 20 ------>将10,11端口加入团体vlan20
SWITCHA(config-if-range)#exit
SWITCHA(config)#int g0/12
SWITCHA(config-if-GigabitEthernet 0/12)#switchport mode private-vlan host
SWITCHA(config-if-GigabitEthernet 0/12)#switchport private-vlan host-association 10 30 ------>将12端口加入隔离vlan30
3、SWITCHA和SWITCHB跨设备的pvlan的互通配置
SWITCHA(config)#interface g0/1
SWITCHA(config-if-GigabitEthernet 0/1)#switchport mode trunk
4、配置混杂TRUNK口实现与网关的通信
SWITCHA(config)#interface g0/24
SWITCHA(config-if-GigabitEthernet 0/24)#switchport mode trunk
SWITCHA(config-if-GigabitEthernet 0/24)#switchport private-vlan promiscuous trunk 10 20,30 ------>配置上联GW的端口为混杂口属性
指定主,辅vlan的映射关系,实现私有VLAN的报文送本接口发送出去时,修改VID为主VLAN ID。
SWITCHA(config-if-GigabitEthernet 0/24)#switchport trunk allowed remove xxx ------>根据实际情况配置裁减,需要允许管理VLAN100,主VLAN10通过
SWITCH B交换机的配置:
1、配置pvlan中的相关vlan并做关联
SWITCHB(config)#vlan 20
SWITCHB(config-vlan)#private-vlan community
SWITCHB(config-vlan)#ex
SWITCHB(config)#vlan 30
SWITCHB(config-vlan)#private-vlan isolated
SWITCHB(config-vlan)#ex
SWITCHB(config)#vlan 10
SWITCHB(config-vlan)#private-vlan primary
SWITCHB(config-vlan)#private-vlan association 20,30
2、将交换机端口划入pvlan的各属性端口
SWITCHB(config)#int f0/10
SWITCHB(config-FastEthernet 0/10)#switchport mode private-vlan host
SWITCHB(config-FastEthernet 0/10)#switchport private-vlan host-association 10 20
SWITCHB(config-FastEthernet 0/10)#ex
SWITCHB(config-FastEthernet 0/12)#switchport mode private-vlan host
SWITCHB(config-FastEthernet 0/12)#switchport private-vlan host-association 10 30
SWITCHB(config-FastEthernet 0/12)#exit
3、跨设备的pvlan的互通配置
SWITCHB(config)#interface f0/1
SWITCHB(config-if- FastEthernet 0/1)#switchport mode trunk
网关交换机配置
GW(config)#interface g0/1
GW(config-if-GigabitEthernet 0/1)#switchport mode trunk
五、功能验证
1、查看配置
SWITCHA#show vlan private-vlan
VLAN Type Status Routed Ports Associated VLANs
----- ---------- -------- -------- ------------------------------ ------------------
10 primary active Disabled Gi0/1, Gi0/24 20,30
20 community active Disabled Gi0/1, Gi0/10, Gi0/11 10
30 isolated active Disabled Gi0/1, Gi0/12 10
2、SWITCHA上的PC1,PC2间通信,即community间的通信,可以通信。
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Intel(R) 82577LM Gigabit Network Connection
Physical Address. . . . . . . . . : 5C-FF-35-05-B3-BB
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::e0ce:6401:f165:b748%11(Preferred)
IPv4 Address. . . . . . . . . . . : 192.168.33.123(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.33.1
DHCPv6 IAID . . . . . . . . . . . : 240975669
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-14-0D-A2-8D-5C-FF-35-05-B3-BB
DNS Servers . . . . . . . . . . . : 8.8.8.8
NetBIOS over Tcpip. . . . . . . . : Enabled
C:>ping 192.168.33.22
Pinging 192.168.33.22 with 32 bytes of data:
Reply from 192.168.33.22: bytes=32 time=3ms TTL=64
Reply from 192.168.33.22: bytes=32 time=1ms TTL=64
Reply from 192.168.33.22: bytes=32 time=1ms TTL=64
Reply from 192.168.33.22: bytes=32 time=1ms TTL=64
Ping statistics for 192.168.33.22:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 3ms, Average = 1ms
3、PC1,PC3间通信,即community,isolated间的通信,无法通信。
C:>ping 192.168.33.23
Pinging 192.168.33.23 with 32 bytes of data:
Reply from 192.168.33.123: Destination host unreachable.
Reply from 192.168.33.123: Destination host unreachable.
Reply from 192.168.33.123: Destination host unreachable.
Reply from 192.168.33.123: Destination host unreachable.
Ping statistics for 192.168.33.23:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
4、PC1同网关的通信,即community同promiscuous间的通信,可以通信。
C:>ping 192.168.33.1
Pinging 192.168.33.1 with 32 bytes of data:
Reply from 192.168.33.1: bytes=32 time<1ms TTL=64
Reply from 192.168.33.1: bytes=32 time=1ms TTL=64
Reply from 192.168.33.1: bytes=32 time=1ms TTL=64
Reply from 192.168.33.1: bytes=32 time=1ms TTL=64
Ping statistics for 192.168.33.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 1ms, Average = 0ms
5、isolated端口的访问属性 ,无法通信。
PC1,PC3接到SWITCHA上的isolated端口下
C:>ping 192.168.33.23
Pinging 192.168.33.22 with 32 bytes of data:
Reply from 192.168.33.123: Destination host unreachable.
Reply from 192.168.33.123: Destination host unreachable.
Reply from 192.168.33.123: Destination host unreachable.
Reply from 192.168.33.123: Destination host unreachable.
Ping statistics for 192.168.33.23:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
6、PC1 192.168.33.123 ping网关,即isolated端口同promiscuous通信,可以通信。
C:>ping 192.168.33.1
Pinging 192.168.33.1 with 32 bytes of data:
Reply from 192.168.33.1: bytes=32 time=1ms TTL=64
Reply from 192.168.33.1: bytes=32 time=1ms TTL=64
Reply from 192.168.33.1: bytes=32 time=1ms TTL=64
Reply from 192.168.33.1: bytes=32 time=1ms TTL=64
Ping statistics for 192.168.33.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 1ms, Average = 1ms
7、trunk端口的访问属性
SWITCHA下的community端口的PC1 192.168.33.123 同SWITCHB上的community端口下的PC4通信,可以通信。
C:>ping 192.168.33.24
Pinging 192.168.33.22 with 32 bytes of data:
Reply from 192.168.33.22: bytes=32 time=3ms TTL=64
Reply from 192.168.33.22: bytes=32 time=1ms TTL=64
Reply from 192.168.33.22: bytes=32 time=1ms TTL=64
Reply from 192.168.33.22: bytes=32 time=1ms TTL=64
Ping statistics for 192.168.33.24:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 3ms, Average = 1ms
SWITCHA下的community端口的PC1 192.168.33.123 同SWITCHB上的isolated端口下的PC5通信,无法通信。
C:>ping 192.168.33.24
Pinging 192.168.33.24 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
8、SWICHB下community端口的PC4ping网关,即跨设备的community端口同promiscuous通信,可以通信。
C:>ping 192.168.33.1
Pinging 192.168.33.1 with 32 bytes of data:
Reply from 192.168.33.1: bytes=32 time=1ms TTL=64
Reply from 192.168.33.1: bytes=32 time=1ms TTL=64
Reply from 192.168.33.1: bytes=32 time=1ms TTL=64
Reply from 192.168.33.1: bytes=32 time=1ms TTL=64
Ping statistics for 192.168.33.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 1ms, Average = 1ms
9、SWITCHA/B上的管理网段vlan100 ping GW上的管理网关,可以通信。
SWITCHA#show ip int b
Interface IP-Address(Pri) IP-Address(Sec) Status
VLAN 1 192.168.33.25/24 no address UP
VLAN 100 10.1.1.1/24 no address UP
SWITCHA#ping 10.1.1.2
Sending 5, 100-byte ICMP Echoes to 10.1.1.2, timeout is 2 seconds:
< press Ctrl+C to break >
!!!!!