PVLAN边界也被称为被保护的端口,配置极其简单,就接口下一条命令。
当在交换机接口启用Protected之后,效果如下:
1 .Protected Ports技术只在本地交换机配置了这个特性的接口上生效(和PVLAN做对比,Pvlan可以跨交换机)
2. 在相同的交换机上,被保护的端口不能转发流到其他的被保护端口。
3. 为了让流量在两个被保护端口之间交换,流量须穿越一个3层设备。
注意:这种技术极不靠谱,很容易就可以实现被保护的两个端口之间可以通信。
实验拓扑图如下:
实验三步走,第一步,划分vlan,配置为access模式:
SW(config)#vlan 2
SW(config)#int range e0/1 -3,e1/1
SW(config-if)#switchport mode access
SW(config-if)#switchport access vlan 2
实验至此,PC1,PC2,PC3和GW之间都是互通的。
实验三步走,第二步,配置Protected Port:
SW(config)#int range e0/1 -2
SW(config-if-range)#switchport protected
实验至此,PC1和PC2就不通了,但是其他任意两者之间都是互通的,也就是PC1和PC3通,PC1和GW通,PC2和PC3通,PC2和GW通,PC3和GW通。
实验三步走,第三步,通过三层路由技术实现Protect Port之间可以通
首先我们分析一下,如果PC1和PC2直接互通,PC1发给PC2的数据包(假设是ICMP请求包)的封装格式如下,
当这样的数据帧发给交换机,交换机直接根据MAC地址表转发,发现目的端口也是一个被保护的端口,交换机直接丢弃了这个包,因此目前数据无法通信。
如果想办法跳过这个机制(交换机两个Protected端口之间无法直接通信),那么是不是就能通信了呢?没错,是的。
那么,怎么跳过呢?
我想办法修改MAC帧头的目的MAC为GW的MAC,里面的IP包头和ICMP内容都不变,这不就好了吗。
有道理哎!!!
但是怎么做呢?
so easy!!!在PC1和PC2各写一条主机路由就搞定。
如下:
PC1(config)#ip route 10.1.1.2 255.255.255.255 10.1.1.254
PC2(config)#ip route 10.1.1.1 255.255.255.255 10.1.1.254
如果是真实的PC,就管理员模式运行CMD命令行,输入:
PC1
C:Windowssystem32>route add -p 10.1.1.2 mask 255.255.255.255 10.1.1.254
PC2
C:Windowssystem32>route add -p 10.1.1.1 mask 255.255.255.255 10.1.1.254
这样做完,PC1发给PC2的数据包,格式变成了:
哦,原来如此,这样数据就会通过GW进行中转,PC1-SW-GW-SW-PC2。
注意:默认情况下,防火墙不会把一个接口收到的流量再发出去(可以手工修改),路由器是可以把一个接口收到的流量再通过这个接口发出去的,但是我们可以在路由器上做ACL列表拒接内网到内网的流量。