Cisco综合配置实验:从VLAN划分到NAT的完整企业网搭建指南
发布时间:2026/9/29 4:49:35 作者:尧图编辑部 阅读量:1,286

做网络的人早晚都要碰这样一道坎二层交换机、三层交换机、路由器同时出现在一张拓扑图里你要把不同VLAN的PC完全打通还要让整个内网能正常访问外网。Cisco综合配置实验这五个字听起来像是教科书里的老古董但真把它做透了交换、路由、网关、NAT这些概念就全都能串起来了。我第一次在模拟器上跑这个实验时最困惑的是“三层交换机到底比二层多干了什么”。等后来在真机上配完一轮再回头看就发现这其实是一套非常经典的企业网最小模型二层交换机负责接入和隔离三层交换机负责网段间路由边界路由器负责和外网打交道。无论你是准备CCNA考试的学生还是刚接手单位网络、想补一补多设备协同配置基本功的运维这个实验都值得完整做一遍。下面我就把整个实验从拓扑设计、原理拆解到逐行配置、排错实录完整过一遍。1. 实验背景与整体方案设计1.1 这个实验到底想模拟什么很多人学路由交换单台设备玩得挺溜比如在Packet Tracer里配个静态路由、在模拟器里划个VLAN但一遇到多台设备协同工作就懵。原因很简单单设备的命令好背多设备之间的协作逻辑不好想。这个综合实验逼着你想清楚三件事数据帧什么时候只在二层走什么情况必须交给三层处理路由器在这里到底负责什么。具体到实验场景我把它设计成一个缩略版的企业办公网。一栋楼里有两个部门财务部和行政部PC分布在两台接入交换机上财务部在VLAN 10行政部在VLAN 20。两台二层交换机通过trunk上联到一台三层交换机三层交换机再连一台边界路由器路由器出口模拟接到外网。这个场景要验证的需求有三层第一同一VLAN内的PC要能互相访问验证二层链路是通的第二两个VLAN之间要能通信验证三层交换机的VLAN间路由能力第三整个内网要通过一个共享出口访问外网服务器验证默认路由和NAT。这三个需求刚好对应了接入层、汇聚层和边界出口三个层次的分工也只有把这些设备放在一起才能真正模拟出生产网络的完整数据流。1.2 拓扑设计与设备选型思路为什么用“两台二层交换机加一台三层交换机加一台路由器”这个组合而不是全用二层或者全上三层我直接说说这里面的权衡逻辑。接入层用二层交换机就够了。接入层的职责是给终端提供接入同时用VLAN隔离广播域。这层用三层交换机属于浪费端口贵、功耗高、配置也复杂得多。二层交换机便宜端口密度高转发性能对于终端接入来说绰绰有余所以接入层用Cisco 2960这类二层设备是标准做法。汇聚层用三层交换机是为了把VLAN间路由“消化在内部”。如果不用三层交换机两个VLAN的互访就得绕到路由器上做单臂路由所有跨VLAN流量全挤在一条子接口链路上性能和可靠性都非常难看。三层交换机的好处是SVI直接承载网关数据在交换机内部就完成了路由转发效率高配置也清晰。边界路由器负责“往外走”的事。很多人在模拟器里把三层交换机直接当出口用确实能通但实际工程中边界设备往往还承担NAT、ACL、策略路由、WAN接入等专业功能一台专业路由器比用交换机顶着干可靠得多。所以这个实验里路由器负责默认路由和NAT任务边界非常清晰。设备型号建议角色核心工作接入交换机SW1、SW2Cisco 2960接入层划分VLAN、配置trunk上联核心交换机CORECisco 3560核心/汇聚层SVI网关、VLAN间路由、DHCP服务边界路由器EDGECisco 2911出口网关默认路由、NAT外网服务器Server任意主机外网侧验证跨网访问VLAN规划我按实际办公场景来定分配表如下VLANIP网段网关用途VLAN 10192.168.10.0/24192.168.10.254财务部VLAN 20192.168.20.0/24192.168.20.254行政部VLAN 99192.168.99.0/24不配置SVINative VLAN承载trunk管理流量拓扑连线是这样的SW1和SW2分别下挂PC然后用各自的GigabitEthernet 0/1口上联到CORE的GigabitEthernet 0/1和GigabitEthernet 0/2这两条链路做成trunk。CORE的GigabitEthernet 0/3直连EDGE的GigabitEthernet 0/0互连网段用10.0.0.0/30刚好两个可用地址。EDGE的GigabitEthernet 0/1接到一台模拟外网的服务器网段用203.0.113.0/24这个地址段专门用于文档示例不会跟真实运营商地址冲突。2. 核心原理拆解数据包在二层与三层间的流转2.1 二层转发VLAN和Trunk到底做了什么二层交换机是一个学习MAC地址表、按MAC地址转发帧的设备。收到一个数据帧把源MAC学进MAC地址表再用目标MAC查表表里有对应条目就从对应端口转发表里没有就向同一VLAN内的其他端口泛洪。整个过程不关心IP地址所以二层交换机不感知网段更不感知路由。VLAN的作用是隔离广播域。默认情况下所有端口都在VLAN 1里整台交换机就是一个大广播域任何一个广播帧都会被全网转发既浪费带宽又不安全。划了VLAN之后广播只在VLAN内部扩散用户之间天然隔离这是VLAN最重要的价值之一。Trunk是交换机之间承载多个VLAN流量的链路。普通access口只能承载一个VLAN的帧trunk口则用802.1Q标签给每个帧打上归属标记接收端根据标签知道这个帧应该进哪个VLAN处理。这里有个关键细节native VLAN的帧在trunk上不打标签。默认native VLAN是VLAN 1生产环境里大家通常会把它改成别的VLAN防止有人借助默认VLAN做非法访问这个实验里我就按这个习惯改成VLAN 99。可以用一个生活类比来记二层交换机是小区里的快递分拣站分拣员只看快递单上的单元号MAC就知道往哪个楼送VLAN是分拣站里的不同隔板把不同片区的快件隔开trunk是连接两个分拣站的传送带每个快件上贴了颜色标签802.1Q标签标明所属片区但有一类“本片区默认件”native VLAN不贴标签直接走两边的分拣员都默认知道它是本地的。2.2 三层转发SVI如何实现VLAN间路由三层交换机比二层多了一个能力查路由表。它收到一个帧先剥离二层帧头看到IP报文发现目标IP不在本接口网段时就去查路由表。命中路由条目后找到对应出接口重新封装二层帧头把源MAC改成出接口的MAC把目标MAC改成下一跳设备的MACTTL减1校验重算然后从出接口转发出去。SVISwitch Virtual Interface就是为VLAN创建的虚拟三层接口。比如给VLAN 10的SVI配192.168.10.254那么这个VLAN里的PC就把这个地址当网关。PC访问另一个网段时发现目标不在本网段就把数据发给默认网关三层交换机在SVI上收到报文认出目标网段是VLAN 20查路由表发现VLAN 20是直连网段于是改写MAC后从对应VLAN的二层域发出去。所以记住这句话三层交换机先认IP、再认MAC。二层交换机从头到尾只看MAC三层交换机是在二层的物理转发基础上叠加了路由决策能力这也是它叫“多层交换机”的原因。对于3560这类设备开启路由功能前还要执行一条关键命令ip routing。默认情况下即使你配好了SVI三层交换机也不会路由必须手动开启IP路由功能。这个坑我在4.3节的排错场景里会再遇到先在这里埋个伏笔。2.3 路由器和“不同网段通信到底需不需要三层交换机”这个话题经常有人问这里单独回应一下不同网段通信不一定需要三层交换机完成跨网段路由的可以是路由器也可以是三层交换机。用路由器做单臂路由是早期经典方案物理口上划分子接口每个子接口封装802.1Q标签对应一个VLAN充当该VLAN的网关。这种方案能通但瓶颈很明显——所有跨VLAN流量汇聚到一条物理链路转发性能上不去所以在今天的企业网络里三层交换机早已是标配。那这个实验里为什么还要单独放一台路由器因为三层路由器和三层交换机的定位不同。三层交换机擅长处理“东西向流量”的VLAN间高速转发而边界路由器负责“南北向流量”的出口处理默认路由、NAT转换、外网策略控制。把VLAN间路由下沉到交换机把出口安全收口在路由器是生产环境最常见的职责划分。3. 实操配置全过程详解3.1 准备工作模拟器和拓扑搭建我用Cisco Packet Tracer来做演示初学者用PT最省心界面直观配置提示也比较友好。追求更接近真实IOS体验的话可以用GNS3加载IOS镜像但前提是你手里有合适的IOS文件。这里顺带提一个很多人在ensp上遇到的坑设备启动失败报错误代码40绝大多数是VirtualBox版本和ensp版本不兼容或者设备镜像没被正确加载重新安装匹配版本基本能解决。如果你只是想把Cisco这套配置思路跑通PT是最省事的选择。连线时PC到交换机、交换机之间、交换机到路由器都用直通线就行。模拟器会自动识别线序真机上现在的设备也都支持自动翻转不用纠结交叉线的事。搭建拓扑时注意给线路做好标注尤其是有多台交换机和多条trunk时命名清晰能省掉后面一大半排错时间。3.2 二层交换机的配置VLAN划分与Trunk以SW1为例先进入全局配置模式创建VLAN再把端口划进对应VLAN。Switchenable Switch#configure terminal Switch(config)#hostname SW1 SW1(config)#vlan 10 SW1(config-vlan)#name Finance SW1(config-vlan)#exit SW1(config)#vlan 20 SW1(config-vlan)#name Admin SW1(config-vlan)#exit SW1(config)#vlan 99 SW1(config-vlan)#name Native SW1(config-vlan)#exit SW1(config)#interface range fastEthernet 0/1-10 SW1(config-if-range)#switchport mode access SW1(config-if-range)#switchport access vlan 10 SW1(config-if-range)#exit SW1(config)#interface range fastEthernet 0/11-20 SW1(config-if-range)#switchport mode access SW1(config-if-range)#switchport access vlan 20 SW1(config-if-range)#exit SW1(config)#interface gigabitEthernet 0/1 SW1(config-if)#switchport mode trunk SW1(config-if)#switchport trunk native vlan 99 SW1(config-if)#end这里要说明几个细节。interface range命令可以批量配置端口减少重复劳动真实操作时非常实用。access口只属于一个VLAN所以switchport mode access配一次再指定switchport access vlan 10即可。上联口GigabitEthernet 0/1要承载多个VLAN所以配置成trunk。native vlan这里改成了99。默认的native vlan是1trunk两端的native vlan必须一致否则交换机日志会持续报告“Native VLAN mismatch”帧也会被丢弃。改成99是生产环境常见的加固习惯避免直接使用默认VLAN你在实验里养成这个习惯不亏。如果你用的设备是3560或者早期型号的2960在配置trunk之前可能还需要先执行switchport trunk encapsulation dot1q命令指定trunk封装协议。Packet Tracer新版默认就是dot1q可以不写但真机上多写这一句不亏。SW2的配置和SW1完全一样把主机的VLAN分配稍作变化即可PC不再重复列出。3.3 三层交换机开启路由、SVI与DHCPCORE的配置比二层交换机复杂我按步骤拆解。Switchenable Switch#configure terminal Switch(config)#hostname CORE CORE(config)#ip routing CORE(config)#vlan 10 CORE(config-vlan)#name Finance CORE(config-vlan)#exit CORE(config)#vlan 20 CORE(config-vlan)#name Admin CORE(config-vlan)#exit CORE(config)#vlan 99 CORE(config-vlan)#name Native CORE(config-vlan)#exit CORE(config)#interface vlan 10 CORE(config-if)#ip address 192.168.10.254 255.255.255.0 CORE(config-if)#no shutdown CORE(config-if)#exit CORE(config)#interface vlan 20 CORE(config-if)#ip address 192.168.20.254 255.255.255.0 CORE(config-if)#no shutdown CORE(config-if)#exit CORE(config)#interface gigabitEthernet 0/1 CORE(config-if)#switchport mode trunk CORE(config-if)#switchport trunk native vlan 99 CORE(config-if)#exit CORE(config)#interface gigabitEthernet 0/2 CORE(config-if)#switchport mode trunk CORE(config-if)#switchport trunk native vlan 99 CORE(config-if)#exit CORE(config)#interface gigabitEthernet 0/3 CORE(config-if)#no switchport CORE(config-if)#ip address 10.0.0.1 255.255.255.252 CORE(config-if)#no shutdown CORE(config-if)#exit CORE(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.2 CORE(config)#end第一行关键命令就是ip routing没有它SVI配得再漂亮也不会转发跨VLAN流量。很多人在模拟器里配完发现不同VLAN不通跑过来找我说“配了SVI也不行”我第一反应就是问ip routing开了吗十有八九是没开。SVI接口默认是shutdown状态必须执行no shutdown否则这个VLAN相当于没有网关。这是第二个高频翻车点。CORE的G0/1和G0/2用于连接下面的二层交换机配置成trunkG0/3直连路由器因为要配IP必须先用no switchport把这个物理口从二层口切换成三层路由口这个命令在真实IOS和Packet Tracer里都适用。最后加了一条默认路由ip route 0.0.0.0 0.0.0.0 10.0.0.2把去往外网的所有流量交给边界路由器处理。三层交换机内部的路由表里现在已经有了VLAN 10、VLAN 20两个直连网段再加上这条默认路由内网到外网的方向就通了。接下来配置DHCP让PC可以自动获取地址。这里我给VLAN 10和VLAN 20各建一个地址池。CORE(config)#ip dhcp excluded-address 192.168.10.1 192.168.10.200 CORE(config)#ip dhcp pool VLAN10_POOL CORE(dhcp-config)#network 192.168.10.0 255.255.255.0 CORE(dhcp-config)#default-router 192.168.10.254 CORE(dhcp-config)#dns-server 8.8.8.8 CORE(dhcp-config)#exit CORE(config)#ip dhcp excluded-address 192.168.20.1 192.168.20.200 CORE(config)#ip dhcp pool VLAN20_POOL CORE(dhcp-config)#network 192.168.20.0 255.255.255.0 CORE(dhcp-config)#default-router 192.168.20.254 CORE(dhcp-config)#dns-server 8.8.8.8 CORE(dhcp-config)#exitexcluded-address排除了192.168.10.1到192.168.10.200这段地址不参与DHCP动态分配。为什么要排除因为你保不齐会有打印机、服务器或者临时要配静态地址的设备把常用地址段预留出来能避免后续IP冲突的麻烦。DHCP下发网关就是default-router这一句对应每个VLAN的SVI地址这样PC拿到地址后就知道自己该找谁做网关。3.4 边界路由器的配置默认路由与NATEDGE的配置看似不多但每一条都不能省先看完整命令。Routerenable Router#configure terminal Router(config)#hostname EDGE EDGE(config)#interface gigabitEthernet 0/0 EDGE(config-if)#ip address 10.0.0.2 255.255.255.252 EDGE(config-if)#no shutdown EDGE(config-if)#exit EDGE(config)#interface gigabitEthernet 0/1 EDGE(config-if)#ip address 203.0.113.1 255.255.255.0 EDGE(config-if)#no shutdown EDGE(config-if)#exit EDGE(config)#ip route 192.168.10.0 255.255.255.0 10.0.0.1 EDGE(config)#ip route 192.168.20.0 255.255.255.0 10.0.0.1 EDGE(config)#access-list 100 permit ip 192.168.10.0 0.0.0.255 any EDGE(config)#access-list 100 permit ip 192.168.20.0 0.0.0.255 any EDGE(config)#ip nat inside source list 100 interface gigabitEthernet 0/1 overload EDGE(config)#interface gigabitEthernet 0/0 EDGE(config-if)#ip nat inside EDGE(config-if)#exit EDGE(config)#interface gigabitEthernet 0/1 EDGE(config-if)#ip nat outside EDGE(config-if)#exit内网口G0/0配的是10.0.0.2/30和核心交换机G0/3的10.0.0.1/30同在一个网段。外网口G0/1用203.0.113.1/24代表公网地址模拟运营商侧。两条静态路由是回程路由。很多人容易漏掉这一步想当然认为路由器知道内网网段。实际上路由器只主动认识自己直连的网段如果不告诉它192.168.10.0和192.168.20.0怎么走外网服务器的回包到了路由器之后就找不到路了直接丢弃。所以必须手动指回核心交换机。NAT部分用一条ACL定义了哪些内网地址允许被转换然后用ip nat inside source list 100 interface gigabitEthernet 0/1 overload这条命令把两个内网网段的源地址动态映射到外网口地址上。overload就是PAT让多个内网主机共享同一个公网IP上网。最后在接口上标记inside和outside路由器才知道从哪儿进来的流量需要被转换、从哪个口出去执行转换。这一步不配NAT一样不生效。3.5 PC和外网服务器的IP规划不需要DHCP的场景可以直接用静态地址我这里列一组标准的参数设备IP地址子网掩码网关PC1财务部192.168.10.10255.255.255.0192.168.10.254PC2财务部192.168.10.11255.255.255.0192.168.10.254PC3行政部192.168.20.10255.255.255.0192.168.20.254PC4行政部192.168.20.11255.255.255.0192.168.20.254外网Server203.0.113.10255.255.255.0203.0.113.1如果用DHCPPC侧把IP获取方式改成DHCP自动获取即可网关和DNS都会由CORE下发。外网服务器必须手动配IP和网关模拟器里可没有运营商给你自动分配。4. 连通性测试与故障排查实录4.1 测试路径怎么安排很多新手一上来就让PC互相pingping不通就开始乱试。我建议按从底向上的顺序逐层验证每步只看一件事这样排错效率最高。测试步骤测试动作预期结果验证的对象第1步查看SW1/CORE的show vlan brief端口正确归属VLANVLAN划分第2步查看SW1/CORE的show interfaces trunktrunk状态正常Trunk链路第3步PC1 ping PC2同VLAN互通二层转发第4步PC1 ping 192.168.20.254能ping通网关SVI三层接口第5步PC1 ping PC3跨VLAN互通VLAN间路由第6步PC1 ping 10.0.0.2能ping通路由器内网口核心到边界链路第7步PC1 ping 203.0.113.10能ping通外网服务器默认路由NAT每一步都建立在前一步通过的基础上。如果某一步失败先看这一步验证的是什么再看上一步有没有问题。4.2 常用排错命令与问题速查表我把排错过程中最常用的命令整理成一张速查表真机上和Packet Tracer里完全通用命令作用show vlan brief查看VLAN与端口归属show interfaces trunk查看trunk状态、native VLAN、允许的VLANshow ip interface brief查看所有三层接口的IP与up/down状态show ip route查看路由表确认直连和静态路由show mac address-table查看MAC地址表排查二层转发问题show ip nat translations查看NAT转换条目确认转换是否发生show access-lists 100查看ACL命中计数器判断流量是否被匹配debug ip icmp查看ICMP的处理过程生产环境慎用问题速查表也一并整理出来我踩过的坑基本都在这儿了现象可能原因处理方法同一VLAN的PC互相ping不通端口没划进正确VLAN、PC地址配置错误show vlan brief确认端口归属同一VLAN能通跨VLAN不通三层交换机没开ip routing、SVI地址错了或shutdown检查ip routingshow ip interface brief能ping通网关但ping不通外网核心或路由器缺默认路由/回程路由、NAT没配show ip route逐端核对show ip nat translations所有PC都上不了网ACL匹配错误、nat inside/outside标反show access-lists确认命中计数检查接口标记trunk链路频繁报错native VLAN两端不一致两端统一trunk native vlanshow interfaces trunk确认DHCP获取不到地址地址池配置错误或排除地址覆盖了网关show ip dhcp binding核对pool参数4.3 我实际碰到的三个排错场景第一个场景是跨VLAN不通。当时我配置一切看起来都正常SVI配了、地址没错、PC的网关也对但PC1怎么都ping不通PC3。排查了半天最后还是show run看了一眼发现CORE上压根没有ip routing这个命令。执行之后路由表里立刻多了直连网段跨VLAN测试马上通过。这个经历之后我形成了条件反射三层交换机只要跨VLAN不通先查ip routing再查SVI状态。第二个场景是PC能ping通内网网关但访问不了外网服务器。从PC到核心这条路径没问题问题出在路由器。我用show ip route看了EDGE的路由表发现它只有两条直连网段完全没有回程路由的概念。加上回程路由后外网方向还是不通再查发现NAT没配ACL虽然写了但接口上的ip nat inside/outside忘记标记。把这两步补齐后show ip nat translations里开始出现转换条目外网访问恢复。第三个场景是两台接入交换机之间区域性的VLAN信息异常PC跨设备互ping时通时不通。排查后确认是trunk两端的native VLAN不一致一端还是默认VLAN 1另一端改成了99。Cisco的日志一直在提示native vlan mismatch但如果不看日志、只看show interfaces trunk根本注意不到。把两端的native VLAN统一后问题消失。5. 踩坑经验与进阶建议5.1 这些坑我几乎每次都踩先说SVI忘了no shutdown。SVI接口默认是管理性关闭的配完IP后不敲no shutdown这个VLAN的网关就始终是down的状态。检查show ip interface brief时如果看到对应VLAN的状态是down/down第一反应就该回去看SVI开了没有。再说trunk链路喜欢“默认为VLAN 1”。如果你把native VLAN改成了99那所有参与到这台交换机trunk的对端设备都得跟着改。有一台漏改日志里就会持续报错帧也会被丢弃。在模拟器里这种问题用图形界面看可能不明显真机上基本在第一时间就会在控制台刷屏提醒你。DHCP地址池的排除地址也常出问题。有人把192.168.10.1到192.168.10.254全排除了DHCP根本没地址可分也有人把网关192.168.10.254纳入了动态分配范围PC自动获取到的“网关”可能是个已分配给他人的地址。配置excluded-address一定要给网关和关键服务器留好位置。最后网络排错时要敢于用show run把核心配置整个捋一遍。很多问题不是某个命令写错了而是命令逻辑不完整少了某一步。把配置从头到尾读一遍往往比逐条调试命令更快发现问题。5.2 如果换成华为或H3C设备怎么配这个实验用的是Cisco命令体系但如果你在公司环境里碰到的是华为或H3C设备不用慌思路完全一样只是命令措辞不同。这里我把几个核心配置做一下对比功能Cisco命令华为/H3C命令创建VLANvlan 10vlan 10 / vlan batch 10 20VLAN接口interface vlan 10interface vlanif 10开启三层路由ip routing默认支持vlanif即可路由端口配成trunkswitchport mode trunkport link-type trunktrunk放行VLANswitchport trunk allowed vlan allport trunk allow-pass vlan 10 20物理口当三层口用no switchportundo portswitch默认路由ip route 0.0.0.0 0.0.0.0 10.0.0.2ip route-static 0.0.0.0 0.0.0.0 10.0.0.2华为设备上对应SVI的叫法是VLANIF物理口当三层口用是undo portswitch。trunk放行VLAN要明确指定默认只放行VLAN 1。你只要理解了“这个配置在回答什么需求”换设备就只是查命令的事。5.3 这个实验还能怎么玩做完基础版之后我建议按下面几个方向继续扩展每一步都是在生产环境里真实存在的需求。第一把trunk链路升级成链路聚合。两台二层交换机和核心交换机之间各加一条链路用EtherChannel把两条物理链路绑成一个逻辑链路既增加带宽又提高冗余性。配置思路是接口下做channel-group然后对port-channel口配trunk。第二把静态路由换成OSPF。核心交换机和边界路由器之间跑OSPF让路由自动学习这样以后新增网段就不用手动加ip route了。配置量不大但能让你体会到动态路由协议在维护多网段时的价值。第三给VLAN间访问加ACL控制。比如财务部的VLAN 10只允许访问服务器的特定端口禁止访问行政部VLAN 20的某些网段。ACL写在三层交换机或边界路由器上都可以关键是搞清楚方向的匹配逻辑建议配合4.2节的show access-lists命令观察命中次数。第四做双核心冗余。再增加一台三层交换机两台核心之间跑VRRP或者堆叠边界也接两条链路让整个架构没有单点故障。这个更接近真实中型企业的组网形态但配置复杂度会明显上升建议先把单核心玩透再碰。最后讲一个我的个人习惯每次做完这类实验我都会把配置从头看一遍然后试着用口头的方式把这个过程讲清楚——一个数据包从PC1出发经过二层交换机、trunk、三层交换机SVI、路由器NAT到外网服务器的每一步它经过了什么设备、做了什么决策、地址变成了什么样。能流畅讲通就证明真的理解了讲不通赶紧回去翻原理。这个实验我后来带过不少人做过凡是能顺畅讲清楚数据流的人基本都不会被类似的网络故障难住。希望你也试试这个办法讲一遍给自己听。