PVLANS
AND THEIR CONFIGURATIONS
Private VLAN concepts
are quite simple, but Cisco’s implementation and configuration steps are a bit
confusing – with all the “mappings” and “associations” stuff. Here comes a
short overview of how private VLANs work.
To begin with, let’s
look at the concept of VLAN as a broadcast domain. What Private VLANs (PVANs)
do, is split the domain into multiple isolated broadcast subdomains. It’s a
simple nesting concept – VLANs inside a VLAN. As we know, Ethernet VLANs are not
allowed to communicate directly, they need L3 device to forward packets between
broadcast domains. The same concept applies to PVLANS – since the subdomains
are isolated at level 2, they need to communicate using an upper level (L3 and
packet forwarding) entity – such as router. However, there is difference here.
Regular VLANs usually correspond to a single IP subnet. When we split VLAN
using PVLANs, hosts in different PVLANs still belong to the same IP
subnet, but they need to use router (another L3 device) to talk to each other
(for example, by means of local Proxy ARP). In turn, router may either permit
or forbid communications between sub-VLANs using access-lists.
Why would anyone need Private VLANs? Commonly, this kind of configurations arise in “shared” environments, say ISP co-location, where it’s beneficial to put multiple customers into the same IP subnet, yet provide a good level of isolation between them.
Why would anyone need Private VLANs? Commonly, this kind of configurations arise in “shared” environments, say ISP co-location, where it’s beneficial to put multiple customers into the same IP subnet, yet provide a good level of isolation between them.
For our sample
configuration, we will take VLAN 100 and divide it into two PVLANs – sub-VLANs
101 and 102. Take the regular VLAN and call it primary (VLAN 100 in our
example), then divide ports, assigned to this VLAN, by their types:
Promiscuous (P): Usually connects to a router – a type of a
port which is allowed to send and receive frames from any other port on the
VLAN
Isolated (I): This type of port is only allowed to communicate with P-ports – they are “stub”. This type of ports usually connects to hosts
Community (C): Community ports are allowed to talk to their buddies, sharing the same group (of course they can talk to P-ports)
Isolated (I): This type of port is only allowed to communicate with P-ports – they are “stub”. This type of ports usually connects to hosts
Community (C): Community ports are allowed to talk to their buddies, sharing the same group (of course they can talk to P-ports)
In order to implement
sub-VLAN behavior, we need to define how packets are forwarded between
different port types. First comes the Primary VLAN – simply
the original VLAN (VLAN 100 in our example). This type of VLAN is used to
forward frames downstream from P-ports to all other port types
(I and C ports). In essense, Primary VLAN entails all port in domain, but is
only used to transport frames from router to hosts (P to I and C). Next comes
Secondary VLANs, which correspond to Isolated and Community port groups. They
are used to transport frames in the opposite direction – from I and C ports to
P-port.
Isolated VLAN: forwards frames from I ports to P ports.
Since Isolated ports do not exchange frames with each other, we can use just
ONE isolated VLAN to connect all I-Port to the P-port.
Community VLANs: Transport frames between community ports (C-ports) within to the same group (community) and forward frames uptstream to the P-ports of the primary VLAN.
Community VLANs: Transport frames between community ports (C-ports) within to the same group (community) and forward frames uptstream to the P-ports of the primary VLAN.
This is how it works:
Primary VLANs is used
to deliver frames downstream from router to all hosts; Isolated VLAN transports
frames from stub hosts upstream to the router; Community VLANs allow frames
exchange withing a single group and also forward frames in upstream direction
towards P-port. All the basic MAC address learning and unknown unicast flooding
princinples remain the same.
Let’s move to the
configuration part (Primary VLAN 100, Isolated VLAN 101 and Community VLAN
102).
Step 1:
Create Primary and
Secondary VLANs and group them into PVLAN domain:
!
! Creating VLANs: Primary, subject to subdivision
!
vlan 100
private-vlan primary
!
! Isolated VLAN: Connects all stub hosts to router
!
vlan 101
private-vlan isolated
!
! Community VLAN: allows a subVLAN within a Primary VLAN
!
vlan 102
private-vlan community
!
! Associating
!
vlan 100
private-vlan assoc
101,102
What this step is
needed for, is to group PVLANs into a domain and establish a formal association
(for syntax checking and VLAN type verifications).
Step 2:
Configure host ports
and bind them to the respective isolated PVLANs. Note that a host port belongs
to different VLANs at the same time: downstream primary and upstream secondary.
!
! Isolated port (uses isoalated VLAN to talk to P-port)
!
interface FastEthernet x/y
switchport mode
private-vlan host
switchport private-vlan
host-association 100 101
!
! Community ports: use community VLAN
!
interface range FastEthernet x/y - z
switchport mode
private-vlan host
switchport private-vlan
host-association 100 102
Step 3:
Create a promiscuous
port, and configure downstream mapping. Here we add secondary VLANs for which
traffic is received by this P-port. Primary VLAN is used to send traffic
downstream to all C/I ports as per their associations.
!
! Router port
!
interface FastEthernet x/y
switchport mode
private-vlan promisc
switchport private-vlan
mapping 100 add 101,102
if you need to
configure an SVI on the switch, you should add an interface correspoding to
Primary VLAN only. Obviously that’s because of all secondary VLANs being simply
“subordiantes” of primary. In our case the config would look like this:
interface Vlan 100
ip address 172.16.0.1
255.255.255.0
Lastly, there is
another feature, worths to be mentioned, called protected port
or Private VLAN edge. The feature is pretty basic and avaiable even on low-end
Cisco switches, allows to isolate ports in the same VLAN. Specifically, all
ports in a VLAN, marked as protected are prohibited from
sending frames to each other (but still allowed to send frames to other (non-protected)
ports within the same VLAN). Usually, ports configurated as protected, are also
configured not to receive unknown unicast (frame with destination MAC address
not in switch’s MAC table) and multicast frames flooding for added security.
Example:
interface range FastEthernet 0/1 - 2
switchport mode access
switchport protected
switchport block unicast
switchport block
multicast