VLAN综合实验:从二层隔离到三层路由的企业网络实战
1. 项目概述为什么我们需要一个“VLAN综合实验”如果你刚接触网络可能会觉得交换机插上线就能通配置几个IP地址就能互相访问这网络不就搞定了吗但当你管理的设备从几台变成几十台、上百台广播风暴、安全隔离、管理混乱这些问题就会接踵而至。这时候VLAN虚拟局域网技术就成了网络工程师手中的“瑞士军刀”。它不增加任何硬件成本仅仅通过逻辑配置就能将一个物理网络切割成多个互不干扰的虚拟网络。这个“VLAN综合实验”项目就是模拟一个真实的中小型企业或园区网络场景将VLAN相关的核心与进阶技术点串联起来进行一次从规划到实施的全流程演练。它绝不仅仅是敲几条vlan batch命令那么简单。我们会涉及到最基础的VLAN划分与端口类型配置解决不同VLAN间互访的三层交换与VLAN间路由探讨如何让终端自动获取地址的基于VLAN的DHCP部署并引入链路聚合来提升可靠性与带宽最后用VRRP实现网关的冗余备份。这一套组合拳打下来你构建的就是一个具备高可用性、易管理性和安全性的现代网络基础架构。我见过很多朋友能背出VLAN的概念但一到实际组网就手忙脚乱端口类型配错、DHCP地址池绑错VLAN、VRRP状态异常等问题层出不穷。这个综合实验的目的就是带你跨过“知道”和“会做”之间的鸿沟通过一次集中的、有逻辑的实操让你深刻理解每一项技术“为什么”要在这里用以及它们之间是如何协同工作的。我们会使用华为eNSP模拟器进行所有配置思路和命令同样适用于锐捷、H3C等主流厂商设备。2. 实验拓扑设计与核心需求解析在动手敲命令之前好的设计是成功的一半。我们需要先明确这个网络要服务谁有什么要求然后才能画出拓扑图规划IP地址和VLAN。2.1 业务场景与需求定义假设我们为一个公司设计网络该公司拥有以下部门研发部VLAN 10人员较多对网络稳定性和内部数据传输速度要求高且需要与服务器区频繁通信。市场部VLAN 20经常需要访问互联网和对外展示资源。财务部VLAN 30数据敏感需要严格的访问控制原则上只允许访问特定的服务器且与其他部门隔离。服务器区VLAN 100部署着内部OA、文件服务器等。管理区VLAN 99用于网络设备交换机、路由器的管理确保管理流量与业务流量分离。核心需求如下隔离与通信三个部门之间默认不能互访广播隔离但都能访问服务器区VLAN 100。财务部VLAN 30访问需受控。自动寻址所有终端用户PC应能自动获取IP地址、网关和DNS。可靠上行接入交换机连接到核心交换机的链路需要冗余和负载均衡避免单点故障。网关冗余每个VLAN的网关不能是单点需要一台备份设备在主网关故障时自动切换。设备可管理所有网络设备应可通过一个统一的管理IP地址进行远程管理如Telnet。2.2 拓扑结构与地址规划基于以上需求我们设计一个典型的三层架构接入层-汇聚层-核心层。在中小型网络中汇聚层和核心层功能常由一台高性能三层交换机承担。拓扑设备清单核心/汇聚交换机一台三层交换机如S5700承担VLAN间路由、DHCP服务器、VRRP主设备、链路聚合终结等角色。接入交换机两台二层交换机如S3700分别连接不同部门的用户。终端四台PC分别模拟研发部、市场部、财务部用户和一台服务器。出口路由器一台路由器如AR2220模拟互联网出口并为内网用户提供NAT和外部DNS服务。IP与VLAN规划表VLAN ID部门/用途网段网关IP备注10研发部192.168.10.0/24192.168.10.254VRRP虚拟网关192.168.10.120市场部192.168.20.0/24192.168.20.254VRRP虚拟网关192.168.20.130财务部192.168.30.0/24192.168.30.254VRRP虚拟网关192.168.30.1100服务器区192.168.100.0/24192.168.100.254服务器使用静态IP99设备管理192.168.99.0/24192.168.99.254设备Loopback口或VLANIF地址链路规划接入交换机与核心交换机之间配置链路聚合Eth-Trunk增加带宽和可靠性。核心交换机与出口路由器之间配置单臂路由或三层接口互联。注意规划是工程的灵魂。务必在实验前将这张表写好后续所有配置都严格参照此规划进行可以避免绝大多数IP地址冲突、VLAN遗漏等低级错误。3. 基础构建VLAN划分、端口类型与链路聚合万丈高楼平地起我们先从最底层的二层连接和广播域隔离开始配置。3.1 创建VLAN与端口划分首先在核心交换机和两台接入交换机上创建所需的VLAN。虽然接入交换机是二层设备但为了后续管理也需要创建VLAN。# 在核心交换机上批量创建VLAN HUAWEI system-view [HUAWEI] sysname Core-SW [Core-SW] vlan batch 10 20 30 100 99接下来是关键一步确定交换机各个端口的类型和所属VLAN。这里涉及到Access、Trunk和Hybrid三种端口类型的概念。在这个实验中我们使用最经典和通用的模式Access端口用于连接终端设备PC、服务器、打印机。这种端口只属于一个VLAN它接收到的数据帧不带VLAN标签Untagged发出时也不带标签。交换机通过端口的PVID来识别接收到的无标签帧属于哪个VLAN。Trunk端口用于连接交换机之间。这种端口允许多个VLAN的数据帧通过并且帧在链路上传输时是带有VLAN标签Tagged的。这保证了VLAN信息可以跨交换机传递。配置接入交换机以SW1为例连接研发部和市场部# 进入连接PC的接口配置为Access并划分到相应VLAN [SW1] interface GigabitEthernet 0/0/1 [SW1-GigabitEthernet0/0/1] port link-type access [SW1-GigabitEthernet0/0/1] port default vlan 10 # 此命令会自动设置端口的PVID为10 [SW1] interface GigabitEthernet 0/0/2 [SW1-GigabitEthernet0/0/2] port link-type access [SW1-GigabitEthernet0/0/2] port default vlan 20配置核心交换机与接入交换机的互联端口为Trunk# 在核心交换机上配置连接SW1的端口 [Core-SW] interface GigabitEthernet 0/0/1 [Core-SW-GigabitEthernet0/0/1] port link-type trunk # 允许VLAN 10, 20, 30, 100, 99通过。通常允许所有VLAN通过可以使用 port trunk allow-pass vlan all但显式指定更清晰。 [Core-SW-GigabitEthernet0/0/1] port trunk allow-pass vlan 10 20 30 100 99在接入交换机SW1上也需要将上联口配置为Trunk并允许必要的VLAN通过。实操心得PVID与VLAN ID的区别这是新手最容易混淆的点。VLAN ID是数据帧的“身份证”标识这个帧属于哪个VLAN。PVID是端口的“默认户口”当一个端口收到一个不带标签Untagged的帧时交换机会给这个帧打上等于该端口PVID的VLAN标签。对于Access端口port default vlan X命令同时完成了“设置PVIDX”和“允许VLAN X的数据通过”两件事。对于Trunk端口PVID通常用于处理Native VLAN本征VLAN默认为VLAN 1本征VLAN的帧在Trunk链路上传输时不打标签。在实际项目中为了安全通常会修改Trunk口的Native VLAN为一个不使用的VLAN ID。3.2 配置链路聚合Eth-Trunk为了提高接入层到汇聚层的可靠性并增加带宽我们将两台交换机之间的多条物理链路捆绑成一条逻辑链路。配置核心交换机# 创建Eth-Trunk逻辑接口 [Core-SW] interface Eth-Trunk 1 [Core-SW-Eth-Trunk1] port link-type trunk [Core-SW-Eth-Trunk1] port trunk allow-pass vlan 10 20 30 100 99 [Core-SW-Eth-Trunk1] quit # 将物理成员接口加入Eth-Trunk [Core-SW] interface GigabitEthernet 0/0/23 [Core-SW-GigabitEthernet0/0/23] eth-trunk 1 [Core-SW-GigabitEthernet0/0/23] quit [Core-SW] interface GigabitEthernet 0/0/24 [Core-SW-GigabitEthernet0/0/24] eth-trunk 1在接入交换机SW1上做类似配置。链路聚合的模式默认为lacp-static静态LACP这是一种标准的链路聚合控制协议能够检测成员链路故障并实现流量切换。注意事项确保链路两端的聚合模式一致通常是静态LACP并且物理成员接口的数量、速率、双工模式相同。捆绑后逻辑接口的配置如Trunk允许的VLAN会覆盖物理接口的配置因此应在Eth-Trunk接口上配置而不是在物理接口上。完成这一步后同一个VLAN内的设备例如两台同在VLAN 10的PC应该已经可以互相ping通了因为它们处于同一个广播域内。但不同VLAN间的设备还无法通信这就需要三层技术来介入。4. 核心功能实现三层交换、DHCP与VRRP二层隔离做好了现在需要让隔离的“岛屿”之间能够有控制地互通并为“岛民”提供自动化的生活服务IP地址。4.1 配置VLANIF接口与三层交换三层交换机之所以能实现VLAN间路由是因为它可以为每个VLAN创建一个虚拟的三层接口称为VLANIF接口。这个接口拥有IP地址充当该VLAN内所有设备的网关。在核心交换机上配置# 创建并配置VLANIF接口作为各VLAN的网关 [Core-SW] interface Vlanif 10 [Core-SW-Vlanif10] ip address 192.168.10.254 24 # 这是物理网关地址 [Core-SV-Vlanif10] quit [Core-SW] interface Vlanif 20 [Core-SW-Vlanif20] ip address 192.168.20.254 24 [Core-SW-Vlanif20] quit [Core-SW] interface Vlanif 30 [Core-SW-Vlanif30] ip address 192.168.30.254 24 [Core-SW-Vlanif30] quit [Core-SW] interface Vlanif 100 [Core-SW-Vlanif100] ip address 192.168.100.254 24 [Core-SW-Vlanif100] quit # 配置管理VLAN [Core-SW] interface Vlanif 99 [Core-SW-Vlanif99] ip address 192.168.99.1 24配置完成后核心交换机就已经拥有了路由表。你可以使用display ip routing-table命令查看会发现直连路由C中包含了192.168.10.0/24, 192.168.20.0/24等网段。此时不同VLAN的PC如果手动配置了正确的IP地址和网关对应VLANIF的IP理论上已经可以互相ping通了。4.2 部署基于VLAN的DHCP服务手动配IP太低效我们让核心交换机兼任DHCP服务器为每个VLAN分配地址。# 启用DHCP服务 [Core-SW] dhcp enable # 为VLAN 10创建地址池 [Core-SW] ip pool vlan10 [Core-SW-ip-pool-vlan10] network 192.168.10.0 mask 255.255.255.0 [Core-SW-ip-pool-vlan10] gateway-list 192.168.10.254 [Core-SW-ip-pool-vlan10] dns-list 8.8.8.8 # 这里先用公共DNS实际应配内部或运营商DNS [Core-SW-ip-pool-vlan10] excluded-ip-address 192.168.10.254 # 排除网关地址 [Core-SW-ip-pool-vlan10] lease day 3 # 设置租期 [Core-SW-ip-pool-vlan10] quit # 在VLANIF 10接口上启用DHCP全局地址池模式 [Core-SW] interface Vlanif 10 [Core-SW-Vlanif10] dhcp select global [Core-SW-Vlanif10] quit为VLAN 20, 30重复以上步骤创建对应的地址池并在其VLANIF上启用dhcp select global。对于服务器区VLAN 100和管理地址我们通常使用静态配置因此不需要DHCP。踩坑记录dhcp select global和dhcp select interface是两种不同模式。interface模式更简单地址池基于接口网段自动生成但不够灵活。global模式功能更强可以跨网段分配、指定DNS等是生产环境更常用的方式。务必确保地址池的network网段与VLANIF接口的IP地址处于同一网段。4.3 配置VRRP实现网关冗余目前每个VLAN只有一个网关核心交换机的VLANIF IP如果核心交换机故障整个网络就瘫痪了。为了实现网关冗余我们需要引入另一台三层设备可以是另一台三层交换机或路由器并配置VRRP虚拟路由器冗余协议。假设我们新增一台备份核心交换机Backup-SW其VLANIF 10的IP为192.168.10.253/24。两台交换机之间通过Trunk链路连接允许所有必要VLAN通过。在主核心交换机Core-SW上配置VRRP[Core-SW] interface Vlanif 10 [Core-SW-Vlanif10] vrrp vrid 10 virtual-ip 192.168.10.1 # 创建VRID为10的备份组虚拟网关IP是.1 [Core-SW-Vlanif10] vrrp vrid 10 priority 120 # 设置优先级为120默认100值越大越优先成为Master [Core-SW-Vlanif10] vrrp vrid 10 preempt-mode timer delay 20 # 开启抢占并延迟20秒避免网络震荡 [Core-SW-Vlanif10] quit在备份核心交换机Backup-SW上配置VRRP[Backup-SW] interface Vlanif 10 [Backup-SW-Vlanif10] ip address 192.168.10.253 24 # 真实IP [Backup-SW-Vlanif10] vrrp vrid 10 virtual-ip 192.168.10.1 # 相同的VRID和虚拟IP # 不配置priority默认为100低于主设备的120所以它是Backup状态 [Backup-SW-Vlanif10] quit为VLAN 20, 30的VLANIF接口重复配置VRRP使用不同的VRID如20, 30和对应的虚拟IP192.168.20.1, 192.168.30.1。配置完成后在PC上网关应设置为虚拟IP192.168.10.1。使用display vrrp brief命令可以查看各备份组的状态Core-SW在VLAN 10的VRID 10中应为MasterBackup-SW应为Backup。如果断开Core-SW的上行链路或关闭其VLANIF 10接口Backup-SW会经过短暂延迟后切换为MasterPC的网络中断时间很短通常小于3秒实现了高可用。5. 高级整合与策略控制基础连通性和冗余实现后我们需要考虑更精细的控制和对外连接。5.1 配置Telnet远程管理为了方便管理我们在核心交换机上配置Telnet服务并指定通过管理VLANVLAN 99来访问。# 配置认证方式为AAA [Core-SW] user-interface vty 0 4 # 进入VTY用户界面0-4共5个会话 [Core-SW-ui-vty0-4] authentication-mode aaa [Core-SW-ui-vty0-4] protocol inbound telnet # 指定协议为Telnet也可支持SSH [Core-SW-ui-vty0-4] quit # 在AAA视图下创建管理用户 [Core-SW] aaa [Core-SW-aaa] local-user admin password cipher Admin123 # 创建用户admin密码加密存储 [Core-SW-aaa] local-user admin privilege level 15 # 赋予最高权限等级 [Core-SW-aaa] local-user admin service-type telnet # 指定服务类型为Telnet [Core-SW-aaa] quit然后从属于VLAN 99的管理PCTelnet到核心交换机的管理地址192.168.99.1使用admin/Admin123即可登录。5.2 配置访问控制与路由根据需求财务部VLAN 30只能访问服务器区VLAN 100不能访问其他部门。这需要通过访问控制列表ACL来实现。# 创建高级ACL 3000定义规则 [Core-SW] acl 3000 [Core-SW-acl-adv-3000] rule 5 deny ip source 192.168.30.0 0.0.0.255 destination 192.168.10.0 0.0.0.255 # 禁止访问研发部 [Core-SW-acl-adv-3000] rule 10 deny ip source 192.168.30.0 0.0.0.255 destination 192.168.20.0 0.0.0.255 # 禁止访问市场部 [Core-SW-acl-adv-3000] rule 100 permit ip # 允许其他所有流量包括访问服务器区 [Core-SW-acl-adv-3000] quit # 在VLANIF 30的入方向调用ACL [Core-SW] interface Vlanif 30 [Core-SW-Vlanif30] traffic-filter inbound acl 3000 [Core-SW-Vlanif30] quit这样从财务部网段发出的、目的地是研发部或市场部网段的IP报文在进入网关VLANIF 30时就会被丢弃。最后为了让内网能够访问互联网需要在核心交换机上配置一条默认路由指向出口路由器并在出口路由器上配置NAT和指向内网的回程路由。这部分涉及路由协议如静态路由、OSPF和NAT配置是另一个重要主题在本实验中可以先简化为一跳静态路由。6. 连通性测试与故障排查实录配置完成后必须进行系统性的测试。我习惯按照以下顺序从底层到上层进行验证二层连通性测试在同一VLAN内的两台PC间互ping。如果不通检查物理链路状态display interface brief端口VLAN成员关系display port vlanAccess/Trunk配置是否正确display current-configuration interface [接口号]链路聚合状态display eth-trunk [ID]三层网关测试PC ping自己所属VLAN的网关虚拟IP 192.168.10.1。如果不通检查PC是否正确获取到IPipconfig /all网关是否指向虚拟IP。核心交换机上VLANIF接口的IP配置和物理/链路聚合口是否允许该VLAN通过。VRRP状态display vrrp brief确认虚拟IP是否活跃。VLAN间路由测试研发部PC ping市场部PC。如果不通检查核心交换机路由表display ip routing-table确认有到达目的网段的路由直连路由应存在。双方PC的网关配置是否正确。中间所有Trunk链路是否都允许这两个VLAN通过。DHCP服务测试将PC设为自动获取IP。如果获取不到检查核心交换机DHCP服务是否全局启用display dhcp server statistics。VLANIF接口是否配置了dhcp select global。地址池配置是否正确特别是网段和网关。可以使用display ip pool name [pool-name] used查看地址池分配情况。ACL策略测试从财务部PC ping研发部PC和服务器。结果应该是前者不通后者通。如果不符合预期检查ACL规则顺序和内容display acl 3000。ACL是否在正确的接口和方向inbound/outbound上应用display traffic-filter applied-record。常见问题速查表现象可能原因排查命令同一VLAN内PC无法互访1. 端口不是Access或PVID错误2. 链路故障3. PC防火墙阻挡display vlan [id]display interface [接口]不同VLAN间PC无法互访1. 三层交换机VLANIF未配置IP2. Trunk链路未放行相关VLAN3. PC网关配置错误display ip interface briefdisplay port vlandisplay ip routing-tablePC无法获取DHCP地址1. DHCP服务未开启2. VLANIF未绑定全局地址池3. 地址池网段与网关不匹配display dhcp server statisticsdisplay current-configuration interface vlanif [id]display ip pool name [pool-name]VRRP虚拟IP无法ping通1. VRRP备份组未建立2. 物理接口或VLANIF down3. 优先级配置错误display vrrp briefdisplay interface vlanif [id]Telnet连接失败1. 管理VLAN路由不通2. AAA用户未创建或服务类型错误3. VTY界面未配置协议或认证ping [管理地址]display local-userdisplay current-configuration这个综合实验就像一次网络工程的“全身体检”把分散的知识点串联成一个有机的整体。配置过程中最忌讳“想当然”一定要养成查看当前配置和状态的习惯。每配置完一个模块就立刻进行验证测试把问题隔离在最小范围。当你能够独立完成这样一个实验并对每一个配置项背后的原理和可能产生的影响了然于胸时你才算真正掌握了企业级网络搭建的基础核心。网络技术迭代很快但这些经典的基础架构思想和排错方法论会让你在面对更复杂的SDN、云网络时依然能找到问题的根源。