1. 为什么还要聊基于IP子网划分VLAN这件事刚入行那会儿我对VLAN的理解就停留在“一个交换机上划几个广播域”的层面。直到有一次接手一个改造项目现场十几台接入交换机终端设备三百多台IP地址规划得乱七八糟网关全挤在一台核心交换机上。当时第一反应是按端口划VLAN结果发现很多工位是多人共用一条网线加个小交换机端口方案根本落不了地。后来带我的前辈说了一句“你试试基于IP子网来划VLAN。”那是我第一次认真研究这种VLAN划分方式也是第一次意识到VLAN划分不只是“把端口分个组”这么简单。基于IP子网划分VLAN英文常写作IP Subnet-based VLAN核心逻辑是交换机不看你从哪个物理端口进来而是看你带的源IP地址属于哪个网段然后自动把你分配到对应的VLAN里。这个方案特别适合那些终端位置不固定、或者端口下挂多台设备的场景。比如办公区工位经常调整、会议室临时接入大量笔记本、实验室设备频繁更换网段这些情况下按端口划VLAN会把人逼疯而基于IP子网划分就能让交换机自己“认IP归队”。这篇文章适合谁看如果你已经知道VLAN是什么、会配Trunk和Access口但对基于IP子网划分VLAN只听过名字没动过手那正好。如果你正在做网络改造纠结用哪种VLAN划分方式我也会把几种方式的取舍讲清楚。下面我从设计思路、原理细节、实操配置到排错一步步拆开讲尽量让你看完就能在自己的环境里复现。2. 先搞清楚VLAN划分的几种方式再决定用哪种2.1 常见VLAN划分方式对比在动手之前有必要把VLAN划分的几种主流方式摆在一起看。很多人一上来就问“基于IP子网划分怎么配”但其实应该先问“我这个场景到底该不该用它”。下面这张表是我自己整理过的对比放在项目方案里给同事看过很多次。划分方式判断依据优点缺点典型场景基于端口物理端口配置简单、性能好、可控性强终端换端口就失效端口下挂多设备难处理固定工位、机房服务器基于MAC地址源MAC终端移动后VLAN跟随MAC表维护量大伪造MAC可绕过少量固定终端、移动设备基于IP子网源IP网段终端移动无需改配置适合多设备共享端口依赖IP规划首次上线需DHCP配合办公区、会议室、实验室基于协议协议类型可按协议隔离场景少维护复杂特殊协议隔离基于策略组合条件灵活度最高配置复杂对设备性能有要求大型园区网从表里能看出来基于IP子网划分最大的价值就是“跟人走、不跟端口走”。你想想一个员工今天坐A工位、明天坐B工位如果按端口划VLAN网管就得跟着改配置而按IP子网划只要他的IP还是那个网段交换机自动把他放进对应VLAN网管什么都不用动。2.2 什么场景下该选基于IP子网划分不是所有场景都适合。我总结了几条判断标准你可以对照自己的环境终端位置频繁变动或者一个端口下挂多台设备比如工位小交换机、会议室桌面插座。IP地址规划已经比较规范能按部门或功能划分出清晰的网段。网络里有DHCP服务器终端能自动获取对应网段的地址。对安全性要求不是极端高能接受“改IP就能换VLAN”这个特性。反过来说如果终端IP是手工配的、而且经常配错或者你对安全性要求极高、不允许终端自己改IP换网段那基于IP子网划分就不太合适。这时候基于端口或者基于MAC会更稳。2.3 一个容易混淆的点基于IP子网划分和VLAN间路由是两回事我见过不少新手把这两个概念搞混。基于IP子网划分VLAN解决的是“终端属于哪个VLAN”的问题而VLAN间路由解决的是“不同VLAN之间怎么通信”的问题。前者是二层接入层的划分逻辑后者是三层转发的事情。你可以只用基于IP子网划分而不做VLAN间路由那结果就是不同VLAN之间完全隔离也可以两者一起用让不同部门既能自动归队又能互相访问。搞清楚这个边界后面配置的时候就不会迷糊。3. 基于IP子网划分VLAN的工作原理拆解3.1 交换机是怎么“认IP归队”的要理解原理得先知道交换机在处理一个数据帧时什么时候做VLAN判断。基于IP子网划分VLAN的流程大致是这样的终端发送一个数据帧进入交换机端口此时帧还没有VLAN标签Untagged。交换机先看这个端口有没有配置基于IP子网的VLAN规则。如果有交换机会读取帧的源IP地址拿这个IP去匹配预先配置的网段规则。匹配成功后交换机给这个帧打上对应VLAN的标签后续转发就按这个VLAN走。如果没匹配上任何规则就按端口的默认VLAN处理通常是PVID。这里有个关键点交换机需要先看到终端的IP报文才能判断。也就是说终端刚接入时发的第一个帧如果是ARP或者DHCP Discover交换机可能还没法判断VLAN。所以实际部署中通常要配合DHCP或者让终端先发一个IP报文触发判断。这也是为什么很多厂商建议基于IP子网划分VLAN和DHCP Snooping或者DHCP Relay一起用。3.2 源IP匹配的优先级和顺序交换机上可能同时配了多种VLAN划分方式比如端口默认VLAN、基于MAC、基于IP子网。这时候谁优先不同厂商实现略有差异但通用原则是越具体的规则优先级越高。基于MAC和基于IP子网的规则通常优先于端口默认VLAN。如果同时匹配了MAC规则和IP子网规则一般MAC规则优先因为MAC更“贴近”终端。我在实际项目里踩过一个坑某台交换机上同时配了基于MAC和基于IP子网的规则结果一台终端因为MAC规则先匹配上了被分到了错误的VLAN。后来把MAC规则去掉只留IP子网规则才正常。所以我的建议是同一个端口下尽量不要同时启用多种动态VLAN划分方式除非你非常清楚优先级顺序。3.3 和DHCP配合的完整流程基于IP子网划分VLAN最顺的用法是和DHCP配合。完整流程是这样的终端接入端口发送DHCP Discover广播。交换机此时还没法判断VLAN通常先把帧放在默认VLAN或者一个临时VLAN里。DHCP服务器响应给终端分配一个属于某个网段的IP。终端拿到IP后后续发送的报文源IP就是那个网段。交换机读取源IP匹配到基于IP子网的VLAN规则把终端“迁移”到正确的VLAN。之后终端的流量就在正确VLAN里转发了。这个过程里第2步到第5步之间会有一个短暂的“VLAN切换”。有些厂商支持在DHCP阶段就通过Option 82或者其他方式提前判断但通用做法还是靠后续IP报文触发。实际体验上终端用户基本感知不到最多就是刚接入时延迟一两秒。注意如果DHCP服务器和终端不在同一个VLAN需要配置DHCP Relay否则终端拿不到地址整个流程就断了。4. 实操配置从零搭一个基于IP子网划分VLAN的环境4.1 实验环境说明为了让你能跟着做我先说清楚我用的环境。这里不涉及任何真实项目信息就是一个模拟实验一台三层交换机作为核心型号用通用描述支持基于IP子网划分VLAN功能。一台二层交换机作为接入下连若干终端。一台服务器模拟DHCP和网关角色。终端用几台虚拟机模拟分别属于不同网段。IP规划如下VLAN ID网段用途网关10192.168.10.0/24部门A192.168.10.120192.168.20.0/24部门B192.168.20.130192.168.30.0/24访客192.168.30.1接入交换机上终端接入端口统一配置不按端口划VLAN而是靠IP子网规则自动归队。4.2 核心交换机上的配置先在三层交换机上创建VLAN和网关接口# 创建VLAN vlan 10 description DeptA vlan 20 description DeptB vlan 30 description Guest # 配置VLAN接口地址网关 interface Vlanif10 ip address 192.168.10.1 255.255.255.0 interface Vlanif20 ip address 192.168.20.1 255.255.255.0 interface Vlanif30 ip address 192.168.30.1 255.255.255.0然后在接入交换机上配置基于IP子网的VLAN规则。不同厂商命令不同这里用通用伪代码表示你根据自己设备手册替换# 在接入交换机上启用基于IP子网划分VLAN vlan 10 ip-subnet-vlan 1 ip 192.168.10.0 255.255.255.0 vlan 20 ip-subnet-vlan 2 ip 192.168.20.0 255.255.255.0 vlan 30 ip-subnet-vlan 3 ip 192.168.30.0 255.255.255.0 # 在终端接入端口上启用IP子网VLAN功能 interface GigabitEthernet0/0/1 ip-subnet-vlan enable这里的关键是ip-subnet-vlan enable这条命令它告诉端口“你要根据源IP来判断VLAN”。如果没有这条即使配了网段规则也不会生效。我第一次配的时候就漏了这条排查了半天才发现。4.3 DHCP服务器的配置DHCP服务器上要配置三个地址池分别对应三个网段# 部门A地址池 subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.100 192.168.10.200; option routers 192.168.10.1; option domain-name-servers 192.168.10.1; } # 部门B地址池 subnet 192.168.20.0 netmask 255.255.255.0 { range 192.168.20.100 192.168.20.200; option routers 192.168.20.1; option domain-name-servers 192.168.20.1; } # 访客地址池 subnet 192.168.30.0 netmask 255.255.255.0 { range 192.168.30.100 192.168.30.200; option routers 192.168.30.1; option domain-name-servers 192.168.30.1; }如果DHCP服务器和终端不在同一个VLAN需要在核心交换机上配置DHCP Relayinterface Vlanif10 dhcp select relay dhcp relay server-ip 192.168.100.10这里的192.168.100.10是DHCP服务器的地址实际环境中替换成你自己的。4.4 验证配置是否生效配置完成后用一台终端接入端口让它通过DHCP获取地址。然后查看交换机的VLAN信息display vlan display ip-subnet-vlan display mac-vlan重点看终端MAC地址有没有出现在正确的VLAN里。如果终端拿到了192.168.10.x的地址但VLAN显示是默认VLAN那说明IP子网规则没生效。这时候检查三件事端口有没有ip-subnet-vlan enable、网段规则有没有配错、终端是不是真的发了带源IP的报文。我一般会先用display ip-subnet-vlan确认规则存在再用display vlan看端口动态加入的VLAN。如果规则在但没生效多半是端口没启用或者终端还没发IP报文。5. 实操中容易踩的坑和排查技巧5.1 终端拿不到地址或者拿到地址后VLAN不对这是最常见的问题。排查顺序我一般是这样的先确认DHCP Relay配置对不对。如果DHCP服务器和终端跨VLAN没有Relay终端根本拿不到地址。确认DHCP地址池的网关和交换机VLAN接口地址一致。不一致的话终端能拿到地址但上不了网。确认端口启用了IP子网VLAN功能。很多厂商默认是关闭的必须手动开。确认网段规则没有重叠。比如192.168.10.0/24和192.168.10.128/25同时存在匹配顺序可能出问题。下面这张表是我自己整理的速查表放在手机备忘录里现场排错时直接翻现象可能原因排查命令解决方式终端拿不到IPDHCP Relay未配或地址池错误display dhcp relay补配Relay或改地址池拿到IP但VLAN不对端口未启用IP子网VLANdisplay ip-subnet-vlan端口下加enableVLAN对但上不了网网关或路由问题display ip routing-table检查VLAN接口和路由部分终端正常部分异常网段规则重叠或优先级冲突display ip-subnet-vlan调整规则顺序或去重终端频繁切换VLAN终端发了多个网段的IP抓包分析检查终端是否多网卡或代理5.2 终端改了IP就能换VLAN安全性怎么补这是基于IP子网划分VLAN的天然短板。终端用户如果自己把IP改成另一个网段交换机就会把他分到那个VLAN里。要缓解这个问题可以配合以下几种手段在接入端口上启用IP Source Guard绑定IP和MAC防止随意改IP。配合DHCP Snooping只允许从信任端口获取的IP生效。对安全性要求高的区域改用基于MAC或基于端口的划分方式。我在一个办公区项目里就遇到过员工自己改IP蹭访客网络的情况。后来在接入端口上加了IP Source Guard问题就解决了。不过IP Source Guard的绑定表维护也有成本终端换网卡或者换IP都要更新所以要根据实际情况权衡。5.3 和无线网络配合时的注意事项无线场景下AP和控制器之间的隧道通常会把终端的VLAN信息带过去。如果无线控制器也配了基于IP子网划分VLAN要注意和有线侧的规则保持一致。我遇到过有线侧按IP子网划、无线侧按端口划结果同一个员工用有线和无线拿到的VLAN不一样访问权限也不同。后来统一成两边都按IP子网划才一致了。另外无线终端漫游时IP不变基于IP子网划分反而比基于端口更稳定。因为终端从AP1漫游到AP2端口变了但IP没变VLAN自动跟随用户完全无感知。6. 几个进阶话题和扩展思路6.1 基于IP子网划分VLAN和SDN的关系现在很多园区网在往SDN方向走控制器统一管理VLAN和策略。基于IP子网划分VLAN这种“终端自己带身份”的思路其实和SDN里基于身份的策略控制很像。区别在于传统交换机靠本地规则匹配SDN靠控制器下发流表。如果你正在做网络自动化可以把IP子网和VLAN的映射关系放到IPAM系统里统一管理交换机配置通过模板批量下发减少手工出错。6.2 大规模部署时的性能考量基于IP子网划分VLAN需要交换机读取每个帧的源IP这对交换机的转发性能有一定影响。小规模环境感觉不到但如果是几百台接入交换机、上万终端就要考虑交换机的硬件转发能力。我一般会建议在接入层做基于IP子网划分核心层还是走传统路由转发这样压力分散整体性能更稳。6.3 和其他VLAN划分方式的组合使用实际项目里很少只用一种方式。常见的组合是接入端口默认按IP子网划分但对特定服务器端口按端口划VLAN对打印机等固定设备按MAC划VLAN。这样既灵活又可控。关键是做好文档把每种方式的适用范围和优先级写清楚不然时间一长自己都忘了。7. 我个人在实际操作中的几点体会基于IP子网划分VLAN这个方案我用下来最大的感受是“前期规划比配置更重要”。IP网段如果一开始就规划得清晰后面配置就是水到渠成如果IP规划混乱网段重叠、网关乱设那基于IP子网划分反而会放大问题。所以我在每个项目开始前都会先花时间把IP规划表做出来和相关部门确认清楚再动手配交换机。另一个体会是不要指望一种VLAN划分方式解决所有问题。办公区用IP子网、服务器区用端口、访客区用MAC组合起来才是完整的方案。我见过有人非要全部用IP子网划分结果服务器区因为IP固定、端口固定反而多了一层不必要的判断增加了故障点。最后分享一个小技巧配置完成后用一台笔记本在多个端口之间来回插拔观察VLAN是否自动跟随。如果每次都能正确归队说明规则没问题如果偶尔失败多半是终端还没发IP报文等几秒或者手动ping一下网关就能触发。这个测试方法比看配置命令直观得多也最接近真实使用场景。
阅读完成 · 觉得有帮助?