ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

华为eNSP实战:MUX VLAN实现同网段精细隔离

华为eNSP实战:MUX VLAN实现同网段精细隔离 在公司做网络规划时你大概率遇到过这种拧巴需求所有主机必须留在同一个网段IP地址规划不能拆但业务上又要做隔离——比如监控摄像头和NVR录像机在同一网段摄像头之间却绝对不能互访比如办公区打印机、公共服务器要给所有人用但普通办公终端却要互相隔开再比如实验室里同一组学生要能互传数据不同组之间却不能乱串。这时候你用普通VLAN拆网段就散了用ACL写规则多得吓人用端口隔离又没法优雅地保留“大家都能访问公共资源”这条通道。华为eNSP模拟器里的MUX VLAN恰好就是用来解决这类“同一网段下的精细隔离”问题的方案。这篇文章我会从原理讲到实战完整拆解一个基于华为eNSP的MUX VLAN综合实验包括三种角色的权限模型、不同VLAN ID之间怎么做到二层互通、完整的交换机配置命令、连通性验证结果以及我实际做实验时踩过和见过的坑。适合正在准备HCIA/HCIP考试的人、在公司做接入层网络隔离的网络工程师以及所有把eNSP当实验场折腾交换特性的朋友。1. 这个实验到底在解决什么同一网段下的“既要通又要不通”1.1 一个典型的“不能拆网段”现场我见过最典型的需求来自一套视频监控系统。NVR录像机需要接收所有摄像头的视频流所有摄像头也都需要把数据发给NVR但业务上并不希望摄像头之间能够互相访问——万一某一台摄像头被横向渗透攻击者不希望他能顺着内网跳到别的摄像头上去。这个需求听起来简单做起来却很别扭。所有摄像头和NVR都在192.168.1.0/24这个网段里而且这个地址段可能早就被上级规划锁死了不能改。你要用传统VLAN方案把NVR放在VLAN10、摄像头放在VLAN20那对不起VLAN20里的摄像头要访问VLAN10里的NVR就必须走三层路由。可三层路由一开VLAN20里的摄像头之间、甚至摄像头和摄像头跨VLAN互访就全都“能通”了隔离目标直接失败。更难受的是如果你给VLAN10、VLAN20、VLAN30都配了VLANIF接口还想保持它们在同一网段这本身就冲突——同网段的IP地址不能同时存在在多个VLANIF上。这就是许多初学者绕来绕去的地方同网段下做隔离靠拆VLAN加三层路由是走不通的必须在二层想出办法。1.2 MUX VLAN三个角色就是为这个场景准备的MUX VLAN的原理其实很直白。它把交换机上的VLAN分成三类角色Principal VLAN主VLAN放公共资源的比如NVR、打印机、服务器。主VLAN里的端口可以和所有从VLAN端口二层互通。Group VLAN组VLAN放“一个小组”的设备。同一个Group VLAN内部可以互相通信Group VLAN可以和Principal VLAN通信但和其他Group VLAN、以及Separate VLAN都不通。Separate VLAN隔离VLAN放彻底隔离的设备。Separate VLAN里的端口只能和Principal VLAN通信和其他任何从VLAN都不通Separate VLAN内部也不通。你可以用公司访客场景来理解Principal VLAN是前台大厅谁都能进Group VLAN是项目组办公区自己组的人能互相串门别的组进不来Separate VLAN是会议室里的临时访客只能去前台找接待人哪儿都不能乱跑。这套模型的妙处就在于权限矩阵是“端口级”的配置完之后交换机在二层就直接按角色决定放行或丢弃不需要三层参与。所以它才能在不拆网段、不改IP的前提下实现精细隔离。适合用MUX VLAN的人基本就两类一类是网络刚入门、想把华为二层特性玩明白的实验党另一类是遇到了“网段不能动、互访又要分级”的运维工程师。HCIA和HCIP的考试题里MUX VLAN也是常客尤其是三种角色权限判断题做过实验和没做过实验的答起来完全是两种感觉。2. 上手前必须先搞懂的MUX VLAN权限矩阵2.1 不同VLAN ID怎么做到二层直接互通这是MUX VLAN最反直觉的地方。我们都说VLAN是二层隔离的基本单元不同VLAN默认不通怎么MUX VLAN里的Principal、Group、Separate这几个不同VLAN ID的设备反而能互通关键在于MUX VLAN并不是简单地把两个VLAN合并成一个广播域而是在交换芯片里维护了一张“角色权限矩阵”。端口在使能了MUX VLAN之后会被打上Principal、Group或Separate的标签。交换机收到二层帧时会先看源端口是什么角色再看目标端口是什么角色然后查这张矩阵判断该不该放行。举个例子Separate VLAN的PC3要给Principal VLAN的PC1发一个ARP请求交换机会查矩阵Separate端口访问Principal端口——允许于是PC3的ARP广播被转发到PC1。反过来PC2在Group VLAN里PC3在Separate VLAN里PC2的ARP请求如果目标是PC3交换机查矩阵Group访问Separate——禁止这个二层帧会被直接丢弃。更关键的是因为PC2和PC3的IP虽然都在192.168.1.0/24这个网段里但在二层上MUX VLAN矩阵已经阻止了帧的转发所以就算有人手动指定了静态ARP映射真正的数据帧也会在交换机转发阶段被拒掉。这就是“端口角色级隔离”和“IP ACL隔离”的区别——它不依赖IP五元组匹配转发面直接硬隔离。2.2 完整权限速查谁和谁能通谁和谁绝不能通我把这套矩阵整理成一张表实验前先推演一遍比对着命令死记硬扛有效得多源端口角色目标Principal端口目标同Group端口目标异Group端口目标Separate端口Principal通通通通Group通通不通不通Separate通不通不通不通注意两个容易看漏的细节。第一Principal和Principal之间默认互通所以公共资源不止一台设备时不用额外处理。第二Separate内部默认不通这一点和很多人习惯的“同VLAN内互相能通”完全不同实验里一定要单独验证防止在真实项目里埋坑。2.3 MUX VLAN和端口隔离、ACL比优势在哪里我刚学这个特性的时候也问过既然有端口隔离和ACL为什么还要MUX VLAN用多了就发现它们解决的是不同层面的问题。端口隔离port-isolate能解决同VLAN内端口互访的问题但它很难做“非对称”隔离。你让隔离端口只能访问某个公共端口这个公共口往往就是那个up-link口整个组内互访的能力基本被一刀切。你没办法靠端口隔离造出一个“这几个端口归我这个小队、我们内部还能互通但别的小队不能进来”的组结构。ACL则是流策略看着灵活实际要操心方向、协议、地址段。如果一两台设备做隔离ACL没问题一旦有几十个端口角色还经常变ACL规则就变成了一场维护灾难。而且ACL匹配的是IP如果下边接的是同一个网段的DHCP地址IP段压根分不开你连规则都写不干净。MUX VLAN把“角色”这个概念引进来之后网络人员不需要记端口的IP只需要知道每个口是“主的”“组的”还是“隔离的”权限天然清晰。这也是生产环境里很多接入交换机愿意用它的核心原因。3. eNSP完整实操从拓扑搭建到连通性验证3.1 实验环境与拓扑规划实验用eNSP实现。设备选择上建议直接用S5700系列交换机这是eNSP里对MUX VLAN支持比较完整的型号。别用某些低端模拟交换机或AR路由器AR本身主打三层路由二层特性不齐全容易踩“命令不支持”的坑。拓扑非常简单一台S5700交换机连接三台PC。设备名称交换机端口规划VLANMUX VLAN角色IP地址PC1GigabitEthernet0/0/1VLAN 10Principal主VLAN192.168.1.10/24PC2GigabitEthernet0/0/2VLAN 20Group组VLAN192.168.1.20/24PC3GigabitEthernet0/0/3VLAN 30Separate隔离VLAN192.168.1.30/24为了把权限矩阵测完整我建议你再拖两台PC进来做扩展验证PC4放到VLAN20做第二个组口PC5放到VLAN30做第二个隔离口。这样能一次把“组内互访”和“隔离内部不通”都验证掉省得反复改配置。所有PC全部配置在一个网段这就是标题里“同一网段下的精细隔离方案”的实验载体。不要配置任何网关MUX VLAN做的是二层互通用到的是同网段直连通信逻辑配置网关反而容易误导排查方向。3.2 交换机配置三个VLAN声明角色每个端口开MUX打开eNSP双击交换机进命令行开始完整配置。system-view vlan batch 10 20 30第一步先把三个VLAN建出来。接下来最关键的是在VLAN视图下声明每个VLAN扮演什么角色vlan 10 mux-vlan quit vlan 20 mux-vlan group quit vlan 30 mux-vlan separate quit注意这里的语法差异VLAN10下就一行mux-vlanVLAN20下是mux-vlan groupVLAN30下是mux-vlan separate。这决定了后续所有端口在MUX VLAN矩阵里的基础属性写错一个权限矩阵全歪。然后是端口配置。以PC1所在接口为例进入GigabitEthernet0/0/1interface GigabitEthernet0/0/1 port link-type access port default vlan 10 port mux-vlan enable quitPC2和PC3的接口操作完全一致只要把VLAN换成20和30interface GigabitEthernet0/0/2 port link-type access port default vlan 20 port mux-vlan enable quit interface GigabitEthernet0/0/3 port link-type access port default vlan 30 port mux-vlan enable quit如果加了PC4和PC5做扩展验证端口分别划到VLAN20和VLAN30同样要开port mux-vlan enable。这里有个隐藏关键点port mux-vlan enable不是开在VLAN视图而是开在端口视图下。很多新手把VLAN角色声明好之后忘了在端口下敲这行命令最后所有PC之间彻底不通还以为是设备型号不支持。端口必须显式加入MUX VLAN的矩阵权限规则才会生效。另外接口类型一定要用Access。MUX VLAN对Trunk和Hybrid口有很多约束在eNSP里你用Hybrid口配完测试结果会变得不可预期。生产环境里这条约束更严格做实验养成好习惯直接Access。3.3 连通性验证与预期结果配置完成后三台PC全部启动。在PC1上ping PC2和PC3在PC2上ping PC3一个个测过去。测试路径预期结果实际意义PC1 → PC2通Principal可以访问GroupPC1 → PC3通Principal可以访问SeparatePC2 → PC1通Group可以访问PrincipalPC3 → PC1通Separate可以访问PrincipalPC2 → PC3不通Group不能访问SeparatePC3 → PC2不通Separate不能访问Group如果你加了PC4在VLAN20、PC5在VLAN30还能多测两组PC2 → PC4通证明同一个Group VLAN内部的端口可以互访。PC3 → PC5不通证明Separate VLAN内部端口之间也是二层隔离的。PC4 → PC5不通跨从VLAN的访问被矩阵拒绝。我在实验里遇到一个很常见的干扰项ARP缓存。PC2和PC3在调整VLAN配置之前可能已经通过某些中间状态学习过对方的MAC测试时会因为残留的ARP表项产生“假通”或“假不通”。所以每改一次VLAN或端口角色最好把所有PC都重启一遍让ARP缓存彻底清掉然后再测。eNSP的PC没有完整的命令行去手工清ARP重启是最省事的办法。测试通过后可以用交换机侧命令确认配置效果display vlan display port vlan如果设备支持还可以敲display mux-vlan不同版本命令名称略有差异能看到MUX VLAN角色和端口归属就算达到目的。我在eNSP的S5700上习惯用display port vlan看端口划到哪个VLAN再用ping结果反推角色权限两条验证链路一交叉基本不会误判。4. 实验里最容易踩的坑与排查命令4.1 高频问题速查表这个实验我带了不止一波人做每次都会有同学在同一个地方卡住。下面这些现象和根因建议直接截图收藏。现象可能原因解决方法配置完三台PC互相全不通某个接口漏配port mux-vlan enable逐个接口执行display this确认MUX VLAN使能PC2和PC3竟然能通端口角色声明错误比如VLAN20被设成了principal检查vlan 20视图下是不是mux-vlan group命令回车后报错或功能没反应设备型号不支持或者接口类型是Hybrid/Trunk换成S5700交换机端口改Access改完角色后旧主机还能互相访问ARP缓存残留PC之间还记得旧的转发关系重启所有PC重新ping同一VLAN内两个Separate口能互通没有真正把端口划到Separate VLAN或者没开MUX使能用display vlan 30检查端口归属Group和Separate之间三层能通交换机上配了VLANIF且三层路由路径允许实验里删除VLANIF确认二层隔离第二个问题值得多说一句。有些同学为了做扩展把PC4放到VLAN20、PC5也放到VLAN20然后期望它俩不通——这就不对了因为VLAN20是Group VLAN同一个Group VLAN内部的端口默认就是要互通的。想验证“组内互访”就测PC2和PC4想验证“隔离内部不通”得把两个测试机都放到VLAN30去。角色没搞清楚之前别急着怪命令先把矩阵表格画出来。4.2 排查思路与调试命令组合遇到ping不通不要上来就怀疑MUX VLAN配置按下面这个顺序排查效率最高。第一步确认IP。用ipconfig看每台PC的地址和掩码是不是都落在192.168.1.0/24里。MUX VLAN再怎么精细它只管二层转发IP配错了一切白搭。第二步确认端口归属。在交换机上执行display port vlan看三个接口分别划到10、20、30没有。这一步能排除很多“VLAN没划进去”的低级问题。第三步确认MUX VLAN使能状态。进入每个接口执行display this看看端口下有没有port mux-vlan enable。漏配的现象很典型配置完设备之间就像完全不在一个局域网里ARP都学不到因为交换机的端口角色矩阵根本没把参数加进去。第四步看MAC表。执行display mac-address如果两个通信主机之间MAC表项没有互相学到说明二层帧根本没有被交换到对端重点查角色权限。如果MAC也学到了但ping不通再考虑是不是三层VLANIF干扰或者PC的防火墙问题。一个很实用的经验做这类二层隔离实验前先把预期写在纸上。三台PC两两组合一共6条路径每条路径标“通”或“不通”然后拿着预期去逐条测。顺序测完链路稳定性、端口角色、ARP缓存这些干扰因素都能暴露出来不用一条一条猜。5. 从实验到生产MUX VLAN的关键扩展点5.1 同网段DHCP分配是MUX VLAN最舒服的玩法实验里我们用静态IP生产中MUX VLAN最经典的同网段方案是和DHCP服务器配合。DHCP服务器放在Principal VLAN下面所有Group和Separate终端都通过DHCP去拿地址拿到的还是同一个网段的地址。因为MUX VLAN允许从VLAN端口二层访问Principal VLAN客户端的DHCP Discover广播可以到达服务器服务器回应的Offer也能回到终端。这个组合能成立的关键在于所有终端虽然在不同的VLAN ID里但二层互通路径被MUX VLAN打通了DHCP广播不需要三层中继。这样既统一了地址规划又保留了组和隔离的访问边界。生产环境里需要额外盯一件事DHCP服务器的安全。MUX VLAN搞完之后广播域并没有完全碎掉Principal VLAN和从VLAN之间是二层可达的这就意味着一个恶意的Separate终端如果伪造了DHCP请求理论上有可能干扰地址分配。建议接入交换机上把DHCP Snooping开起来只信任接到真实DHCP服务器的Principal端口其他端口一律作为非信任口处理。这是我在真实项目里的习惯也是很多保险审计会问到的点。5.2 三层网关、VLANIF和MUX VLAN的边界别搞混这可能是最有争议的一个地方。很多同学会想MUX VLAN里这些VLAN ID是不同的如果我在交换机上给VLAN10、VLAN20、VLAN30各配一个VLANIF是不是能实现三层互访能但此时三层路由会“绕过”二层的MUX VLAN隔离规则。MUX VLAN解决的是二层转发层面的互访控制VLANIF则属于三层路由层面。同一个网段的主机互通按主机的逻辑会先判断目标是否同网段同网段就直接用ARP找对方MAC根本不会发到网关。所以如果你保持所有PC都在192.168.1.0/24内只给VLAN10配网关PC3访问PC2时还是会先用ARP广播MUX VLAN矩阵会把这个广播在Separate和Group之间拦掉隔离依然有效。但如果你把不同VLAN的主机规划成不同网段又给每个VLAN都配了VLANIF那跨网段主机就会通过三层路由转发MUX VLAN管不到三层流量隔离就形同虚设。这一点我在项目评审时反复强调MUX VLAN只适合“二层隔离 三层同网段”的场景一旦业务需要跨网段就必须在VLANIF之间加ACL而不是指望MUX VLAN继续兜底。5.3 从eNSP到真机实验只是起点eNSP是一款很好用的实验平台但它终究是简化模拟。MUX VLAN在真实交换机上不同型号、不同VRP版本命令细节和支持范围会有些差异比如某些框式设备对MUX VLAN和STP、链路聚合的配合有额外约束比如一些老款接入交换机对Separate VLAN的数量有限制。我建议你做完整套实验后再去翻一翻自己手头设备的配置手册把display version出来的VRP版本和文档里的支持矩阵核对一遍。eNSP里跑通的方案到了真机上配置前依然要先把配置手册读一遍。最后分享一个小技巧。做完三台PC的基础实验后可以把PC4、PC5加进来把其中一组从VLAN改成Group另一组改成Separate再额外加两台PC做一张“2x2小组互访矩阵”。这个扩展实验能帮你把权限矩阵从“背表格”变成“长在脑子里”以后再遇到同网段精准隔离的项目看一眼拓扑就能直接画出角色规划不太容易翻车。这也是我做这个eNSP综合实验后收获最大的一环。
返回列表