资讯详情

资讯详情

eNSP实战:VLAN间通信实验排错,单臂路由与三层交换详解

上周有位刚开始学网络的同学跟我聊说他在 eNSP 里做“VLAN间通信配置实验1”两台电脑分别划到 VLAN 10 和 VLAN 20交换机上的 VLAN 也建了端口也分了但 PC 之间就是 ping 不通。他以为是自己少敲了一条命令。聊到一半我大概猜到了问题他把“VLAN 划分配完”当成了“VLAN 间通信做完”。在 VLAN 的世界里划分 VLAN 只是完成了二层隔离想让不同 VLAN 里的主机通信还必须有一个能同时理解多个 VLAN 的三层设备负责路由和网关。这个误解几乎每个学网络的人都会遇到。所以这篇内容不打算只列一遍配置命令而是把 VLAN 间通信实验拆成三层来看先想清楚问题出在哪一层再动手配置最后能有一套自己的排查思路。你做完这个实验后收获的不应该只是“通了”而是知道为什么能通。1. 别急着敲命令先看清 VLAN 间通信真正卡在哪1.1 为什么 VLAN 划分正确不代表 VLAN 间通信成立很多人一开始会把“VLAN 配置”和“VLAN 间通信”混在一起。VLAN 的核心作用是缩小广播域。交换机把端口划分到不同 VLAN 后广播帧只会在同一 VLAN 内转发。不同 VLAN 之间默认是隔离的。这种隔离既是好处也是你需要额外处理的原因它把网络分成了多个逻辑区域区域之间不再天然互通。在华为 eNSP 里做实验创建 VLAN、配置 Access 口、配置 Trunk 口这些都属于二层配置。二层配置能保证同 VLAN 的 PC 互相 ping 通也会让不同 VLAN 的 PC 彻底看不到对方。如果你不做任何三层配置VLAN 10 里的 PC1 去 ping VLAN 20 里的 PC2结果是目标不可达或请求超时。所以判断一个 VLAN 间通信实验做没做对不能只看 VLAN 有没有建好。要看另一个问题你给每个 VLAN 配网关了吗网关在哪台设备上那台设备能不能同时认识 VLAN 10 和 VLAN 20这三点才是 VLAN 间通信的关键。1.2 在 eNSP 里做实验先要有一张能说服自己的拓扑表这个实验我建议用“单臂路由”作为入口方案。原因是它最能直观展示“二层隔离 三层转发”的完整逻辑。实验拓扑可以这样设计一台华为 AR 路由器作为三层网关一台 S5700 交换机负责二层 VLAN 划分两台 PCPC1 属于 VLAN 10PC2 属于 VLAN 20。规划如下设备接口接口类型VLANIP 地址PC1eth0/0/1AccessVLAN 10192.168.10.10/24网关 192.168.10.1PC2eth0/0/2AccessVLAN 20192.168.20.10/24网关 192.168.20.1SW1GE0/0/1AccessVLAN 10无SW1GE0/0/2AccessVLAN 20无SW1GE0/0/0TrunkVLAN 10、20无路由器 AR1GE0/0/0.10子接口终结 VLAN 10192.168.10.1/24路由器 AR1GE0/0/0.20子接口终结 VLAN 20192.168.20.1/24这张表看似简单但它决定了后面所有配置。你手里没有这张表就会出现一个很常见的问题命令都敲了却不知道哪条命令应该对应哪个接口。1.3 子接口、VLANIF、单臂路由先选一条最省误解的路径VLAN 间通信的常见方案主要是两种一是单臂路由也就是路由器子接口方案二是三层交换也就是交换机 VLANIF 方案。单臂路由的特点是路由器物理接口被拆成多个子接口每个子接口对应一个 VLAN。流量从交换机通过 Trunk 上送路由器路由器根据 VLAN 标签决定走哪个子接口再完成三层转发。它的优点是非常直观方便理解 VLAN 标签的作用缺点是所有跨 VLAN 流量都挤在一条物理链路上性能和扩展性都受限。三层交换机的 VLANIF 方案更接近真实园区网。交换机的 VLAN 接口直接配置 IP 地址VLAN 间的转发由交换机硬件完成性能高配置也简单。但它把“二层隔离”和“三层转发”都做在了一台设备内部初学者容易看不清边界。我建议实验 1 先选单臂路由把链路和转发逻辑跑通之后再切换到三层交换机补一遍 VLANIF。两条路都走过你对 VLAN 间通信的理解才对得起来。2. 单臂路由用一对 Trunk 和多个子接口把 VLAN 带回三层2.1 从 VLAN 到三层为什么路由器必须用“子接口”一台路由器物理接口通常只属于一个三层网段。但如果 VLAN 10 和 VLAN 20 都要通过这台路由器上网关你不可能在每个物理接口上只配一个地址。子接口就是解决这个问题的在同一个物理接口上创建多个逻辑子接口每个子接口绑定一个 VLAN ID。比如 GE0/0/0.10 负责 VLAN 10GE0/0/0.20 负责 VLAN 20。物理接口只是一个入口真正干活的是子接口。这里要注意一个细节路由器和交换机之间的链路必须配置成 Trunk。因为交换机上送路由器的报文不是普通的以太网帧而是带有 802.1Q VLAN 标签的帧。如果这条链路是 Access交换机只会放行一个 VLAN另一个 VLAN 的流量根本到不了路由器。2.2 核心配置不要复制命令要理解每一条在做什么先看交换机侧配置。在 eNSP 中用华为命令行常见写法如下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 access port default vlan 20 # interface GigabitEthernet0/0/0 port link-type trunk port trunk allow-pass vlan 10 20 #逐个解释一下。vlan batch 10 20是批量创建 VLAN 10 和 VLAN 20。在真实交换机上VLAN 需要先存在接口才能划分进去。GE0/0/1 和 GE0/0/2 连接两台 PC配置为 Access 口端口默认 VLAN 分别是对应的 VLAN。Access 口只会接收和发送一个未打标签的 VLAN 帧这是最基础也最常见的终端接入方式。GE0/0/0 连接路由器配置为 Trunk 口并显式放行 VLAN 10 和 VLAN 20。Trunk 口的作用是在一条物理链路上传递多个 VLAN 的帧而这些帧会带着 802.1Q 标签。然后看路由器侧配置interface GigabitEthernet0/0/0.10 dot1q termination vid 10 ip address 192.168.10.1 255.255.255.0 arp broadcast enable # interface GigabitEthernet0/0/0.20 dot1q termination vid 20 ip address 192.168.20.1 255.255.255.0 arp broadcast enable重点解释三个命令。dot1q termination vid 10让子接口识别 VLAN 10 的标签。收到带 VLAN 10 标签的帧这个子接口会剥掉标签继续处理发送报文时会重新打上 VLAN 10 标签交给交换机。ip address配置的是该 VLAN 的网关地址。PC1 的网关是 192.168.10.1PC2 的网关是 192.168.20.1两个网段不能乱写。arp broadcast enable是在子接口上使能 ARP 广播。这是最容易漏的一步。如果不加PC 可能无法通过子接口解析到网关 MACping 网关会一直失败。物理接口 GE0/0/0 本身不需要配置 IP 地址。子接口配置完成后物理接口保持 Up 即可。注意先别急着把 PC 网关改成通配地址。IP 规划、VLAN 编号、子接口编号三者要一一对应否则后续排错会非常痛苦。2.3 为什么“port trunk pvid vlan 10”这种配置不是必须的很多初学者会搜到port trunk pvid vlan 10这类配置然后很困惑我不配 PVID是不是 VLAN 间通信就不通PVID 的含义是端口的默认 VLAN。当一个接口收到不带 VLAN 标签的帧时交换机会给这个帧打上 PVID 对应的 VLAN 标签。在单臂路由实验里交换机连接 PC 的 Access 口已经通过port default vlan 10或port default vlan 20决定了终端流量的 VLAN 归属。交换机连接路由器的 Trunk 口收到的是从 PC 方向过来的带标签帧这些帧已经明确属于 VLAN 10 或 VLAN 20Trunk 口不需要修改它们。所以默认 PVID 是 VLAN 1 也可以正常工作。只有当链路的一端发送不带标签的帧、而你又希望它属于非 VLAN 1 时才需要考虑调整 PVID。比如某些不支持 802.1Q 的设备接在 Trunk 口上你希望它对端发的未打标帧进入 VLAN 10这时才会用到port trunk pvid vlan 10。在基础 VLAN 间通信实验里你更应该检查的是 Trunk 口是否放行了对应 VLAN而不是纠结 PVID。2.4 PC 配置和验证前的准备PC1 和 PC2 在 eNSP 中可以直接在图形界面配置 IPPC1192.168.10.10掩码 255.255.255.0网关 192.168.10.1PC2192.168.20.10掩码 255.255.255.0网关 192.168.20.1。配完先做两次小验证PC1 ping 192.168.10.1 PC1 ping 192.168.20.10第一次是验证 PC 到网关通不通第二次是验证是否真的实现了 VLAN 间通信。如果第一步不通后续跨 VLAN 通不通都没有意义。这个顺序能帮你快速缩小问题范围。3. 判断配置对不对不能只看 ping要看完整的转发链路3.1 从 PC1 ping PC2报文到底走了一条什么路很多教程只告诉你“配置完成后 ping 一下通了就行”。但如果你没搞懂报文路径遇到不通时就会手足无措。我带你过一遍 PC1 ping PC2 的完整过程。第一步PC1 判断目的地址 192.168.20.10 不在自己的网段内它会把 ICMP 报文交给网关 192.168.10.1。这时 PC1 需要先做 ARP解析网关 MAC。第二步ARP 请求是一个广播帧。它从 PC1 进入交换机的 GE0/0/1由于这个接口属于 Access VLAN 10广播只在 VLAN 10 内转发。路由器子接口 GE0/0/0.10 也属于 VLAN 10因此能收到这个 ARP 请求并回应。第三步PC1 向网关发出 ICMP 请求报文。交换机为这个帧打上 VLAN 10 标签从 Trunk 口 GE0/0/0 发送给路由器。因为 Trunk 口放行了 VLAN 10所以路由器能收到。第四步路由器的物理接口收到带 VLAN 10 标签的帧交给子接口 GE0/0/0.10剥掉标签。IP 层查路由表发现 192.168.20.0/24 直连在子接口 GE0/0/0.20 上。第五步路由器从子接口 GE0/0/0.20 发送响应前需要解析 PC2 的 MAC。它会发出一个 VLAN 20 的 ARP 广播交换机 Trunk 口收到后根据标签只向 VLAN 20 内转发PC2 收到并回应。第六步路由器把 ICMP 报文封装成目的 MAC 为 PC2、携带 VLAN 20 标签的帧发给交换机。交换机根据 VLAN 20 标签从 Access 口 GE0/0/2 转发给 PC2。PC2 收到请求后按相反路径回包。这条链路里任何一个环节断了ping 都不会通。所以排查时不要只看“我配了 VLAN”要看“标签是否打对”“Trunk 是否放行”“路由是否可达”“ARP 是否解析成功”。3.2 用 display 命令验证“两层配置都对了”在华为设备上有几句命令很实用但很多人不会按层级去用。命令作用可以看到什么display vlan查看 VLAN 及其端口成员VLAN 10、20 是否存在Access 口是否划入display port vlan查看端口类型、PVID、Trunk 放行 VLAN端口是不是 access/trunk放行列表是否正确display ip interface brief查看三层接口 IP 和状态子接口、VLANIF 接口是否 UpIP 是否配置display ip routing-table查看路由表两个网段是否可路由我看到有些初学者会用display int vlan brief这种说法。不同软件版本和平台下命令写法有差异重点不是记住拼写而是知道你现在要看哪一层二层看 VLAN 和端口三层看 IP 和路由。如果配置完发现路由器子接口状态是 Down大概率不是命令代码错了而是物理接口没 Up或者 Trunk 口没有把对应 VLAN 放行上来。3.3 一条适合直接套用的排查链路我建议你以后遇到 VLAN 间通信问题都按这个顺序排查看现象ping 不通是“请求超时”还是“目标不可达”只有单向通还是双向都不通看二层PC 所在 Access 口是否划分到预期 VLANTrunk 口是否放行了所有跨设备 VLAN看三层网关 IP 是否和 PC 网段匹配路由器子接口 / VLANIF 接口是否 Up看 ARPPC 的 ARP 表里有没有网关 MAC路由器能否解析到对端终端 MAC看 PVID 和物理链路有没有端口误改成 access有没有 Trunk 的 PVID 与预期不一致这条链路可以解决绝大多数 VLAN 间通信问题。因为大多数故障不会同时坏在两层你逐层排查大概率能定位到某一层。4. 从实验到工程单臂路由的边界和三层交换的替代方案4.1 为什么真实园区网里更常见的是 VLANIF而不是路由器子接口单臂路由适合做实验和教学因为它把“转发”这件事摊开给你看。但真实网络里很少会靠一台路由器去承担所有 VLAN 间流量。原因很简单单臂路由的所有跨 VLAN 流量都汇聚在一条物理链路上再交由路由器 CPU 或软件转发路径处理。VLAN 数量少、流量小时问题不大VLAN 数量上来、业务流量增长后链路带宽和路由器处理能力就成了瓶颈。三层交换机则不同。VLANIF 接口把网关配置在交换机上VLAN 间的报文在交换机内部直接完成路由和转发通常走硬件芯片性能和扩展性更好。所以到了中大型园区网你看到的方案多是三层交换机做网关而不是外挂一台路由器。做实验时我建议你两条路都走一遍先用单臂路由把原理学透再用三层交换机把生产思维建起来。4.2 在三层交换机上做同一个实验配置差在哪里同样的拓扑只要把路由器换成三层交换机配置会简洁很多。交换机侧只需要加上 VLANIF 接口sysname SW1 vlan batch 10 20 # interface Vlanif10 ip address 192.168.10.1 255.255.255.0 # interface Vlanif20 ip address 192.168.20.1 255.255.255.0 # interface GigabitEthernet0/0/1 port link-type access port default vlan 10 # interface GigabitEthernet0/0/2 port link-type access port default vlan 20在这个方案里交换机同时承担二层交换和三层路由。PC 的网关直接指向交换机上的 VLANIF 地址。如果你在真实交换机上执行display ip interface brief能看到 Vlanif10 和 Vlanif20 都有 IP并且状态为 Up。只有当 VLAN 内没有活跃的物理端口时VLANIF 才会表现为 Down。很多人在模拟器里改配置发现 VLANIF 一直 Down原因通常是对应 VLAN 的 Access 口没有接设备或者接口被 shutdown。4.3 “华为交换机划 VLAN 都是一样的吗”同一套思路不同产品下的细节差异经常有初学者问华为交换机划 VLAN 是不是全都一样大思路是一样的创建 VLAN、配置接口类型、放行 Trunk、配置网关。但具体到不同产品线和软件版本会有差异。比如框式交换机和盒式交换机的端口编号规则不同有的 Trunk 口默认放行 VLAN 1有的版本允许所有 VLAN有的平台还需要额外执行port trunk allow-pass vlan all才能让所有 VLAN 通过。所以最好别把一套命令当成万能公式。你在一台设备上验证成功后换一个型号或版本时至少要看一眼 display 的输出确认端口类型、PVID、Trunk 放行列表是否符合预期。这也是网络工程师的基本功。5. 把这个实验沉淀成自己的排查框架5.1 一套更适合新手的配置顺序很多人的配置顺序是先配路由器再配交换机最后配 PC。这个顺序不是不对但对新手不够友好。因为一旦出了问题你很难判断是路由器配错了还是交换机没放行。我更建议按下面这个顺序做先画拓扑和 IP 规划表配置二层创建 VLAN配置 Access 口和 Trunk 口配置三层路由器子接口或交换机 VLANIF 接口配置终端 IP 和网关先用 PC ping 网关再 ping 跨 VLAN 地址保存配置。这套顺序的核心是先让二层链路可见需要同 VLAN 通的时候能通然后才引入三层。不要一上来就把所有命令敲完再统一验证那会大大增加排错难度。5.2 一张常见问题对照表现象可能原因检查方向PC ping 不通网关Access 口 VLAN 划错PC 网关 IP 写错子接口 ARP 广播未使能display vlan检查 PC IP网关 ping 得通跨 VLAN 不通缺少三层路由Trunk 未放行目标 VLAN路由器子接口缺少对应 VLANdisplay ip routing-tabledisplay port vlan路由器子接口 Down物理接口未 UpTrunk 口放行 VLAN 不对子接口编号和 VLAN ID 不一致display interface brief检查 Trunk三层交换机 VLANIF DownVLAN 内没有活跃二层接口接口被 shutdowndisplay ip interface brief检查物理接口状态只有单方向通网关配置不对称ARP 缓存异常Trunk 双向放行不一致查看两台 PC ARP 表检查两方向链路这张表不是标准答案而是一个排查起点。你在实际实验里遇到问题时可以先对照现象再回到配置里逐条确认。5.3 长期价值不是记住命令而是建立“分段-转发-网关”的思维VLAN 间通信实验表面上是配置命令背后是一个非常重要的网络分层思维二层负责分段三层负责转发网关负责让不同网段有交会点。这种思维不会只停留在交换机配置上。你以后看到基于 IP 子网的 VLAN 划分、基于 VLAN 的 IPSG 组网、甚至 Kubernetes 环境里用 Multus 给 Pod 配置多网卡和 VLAN核心逻辑仍然是一样数据包必须带着正确的 VLAN 标签经过正确的三层网关才能到达该去的地方。把实验 1 做透不是让你背下几条命令。它真正给你的是一套能在“隔离”和“放行”之间做判断的方法。那位同学后来把配置从头又做了一遍先画拓扑再配二层再用 ping 网关定位问题最后跨 VLAN 通了。他说了一句话我印象很深原来难的不是命令而是不知道问题出在哪一层。如果你也卡在同一个实验里先别急着重敲命令。回到拓扑回到分层问题通常就会自己浮出来。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →