FAQ-交换机同网段的PC限制互访

发布时间:  2015-02-15 浏览次数:  398 下载次数:  0
问题描述

交换机对同网段的pc进行限制互访,可以通过端口隔离的方式来解决,实现二层隔离三层互访或者是二层三层均隔离。

案例来自论坛:http://support.huawei.com/ecommunity/bbs/10212247.html?p=1#p10371119

解决方案

【交换机在江湖】第十章 接口配置锦囊妙计之二----端口隔离  

     话说张飞接到诸葛神人下达的保障中军大营信息安全的军令后,不禁大为挠头。幸得姜维提醒,才想起诸葛神人留的第二个锦囊。两人打开锦囊,定睛观看,只见锦帛上书:两军对垒,信息至上,保障安全,唯有隔离。

     张飞瞪着虎目环眼,一脸茫然:“维维老弟,丞相的锦囊暗藏什么玄机,你造不?”

     姜维呵呵一笑:“飞飞不要捉急,且听我慢慢道来。下图是我军的大营分布图。

  

      飞飞你看,我军的中军大营、士兵大营和辎重大营同属于一个VLAN且位于相同网段。默认情况下,三个大营可以互相访问。现在,丞相要求咱们在不改变我军网段规划和VLAN规划的情况下,实现:1) 中军大营和士兵大营不能互相访问; 2 中军大营可以访问辎重大营,但辎重大营不能访问中军大营,且辎重大营和士兵大营始终可以互相访问。

     那么,该如何实现呢?

这就需要咱们祭出端口隔离这个大招啦。此招一出,威力无穷,必然能够完成丞相军令,到时候丞相肯定夸你是个爱学习、肯动脑的好孩子,哈哈哈哈!”

     姜维调侃完张飞后,开心得哈哈大笑

   张飞假装愠怒:“维维老弟,别臭美了,你快告诉我怎么配置端口隔离吧!”

 

   

  

 “好,长话短说。说到端口隔离,就要引入端口隔离组的概念,交换机的端口可以加入到特定的端口隔离组中,同一端口隔离组的端口之间互相隔离,不同端口隔离组的端口之间不隔离。因此,要完成丞相的军令,配置思路其实非常简单。如下图所示,在交换机上将端口GE0/0/1GE0/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/1GE0/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啥的无法透传过来,但是通过VLANProxy ARP功能中军大营与士兵大营仍然能够借助自己的网关实现三层互访,这就是所谓的二层隔离但是三层不隔离。” 

张飞有点小郁闷:“丞相,管它二层隔离三层隔离,只要能实现信息隔离不就行了?反正我现在看不出来二层隔离和三层隔离有啥区别。”

诸葛神人不慌不忙地摇着鹅毛扇:“事实胜于雄辩。我们做个小实验,你就完全明白了。

实验过程如下:

步骤1 如下图所示,取中军大营的主机PC1和士兵大营中的主机PC2,在PC1PC2加入同一个端口隔离组条件下,用PC1PC2互相Ping对方,结果两者无法互相Ping通,说明端口隔离功能起了作用。

 

PC1 Ping PC2的过程中,在交换机上抓取经过GE0/0/1GE0/0/2的报文。

 l  GE0/0/1的抓包信息如图所示: 

 抓包信息显示,PC1发送了ARP请求报文(绿线框围住的ProtocolARP的报文)后,并没有收到来自PC2ARP应答报文。 
  l  GE0/0/2的抓包信息如图所示:

  

    抓包信息显示, PC2并没有收到来自PC1ARP请求报文。

       结论 综合GE0/0/1GE0/0/2的抓包信息,说明了PC1发送的ARP请求报文无法通过交换机透传到PC2上,这样,PC1PC2之间就无法完成ARP学习过程,两者之间也就无法实现相互访问。

 

步骤2  PC1PC2上配置的网关是VLANIF10IP地址:10.10.10.250/24,我们在VLANIF10上使能VLANProxy ARP功能。步骤如下:

[Switch] interface vlanif 10

[Switch-Vlanif10] ip address 10.10.10.250 24

[Switch-Vlanif10] arp-proxy inner-sub-vlan-proxy enable    //VLANIF10上使能VLANProxy ARP功能

[Switch-Vlanif10] quit

 

