同一Vlan下的端口隔离
--- -转至华为技术资料
话说张飞接到诸葛神人下达的保障中军大营信息安全的军令后,不禁大为挠头。幸得姜维提醒,才想起诸葛神人留的第二个锦囊。两人打开锦囊,定睛观看,只见锦帛上书:两军对垒,信息至上,保障安全,唯有隔离。
张飞瞪着虎目环眼,一脸茫然:“维维老弟,丞相的锦囊暗藏什么玄机,你造不?”
姜维呵呵一笑:“飞飞不要捉急,且听我慢慢道来。下图是我军的大营分布图。
飞飞你看,我军的中军大营、士兵大营和辎重大营同属于一个VLAN且位于相同网段。默认情况下,三个大营可以互相访问。现在,丞相要求咱们在不改变我军网段规划和VLAN规划的情况下,实现:1) 中军大营和士兵大营不能互相访问; 2) 中军大营可以访问辎重大营,但辎重大营不能访问中军大营,且辎重大营和士兵大营始终可以互相访问。
那么,该如何实现呢?
这就需要咱们祭出端口隔离这个大招啦。此招一出,威力无穷,必然能够完成丞相军令,到时候丞相肯定夸你是个爱学习、肯动脑的好孩子,哈哈哈哈!”
姜维调侃完张飞后,开心得哈哈大笑。
张飞假装愠怒:“维维老弟,别臭美了,你快告诉我怎么配置端口隔离吧!”
端口隔离组
“好,长话短说。说到端口隔离,就要引入端口隔离组的概念,交换机的端口可以加入到特定的端口隔离组中,同一端口隔离组的端口之间互相隔离,不同端口隔离组的端口之间不隔离。因此,要完成丞相的军令,配置思路其实非常简单。如下图所示,在交换机上将端口GE0/0/1和GE0/0/2加入同一个端口隔离组,GE0/0/3不加入端口隔离组或者加入另一个端口隔离组就OK了。
配置步骤如下:
<Huawei> system-view
[Huawei] sysname Switch
[Switch] interface gigabitEthernet 0/0/1
[Switch-GigabitEthernet0/0/1] port link-type access
[Switch-GigabitEthernet0/0/1] port default vlan 10
[Switch-GigabitEthernet0/0/1] port-isolate enable group 5 //端口GE0/0/1加入到端口隔离组5
[Switch-GigabitEthernet0/0/1] quit
[Switch] interface gigabitEthernet 0/0/2
[Switch-GigabitEthernet0/0/2] port link-type access
[Switch-GigabitEthernet0/0/2] port default vlan 10
[Switch-GigabitEthernet0/0/2] port-isolate enable group 5 //端口GE0/0/2加入到端口隔离组5
[Switch-GigabitEthernet0/0/2] quit
[Switch] interface gigabitEthernet 0/0/3
[Switch-GigabitEthernet0/0/3] port link-type access
[Switch-GigabitEthernet0/0/3] port default vlan 10 //端口GE0/0/3不加入端口隔离组
[Switch-GigabitEthernet0/0/3] quit
完成配置后,端口GE0/0/1和GE0/0/2就加入同一个端口隔离组,端口GE0/0/3不加入任何端口隔离组。这样,中军大营和士兵大营就不能互相访问了,但中军大营和辎重大营、士兵大营和辎重大营仍然可以互相访问。”
如何查看端口隔离组的配置信息呢?
执行命令display port-isolate group { group-id | all }命令就可以查看端口隔离组的配置信息啦。
单向隔离
张飞闻言大喜,不过他心中还压着一个小包袱:“维维老弟,丞相还要咱们实现中军大营可以访问辎重大营,但辎重大营不能访问中军大营。这个问题也能用端口隔离解决吗?”
姜维微微一笑,淡定地说:“端口隔离既然是大招,当然不仅仅只有端口隔离组这件杀器喽,它的武器库里还要另外一件杀器――单向隔离,正好解决你提的这个问题。”
张飞有点不相信,怀疑地说:“神马是单向隔离?有这么神奇吗?”
姜维笑着说:“单向隔离,顾名思义,只在单个方向上进行信息隔离。举个栗子,在接口A上配置它与接口B之间单向隔离,则从接口A发送的报文不能到达接口B,但从接口B发送的报文可以到达接口A。就拿你提的这个问题来说吧,要实现中军大营可以访问辎重大营,但辎重大营不能访问中军大营,就可以使用单向隔离功能。如下图所示,在端口GE0/0/3上配置单向隔离功能,并指定隔离的端口是GE0/0/1,这样,GE0/0/3上发出的报文不能到达GE0/0/1,而GE0/0/1发出的报文可以到达GE0/0/3,从而实现中军大营可以访问辎重大营,但辎重大营不能访问中军大营。
配置步骤如下:
[Switch] interface GigabitEthernet 0/0/3
[Switch-GigabitEthernet0/0/3] am isolate gigabitethernet 0/0/1 //在GE0/0/3上配置端口隔离功能,并指定隔离的端口是GE0/0/1
[Switch-GigabitEthernet0/0/3] quit
配置单向隔离大功告成,看,就是这么简单!”
张飞按照诸葛神人的锦囊,轻轻松松地在交换机上配置了端口隔离功能,经过验证,中军大营果然不能与士兵大营互相访问,且辎重大营不能访问中军大营。
端口隔离模式
第二天,张飞美滋滋地等着诸葛神人的表扬,不料,诸葛神人却告诉张飞
“飞飞,端口GE0/0/1与端口GE0/0/2现在是二层隔离,虽然ARP啥的无法透传过来,但是通过VLAN内Proxy ARP功能,中军大营与士兵大营仍然能够借助自己的网关实现三层互访,这就是所谓的二层隔离但是三层不隔离。”
张飞有点小郁闷:“丞相,管它二层隔离三层隔离,只要能实现信息隔离不就行了?反正我现在看不出来二层隔离和三层隔离有啥区别。”
诸葛神人不慌不忙地摇着鹅毛扇:“事实胜于雄辩。我们做个小实验,你就完全明白了。
实验过程如下:
步骤1 如下图所示,取中军大营的主机PC1和士兵大营中的主机PC2,在PC1和PC2加入同一个端口隔离组条件下,用PC1和PC2互相Ping对方,结果两者无法互相Ping通,说明端口隔离功能起了作用。
在PC1 Ping PC2的过程中,在交换机上抓取经过GE0/0/1和GE0/0/2的报文。
GE0/0/1的抓包信息如图所示:
抓包信息显示,PC1发送了ARP请求报文(绿线框围住的Protocol为ARP的报文)后,并没有收到来自PC2的ARP应答报文。
GE0/0/2的抓包信息如图所示:
抓包信息显示, PC2并没有收到来自PC1的ARP请求报文。
结论 综合GE0/0/1和GE0/0/2的抓包信息,说明了PC1发送的ARP请求报文无法通过交换机透传到PC2上,这样,PC1和PC2之间就无法完成ARP学习过程,两者之间也就无法实现相互访问。
步骤2 PC1和PC2上配置的网关是VLANIF10的IP地址:10.10.10.250/24,我们在VLANIF10上使能VLAN内Proxy ARP功能。步骤如下:
[Switch] interface vlanif 10
[Switch-Vlanif10] ip address 10.10.10.250 24
[Switch-Vlanif10] arp-proxy inner-sub-vlan-proxy enable //在VLANIF10上使能VLAN内Proxy ARP功能
[Switch-Vlanif10] quit
然后用PC1和PC2互相Ping对方,结果两者可以互相Ping通,这说明端口隔离功能失效了。这是怎么回事呢?让我们来抓包分析一下。
GE0/0/1的抓包信息如图所示:
首先,PC1发送ARP请求报文,寻找PC2的MAC地址(如黄线标注)。
其次,VLANIF10作为ARP代理,代替PC2发送ARP应答报文(如蓝线标注。注意:4c1f-cc6b-263c是VLANIF10的MAC地址)。
然后,PC1收到来自VLANIF10的ARP应答报文后,把ARP表项中PC2的MAC地址修改为VLANIF10的MAC地址,如下图所示。
最后,PC1发送到PC2的Ping Request报文(如绿线标注)。下图是Ping Request报文信息, Ping Request报文的目的MAC地址是VLANIF10的MAC地址(如黄线标注),可见,Ping Request报文会首先发送到VLANIF10上。
如何查看VLANIF10的MAC地址呢?
在交换机上执行display arp all命令就可以查看VLANIF10的ARP表项,ARP表项中包含VLANIF10的MAC地址。如下图所示。
GE0/0/2的抓包信息如图所示:
首先,VLANIF10发送ARP请求报文,寻找PC2的MAC地址(如黄线标注)。 其次,VLANIF10收到来自PC2的ARP应答报文,获取了PC2的MAC地址(如蓝线标注)。
最后,VLANIF10将收到的来自PC1的ARP Request报文转发到PC2(如绿线所示)。
结论 综合GE0/0/1和GE0/0/2的抓包信息可以看出, PC1发送的Ping Request报文会发送到VLANIF10进行三层转发,而不是进行二层转发。PC2回应PC1的Ping Reply报文也同样进行三层转发,本帖不再赘述。
张飞嚷道:“哇,PC1和PC2之间果然能够通过三层进行通信。那么,丞相,如何实现PC1和PC2二三层都隔离呢?”
诸葛神人微微一笑:“很简单,只需要在系统视图下执行port-isolate mode all命令即可实现二三层都隔离。让我们再次实验一下。
实验步骤如下:
步骤1 在接口VLANIF10下保留VLAN内Proxy ARP功能的配置的同时,在系统视图下执行port-isolate mode all命令。
[Switch] port-isolate mode all //指定端口隔离模式为二层三层都隔离
步骤2 用PC1和PC2互相Ping对方,结果两者不能互相Ping通。
抓包分析一下PC1和PC2无法互相Ping通的原因。
GE0/0/1的抓包信息如图所示:
抓包信息显示,PC1发送ARP请求报文,收到来自接口VLANIF10的ARP应答报文。PC1发送Ping Request报文到VLANIF10进行三层转发。
GE0/0/2的抓包信息如图所示:
抓包信息显示,VLANIF10没有发送ARP请求报文寻找PC2的MAC地址,也没有把PC1发送的ARP Request报文转发到PC2。
结论 VLANIF10并没有转发来自PC1的ARP Request报文,这样,PC1和PC2之间也就无法实现三层互访了。
飞飞你看,只是增加了一个小小的配置,端口隔离功能就又王者归来了!”
张飞信服地点了点头,赞叹道:“不愧是丞相呀,果然神机妙算!不过丞相,你看现在我们在交换机上配置了这么多端口隔离的命令,万一日后我们不需要端口隔离功能了,一条一条删除这些命令多麻烦呀!”
诸葛神人夸奖张飞:“谁说飞飞有勇无谋?这个想法就很动脑子。其实,在系统视图下执行clear configuration port-isolate命令就可以一键式清除设备上所有的端口隔离配置,包括端口隔离组、端口单向隔离和隔离模式相关配置。不过,飞飞,由于执行clear configuration port-isolate命令一键式清除的命令数量比较多,可能会影响其他业务,在使用时一定要谨慎哦!”
张飞哈哈大笑,说:“丞相,你放心吧,你不知道俺是粗中有细吗?哈哈!”