H3C S6850交换机VLAN划分与三层路由配置实战指南
1. 项目概述与核心需求解析最近在帮一个朋友的公司做网络架构优化他们新上了一批H3C S6850系列交换机用来做核心和汇聚。需求很典型财务、研发、行政几个部门需要网络隔离但部门领导又要求某些特定的应用服务器能被所有部门访问。说白了就是在交换机上通过VLAN实现基础隔离再通过三层交换功能让特定VLAN之间能互相通信。这个场景几乎每个中型以上的企业网都会遇到但很多朋友在配置时对端口类型、VLAN划分和三层路由这几个环节的联动关系容易迷糊配置完了要么不通要么有安全隐患。今天我就以H3C S6850为例把端口、VLAN以及VLAN间路由的配置逻辑和实操细节彻底讲透你跟着做一遍以后遇到类似需求都能自己搞定。H3C S6850是一款盒式数据中心级交换机性能很强支持丰富的二层、三层功能。我们这次的核心目标就两个第一在交换机上创建多个VLAN并把不同的物理端口划入对应的VLAN实现二层隔离。第二启用交换机的三层路由功能通过配置VLAN接口VLAN-interface的IP地址让这些不同的VLAN之间能够按照我们的规划进行三层通信。听起来简单但里面的门道不少比如Access和Trunk端口到底该怎么选PVID端口默认VLAN在什么情况下会起作用VLAN接口的IP地址又该怎么规划这些细节决定了配置的成败。1.1 为什么选择S6850及VLAN间通信方案朋友公司选S6850看中的是它的高密度万兆端口和稳定的三层性能。对于VLAN间通信通常有三种实现方式单臂路由Router-on-a-Stick、三层交换机路由、以及使用独立的路由器。单臂路由性能有瓶颈独立路由器成本高且可能成为瓶颈所以在拥有三层交换机的场景下利用三层交换机本身的路由功能是实现VLAN间通信最高效、最经济的选择。S6850完全具备这个能力它允许我们为每个VLAN创建一个虚拟的三层接口VLAN-interface并为其配置IP地址这个地址就充当了该VLAN内所有主机的默认网关。交换机内部的高性能ASIC芯片会处理这些VLAN间的数据包转发速度远超软件路由。1.2 实验拓扑与地址规划为了清晰说明我设计了一个简单的实验拓扑。假设我们有一台S6850交换机它的GigabitEthernet 1/0/1端口连接财务部电脑GigabitEthernet 1/0/2端口连接研发部电脑GigabitEthernet 1/0/24端口连接一台公共的文件服务器。我们需要创建三个VLANVLAN 10财务部网段规划为 192.168.10.0/24。VLAN 20研发部网段规划为 192.168.20.0/24。VLAN 30服务器区网段规划为 192.168.30.0/24。最终目标是财务部VLAN 10和研发部VLAN 20默认不能互访但两者都可以访问服务器区VLAN 30的文件服务器。这就需要我们在完成二层VLAN划分后在交换机上配置VLAN接口的IP地址并利用访问控制列表ACL来实现精细的访问控制。下面我们就进入具体的配置环节。2. 核心配置思路与命令行操作模式在动手敲命令之前必须理清配置思路否则很容易把自己绕进去。整个配置流程可以概括为四个步骤基础配置 - 创建VLAN - 配置端口类型与VLAN成员 - 配置三层路由与安全策略。这个顺序很重要它符合网络设备从底层到上层的配置逻辑。H3C设备采用Comware V7操作系统配置界面是命令行CLI。对于不熟悉命令行的朋友记住几个最常用的模式切换命令就能应付大部分场景Sysname这是用户视图可以查看状态但不能进行配置。提示符是尖括号。system-view这个命令让你从用户视图进入系统视图。系统视图的提示符是[Sysname]在这里可以进行全局性的配置。在系统视图下输入像interface gigabitethernet 1/0/1这样的命令就进入了具体的端口视图[Sysname-GigabitEthernet1/0/1]在这里配置该端口的属性。在任何视图下输入quit可以返回上一级视图。输入return或CtrlZ可以直接从任何视图退回到用户视图。save命令在用户视图下执行用于保存当前配置到启动配置文件否则设备重启后配置会丢失。这是最关键也最容易忘记的一步。注意在实验或初次配置时我强烈建议你先在模拟器如H3C自家的HCL或第三方工具上操作或者在设备的非业务时间段进行。配置网络设备有风险错误的ACL或路由可能导致网络中断。3. 基础配置与VLAN创建首先我们需要登录交换机进行一些基础设置并创建所需的VLAN。3.1 设备登录与基础信息配置通过Console线或SSH登录到S6850后我们首先配置设备名称和管理IP方便后续识别和远程管理。# 从用户视图进入系统视图 Sysname system-view # 修改交换机主机名例如改为Core-SW [Sysname] sysname Core-SW # 创建一个用于管理的VLAN比如VLAN 99并进入其VLAN视图 [Core-SW] vlan 99 [Core-SW-vlan99] description Management-VLAN [Core-SW-vlan99] quit # 为VLAN 99配置一个三层接口地址作为管理IP [Core-SW] interface vlan-interface 99 [Core-SW-Vlan-interface99] ip address 192.168.99.1 24 [Core-SW-Vlan-interface99] quit # 假设你将连接管理电脑的端口如G1/0/48划入VLAN 99 [Core-SW] interface gigabitethernet 1/0/48 [Core-SW-GigabitEthernet1/0/48] port link-type access # 设置为Access端口 [Core-SW-GigabitEthernet1/0/48] port access vlan 99 # 加入VLAN 99 [Core-SW-GigabitEthernet1/0/48] quit这样你给电脑配置一个192.168.99.0/24网段的IP如192.168.99.100网关设为192.168.99.1就能通过Telnet或SSH远程管理这台交换机了比一直插着Console线方便得多。3.2 创建业务VLAN接下来创建我们规划好的三个业务VLAN。在H3C设备上可以批量创建。[Core-SW] vlan 10 [Core-SW-vlan10] description Finance-Dept [Core-SW-vlan10] quit [Core-SW] vlan 20 [Core-SW-vlan20] description RD-Dept [Core-SW-vlan20] quit [Core-SW] vlan 30 [Core-SW-vlan30] description Server-Farm [Core-SW-vlan30] quitdescription命令不是必须的但强烈建议加上。当你的网络中有几十个VLAN时清晰的描述能让你或你的同事在维护时一眼就知道这个VLAN是干什么的避免误操作。4. 端口类型详解与VLAN划分实操这是最容易出错的部分。交换机端口有两种最常用的类型Access和Trunk它们的区别必须搞清楚。Access端口通常用于连接终端设备如电脑、打印机、服务器当服务器网卡不支持VLAN Tag时。它只能属于一个VLAN。数据帧进出Access端口时不带VLAN标签Untagged。交换机收到来自Access端口的帧会打上该端口的PVID端口默认VLAN ID作为标签从交换机向Access端口发送帧时会剥离标签。Trunk端口通常用于连接其他交换机、路由器或支持VLAN Tag的服务器。它可以承载多个VLAN的数据。数据帧进出Trunk端口时通常携带VLAN标签Tagged。通过命令可以指定哪些VLAN的数据可以通过这个Trunk端口。PVIDPort VLAN ID每个端口都有一个PVID默认为VLAN 1。对于Access端口PVID就是它所属的VLAN。对于Trunk端口PVID主要用于处理接收到的不带标签的帧比如从一台不支持VLAN的老式交换机发来的数据交换机会给这些帧打上PVID的标签。4.1 配置Access端口连接终端根据我们的规划G1/0/1和G1/0/2分别连接财务部和研发部的电脑它们应该配置为Access端口。# 配置财务部端口 G1/0/1 [Core-SW] interface gigabitethernet 1/0/1 [Core-SW-GigabitEthernet1/0/1] description To-Finance-PC [Core-SW-GigabitEthernet1/0/1] port link-type access # 设置为Access类型 [Core-SW-GigabitEthernet1/0/1] port access vlan 10 # 划入VLAN 10 [Core-SW-GigabitEthernet1/0/1] quit # 配置研发部端口 G1/0/2 [Core-SW] interface gigabitethernet 1/0/2 [Core-SW-GigabitEthernet1/0/2] description To-RD-PC [Core-SW-GigabitEthernet1/0/2] port link-type access [Core-SW-GigabitEthernet1/0/2] port access vlan 20 # 划入VLAN 20 [Core-SW-GigabitEthernet1/0/2] quit配置完成后接在G1/0/1的电脑就处于VLAN 10的二层广播域内接在G1/0/2的电脑处于VLAN 20内它们之间在二层是隔离的。4.2 配置Trunk端口连接服务器或多层交换机我们的G1/0/24连接文件服务器。如果这台服务器只有一张网卡但需要被多个VLAN访问那么服务器网卡需要支持VLAN Trunk比如在服务器操作系统里配置VLAN子接口交换机的这个端口就需要配置为Trunk。如果服务器网卡不支持且只属于一个VLAN那么端口应该配成Access。这里我们假设服务器网卡支持Trunk且我们将其管理流量放在VLAN 30。# 配置连接服务器的端口 G1/0/24 [Core-SW] interface gigabitethernet 1/0/24 [Core-SW-GigabitEthernet1/0/24] description To-File-Server [Core-SW-GigabitEthernet1/0/24] port link-type trunk # 设置为Trunk类型 # 允许VLAN 10, 20, 30的数据帧带标签通过此端口 [Core-SW-GigabitEthernet1/0/24] port trunk permit vlan 10 20 30 # 设置该端口的PVID为VLAN 30。这意味着从该端口收到的无标签帧会被归入VLAN 30。 [Core-SW-GigabitEthernet1/0/24] port trunk pvid vlan 30 [Core-SW-GigabitEthernet1/0/24] quitport trunk permit vlan命令是关键它定义了哪些VLAN的数据可以通过这个Trunk端口。port trunk pvid vlan 30的配置确保了即使服务器发送了不带标签的帧比如某些管理报文交换机也能正确处理将其关联到VLAN 30。5. 实现VLAN间通信三层路由配置完成二层隔离后VLAN 10和VLAN 20的电脑之间以及它们与VLAN 30的服务器之间是无法通过IP通信的因为它们在二层是隔离的广播域。要实现IP通信必须借助三层网络层路由功能。5.1 配置VLAN接口SVI作为网关我们需要为每个VLAN创建一个虚拟的三层接口并配置IP地址这个地址将作为该VLAN内所有主机的默认网关。# 配置VLAN 10的接口及网关地址 [Core-SW] interface vlan-interface 10 [Core-SW-Vlan-interface10] description Gateway-for-VLAN10 [Core-SW-Vlan-interface10] ip address 192.168.10.1 24 [Core-SW-Vlan-interface10] quit # 配置VLAN 20的接口及网关地址 [Core-SW] interface vlan-interface 20 [Core-SW-Vlan-interface20] description Gateway-for-VLAN20 [Core-SW-Vlan-interface20] ip address 192.168.20.1 24 [Core-SW-Vlan-interface20] quit # 配置VLAN 30的接口及网关地址 [Core-SW] interface vlan-interface 30 [Core-SW-Vlan-interface30] description Gateway-for-VLAN30 [Core-SW-Vlan-interface30] ip address 192.168.30.1 24 [Core-SW-Vlan-interface30] quit配置完成后交换机内部的路由表会自动生成三条直连路由192.168.10.0/24 指向 Vlan-interface10192.168.20.0/24 指向 Vlan-interface20192.168.30.0/24 指向 Vlan-interface30此时如果你给财务部的电脑配置IP为192.168.10.100/24网关设为192.168.10.1给研发部电脑配置IP为192.168.20.100/24网关设为192.168.20.1给服务器配置IP为192.168.30.100/24网关设为192.168.30.1。那么理论上所有设备之间都可以互相ping通了因为三层交换机已经为它们提供了路由。5.2 配置访问控制列表ACL实现安全策略但是我们的需求是财务和研发不能互访。这就需要用到访问控制列表ACL来过滤流量。我们使用基本的ACL2000-2999来匹配源IP地址。# 创建一个高级别数字更大优先级更低的ACL 3000用于定义复杂的访问规则 [Core-SW] acl advanced 3000 name Deny-Between-Depts # 规则1拒绝VLAN 10访问VLAN 20的IP段 [Core-SW-acl-ipv4-adv-3000] rule deny ip source 192.168.10.0 0.0.0.255 destination 192.168.20.0 0.0.0.255 # 规则2拒绝VLAN 20访问VLAN 10的IP段 双向拒绝 [Core-SW-acl-ipv4-adv-3000] rule deny ip source 192.168.20.0 0.0.0.255 destination 192.168.10.0 0.0.0.255 # 规则3允许所有其他IP流量 ACL默认隐含拒绝所有所以必须有一条允许规则 [Core-SW-acl-ipv4-adv-3000] rule permit ip [Core-SW-acl-ipv4-adv-3000] quit创建好ACL后我们需要将它应用到流量进入交换机的入口方向inbound。应该在哪个接口应用呢因为我们的过滤是针对VLAN间的流量所以最有效的办法是将ACL应用在VLAN接口的入方向。但H3C Comware V7通常将ACL应用在物理端口或全局。更常见的做法是应用在VLAN虚接口的入方向但需要注意某些版本可能需要在物理端口或通过QoS策略来调用。这里演示一种在物理端口入方向应用的方法假设我们控制财务和研发的端口# 在财务部端口G1/0/1的入方向应用ACL 3000 [Core-SW] interface gigabitethernet 1/0/1 [Core-SW-GigabitEthernet1/0/1] packet-filter 3000 inbound [Core-SW-GigabitEthernet1/0/1] quit # 在研发部端口G1/0/2的入方向应用ACL 3000 [Core-SW] interface gigabitethernet 1/0/2 [Core-SW-GigabitEthernet1/0/2] packet-filter 3000 inbound [Core-SW-GigabitEthernet1/0/2] quit这样从财务部电脑发出的、目的地是研发部网段的IP包在进入G1/0/1端口时就会被ACL 3000的第一条规则拒绝。反之亦然。而它们访问服务器VLAN 30的流量则会匹配第三条permit ip规则被允许。6. 配置验证与故障排查实录配置完成后千万不要以为就万事大吉了必须进行严格的验证。网络排错需要遵循从底层到上层、从本地到远端的逻辑。6.1 基础状态检查命令首先检查端口物理状态和VLAN划分是否正确。# 查看所有端口简要状态关注“Status”和“VLAN”列 Core-SW display interface brief # 查看特定端口如G1/0/1的详细VLAN信息 Core-SW display interface gigabitethernet 1/0/1 # 在输出中重点关注 # “Current state: UP” 端口物理状态为UP。 # “PVID: 10” 端口默认VLAN是否正确。 # “Port link-type: ACCESS” 端口类型是否正确。 # “Tagged VLAN ID: none” (对于Access端口应为none)。 # “Untagged VLAN ID: 10” (对于Access端口应显示其所属VLAN)。 # 查看特定端口如G1/0/24的详细VLAN信息 Core-SW display interface gigabitethernet 1/0/24 # 对于Trunk端口关注 # “Port link-type: TRUNK” # “PVID: 30” # “Port permit VLAN ID: 10,20,30” 允许通过的VLAN列表。其次检查VLAN接口状态和IP地址。# 查看所有VLAN接口的IP配置和状态 Core-SW display ip interface brief # 确认Vlan-interface10, 20, 30的“Physical”状态为UP“Protocol”状态为UP且IP地址配置正确。 # 查看交换机的路由表 Core-SW display ip routing-table # 你应该能看到三条直连Direct路由分别指向192.168.10.0/24, 192.168.20.0/24, 192.168.30.0/24并且出接口Interface分别是对应的Vlan-interface。6.2 连通性测试与ACL验证在客户端进行测试。财务部电脑(192.168.10.100)ping 192.168.10.1- 应该通。这是测试到本地网关的连通性。ping 192.168.30.100- 应该通。这是测试到服务器的跨VLAN通信。ping 192.168.20.100-应该不通。这是测试ACL是否生效阻止了到研发部的访问。研发部电脑(192.168.20.100)进行类似的测试ping自己的网关和服务器应该通ping财务部电脑应该不通。服务器(192.168.30.100)ping财务和研发的电脑应该都通。因为我们的ACL只应用在了G1/0/1和G1/0/2的入方向从服务器发出的流量没有限制。6.3 常见问题排查技巧在实际操作中你可能会遇到以下问题这里给出排查思路问题1客户端ping不通自己的网关例如财务部电脑ping不通192.168.10.1。排查思路检查客户端配置IP地址、子网掩码、默认网关是否配置正确防火墙是否关闭检查交换机端口使用display interface gigabitethernet 1/0/1查看端口物理状态是否为UP是否被shutdown了检查VLAN划分使用display vlan 10查看VLAN 10里是否有端口G1/0/1确认端口模式是access且access vlan是10。检查VLAN接口使用display interface vlan-interface 10查看接口状态是否为UPIP地址是否正确有时VLAN接口需要undo shutdown命令手动开启。问题2跨VLAN ping不通例如财务部能ping通网关但ping不通服务器192.168.30.100。排查思路检查目标服务器服务器IP和网关配置是否正确服务器防火墙是否允许ICMP回显请求检查路由表在交换机上display ip routing-table查看是否有到达192.168.30.0/24的路由应该是直连路由。检查Trunk端口如果服务器连接在Trunk端口G1/0/24使用display interface gigabitethernet 1/0/24确认port trunk permit vlan列表里是否包含了VLAN 10和VLAN 30服务器的网卡是否正确配置了VLAN Tag检查ACL使用display acl 3000查看ACL规则配置是否正确。使用display packet-filter statistics interface gigabitethernet 1/0/1 inbound查看在财务部端口入方向ACL 3000的规则匹配计数。如果发现访问服务器的流量被错误地拒绝了可能是ACL规则顺序或范围有误。问题3ACL配置了但不生效。排查思路确认应用方向packet-filter应用在了正确的端口和正确的方向inbound吗检查规则顺序ACL规则是按顺序匹配的。我们的permit ip规则放在了最后确保前面的拒绝规则先被匹配。如果顺序反了所有流量都会被第一条permit ip放行。检查规则地址确认source和destination的IP地址和反掩码wildcard mask写对了。0.0.0.255对应一个/24的网段。清除统计计数后测试使用reset acl counter all清除ACL计数器然后重新进行ping测试再看计数器变化可以直观看到流量匹配了哪条规则。7. 配置备份与进阶考量配置全部验证无误后最重要的一步就是保存配置。Core-SW save系统会提示你输入保存的文件名直接回车用默认的startup.cfg即可。然后会问你是否确定保存输入Y。一定要看到类似“Save configuration successfully”的提示才算完成。对于更复杂的生产环境你还需要考虑以下几点生成树协议STP/RSTP/MSTP如果网络中有环路必须配置生成树协议防止广播风暴。S6850默认启用RSTP但对于多VLAN环境更推荐使用MSTP多实例生成树可以将不同VLAN的流量映射到不同的生成树实例上实现负载分担。端口安全可以在接入端口上配置port-security限制端口学习的MAC地址数量或绑定特定MAC地址防止非法设备接入。DHCP服务可以在S6850上启用DHCP服务器功能为各个VLAN自动分配IP地址避免手动配置的麻烦和错误。需要为每个VLAN接口配置DHCP地址池。链路聚合Link-Aggregation如果交换机之间有多条链路或者连接服务器有双网卡可以配置链路聚合如使用静态聚合link-aggregation或动态聚合lacp来增加带宽和提供冗余。SNMP网管配置SNMP社区字和陷阱trap服务器地址方便将交换机纳入统一的网络管理平台进行监控。配置H3C交换机实现VLAN和路由关键在于理解二层端口类型、VLAN标记与三层路由转发之间的关系。理清逻辑按步骤操作仔细验证大部分问题都能迎刃而解。这次给朋友公司配置完网络隔离和访问需求都满足了运行也很稳定。最大的体会就是description命令和配置保存save这两个最简单的操作反而是运维中最能提效和避免事故的好习惯。下次如果你需要配置更复杂的策略路由或者VRF我们再来细聊。