然后PC1PC2互相Ping对方,结果两者可以互相Ping通,这说明端口隔离功能失效了。这是怎么回事呢?让我们来抓包分析一下。

  l  GE0/0/1的抓包信息如图所示: 

 

 

  首先,PC1发送ARP请求报文,寻找PC2MAC地址(如黄线标注)。

  其次,VLANIF10作为ARP代理,代替PC2发送ARP应答报文(如蓝线标注。注意:4c1f-cc6b-263cVLANIF10MAC地址)。

  然后,PC1收到来自VLANIF10ARP应答报文后,把ARP表项中PC2MAC地址修改为VLANIF10MAC地址,如下图所示。

          

 最     最后,PC1发送到PC2Ping Request报文(如绿线标注)。下图是Ping Request报文信息, Ping Request报文的目的MAC地址是VLANIF10MAC地址(如黄线标注),可见,Ping Request报文会首先发送到VLANIF10上。

                                                                 

 

l江      江湖小贴士:如何查VLANIF10MAC地址呢?

在交换机上执行display arp all命令就可以查看VLANIF10ARP表项,ARP表项中包含VLANIF10MAC地址。如下图所示。

      

 

 

 l  GE0/0/2的抓包信息如图所示:

 

   首先,VLANIF10发送ARP请求报文,寻找PC2MAC地址(如黄线标注)。

  其次,VLANIF10收到来自PC2ARP应答报文,获取了PC2MAC地址(如蓝线标注)。

  最后,VLANIF10将收到的来自PC1ARP Request报文转发到PC2(如绿线所示)。

 

结论  综合GE0/0/1GE0/0/2的抓包信息可以看出, PC1发送的Ping Request报文会发送到VLANIF10进行三层转发,而不是进行二层转发。PC2回应PC1Ping Reply报文也同样进行三层转发,本帖不再赘述。

  

张飞嚷道:“哇,PC1PC2之间果然能够通过三层进行通信。那么,丞相,如何实现PC1PC2二三层都隔离呢?”

诸葛神人微微一笑:“很简单,只需要在系统视图下执行port-isolate mode all命令即可实现二三层都隔离。让我们再次实验一下。

 

实验步骤如下:

步骤1  在接口VLANIF10下保留VLANProxy ARP功能的配置的同时,在系统视图下执行port-isolate mode all命令。

[Switch] port-isolate mode all   //指定端口隔离模式为二层三层都隔离

 

步骤2  PC1PC2互相Ping对方,结果两者不能互相Ping

抓包分析一下PC1PC2无法互相Ping通的原因。

 

    l  GE0/0/1的抓包信息如图所示: 

 

  抓包信息显示,PC1发送ARP请求报文,收到来自接口VLANIF10ARP应答报文PC1发送Ping Request报文到VLANIF10进行三层转发。

 

 l  GE0/0/2的抓包信息如图所示:

 

   抓包信息显示,VLANIF10没有发送ARP请求报文寻找PC2MAC地址,也没有把PC1发送的ARP Request报文转发到PC2

 结论  VLANIF10并没有转发来自PC1ARP Request报文,这样,PC1PC2之间也就无法实现三层互访了。

 

飞飞你看,只是增加了一个小小的配置,端口隔离功能就又王者归来了!

张飞信服地点了点头,赞叹道:“不愧是丞相呀,果然神机妙算!不过丞相,你看现在我们在交换机上配置了这么多端口隔离的命令,万一日后我们不需要端口隔离功能了,一条一条删除这些命令多麻烦呀!”

诸葛神人夸奖张飞:“谁说飞飞有勇无谋?这个想法就很动脑子。其实,在系统视图下执行clear configuration port-isolate命令就可以一键式清除设备上所有的端口隔离配置,包括端口隔离组、端口单向隔离和隔离模式相关配置。不过,飞飞,由于执行clear configuration port-isolate命令一键式清除的命令数量比较多,可能会影响其他业务,在使用时一定要谨慎哦!”

张飞哈哈大笑,说:“丞相,你放心吧,你不知道俺是粗中有细吗?哈哈!”

诸葛神人笑着说:“飞飞进步越来越大了。不过最近我军又购置了一批华为交换机,这批交换机型号、传输能力都各有不同,而这些交换机需要分布在各个营寨,与之前购买的那台交换机直接相连。现在我们想要相连交换机的接口之间的参数一致,从而保证数据能够正常传输,我们该怎么配置,飞飞你造吗?” 正在张飞丈二和尚摸不着头脑的时候,不知姜维什么时候从后面走了过来,拍了拍张飞的肩膀:“飞飞,你忘了丞相还有第三个锦囊妙计?”

张飞大笑,“速取第三个锦囊。

 

END