1. 项目缘起为什么需要三层交换机在中小型园区网或者企业网里我们经常会遇到一个经典场景不同部门需要划分在不同的网段VLAN里比如财务部在VLAN 10研发部在VLAN 20。这能有效隔离广播域提升网络安全性。但问题随之而来财务部的电脑192.168.10.0/24怎么和研发部的服务器192.168.20.0/24通信呢最传统的做法是每个VLAN的网关放在一台路由器上不同VLAN间的通信全部由这台路由器来“中转”。这就像公司里所有部门之间的文件传递都必须经过前台文员路由器来手递手完成。当部门间通信流量不大时这还能应付。可一旦流量激增比如财务批量拉取研发的测试报告这个“前台文员”就会成为整个公司的性能瓶颈因为它需要处理所有跨网段的流量而且其数据包转发能力吞吐量通常远低于交换机。于是三层交换机应运而生。你可以把它理解为一个“超级前台”它本身是一个高速的交换机具备多个高速端口连接各个部门VLAN同时它内部又集成了一个路由器的“大脑”路由引擎。当财务部的数据要发给研发部时这个“超级前台”能直接在内部完成跨网段的寻路和转发速度极快这个过程被称为“一次路由多次交换”。它完美地融合了二层交换的高速性和三层路由的智能性是构建现代高效局域网的核心设备。今天我就以一个典型的园区网场景为例手把手带你走一遍三层交换机的详细配置流程。我们会从最基础的概念澄清开始到VLAN和IP地址规划再到具体的命令行配置最后还会聊聊那些配置手册上不会写但实际运维中一定会遇到的“坑”和调优技巧。2. 前期规划磨刀不误砍柴工在登录设备敲下第一个命令之前清晰的规划是成功的一半。很多网络故障的根源其实在规划阶段就埋下了。2.1 网络拓扑与需求定义假设我们要为一个办公室构建网络拓扑很简单一台三层交换机作为核心下联若干台二层接入交换机。用户终端PC、IP电话、打印机等连接到接入交换机。我们的核心需求是业务隔离划分三个主要业务VLAN。VLAN 10员工办公网络网段 192.168.10.0/24用于日常上网和办公软件。VLAN 20服务器网络网段 192.168.20.0/24用于内部应用服务器、文件服务器。VLAN 30访客无线网络网段 192.168.30.0/24提供受限的互联网访问。互联互通三个VLAN之间需要可控的互访。例如员工可以访问服务器但访客不能访问内部服务器。出口路由三层交换机需要将去往互联网的流量指向出口路由器或防火墙。2.2 VLAN与IP地址规划表将规划落于纸面形成文档是专业网络工程师的习惯。下面这个表格会在配置时给我们提供清晰的指引项目VLAN IDVLAN 名称网段网关IP用途说明员工网10Office192.168.10.0/24192.168.10.1/24有线办公终端服务器20Server192.168.20.0/24192.168.20.1/24内部服务器访客网30Guest192.168.30.0/24192.168.30.1/24访客无线终端管理网99Management10.10.99.0/2410.10.99.1/24设备管理可选但推荐为什么要有管理VLAN这是一个重要的实践。将设备的管理IP如SSH、Web登录地址放在一个独立的、不与业务混用的VLAN里可以极大地提升网络设备自身的安全性。即使业务网络出现广播风暴或地址冲突也不会影响你远程登录设备进行排错。2.3 物理连接规划确定三层交换机上与各VLAN对应的物理端口。通常有两种模式Access模式端口属于一个VLAN。常用于连接终端设备如PC或接入层交换机上联口如果接入交换机只传输单个VLAN。Trunk模式端口允许多个VLAN的流量通过数据帧会打上VLAN标签Tag。这是三层交换机连接下级二层交换机最常用的模式因为一根物理线缆需要承载多个VLAN的数据。在我们的场景中假设三层交换机的GigabitEthernet 1/0/1端口连接下级接入交换机这个端口就必须配置为Trunk并允许VLAN 10 20 30通过。3. 基础配置实战从零构建网络这里我以华为/H3C的Comware V7系统命令行界面CLI为例进行演示。思科Cisco的IOS配置逻辑类似但命令语法不同。掌握一种另一种通过对比也能快速上手。3.1 登录与基础设置首先通过Console线或已有IP地址登录交换机。# 进入系统视图这是大多数配置的起点 system-view # 为交换机起个名字便于标识 sysname Core-Switch # 设置特权模式密码这里以明文示例生产环境建议用cipher加密 super password level 3 simple MySuperPassword123 # 创建本地用户用于SSH登录 local-user admin password simple Admin123 service-type ssh authorization-attribute user-role network-admin quit # 开启SSH服务并设置认证方式 stelnet server enable ssh user admin authentication-type password ssh user admin service-type stelnet line vty 0 4 authentication-mode scheme user-role network-admin quit3.2 创建VLAN并配置接口根据规划表我们开始创建VLAN。# 创建VLAN vlan batch 10 20 30 99 # 为每个VLAN命名可选但强烈建议方便维护 vlan 10 description Office quit vlan 20 description Server quit # ... 其他VLAN类似 # 配置连接下级交换机的Trunk口以G1/0/1为例 interface GigabitEthernet 1/0/1 port link-type trunk # 设置端口模式为Trunk port trunk permit vlan 10 20 30 99 # 允许指定的VLAN通过 description To-Access-Switch # 添加描述 quit # 配置一个Access口用于连接管理终端或测试以G1/0/24为例 interface GigabitEthernet 1/0/24 port link-type access # 设置端口模式为Access port default vlan 99 # 将该端口划入管理VLAN 99 description Management-PC quit注意port trunk permit vlan命令后面可以跟all允许所有VLAN但在生产环境中务必遵循最小权限原则只放行业务需要的VLAN避免不必要的VLAN流量泛洪或安全风险。3.3 配置VLAN接口SVI与路由这是三层交换机的“灵魂”所在。我们需要为每个VLAN创建一个虚拟的三层接口Switch Virtual Interface SVI并为其配置IP地址这个IP就是该网段的网关。# 配置VLAN 10的接口及其网关 interface Vlanif 10 description Gateway for Office VLAN ip address 192.168.10.1 24 # 配置IP地址和掩码 quit # 配置VLAN 20的接口 interface Vlanif 20 description Gateway for Server VLAN ip address 192.168.20.1 24 quit # 配置VLAN 30的接口 interface Vlanif 30 description Gateway for Guest VLAN ip address 192.168.30.1 24 quit # 配置管理VLAN 99的接口并作为设备管理IP interface Vlanif 99 description Management VLAN ip address 10.10.99.1 24 quit配置完这些VLAN接口后三层交换机就已经自动生成了直连路由。你可以通过display ip routing-table命令查看会发现已经有了192.168.10.0/24 192.168.20.0/24等直连Direct路由。接下来需要配置一条默认路由指向出口设备假设出口路由器内网口IP是192.168.1.254。# 配置默认路由指向出口 ip route-static 0.0.0.0 0 192.168.1.254这条命令的意思是所有目标地址0.0.0.0/0未知的数据包都发给下一跳192.168.1.254去处理。3.4 配置DHCP服务可选但常用为了让终端自动获取IP地址通常会在三层交换机上启用DHCP服务。我们需要为每个VLAN创建一个地址池。# 全局开启DHCP服务 dhcp enable # 为VLAN 10创建地址池 ip pool office gateway-list 192.168.10.1 # 指定网关 network 192.168.10.0 mask 255.255.255.0 # 指定网段 excluded-ip-address 192.168.10.1 192.168.10.10 # 排除一段IP网关和预留地址 lease day 3 hour 0 minute 0 # 设置租期3天 dns-list 114.114.114.114 8.8.8.8 # 指定DNS服务器 quit # 在VLAN接口下启用DHCP并指定地址池 interface Vlanif 10 dhcp select global # 从全局地址池分配IP quit # 同理配置VLAN 20和30的地址池和接口 ip pool server gateway-list 192.168.20.1 network 192.168.20.0 mask 255.255.255.0 excluded-ip-address 192.168.20.1 192.168.20.50 # 服务器IP通常静态分配故排除较多 lease day 30 dns-list 192.168.20.10 # 假设内网有DNS服务器 quit interface Vlanif 20 dhcp select global quit4. 核心进阶安全与优化配置基础连通性实现后网络才算刚刚“能通”。要让网络稳定、安全、高效还需要一系列进阶配置。4.1 访问控制列表ACL实现安全策略还记得我们的需求吗访客VLAN 30不能访问服务器VLAN 20。这需要通过ACL来实现。# 创建一个高级别3000-3999的ACL用于过滤数据流 acl advanced 3000 rule 5 deny ip source 192.168.30.0 0.0.0.255 destination 192.168.20.0 0.0.0.255 # 规则5拒绝源为访客网段目的为服务器网段的所有IP流量 rule 10 permit ip # 规则10允许其他所有IP流量ACL默认隐含拒绝所有所以需要这条允许规则 quit # 将ACL 3000应用到VLAN 30的接口入方向 interface Vlanif 30 traffic-filter inbound acl 3000 quit为什么是inbound方向在VLAN接口上应用inbound方向的ACL意味着过滤的是进入这个VLAN接口的数据包。对于Vlanif 30来说就是从访客终端发往交换机的数据包。在这个位置拦截效率最高能防止非法流量进入交换机的路由转发流程。4.2 生成树协议STP/RSTP/MSTP防环当网络中存在多条物理链路时例如为了冗余接入交换机用两根线连接核心必须启用生成树协议来防止广播风暴。现在主流使用快速生成树RSTP或多生成树MSTP。# 全局开启STP并指定模式为RSTP速度更快 stp enable stp mode rstp # 将核心交换机设置为整个网络的根桥Root Bridge stp root primary # 在连接下级交换机的Trunk口上可以优化端口角色可选 interface GigabitEthernet 1/0/1 stp edged-port disable # 明确这不是边缘端口 stp root-protection # 启用根保护防止下级交换机成为根桥 quit根桥选举的坑如果网络中的所有交换机都使用默认的STP优先级可能会选举出一台性能较弱的接入交换机作为根桥导致流量路径次优。最佳实践是手动指定核心交换机为根桥备份核心为次根桥确保主要流量路径经过性能最强的设备。4.3 端口安全与风暴控制接入层端口直接面对用户是安全风险高发地。# 配置接入层端口例如G1/0/2到G1/0/23这里以G1/0/2为例 interface GigabitEthernet 1/0/2 port link-type access port default vlan 10 stp edged-port enable # 启用边缘端口加速终端接入 # 开启端口安全限制最大学习MAC地址数为2违规后关闭端口 port-security enable port-security max-mac-num 2 port-security protect-action shutdown # 开启广播/组播/未知单播风暴抑制 storm-control broadcast min-rate 1000 max-rate 2000 storm-control multicast min-rate 1000 max-rate 2000 storm-control unknown-unicast min-rate 1000 max-rate 2000 description To-User-PC quit风暴控制参数解读min-rate和max-rate单位通常是kbps。当端口的广播/组播/未知单播流量超过max-rate时交换机会丢弃超出部分的报文当流量低于min-rate时恢复正常转发。这能有效防止一台中毒的PC或环路导致整个VLAN瘫痪。5. 问题排查与运维锦囊配置不是一劳永逸的网络运维中总会遇到各种问题。掌握排查思路比记住命令更重要。5.1 连通性故障排查四步法当出现“电脑上不了网”、“访问不了服务器”等问题时可以按以下步骤排查检查本地链路# 在交换机上查看端口状态 display interface GigabitEthernet 1/0/2 brief查看Status和Protocol是否为UP。如果为DOWN检查网线、对端设备、或是否被shutdown。检查VLAN成员关系# 查看端口所属VLAN display port vlan GigabitEthernet 1/0/2 # 查看MAC地址表确认终端MAC是否在正确的VLAN中被学习到 display mac-address | include xxxx-xxxx-xxxx # 填入终端MAC如果MAC地址出现在错误的VLAN中可能是接入交换机Trunk配置错误或终端发送了带Tag的报文。检查三层路由# 在核心交换机上ping一下终端的IP假设是192.168.10.100 ping -a 192.168.10.1 192.168.10.100 # -a参数指定源IP用VLAN 10的网关去ping测试三层可达性 # 查看路由表确认是否有去往目标网段的路由 display ip routing-table 192.168.20.0如果网关ping不通终端可能是终端防火墙阻止、IP冲突或交换机上针对该IP的ARP学习有问题。可以查看ARP表display arp | include 192.168.10.100。检查安全策略# 查看ACL应用情况和匹配计数 display acl 3000 # 查看接口上应用的ACL display traffic-filter applied-record如果ACL的rule 5匹配计数matched在增加说明正是这条拒绝规则拦截了流量。5.2 那些配置手册上不写的“坑”坑1DHCP Snooping与非法DHCP服务器在大型或有线无线融合的网络中一定要在接入层开启dhcp snooping enable并在连接合法DHCP服务器或中继的端口上设置为trusted。否则用户私接一个小路由器就可能成为“非法DHCP服务器”导致大片用户获取到错误IP。# 全局开启DHCP Snooping dhcp snooping enable # 在连接核心DHCP服务器所在的Trunk口上设置为信任口 interface GigabitEthernet 1/0/1 dhcp snooping trusted坑2MTU与巨帧如果网络中有服务器进行大数据块传输如iSCSI存储可能会遇到随机丢包或性能不佳的问题。检查端到端的MTU是否一致。默认是1500字节如果启用巨帧Jumbo Frame需要全网设备网卡、交换机、路由器统一配置。# 在交换机全局和物理端口上启用巨帧 jumboframe enable 9000 interface GigabitEthernet 1/0/1 jumboframe enable 9000坑3MAC地址表漂移在Console口或日志中看到同一个MAC地址在不同端口间频繁跳变。这通常是网络环路即使有STP也可能因配置错误未生效或终端安装了虚拟机软件如VMware VirtualBox导致其用同一个MAC在多块虚拟网卡上发送数据。排查环路或调整虚拟机网络设置。5.3 日常维护与备份命令# 1. 保存配置最重要 save # 2. 查看当前配置 display current-configuration # 3. 查看设备健康状态 display device display cpu-usage display memory-usage display temperature # 4. 查看日志信息 display logbuffer # 5. 备份配置到TFTP服务器假设服务器IP是10.10.99.100 tftp 10.10.99.100 put flash:/config.cfg backup_switch_config.cfg # 6. 设置定时任务每周日凌晨2点自动备份配置 scheduler job BACKUP_CONFIG tftp 10.10.99.100 put flash:/config.cfg backup_$(sysname)_$(date).cfg scheduler schedule BACKUP_WEEKLY job BACKUP_CONFIG time repeating at 2:00 Sun三层交换机的配置是一个从规划到实施再到优化和运维的完整闭环。它不仅仅是输入几条命令更是在理解网络原理的基础上构建一个稳定、高效、安全的数据转发平台。每一次配置变更前做好规划每一次故障出现时理性排查。把这些步骤和注意事项融入你的操作习惯你就能从容应对大多数园区网场景了。