现在网络安全要求也越来越高了,一个局域网的主机之间有时候也希望能够做到互相不能访问。那为了实现接口之间的二层隔离,我们可以将不同的端口加入不同的VLAN,但这样会浪费有限的VLAN资源,配置也比较麻烦。这时候我们可以采用端口隔离特性,从而实现同一VLAN同一网段内端口之间的隔离,配置极其简单,就接口下一条命令即可。端口隔离功能为用户提供了更安全、更灵活的组网方案。
我们通过实验来看一下具体的配置操作。
先来看一下思科交换机的配置情况。
第一步,划分vlan,配置为access模式:
Switch(config)#vlan 100
Switch(config-vlan)#int rang f0/1 -3
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 100
至此,PC1、PC2、PC3和GW之间都是互通的。
第二步,PC1和PC2交换机接入端口配置Protected Port:
Switch(config)#int range f0/1 -2
Switch(config-if-range)#switchport protected
这样PC1和PC2就不通了,但是其他任意两者之间都是互通的,也就是PC1和PC3通,PC1和GW通,PC2和PC3通,PC2和GW通,PC3和GW通。这样就达到了效果,只要交换机起了Protected的端口,它们之间是不能互通的。
那能不能实现起了Protect Port也能互通呢?因为有时候我们想其中的被保护的两台主机之间又是可以相互通信的。答案是可以的,我们可以通过三层路由技术实现Protect Port之间可以互通。
正常情况下,如果PC1和PC2直接互通,PC1发给PC2的数据包(假设是ICMP请求包)的封装格式如下:
当这样的数据帧发给交换机,交换机直接根据MAC地址表转发,发现目的端口也是一个被Protected保护的端口,交换机就会直接丢弃了这个包,因此目前数据无法通信。那如何跳过这个机制呢?这时候我们可以想办法去修改MAC帧头的目的MAC为网关GW的MAC,里面的IP包头和ICMP内容都不变,这不就好了么,因此我们可以在PC1和PC2上分别写一条主机路由就可以搞定。
PC1:route add -p 192.1.1.2 mask 255.255.255.255 192.1.1.254
PC2:route add -p 192.1.1.1 mask 255.255.255.255 192.1.1.254
这样做完,PC1发给PC2的数据包,格式就会变成如下:
这样数据就会通过网关GW进行中转PC1->SW->GW->SW->PC2从而实现通信。
我们再来看华为交换机的端口隔离实现,配置命令也很简单,进入接口视图下输入:
port-isolate enable
这样即可使能端口隔离功能。
华为交换机后面还有个可选参数group可将端口加入到不同的隔离组,同一端口隔离组的端口之间互相隔离,不同端口隔离组的端口之间不隔离。如果不指定group-id参数时,默认加入的端口隔离组为1。
以上就是交换机端口隔离的实现,大家可以试一下咯~