ARTICLE DETAIL

资讯详情

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

校园网三层架构设计与ENSP配置实战:从VLAN到VRRP/OSPF

校园网三层架构设计与ENSP配置实战:从VLAN到VRRP/OSPF 说实话校园网这个题目我做了不止一遍。第一版是为了练手直接在ENSP里拖了几台设备想当然把网关全都堆在核心交换机上结果核心压力大、VLAN间访问要走一大圈后面一加无线和访客隔离就乱套了。后来按真正园区网的交付思路重新拆成核心、汇聚、接入三层配合VRRP、OSPF、DHCP服务、链路聚合那一套整个拓扑再看就顺多了。这篇就把完整的设计思路、设备选型、配置命令和排错过程一起放出来适合正在做网络工程课程设计、准备数通认证实验或者要给真实园区网做技术方案的朋友参考。1. 先从需求倒推拓扑三层架构在校园网里到底怎么落地1.1 校园网的需求画像与分层逻辑校园网比普通企业网麻烦的地方在于业务类型太多而且相互之间既要隔离又要互通。办公室要访问财务系统教学楼要做多媒体教学图书馆要开放公共检索宿舍区要限制端口数量访客网络又不能碰内网资源。如果只是一台交换机把所有人堆在一个广播域里DHCP请求满天飞、ARP表爆炸、环路风险极高任何一次小故障都可能拖垮整个网络。所以园区网设计的第一原则不是“把设备连起来”而是“把故障域切小”。三层架构就是把网络纵向切开接入层用户实际接入的位置负责终端的物理接入、VLAN划分、端口安全尽量不做复杂路由。汇聚层接入层流量的汇聚点同时是网关所在地负责VLAN间路由、DHCP服务、访问控制策略把大量接入层设备收敛到少数几条上联链路。核心层整网高速转发通道只做路由和转发不在核心上挂太多终端业务避免不必要的处理负担。从转发路径看终端—接入—汇聚—核心—出口每一条流量都有清晰路径从故障隔离看接入设备故障只影响一个区域汇聚故障只影响一个楼栋或片区核心故障才波及全网。我见过很多初学者把三层架构画成三排设备竖着放但接入层和汇聚层之间的关系不是简单堆叠而是按“区域”归并。一个宿舍区、一栋教学楼、一片办公楼各自有独立的汇聚节点接入交换机再分别挂到对应汇聚下。这样设计的好处是后续加设备、改策略都不用动核心。1.2 接入层为什么是后面最容易返工的地方真正做过维护的人都知道网络故障大多数出在接入层。原因很简单接入层直接面对终端用户用户用什么设备、插什么线、开什么服务全不可控。今天有人私接一个小路由器明天有人开了一个DHCP服务后天某个办公室发现网线插上去灯都不亮——这些问题如果在设计阶段没有约束后期排查成本会非常高。接入层的核心职责有三块一是把不同业务隔离开通过VLAN划分广播域二是把每个终端的接入行为控制住比如限制端口学习到的MAC数量、开启环路保护三是保证上联链路的稳定把多台接入交换机可靠地连到汇聚层。在设计阶段要提前问自己几个问题每个接入端口跑什么业务端口下接的是电脑、打印机还是AP要不要支持PoE供电上联带宽够不够如果一开始就明确这些后面配置就不会出现“VLAN配了但PVID不对”“端口放通了但被环路保护阻断”这类基础错误。2. ENSP环境准备与设备选型我踩过的版本和兼容性坑2.1 ENSP安装与常用设备能力边界很多人在ENSP上卡住不是因为不会配命令而是因为设备根本起不来。ENSP依赖VirtualBox做底层虚拟化设备能否正常启动、抓包能不能用很大程度取决于你的安装环境。我的经验是安装ENSP时尽量避免使用过新的VirtualBox版本历史上试过VirtualBox新版本和ENSP自带设备镜像的兼容性问题反而稳定版本省心。另外安装路径不要带中文Windows用户名也尽量别用中文否则设备文件路径解析容易出问题。ENSP安装完后第一次打开建议先用默认模板启动一台AR路由器确认设备能正常启动再开始建拓扑。设备选型方面ENSP自带的设备分为几个档次我在做校园网实验时的主要选择如下层次推荐设备能力边界出口AR2220/AR3260支持NAT、路由、DHCP适合模拟运营商接入核心CE6800支持大表项、VXLAN、OSPF等适合承载核心路由转发汇聚S5700支持三层VLANif、VRRP、OSPF适合做网关和策略控制接入S5700-LI二层交换为主支持VLAN、Trunk、端口安全配置轻量要注意的是S3700这类老设备在模拟器里功能比较有限某些三层命令和DHCP特性支持不完整。如果实验里需要汇聚层同时跑VRRP和DHCP建议直接选S5700不要为了省那点资源去用低端型号。2.2 错误40、错误43的排查链路用ENSP时最常见的两件事一是设备启动失败错误代码40二是启动过程中提示虚拟机初始化失败错误代码43。这两个问题我在不同电脑上都遇到过表现不一样但根子都在虚拟化环境上。错误40的典型场景是AR设备启动失败。排查链路是先确认CPU虚拟化是否开启到BIOS里检查VT-x/AMD-V是否被禁用再检查是否启用了Windows自带的Hyper-V和虚拟机监控程序。这两者和VirtualBox默认冲突装上之后ENSP的AR完全起不来。我的处理思路是在做ENSP实验的电脑上把Windows功能里的“Hyper-V”、“虚拟机平台”关掉只保留VirtualBox相关服务然后重启电脑。错误43则更多是运行时问题常见原因是VirtualBox服务没启动、内存不够、设备镜像残留状态异常。处理方式比较直接关闭ENSP和VirtualBox查看任务管理器里有没有残留的虚拟化进程清理掉然后删除对应设备的Base镜像缓存重新注册。这一步在ENSP的菜单里有“重置”相关操作我习惯是把整个实验拓扑关闭后重新导入工程文件启动前检查右下角VirtualBox托盘图标是否正常。如果你用的电脑启用了WSL2也要特别注意。WSL2默认会占用虚拟化平台和ENSP共存时容易出现设备启动慢、偶尔失败的情况。有条件的话在需要跑ENSP的时候临时切换WSL虚拟化配置或者换一台不影响日常开发的机器专门跑模拟器是更省心的做法。2.3 拓扑规划与链路带宽设计拓扑图不是画得越复杂越好。校园网实验项目的重点是把层级关系说清楚每一条链路都有明确用途。我的规划是这样的两台汇聚交换机分别负责A区、B区核心交换机双机做跨区互通出口路由器上联模拟运营商内部跑OSPF。接入部分按VLAN划分每个区域的接入交换机用Trunk上联到本区域汇聚。链路带宽设计上接入交换机到汇聚之间用GE链路两两捆绑比较好一方面增加带宽另一方面链路聚合本身有冗余效果一根线断了业务不中断。汇聚到核心之间同理用Eth-Trunk把两条GE捆起来。很多人会忽略链路的“收敛比”实际做项目时接入侧带宽总和往往远大于上联带宽所以哪条链路放业务、哪条链路做备份要在拓扑设计阶段就标清楚不要等配完才发现核心到汇聚之间只有一根线单点故障直接瘫痪一整片。3. VLAN划分与接入层配置广播隔离的第一道防线3.1 VLAN规划表怎么定才不留坑VLAN规划是整个网络设计的灵魂一个好的规划表应该能直接指导配置而不是配到一半才发现地址冲突。我常用的原则是管理VLAN、业务VLAN、互联VLAN、无线专用VLAN分开段位设计和IP网段一一对应方便后续维护。以一套中等规模校园网为例VLAN规划如下VLAN ID用途网段网关10设备管理192.168.10.0/24192.168.10.25420办公区172.16.20.0/24172.16.20.25430教学区172.16.30.0/24172.16.30.25440宿舍区172.16.40.0/24172.16.40.25450无线接入172.16.50.0/24172.16.50.25499设备互联10.0.255.0/24不设网关这个表里的信息量很大。首先管理VLAN单独拿出来避免设备管理地址和用户业务混在一起后续远程管理交换机、做SNMP网管都方便。其次每一个业务VLAN的网关地址统一是.254结尾规律性强不管谁接手都能快速记住。最后互联VLAN专门留给设备之间的三层链路不承载用户流量减少路由表噪声。VLAN ID号也不建议乱跳。接入设备只有几十台的时候20、30、40、50看起来宽松但一旦超过几百台设备一个连续的ID规划比东一个西一个要好管理得多。3.2 接入交换机完整配置脚本接入交换机的配置核心是下行端口划分到指定业务VLAN上行端口以Trunk形式放通所有业务VLAN并加上二层防护。在ENSP里S5700的配置逻辑和真实设备基本一致这一段可以直接复用。# 创建业务VLAN vlan batch 10 20 30 40 50 # 面向终端的接入端口按实际位置划入对应VLAN interface Ethernet0/0/1 port link-type access port default vlan 20 storm-control broadcast enable loopback-detect enable interface Ethernet0/0/2 port link-type access port default vlan 30 storm-control broadcast enable loopback-detect enable # 上联汇聚的Trunk端口 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 30 40 50这里有两个细节需要注意。第一接入端口上我开了广播风暴抑制和环路检测虽然是模拟器里的功能但真实场景里这两个命令能救命的。广播风暴往往是一台故障终端不停发广播包引起的不做抑制的话整个上联口都会被打满。第二Trunk端口不要放通不必要的VLAN尤其是管理VLAN 10。管理VLAN只允许从汇聚的下联口走接入端口全放通的话任何一台终端都有可能在不知情情况下接触到管理VLAN的广播报文。接入层还有一个常被忽略的点端口的PVID。如果接入端口下接的是一个带VLAN Tag的二层设备比如下级交换机或AP就不能简单用access模式需要用Trunk并指定PVID为业务VLAN。interface Ethernet0/0/3 port link-type trunk port trunk pvid vlan 50 port trunk allow-pass vlan 50上面这段在接入AP的场景很实用AP上行的业务报文是打Tag的Trunk的PVID设为无线VLANAP管理的流量和业务流量就能正确分流。3.3 接入层最容易忽略的三件事第一件事是二层环路。真实校园网里总会有人把一根网线同时插到两个交换机的普通口上形成环路。交换机默认开了STP的话能兜底但收敛时间可能造成几十秒的中断。我建议在接入交换机的下联口上开启边缘端口特性并开启BPDU保护这样一旦有终端试图发BPDU报文端口会被直接Shutdown而不是让整个网络去重新计算拓扑。interface Ethernet0/0/1 stp edged-port enable stp bpdu-protection enable第二件事是端口安全的粒度。宿舍区这种环境一个端口下可能换来换去好几台设备如果MAC学习上限设得太严合法设备也会被锁死。我一般把宿舍端口设成动态学习4个MAC办公区设成2个教室多媒体设备区设成1个按场景差异化配置比一刀切更贴合实际。第三件事是管理VLAN不能丢。接入交换机自己是需要远程管理的管理VLAN的网段要提前规划好接入交换机的管理地址可以用静态配置也可以用DHCP预留。实际交付时我倾向把所有网络设备管理地址做成静态防止地址漂移导致网管平台IP对不上设备。4. 汇聚与核心的互联设计三层路由与网关冗余4.1 网关放在汇聚还是核心方案取舍网关放在哪一层是校园网设计里最有争议的问题之一。把网关放在汇聚层的好处是故障域变小一个汇聚节点只管自己区域内的VLAN间流量这些流量不必上到核心就可以在本地完成转发。但代价是汇聚设备需要承担三层处理能力和路由功能。把网关放在核心层则可以用更少的设备集中处理VLAN间路由适合大型网络因为核心设备的转发性能足够强。但对实验项目来说核心网关的缺点是每一条VLAN间流量都贯穿核心核心一旦出问题全网业务全断而且汇聚层就退化成纯二层设备没有VRRP场景可做实验内容也会少很多。我最终采用网关在汇聚层的方案两台汇聚交换机各自做部分VLAN的主网关同时用VRRP互为备份这样既保证了冗余性又能分摊网关压力。核心层只做路由转发的“中转站”不挂任何终端VLAN网关。4.2 VRRP与链路聚合配置实例先看汇聚层的冗余网关配置。假设两台汇聚交换机汇聚A和汇聚B下面以VLAN 20的网关为例汇聚A上interface Vlanif20 ip address 172.16.20.252 255.255.255.0 vrrp vrid 1 virtual-ip 172.16.20.254 vrrp vrid 1 priority 120 vrrp vrid 1 preempt-mode timer delay 10 dhcp select global汇聚B上interface Vlanif20 ip address 172.16.20.253 255.255.255.0 vrrp vrid 1 virtual-ip 172.16.20.254 vrrp vrid 1 priority 100 dhcp select globalVRRP的关键点在于两台汇聚都配置相同的虚拟IP 172.16.20.254主设备优先级120备用设备优先级100抢占模式开启后主设备恢复会自动夺回业务。我在实际配置时会把抢占延时设成一个较小的值比如10秒避免主设备刚重启又立刻抢占导致网络抖动。接口的物理地址要注意Vlanif20作为VRRP成员接口两台设备的IP必须不同虚拟IP是全网的网关。如果不小心把两台设备的实IP配成同一个VRRP会直接冲突终端设备会出现网关一会通一会不通的情况。汇聚到核心的上联链路同样要做冗余。我习惯用Eth-Trunk把两条物理链路捆在一起既增加带宽又提供物理层冗余汇聚A上interface Eth-Trunk1 port link-type trunk port trunk allow-pass vlan 10 20 30 40 50 interface GigabitEthernet0/0/0 eth-trunk 1 interface GigabitEthernet0/0/1 eth-trunk 1核心设备上同样创建Eth-Trunk成员口对应接到汇聚的两条线。链路聚合做完之后任意一根物理线断开业务完全无感知。4.3 路由协议与DHCP中继的协同网关放在汇聚后核心和汇聚之间必须有三层路由。规模不大的园区网我建议直接跑OSPF单区域路由收敛快配置也清晰。汇聚A和汇聚B作为区域内的路由器核心作为骨干出口路由器也一并加入OSPF区域学到的缺省路由从出口下发。核心到汇聚的接口配置示例interface GigabitEthernet0/0/0 description to-convergeA ip address 10.0.255.1 255.255.255.248 interface GigabitEthernet0/0/1 description to-convergeB ip address 10.0.255.9 255.255.255.248汇聚侧除了互联地址还需要宣告自己的业务网段。比如汇聚A上ospf 1 router-id 2.2.2.2 area 0.0.0.0 network 10.0.255.0 0.0.0.7 network 172.16.20.0 0.0.0.255DHCP的实现有两种方式如果网关在汇聚上可以直接在汇聚上开启DHCP服务地址池就挂在对应VLANif下不需要中继。实际配置如下dhcp enable ip pool office network 172.16.20.0 mask 255.255.255.0 gateway-list 172.16.20.254 dns-list 8.8.8.8 114.114.114.114 interface Vlanif20 dhcp select global这种做法的优点是终端从DHCP获取地址的整个过程不经过核心故障排查时只看本区域设备即可。如果以后网络规模变大网关上收核心层那再把DHCP改成中继模式汇聚上提供IP Helper地址指向核心的DHCP服务器或直接让核心做DHCP Server逻辑上是一样的只是报文走向多了核心这一段。5. 完整项目配置速查从接入到出口的核心脚本解读5.1 出口路由器和核心交换机的配置要点出口路由器承担的是全网和外部通信的边界职责。模拟器里AR2220出口上联一台Cloud或另一台AR设备充当运营商需要配置NAT、默认路由和必要的ACL。校园网一般有多个内网网段NAT要放通所有内网地址。AR出口侧的核心配置acl number 2000 rule 5 permit source 192.168.10.0 0.0.0.255 rule 10 permit source 172.16.0.0 0.0.255.255 interface GigabitEthernet0/0/1 ip address 202.100.1.2 255.255.255.252 nat outbound 2000 interface GigabitEthernet0/0/0 ip address 10.0.255.18 255.255.255.248 ip route-static 0.0.0.0 0.0.0.0 202.100.1.1 ip route-static 172.16.0.0 255.255.0.0 10.0.255.17这里有一个很常见的思路问题为什么在出口路由器上既要配默认路由又要配指向核心内部的静态路由因为内网数据包到达出口后如果要访问的内网地址被NAT匹配到发现目的地址还是内网网段就会查路由表结果走了默认路由发出去包就丢了。所以在出口上需要一条明细路由告诉它“内网段往回走核心”。核心交换机在方案里主要是路由汇聚的角色配置相对简单。把互联接口配好IP加入OSPF区域即可。要注意的是核心层不要错误配置VRRP或者其他终端网关否则会和汇聚的VRRP抢网关造成路由黑洞。5.2 一套可直接修改的小型校园网配置模板我来给出一套最简可跑的配置模板读者可以直接照着改IP。设备角色从接入、汇聚、核心到出口一一对应。接入层配置在前面章节已经给了这里重点看汇聚和核心的完整串法。汇聚A完整配置思路sysname ConvergeA vlan batch 10 20 30 40 50 interface Vlanif10 ip address 192.168.10.252 255.255.255.0 vrrp vrid 10 virtual-ip 192.168.10.254 vrrp vrid 10 priority 120 interface Vlanif20 ip address 172.16.20.252 255.255.255.0 vrrp vrid 1 virtual-ip 172.16.20.254 vrrp vrid 1 priority 120 interface Vlanif30 ip address 172.16.30.252 255.255.255.0 vrrp vrid 2 virtual-ip 172.16.30.254 vrrp vrid 2 priority 120 interface Eth-Trunk1 port link-type trunk port trunk allow-pass vlan 10 20 30 40 50 interface GigabitEthernet0/0/0 eth-trunk 1 interface GigabitEthernet0/0/1 eth-trunk 1 interface GigabitEthernet0/0/2 ip address 10.0.255.2 255.255.255.248 dhcp enable ip pool office network 172.16.20.0 mask 255.255.255.0 gateway-list 172.16.20.254 dns-list 8.8.8.8 114.114.114.114 ip pool teaching network 172.16.30.0 mask 255.255.255.0 gateway-list 172.16.30.254 dns-list 8.8.8.8 114.114.114.114 interface Vlanif20 dhcp select global interface Vlanif30 dhcp select global ospf 1 router-id 2.2.2.2 area 0.0.0.0 network 10.0.255.0 0.0.0.7 network 172.16.20.0 0.0.0.255 network 172.16.30.0 0.0.0.255 network 192.168.10.0 0.0.0.255核心交换机配置思路sysname Core interface GigabitEthernet0/0/0 ip address 10.0.255.1 255.255.255.248 interface GigabitEthernet0/0/1 ip address 10.0.255.9 255.255.255.248 interface GigabitEthernet0/0/2 ip address 10.0.255.17 255.255.255.248 ospf 1 router-id 1.1.1.1 area 0.0.0.0 network 10.0.255.0 0.0.0.7 network 10.0.255.8 0.0.0.7 network 10.0.255.16 0.0.0.7这套模板的特点是汇聚A做了VLAN20的活跃网关汇聚B同样配置但优先级较低汇聚A和汇聚B都运行OSPF核心只收路由不下发网关出口路由器NAT把内网全部放通出去。实际项目中只需要把IP段替换成自己的规划再按各区域调整VLAN号即可。5.3 验证命令与故障模拟点配置完不是结束得验证。我习惯按下面的顺序逐步排查# 验证二层连通性 display vlan summary display port vlan # 验证VRRP主备状态 display vrrp brief # 验证路由是否学习完整 display ospf peer brief display ip routing-table # 验证终端地址获取 display dhcp server statistics # 从核心ping网关和业务地址 ping -a 10.0.255.1 172.16.20.254如果发现终端获取不到IP优先看汇聚交换机上有没有配置dhcp select global再查Trunk端口是否放通了对应VLAN。如果跨VLAN的ping不通检查OSPF宣告网段是否覆盖完整注意OSPF宣告的是接口所在网段而不是VLANif的整个业务网段少一条宣告就会造成路由缺失。做故障模拟实验时我喜欢在验证阶段故意做两个动作一是直接关闭汇聚A的Eth-Trunk口看VRRP是否把网关切换到汇聚B二是断开汇聚A到核心的某条物理链路看路由表在秒级内是否完成切换。这两个动作做完整套冗余设计才算真正验证通过。6. 交付文档怎么组织才叫“完整配置”工程文件、文档与讲解的整理思路6.1 项目交付清单与文档结构说到“完整配置”很多人的理解就是一堆配置文件打包扔给别人结果对方拿到手根本跑不起来因为缺了拓扑、缺了IP规划、缺了验证说明。一个合格的交付包应该让另一个人照着做就能把网络完整复现出来。我习惯把交付内容按下面几部分组织目录内容作用topoENSP工程文件可直接打开的完整拓扑包含所有设备配置docs设计文档需求分析、IP规划表、VLAN规划表、拓扑说明config分设备配置文件按接入、汇聚、核心、出口拆分的完整配置test验证记录连通性测试、冗余测试、性能测试的截图和结果说明ppt讲解演示汇报答辩或教学演示用的思路大纲设计文档里最核心的是IP规划表和VLAN规划表一定不要只写“VLAN20是办公”要把地址段、网关、主备汇聚的地址、管理地址全部列出来甚至备注好谁是VRRP主设备。配置文件可以按设备名命名比如ConvergeA_cfg.txt、Core_cfg.txt每个文件顶部写清楚设备角色和接入拓扑位置别人看的时候不用到处问。测试记录也很关键。我每个项目收尾都会做一张大的测试矩阵终端A到终端B、跨VLAN访问、VLAN隔离、链路聚合断线、VRRP切换、NAT出去后的连通性把每项测试的预期结果和实际结果填进去。这张表不仅是给评审看的也是对设计思路的二次校验很多潜在问题就是填这张表时发现的。6.2 讲解演示的思路与常见误区交付包里如果有讲解视频或PPT讲解逻辑不要从“我配置了什么命令”开始要从“网络面临什么问题所以我怎么设计”开始。好的讲解顺序是先讲业务需求再讲拓扑分层然后讲VLAN和IP规划最后才是关键配置演示。上来就敲命令听众很容易失去主线。演示配置时有一个常见误区很多人在ENSP里把每一行命令都现场敲一遍遇到设备启动失败或者某条命令敲错现场氛围就很尴尬。我的做法是重要的配置片段提前在真实设备或模拟器里跑通讲解时只演示核心步骤比如VRRP切换、DHCP分发、跨VLAN互访给观众看结果而不是看过程。讲解的时候多用display命令的输出说话比嘴里解释半天更有说服力。6.3 我个人的交付经验做这类校园网项目我最深的体会是真正的难点从来不是某一条命令怎么敲而是整个方案在不同场景下怎么取舍。网关放汇聚还是放核心、OSPF宣告范围怎么定、管理VLAN要不要放通到接入层这些问题没有一个标准答案只能根据网络规模、设备性能、维护习惯去权衡。另外ENSP终究是模拟器它能帮你验证逻辑但不等同于真实网络。真实设备上的端口状态、光模块、PoE供电、设备CPU占用都是模拟器无法覆盖的。如果你做完实验准备在真实环境落地一定要把模拟器里最顺手的“命令”翻译成“方案”再根据现场设备型号和版本做适配不要直接拿模拟器配置文件往真设备上贴。这个习惯我建议所有初学者早一点养成后面会少踩很多坑。
返回列表