ARTICLE DETAIL

资讯详情

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

华为二层+三层组网实战:VLAN、SVI与静态路由配置详解

华为二层+三层组网实战:VLAN、SVI与静态路由配置详解 前两天把一套企业级二层三层组网实验从头到尾跑了一遍用的全是华为设备核心一台三层交换机下挂二层交换机出口再接路由器。很多人觉得这个场景有点基础但实际搭下来你会发现配置量不大真正容易翻车的反而是VLAN放行、网关SVI、回程路由这些“每一层在干什么”的底层逻辑。这次我把过程完整记录下来从链路层到路由层从配置命令到排障套路一次性说透。这套实验适合两类人看一类是刚接触企业网络、想搞明白三层交换机在组网里到底是干嘛的初学者另一类是平时主要做家用路由器、想往企业级网络转的从业者。看完你能直接照着搭一个能用的二层三层混合组网并且知道配置完怎么验证、出了问题怎么定位。1. 实验背景与组网思路为什么企业网络离不开三层交换机先说结论中小企业的办公网天生就是“二层接入 三层核心”的结构。终端PC属于某个VLAN接入交换机只做二层转发核心交换机负责所有VLAN之间的通信也承担去往外网的出口职责。在这个结构里三层交换机不是配角它才是整张网的“大脑”。1.1 实验拓扑与VLAN规划我在eNSP里搭了这样一张网核心交换机模拟华为S5700系列三层交换机下接两台二层接入交换机上联一台出口路由器。接入交换机A接办公区PC规划在VLAN 10。接入交换机B接研发区PC规划在VLAN 20。出口路由器一侧接核心交换机另一侧模拟连接互联网。核心与路由器之间的互联段放在VLAN 100。地址规划如下表VLAN用途网段网关核心SVIVLAN 10办公区终端192.168.10.0/24192.168.10.254VLAN 20研发区终端192.168.20.0/24192.168.20.254VLAN 100核心到出口路由器互联192.168.100.0/24192.168.100.1出口路由器两个接口G0/0/0接核心地址192.168.100.254G0/0/1模拟外网侧地址203.0.113.1/24。外网再挂一台测试PC模拟互联网上的一台服务器地址203.0.113.2/24。为什么要把网关放在三层交换机上而不是像家用网络那样放在路由器上原因很直接终端跨VLAN访问的流量如果每次都要绕到出口路由器再回来性能差、延迟高而且路由器接口数量有限根本承担不了大量终端的网关角色。三层交换机有专门的硬件转发芯片VLAN间路由用硬件处理速度和二层转发几乎没差别。把网关放在核心交换机上内网互访流量根本不需要出核心只在核心内部就被转走了。1.2 三层交换机在组网中的定位很多新手会混淆一个概念三层交换机到底是“交换机”还是“路由器”答案是两种能力都有。它保留了交换机的所有二层功能VLAN划分、Trunk、MAC地址学习同时增加了路由查表能力每个VLAN对应一个虚拟的三层接口——Vlanif也就是SVISwitch Virtual Interface。这就带来一个好处二层拓扑不需要大改只要在每个VLAN上挂一个Vlanif接口这个VLAN里的设备就拥有一个网关。VLAN 10的设备默认网关指向192.168.10.254核心交换机收到跨网段报文后查看路由表匹配到192.168.20.0/24直接从Vlanif20转发出去整个过程对终端完全透明。用三层交换机做核心还有一个现实原因现代企业网络动辄几十个VLAN如果全用路由器物理接口来做网关路由器上得插几十根线端口根本不够用。而三层交换机一个Vlanif就解决一个网段扩展性完全不在一个量级。所以有人说“三层交换机的价值就是让每个VLAN都拥有一个虚拟网关”这句话基本说到点子上了。1.3 为什么静态路由在这个场景里最合适这个实验里全网路由条目非常少满打满算就两条用户网段加一条缺省路由拓扑固定不变。用动态路由协议OSPF当然也可以但属于过度设计——协议要选邻居、要维护数据库、要计算最短路径光配置就多出好几层复杂度。静态路由手工指定、行为可预测、不产生任何协议报文排障时一眼就能看到流量走哪条路。静态路由的代价是拓扑变化时需要人工调整但企业核心网络拓扑轻易不会动稳定性压倒一切。在这个实验里核心交换机只需要配一条缺省路由指向路由器路由器配两条回程路由指向核心全网就能通了。后面我会详细展开这三条路由的来龙去脉。2. 二层通道搭建VLAN划分与Trunk链路配置三层路由要生效前提是二层通道必须先把不同VLAN的帧准确地送到核心交换机。这一层如果没搭对后面所有路由配置都是白费。2.1 接入交换机Access口配置让终端进入正确VLAN接入交换机A负责把办公区PC送进VLAN 10。PC互访、PC访问核心前提是接入交换机给PC的口打上正确的VLAN标签。华为设备里接入终端用的端口叫Access口。Access口有一个特点报文进入时交换机给它打上该端口默认VLAN的标签从该口发出去给PC时标签会被剥掉。PC网卡不认带标签的帧Access口的设计正好契合终端接入场景。接入交换机A的参考配置如下sysname SW-A vlan batch 10 20 interface GigabitEthernet0/0/1 port link-type access port default vlan 10 interface GigabitEthernet0/0/2 port link-type access port default vlan 10 interface GigabitEthernet0/0/24 port link-type trunk port trunk allow-pass vlan 10 20接入交换机B与A对称只是把终端口划进VLAN 20上联口同样是Trunk放行VLAN 10和20。这里有一个大部分新手都会犯的错只记得给终端网段划分VLAN忘了上联口要放行哪些VLAN。接入交换机B如果Trunk口只放行VLAN 20而漏了VLAN 10那么当VLAN 10的某个终端需要跨过这台交换机访问外部时帧到了这个Trunk口直接被丢弃。原因是Trunk口的过滤规则就是“没放行的VLAN不带、更不转发”。我在实验中特意在SW-B上只放行VLAN 20测试过PC1能ping通同VLAN的PC2但跨网段访问完全失联。VLAN放行列表是二层组网里最容易被低估的配置项。2.2 核心交换机Trunk配置与PVID细节核心交换机对应的下联口要透传所有业务VLAN所以配Trunk并且放行VLAN 10和20。核心与路由器互联口则划成Access、放进VLAN 100。sysname SW-Core vlan batch 10 20 100 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 10 20 interface GigabitEthernet0/0/3 port link-type access port default vlan 100这里必须多说一句PVID的问题。Trunk口有一个默认的PVID缺省值是VLAN 1。PVID决定了这个端口收到不带VLAN标签的帧时会把它当作哪个VLAN来处理。华为设备里可以用port trunk pvid vlan手工改。默认状态下Trunk口在发送VLAN 1的报文时不打标签其他放行VLAN的报文都打标签。实际维护中我见过不止一次因为PVID不一致导致的奇怪故障两台交换机Trunk互联一端把PVID改成了10另一端保持默认1结果VLAN 10的帧在一端被当作“不打标签的本地VLAN”发出另一端收到时按自己的PVID解析成了VLAN 1两边对不上转发路径就乱了。这个实验里我们不需要改PVID全部保持默认1风险最小。真机维护时非必要不动PVID这是经验。配置完核心和下联交换机的Trunk后可以用display port vlan查看各端口放行情况确认无误后再进入三层配置。这一步花不了十秒钟能省掉后面一小时的排障时间。3. 三层路由打通SVI网关与静态路由核心配置二层通道通了VLAN就像一个个独立的小房间现在要做的是在核心交换机上给每个房间装一扇带地址的门然后让房间之间、房间与外部之间能够互相访问。这是整个实验最核心的部分也是题目里“三层交换机为核心”的关键。3.1 核心交换机Vlanif接口把网关落到SVI上每个需要互通的VLAN都要在核心交换机上创建一个Vlanif接口并配置IP地址。这个IP就是该VLAN内所有终端的网关。interface Vlanif10 ip address 192.168.10.254 255.255.255.0 interface Vlanif20 ip address 192.168.20.254 255.255.255.0 interface Vlanif100 ip address 192.168.100.1 255.255.255.0配完立刻敲display ip interface brief确认状态。一个非常重要的细节Vlanif接口的UP/DOWN状态取决于这个VLAN里有没有物理端口处于UP状态。如果某个VLAN在交换机上根本没有任何Access口或Trunk口放行Vlanif即使配了IP也起不来始终是DOWN。我第一遍做实验时就在这点上翻过车VLAN 20的Vlanif配好了但因为接入交换机上联口忘了放行VLAN 20核心交换机上VLAN 20没有物理口为UPVlanif20一直显示DOWNVLAN 20的终端自然ping不通网关。这个现象用一句话概括就是“VLAN都没有活着的物理成员虚拟网关就是空中楼阁”。PC1访问PC3的完整路径是这样的PC1发现目标192.168.20.1不在本网段发送ARP请求询问网关192.168.10.254的MAC。核心交换机以Vlanif10的MAC应答PC1把数据帧的目的MAC填成网关的MAC发给核心。核心收下后查路由表匹配到192.168.20.0/24指向Vlanif20于是在VLAN 20内发起ARP请求获取PC3的MAC然后把帧转发过去。整个过程核心交换机既做了二层的MAC寻址也做了三层的路由决策这就是三层交换机的日常工作模式。3.2 静态路由配置缺省路由与回程路由缺一不可VLAN间互访靠直连路由就能搞定因为它们都是核心交换机自己接口上的网段。但终端要访问外网核心必须有一条去往外网的路径。做法是给核心交换机配置一条默认路由也叫缺省路由ip route-static 0.0.0.0 0.0.0.0 192.168.100.254这条命令的含义是凡是路由表里没有明确匹配条目的目的地址通通交给192.168.100.254去处理。0.0.0.0 0.0.0.0就是“任意地址、任意掩码”优先级放在所有具体路由之后。核心交换机本地有192.168.10.0/24、192.168.20.0/24这些具体网段访问这些网段直接走直连接口访问任何外网地址走缺省路由交给出口路由器。只配核心侧的缺省路由够不够不够。出口路由器必须知道“内网回程怎么走”。路由器从外网收到发给192.168.10.1的报文查自己的路由表发现没有任何一条关于192.168.10.0/24的路由那么这个包就会被丢弃。所以必须给出口路由器配上回程静态路由ip route-static 192.168.10.0 255.255.255.0 192.168.100.1 ip route-static 192.168.20.0 255.255.255.0 192.168.100.1这两条的意思是去往内网网段的流量下一跳是核心交换机的互联地址192.168.100.1。核心交换机收到后再通过直连路由转给对应的Vlanif。真实企业网络里出口路由器上游往往会接运营商光猫或ONU之类的接入设备原理和这个实验一致只需把缺省路由的下一跳指向运营商设备的对端地址即可。如果运营商设备处在不同工作模式拨号或静态IP的位置会变但“去往未知网段交给上一层网关”这个思路不变。排障时可以先ping通上一层网关来缩小范围。这里还要强调一个容易漏掉的点外网侧模拟的服务器PC也需要配置去往内网的静态路由否则PC1能ping通出口路由器但ping不通外网服务器——服务器发出的回包不知道怎么回内网。实验中给203.0.113.2的PC加上一条去往192.168.10.0/24和192.168.20.0/24的静态路由指向203.0.113.1。3.3 路由表查看与“具体优先于缺省”所有路由配完后在核心交换机上执行display ip routing-table正常情况下你会看到192.168.10.0/24对应Vlanif10状态为Direct192.168.20.0/24对应Vlanif20状态为Direct192.168.100.0/24对应Vlanif100状态为Direct0.0.0.0/0对应192.168.100.254状态为Static路由器查找路由表遵循“最长前缀匹配”原则。也就是说目的地址192.168.10.1能同时匹配192.168.10.0/24和0.0.0.0/0但前面那个掩码更长、更具体所以路由选择192.168.10.0/24这条直连路由只有访问203.0.113.2这样的陌生地址时才会落到0.0.0.0/0缺省路由上。这个机制决定了静态路由没必要给每个地址都配一条只配最关键的缺省和回程就能跑通全网。用display ip routing-table还有一个好处如果某个网段的路由没出现在表里说明配置没生效或接口Down了根本不用去猜。静态路由在路由表里是独立条目不存在协议收敛延迟配好就在没配就不在非常直白。关于用下一跳地址还是出接口这个问题我建议全部用下一跳地址形式。ip route-static 192.168.10.0 255.255.255.0 192.168.100.1这种写法简洁明了设备通过ARP解析下一跳的MAC来完成二层封装。如果用出接口写法在P2P链路没问题但在以太网环境里还要额外递归解析容易出幺蛾子。4. 联调验证与故障排查实录配置全是照着命令敲的是不是就一定能通不一定。真实的组网调试从来不是“配完就走”而是要一层层验证、一遍遍确认。这里把整个实验的验证顺序和踩过的坑完整梳理一遍。4.1 PING测与TRACERT追踪按层次逐级验证我给四台PC配置好IP和网关PC1192.168.10.1/24网关192.168.10.254PC2192.168.10.2/24网关192.168.10.254PC3192.168.20.1/24网关192.168.20.254PC4192.168.20.2/24网关192.168.20.254外网测试服务器203.0.113.2/24网关203.0.113.1验证一定要按层级来不要一上来就直接跨网段ping。我习惯按下面这个顺序PC1 ping PC2验证同VLAN二层转发是否正常。PC1 ping PC3验证跨VLAN三层路由是否正常。PC1 ping 192.168.100.1验证核心到出口互联链路。PC1 ping 203.0.113.2验证全网出口与回程路由。每步有每步的意义。第一步不通说明VLAN或Trunk配置有问题这时候查网关、查路由没有意义第一步通了第二步不通问题才在核心的SVI或路由上。分层验证能让你把故障范围快速切成小块。PC1 ping 203.0.113.2通了之后可以顺手在PC1上执行tracert 203.0.113.2观察路径是否按预期经过三层交换机和出口路由器。正常应该看到三个节点192.168.10.254、192.168.100.254、203.0.113.2。如果第二跳就显示超时说明核心到路由器的缺省路由没生效或者VLAN 100互联链路有问题。4.2 eNSP实验中的常见问题AR设备启动报错与模拟器排障这次实验在eNSP里搭环境时遇到了“AR设备启动不了错误代码40”的问题。这是eNSP用户非常常见的坑而且和网络配置完全无关属于模拟器底层环境问题。AR设备在eNSP里运行依赖VirtualBox启动报40通常和虚拟化环境有关。按以下顺序排查基本能解决检查BIOS里CPU虚拟化是否开启Intel平台是VT-xAMD平台是SVM。确认eNSP与自带的VirtualBox版本匹配不要随意升级VirtualBox版本。以管理员身份运行eNSP。执行“工具-注册设备”重新注册AR设备。检查杀毒软件或防火墙是否拦截了VirtualBox相关的进程。如果Windows开启了Hyper-V或基于虚拟化的安全VBS需要关闭这类功能否则eNSP的虚拟机可能无法启动。AR设备起不来不影响交换机实验可以先只做二层和三层交换机的部分因为S5700这类交换设备在eNSP里是直接模拟的不依赖VirtualBox。等AR能启动后再补出口路由部分。模拟器报系统错误时先判断是环境问题还是配置问题别把时间浪费在“为什么路由器没转发”上。4.3 转发故障速查表从现象定位到底层根因我把实验中遇到过的以及常见的转发故障整理成了速查表遇到问题先对号入座。现象可能原因确认命令同一VLAN内PC互相ping不通接入交换机Access口VLAN划错或端口shutdowndisplay vlandisplay interface跨VLAN ping不通同VLAN正常核心交换机没有配对应Vlanif或Vlanif DOWNdisplay ip interface brief终端ping得通网关但ping不通其他网段终端核心交换机路由表缺了对应网段路由display ip routing-table内网互访正常访问外网不通核心缺省路由没配或路由器的回程路由没配在核心和路由器分别查路由表Trunk口有收发包但业务不通两端Trunk放行VLAN列表不一致display port vlan交换机MAC地址表漂移严重存在环路或两条Trunk配成了同一VLAN互联display mac-address检查拓扑静态路由配置了但下一跳不可达互联接口Down或ARP解析不到对端MACdisplay arp直接ping下一跳地址排障时我有个习惯先ping通下一跳再查路由表。下一跳都不通路由条目再多也没用。静态路由本身不会丢包丢包基本都发生在链路上。ARP表也是排障重点如果display arp里看不到对端MAC说明二层链路有问题三层路由表再正确也转发不出去。4.4 跨厂商设备互联的注意点从转发失败到协议协商实验做完后我顺手模拟了一个场景核心用华为接入或对端换成思科三层交换机结果出现转发不通的现象。跨厂商组网问题通常出在接口协商和二层封装上而不是路由协议。先说Trunk协商。思科交换机默认开启DTPDynamic Trunking Protocol希望和对端协商Trunk模式。但华为设备不会参与DTP协商如果思科端口还停留在dynamic desirable或dynamic auto状态结果可能是端口协商成Access模式双方不在一个VLAN里传递数据。解决办法是在思科侧把端口配置成强制的Trunkinterface GigabitEthernet0/1 switchport trunk encapsulation dot1q switchport mode trunk switchport trunk allowed vlan 10,20华为侧不需要管DTP直接把port link-type trunk配上就行。其次是Native VLAN也就是PVID的一致性。思科的native VLAN默认是1华为的Trunk PVID默认也是1两边不改就没事。但现实维护中经常有人把一端改成别的VLAN另一端没跟着改结果就是所谓“VLAN 1流量串到了其他VLAN里”。最典型的故障表现是有些流量能通有些流量不能通而且非常难查。互操作场景下两端PVID必须一字不差地保持一致。最后是老生常谈的STP阻塞问题。思科和华为默认都开启生成树两边桥优先级不同可能导致某个Trunk口被阻塞现象是链路状态UP但数据就是不通。排查时可以先查看STP接口状态确认端口处于Forwarding而不是Blocking。生产环境千万别直接关STP正确做法是调整优先级、配置边缘端口或PortFast。跨厂商排障的正确顺序是先确认物理层协商速率和双工再确认二层Trunk和PVID最后才是三层路由。我见过太多人一上来就盯着路由表看半天结果问题出在二层封装上。实验做到最后我的感受是静态路由配置本身并不难难的是对整个数据通路的理解。VLAN划分解决广播域隔离Trunk解决VLAN跨设备透传SVI解决网关归属静态路由解决跨网段寻址每一层都有明确的分工。这套组网模型不只是实验它就是真实企业网络最小化之后的标准骨架。你以后接触再大的网络核心逻辑也还是这四步。
返回列表