尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

VLAN间通信不再翻车:从流量路径看懂VLANIF与排障思路

VLAN间通信不再翻车:从流量路径看懂VLANIF与排障思路 一个很常见的实验场景你已经按步骤建好了 VLAN 10 和 VLAN 20把 PC 接到了对应的 access 口链路也调成了 trunk。你在 PC1 上 ping PC2结果依然是目的主机不可达。再看一遍配置VLAN 划分没问题接口状态也 UP问题到底出在哪里答案往往很扎心你只完成了二层隔离还没有完成三层互通。VLAN 之间的通信配置实验2真正要解决的不是“怎么把接口划进 VLAN”而是“谁来做网关流量怎么从 VLAN 10 走到 VLAN 20”。很多人做这个实验时会把注意力放在命令上觉得只要把vlan batch、port link-type这些命令敲完网络就通了。但实际工程里最耽误时间的恰恰是那些“看起来配置都对但流量就是走不通”的情况。这篇文章我想从另一个角度讲清楚 VLAN 间通信先看懂流量路径再动手配置先理解为什么这样设计再背命令。你会少踩很多坑。1. 先搞清楚实验2要解决的问题不再是“隔离”而是“互通”1.1 从实验1到实验2中间差了一个“三层”很多学校的网络实验课程会把 VLAN 实验拆成两次。实验1通常只做单台交换机上的 VLAN 划分验证同 VLAN 能通、不同 VLAN 不通。实验2才真正进入 VLAN 间通信。这两次实验的分水岭不是命令更复杂而是网络模型从“纯二层”变成了“二层 三层”。纯二层交换机没有路由能力。它收到一帧数据只查 MAC 地址表决定从哪个接口转发出去。MAC 表里没有的东西就做泛洪。这种机制只能保证同一个 VLAN 内部的广播域能通信无法跨越 VLAN 边界。要实现 VLAN 间通信必须有一个三层设备出来“终结”VLAN。常见说法叫“网关”。PC 发现目的 IP 不在自己网段时会把报文丢给网关由网关查路由表、决定下一跳。这个“网关”可以是一台路由器、一台三层交换机也可以是一台防火墙上的虚拟接口。所以实验2的核心不是把 VLAN 合并而是保持 VLAN 隔离的同时通过三层设备实现可控互通。1.2 “二层隔离、三层互通”到底是怎么发生的举个例子。PC1 在 VLAN 10IP 是 192.168.10.2/24。PC2 在 VLAN 20IP 是 192.168.20.2/24。PC1 要访问 PC2它会先看目的 IP 192.168.20.2发现自己不在同一网段于是把数据包交给默认网关 192.168.10.1。这一步在 PC 上就完成了不需要交换机提醒。网关收到包之后看目的地址是 192.168.20.0/24 网段发现这个网段对应 VLAN 20于是通过自己的三层接口重新封装数据帧源 MAC 变成网关在 VLAN 20 的 MAC目的 MAC 变成 PC2 的 MAC然后从 VLAN 20 对应的接口发出去。这里面最关键的一点是三层设备必须同时拥有 VLAN 10 和 VLAN 20 这两个网段的接口 IP。如果只有一个 VLAN 的接口地址它收到报文后没有路由可查就直接丢掉了。这也就是为什么很多实验2翻车不是配置敲错而是根本没建 VLANIF、没配网关地址。2. 配置前先画一遍流量路径比背命令更重要2.1 接口类型、PVID、Tagged/Untagged 才是理解的核心做 VLAN 间通信绕不开三种接口状态access、trunk、hybrid。华为设备上Hybrid 是默认类型但实验里最常用的是 access 和 trunk。很多人对 access 和 trunk 的理解停留在“access 接 PCtrunk 接交换机”这个说法没错但不够。关键要看接口对 VLAN 标签的处理。access 口在收到不带标签的数据帧时会打上port default vlan指定的 VLAN 标签。转发出去时会把标签剥掉以 untagged 形式发给 PC。所以 PC 感知不到 VLAN 标签的存在。trunk 口默认会放行 VLAN 1其他 VLAN 需要用port trunk allow-pass vlan显式放行。它从一个 VLAN 收到的 tagged 帧会带着标签从 trunk 口转发到对端。这样就允许同一条物理链路上跑多个 VLAN 的流量。PVID 是经常被忽略的点。trunk 口的 PVID 默认是 VLAN 1。当 trunk 口收到一个无标签帧时会按 PVID 打上标签。这个机制本身是为了兼容一些旧设备和接入场景但在实验里如果两端 PVID 设置不一致或者对端发来的是 untagged 帧就会导致 VLAN 归属错乱出现“明明放行了 VLAN却还是不通”的情况。我之前见过一个案例A 交换机 trunk 口的 PVID 改成了 VLAN 10B 交换机还是默认 VLAN 1。B 发过来一段无标签的管理流量A 直接把它当成 VLAN 10 处理结果 VLAN 10 里多了一个“不存在的设备”排查了很久才发现是 PVID 不一致造成的。所以搜索热词里会出现port trunk pvid vlan 10这种需求它不是概念题是真实排障场景。2.2 “trunk 放通了还是不通”通常卡在哪个环节很多实验2的报错现象是这样的display port vlan看接口状态都正确trunk 口也allow-pass vlan了VLANIF 也建了但 PC 互相 ping 不通。这时候需要回到流量路径上去而不是继续加命令。一条完整的路径至少包括四段PC 发出数据帧交给网关。网关所在的三层设备查路由确定出接口。数据帧从对应 VLAN 的接口转发出去。对端交换机沿 trunk / access 链路把帧送到目标 PC。只要中间有一段断掉ping 就不通。常见断点有PC 的网关没配置或配置成了错误的网关地址。三层设备上 VLANIF 没有 UP。trunk 只放行了 VLAN 10但 PC2 在 VLAN 20回程无法通过。trunk 两端 PVID 不一致导致 untagged 帧被划分到意外 VLAN。交换机没有启用对应 VLAN三层接口即使存在也会处于 down 状态。这些不是靠一条命令解决的是靠“一段一段看”解决的。所以配置之前我强烈建议用纸笔画一条路径从 PC1 出发标出经过哪些接口、哪个接口打标签、哪个接口剥标签、在哪一层被路由。画完了命令顺序自然就有了。3. VLAN 间通信的三条路单臂路由、VLANIF、子网划分3.1 单臂路由经典但适合小规模验证单臂路由的拓扑很直观一台路由器用一条物理链路连接到交换机交换机上划分多个 VLAN路由器的物理接口上再划分子接口每个子接口对应一个 VLAN 的网关。配置时子接口要开启dot1q termination vid也就是让子接口能识别带 VLAN 标签的帧并为这个子接口配置 IP。同时还需要配置arp broadcast enable让子接口能够回应 ARP 请求。这个方案的优点是思路清晰能让初学者直观理解“路由是在三层完成的二层只是承载”。缺点是所有 VLAN 间的流量都要经过同一条物理链路带宽压力大而且路由器处理性能通常不如交换机硬件转发。所以单臂路由更适合实验环境和小型网络不适合流量大的汇聚层。3.2 三层交换机 VLANIF企业组网最主流的选择三层交换机把路由能力做进了硬件VLANIF 就是它的三层接口。配置很简单先创建 VLAN然后在系统视图下进入interface Vlanif10配一个 IP 地址。这个 IP 就是该 VLAN 内所有 PC 的网关。只要路由表里有直连网段VLAN 之间就能直接转发。VLANIF 方案的最大优势是性能好、配置集中。一个三层交换机可以同时承载十几个 VLAN 的网关trunk 链路也能复用不需要给每个 VLAN 拉一根物理线路。实际企业组网中多半是汇聚交换机或核心交换机来做这件事。不过要注意不是所有交换机都支持 VLANIF。纯二层交换机上也能输入interface Vlanif20但接口状态会一直 down因为硬件上没有三层转发能力。实验里遇到这种情况先确认自己用的设备到底是二层还是三层。我习惯在实验前用display version或查看设备型号确认型号支持三层功能。否则配置完 VLANIF 一直显示 down会浪费很多排查时间。3.3 基于 IP 子网划分 VLAN另一种视角很多搜索词里会出现“基于 IP 子网的 VLAN 划分”。它的思路和传统“基于接口划分 VLAN”不一样不是把某个接口固定划进 VLAN而是根据报文里的 IP 子网字段动态决定它属于哪个 VLAN。这种划分方式适合终端位置经常变化、或一个接口下需要承载多个子网的场景。比如端口入方向收到一个源 IP 属于 192.168.20.0/24 的报文设备就自动把它划分到 VLAN 20。但在 VLAN 间通信实验里它不是一个方向。更常见的是先通过接口划分好 VLAN再由 VLANIF 或子接口做三层互通。理解基于 IP 子网划分 VLAN是为了让你知道 VLAN 的划分维度不止一个实际组网可以组合使用。很多人只见过 access 口没见过基于协议、基于 MAC、基于子网划分 VLAN 的场景遇到特殊需求就容易懵。可以把三种方式简单对比如下方案三层设备适用场景优点缺点单臂路由路由器子接口实验、小型网络思路清晰适合教学带宽受限扩展性差三层交换机 VLANIF三层交换机汇聚层、核心层转发性能高配置集中对设备型号有要求基于 IP 子网划分 VLAN交换机 三层设备终端位置不固定的办公网灵活按逻辑分组配置复杂排障难度高4. 动手做一个最小实验跨交换机 trunk 三层 VLANIF4.1 实验拓扑与 IP 规划为了把跨交换机、trunk、VLANIF 这三个点串起来建议用下面的最小拓扑模拟一个真实场景。拓扑描述SW1 是三层交换机作为核心。SW2 是二层交换机作为接入。PC1 直连 SW1 的 G0/0/1属于 VLAN 10。PC2 直连 SW2 的 G0/0/1属于 VLAN 20。SW1 的 G0/0/2 和 SW2 的 G0/0/2 之间用 trunk 互联放行 VLAN 20。地址规划设备VLANIP网关PC1VLAN 10192.168.10.2/24192.168.10.1PC2VLAN 20192.168.20.2/24192.168.20.1SW1 Vlanif10VLAN 10192.168.10.1/24-SW1 Vlanif20VLAN 20192.168.20.1/24-这里有意识地把 PC2 放在远端交换机 SW2 后面目的是让你理解 trunk 不只是“两台交换机连起来”它还在承载跨设备的三层终结流量。4.2 配置命令示例下面是华为设备上的常见配置写法。如果你用的是 eNSP 模拟器命令基本一致如果使用真实设备需要先确认版本号。SW1 上的关键配置system-view sysname SW1 vlan batch 10 20 interface GigabitEthernet0/0/1 port link-type access port default vlan 10 interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 20 interface Vlanif10 ip address 192.168.10.1 255.255.255.0 interface Vlanif20 ip address 192.168.20.1 255.255.255.0SW2 上的关键配置system-view sysname SW2 vlan batch 20 interface GigabitEthernet0/0/1 port link-type access port default vlan 20 interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 20这段配置中SW1 是唯一的网关设备SW2 不需要配置 VLANIF20。很多初学者会在 SW2 上也配一个同网段 IP然后发现各种冲突。记住一个 VLAN 的网关只在一台三层设备上配置其他交换机只需要在二层转发带标签的帧。4.3 验证ping 通只是开始配置完成后在 PC1 上 ping PC2。如果通不要急着收工还要做状态验证。display vlan display port vlan display interface trunk display ip interface brief display ip routing-tabledisplay vlan看 VLAN 是否存在端口是否加入正确。display interface trunk看 trunk 放行了哪些 VLANPVID 是什么。display ip interface brief看 VLANIF 是否 UPIP 是否配置正确。display ip routing-table看有没有 192.168.10.0/24 和 192.168.20.0/24 这两条直连路由。如果有路由但 ping 不通下一步在 PC1 上执行tracertWindows 里是tracerteNSP 里也可以直接抓包。看第一个跳是不是网关第二个跳能不能到 PC2 网段。这能快速定位故障发生在哪一段。我见过很多人配置完 VLANIF发现 ping 不通第一条命令就去看静态路由或 OSPF。其实 VLANIF 是直连路由根本不需要动态路由协议参与。先确认display ip interface brief里的接口是 UP 状态再谈其他。5. 配置完 ping 不通按这三层顺序排查5.1 第一层现象和 PC 的“三层入口”排查 VLAN 间通信问题不建议一上来就翻交换机配置。先问自己PC 能不能 ping 通自己的网关在 PC1 的命令行里执行ping 192.168.10.1。如果不通说明故障在二层接入链路比如 access 口 VLAN 配置错误、物理接口 down、PC 的 IP 配置不对。如果网关能通再 ping 对端 PC。不通时先看本机路由PC 自己有没有把目标网段的下一跳指到网关。Windows 里可以用route print查看Linux 里用ip route。有些实验环境把 PC 配成了静态 IP但没有填默认网关这就会导致 PC 只发 ARP、不把报文交给路由设备。这一步是三层通信的“入口”入口不对后面全白搭。5.2 第二层接口 VLAN、trunk 放行和 PVIDPC 和网关能通之后故障多半出在交换机之间。逐一对每台交换机执行display vlan display port vlan display interface trunk检查点有三个终端接入的 access 口是否属于正确 VLAN。trk 互联口两端是否都放行了目标 VLAN。两端的 trunk PVID 是否一致。这里尤其要说一下display interface trunk的输出。华为设备会显示PVID、Port Trunk allow-pass vlan。如果你看到对端 PVID 是 VLAN 10本端是 VLAN 20且链路上存在无标签帧那么这些帧会被划分到不同的 VLAN结果就是二层转发表错乱。另外许多人在 SW1 的 trunk 口只放行了 VLAN 20忘了放行 VLAN 10 的回程流量。实际上 PC1 在 VLAN 10PC2 在 VLAN 20如果回程需要经过同一根 trunk那么这台 trunk 就必须放行两侧需要的全部 VLAN否则就会出现单向通、反向不通。5.3 第三层三层接口是否 UP、路由是否存在到这一步二层链路已经正常剩余问题基本集中在三层display ip interface brief display ip routing-table重点看 VLANIF10 和 VLANIF20 是否处于 UP 状态。如果接口 down检查两点VLAN 是否已创建是否有物理接口加入并处于 UP。华为三层交换机的 VLANIF在没有对应 VLAN 或没有物理接口 UP 时会呈现 down 状态即使 IP 配置正确也不生效。路由表里正常情况下应该有 192.168.10.0/24 和 192.168.20.0/24 两条直连路由。如果只有其中一条说明有一个 VLANIF 没有配置或没有 UP。如果三层接口都正常但还是 ping 不通最后再查防火墙策略和 ACL。华为设备默认情况下VLANIF 之间是允许互访的不需要额外放行但如果在接口上应用了traffic-filter就要把它纳入排查范围。6. 把实验做完之后还要补上的几块拼图6.1 一套可复用的框架先画路径再定网关最后敲命令做 VLAN 间通信实验每次都可以复用同一个流程画流量路径标出 PC、接入交换机、汇聚交换机、三层设备。规划 IP 和 VLAN明确网关在哪台设备上。配置二层接口access、trunk、放行 VLAN。配置三层接口VLANIF 或子接口地址。验证先 ping 网关再 ping 远端最后看路由表和接口状态。排查现象 - PC 路由 - 二层标签 - 三层接口 - 策略。这个框架不只是在 eNSP 里能用真实设备排障也一样。区别只是真实设备上还需要额外考虑光模块、物理线路、安全策略这些因素但排查顺序是一样的。6.2 进阶方向DHCP 跨网段、ACL、IPSG实验2跑通只是起点。要真正理解 VLAN 间通信在工程里怎么用建议继续做三个进阶实验。第一个是跨 VLAN 的 DHCP 配置。PC 在 VLAN 10DHCP 服务器在 VLAN 20三层交换机上配置 DHCP Relay让 VLAN 10 的 PC 能获取到 VLAN 20 地址池里的 IP。这个实验能让你理解“DHCP 广播报文跨越网段时需要中继”也会更清楚 VLANIF 在真实办公网里的价值。第二个是基于 VLAN 的 ACL 过滤。比如允许 VLAN 10 访问 VLAN 20 的某些服务器但禁止访问管理网段。这个实验把“互通”变成“可控互通”是很多企业网的核心需求。第三个是基于 VLAN 的 IPSG 组网配置。IPSG 全称是 IP Source Guard用来防止终端伪造源 IP 地址接入网络。你会需要绑定 IP、MAC、VLAN、接口四项信息。这个功能在无线网络、办公网、宿舍网里都很常见能做一遍会大幅提升对“接入安全”的理解。这些实验都不是独立概念它们的共同点都是围绕同一个三层网关模型展开。你一旦理解了“网关在哪里、流量从哪进、从哪出”这些扩展实验都会变得很简单。6.3 适用边界别把实验方案直接搬到生产环境最后说一点边界。实验环境里用一台三层交换机做 VLAN 间路由配置简单直接跑通就行。生产环境则要考虑冗余核心交换机往往要做堆叠或双机热备VLANIF 会绑定 VRRPtrunk 会做链路聚合还会叠加防火墙安全域。这不是 VLAN 间通信变了而是工程约束变了。如果你只是在做毕业设计或入门学习VLANIF trunk 完全够用。如果你想把这些经验迁移到真实项目还要额外理解不同厂商的接口类型名词有差异华为叫 access/trunk/hybrid思科叫 access/trunk/dynamic配置文件写法不同但底层思想一致直连网段用 VLANIF跨三层设备通信要配置路由协议或静态路由。做实验最怕的是只会照着命令敲不理解流量路径。这次实验跑通了你真正应该带走的能力是看到一个网络拓扑能说出某个 VLAN 的网关在哪台设备上、流量经过哪些接口、标签在哪里变化、下一跳是谁。有了这个能力VLAN 间通信就再也不会成为难题。
返回列表