ARTICLE DETAIL

资讯详情

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

VLAN:为什么同一根网线也能「逻辑隔离」

VLAN:为什么同一根网线也能「逻辑隔离」 专栏《计算机网络基础》对应总览第五篇 链路层与物理层邻站交接与真正的「介质」本篇角色VLAN 专章——广播域怎么被切开、Tag 怎么走、跨 VLAN 何时要上三层承接《ARP / NDIP 地址如何变成邻站门牌 MAC》读完你能用广播域解释 VLAN分清 Access / Trunk / Native说明 SVI 如何做跨 VLAN把「IP 都对却 ARP 无回复」接到 VLAN用对照实验验证隔离把云上「虚拟网络」映射回二层直觉导读线插着却像不在一个局域网上一章说同网段通信要靠 ARP「喊一嗓子」。ARP 请求是广播——它能传到多远取决于广播域有多大。现场里常有这种怪事两台电脑 A: 192.168.10.8/24 B: 192.168.10.9/24 掩码一样、地址同网段、线都插在「同一台」交换机上 → 就是 ping 不通 → tcpdump 看见自己在发 ARP Request永远等不到 Reply很多人会先怀疑网卡驱动、防火墙、甚至重装系统。更常见的真相是它们被划进了不同的 VLAN——逻辑上根本不在同一个二层广播域。VLANVirtual LAN要解决的正是在同一套交换设备、同一根上行链路上把局域网切成多片「彼此听不见广播」的逻辑网络。物理拓扑可以共用广播与未知单播的洪泛边界由 VLAN 重新画。一、概念VLAN 在切什么1.1 它是什么、解决什么痛点VLAN在二层把端口或帧划分到不同广播域使不同 VLAN 默认二层隔离——广播、未知单播洪泛通常互不可达。没有 VLAN 时有 VLAN 时一台交换机 ≈ 一个大广播域一台交换机可切成多个广播域ARP 能吵到所有口ARP 通常只吵到同 VLAN 的口部门隔离往往靠「换设备 / 换线」可在同一物理网上做逻辑隔离广播风暴影响面更大故障与吵闹可被限制在片内它解决的不是「给主机再发一个 IP」而是同一物理交换平面上 如何让办公、访客、服务器「共用机柜与上行」 却在二层上彼此听不见。1.2 VLAN 不等于「换 IP 段」但常常一起规划工程上常见配套VLAN 10 ↔ 网段 10.10.10.0/24 VLAN 20 ↔ 网段 10.10.20.0/24这是运维约定方便人脑记忆与防火墙对象命名并不是协议规定「VLAN 号必须等于网段第三段」。真正让「同网段却不通」的是二层没在一起IP 规划只是让人好记。反过来也会踩坑硬把不同 VLAN 的口配成同一 IP 网段 → 仍然 ARP 不到二层隔离 → 看起来像「掩码对了但局域网坏了」所以排障时要同时问两件事地址前缀是否对齐网络层以及是否同 VLAN / Trunk 是否放行链路层。只改掩码救不了 VLAN 切错。1.3 和子网、SVI、安全组的边界概念主要在哪一层直觉典型动作VLAN二层广播域隔离切广播、限制洪泛范围IP 子网三层地址规划决定「谁算邻居、谁走网关」路由器 / SVI让不同 VLAN 三层互通跨网段转发安全组 / ACL常在三层/四层再过滤许不许说、对哪些端口说可以这样记节奏VLAN 让你们「听不见」 路由器 / SVI 让你们「跨网段说话」 防火墙 / 安全组再决定「许不许说」云上常见的「子网互通了却业务被挡」多半已经走出 VLAN走到了安全组「同网段 ARP 都失败」则更该先回二层。1.4 冲突域、广播域VLAN 动的是哪一个现代交换以太网里每个交换端口大致是自己的冲突域VLAN 主要动的是广播域边界。ARP、DHCP Discover、部分服务发现都爱广播。VLAN 把这些噪声关进「自己的房间」也顺便把「误插口」的影响关小。若有人跟你说「VLAN 是为了减少冲突」——在今天的交换网络里这话过时了更准确的说法是VLAN 管理广播与二层可达范围。二、原理802.1Q、Access、Trunk、Native、SVI2.1 802.1Q Tag帧上多贴一张「VLAN 纸条」需要在链路上携带 VLAN 信息时以太网帧会插入 VLAN TagIEEE 802.1Q目的MAC | 源MAC | [Tag: TPID PCP/DEI VLAN ID] | EtherType | 载荷 | FCS常见直觉点字段相关你要知道的TPID常见0x8100表示后面是 802.1Q TagVLAN IDVID常用 14094保留值视设备/标准细节优先级位可做简单 QoS 分类本篇不展开帧变长Tag 让帧多 4 字节抓包与部分 MTU 讨论会碰到带 Tag 的帧多在 Trunk 链路上走对端交换机靠 Tag 知道它属于哪个 VLAN。主机网卡通常发出的是无 Tag 帧Tag 多半由交换机口规则加上或剥掉。终端「无感」是设计目标不是偶然。抓包时若在主机口上很少看见 Tag不代表 VLAN 不存在——更常见的是 Access 口已经剥干净了。2.2 Access 口终端侧「只属于一个 VLAN」电脑 —— Access口(VLAN 10) —— 交换机行为直觉电脑发来的无 Tag 帧交换机视为属于该口的 Access VLAN例如 10从该口送给电脑的帧通常剥掉 Tag电脑无感适合办公电脑、打印机、摄像头等「单一业务」终端Access 配错的经典样子两台机器 IP 同网段线都亮就是 ARP 无 Reply——因为它们各自 Access VLAN 不同。2.3 Trunk 口上行「一条线跑多个 VLAN」接入交换机 Trunk 汇聚交换机 VLAN 10、20、30… 的帧用 Tag 区分行为直觉多 VLAN 流量复用同一根物理线两端「允许通过的 VLAN 列表」必须对齐列表漏了某个 VLAN就会出现「接入侧有、汇聚侧无」的 VLAN 孤岛Trunk 不是「更高级的 Access」而是给交换机之间、交换机与能理解 Tag 的设备之间用的多路复用通道。把服务器口随手开成 Trunk、又忘了限制允许列表有时会引入意外的二层连通或安全面扩大——生产上要按规范收紧。2.4 Native VLAN不打 Tag 的那一位「熟人」Trunk 上常约定某一 VLAN 的帧不打 Tag称为 Native VLAN。历史兼容、部分管理流量、或厂商默认行为都会用到它。坑在一致性交换机 ANative VLAN 1 交换机 BNative VLAN 99 → 无 Tag 帧被双方理解成不同 VLAN → 难查的二层异常、意外互通或不通排障清单里建议留一条查 Trunk 时顺带确认 Native VLAN 是否一致以及生产是否把 Native 从「默认 1」改成了明确规划值。不同厂商命令不同记意图即可Native 是「无 Tag 时算谁」。2.5 不同 VLAN 如何通信——要上三层SVI / 路由仅二层交换机、又没有路由设备时不同 VLAN 永久二层隔离 这是特性不是故障需要互通时常见做法VLAN10 主机 ──► 接入/汇聚 │ ▼ 三层交换机 SVI如 vlan10 10.10.10.1/24 vlan20 10.10.20.1/24 │ ▼ VLAN20 主机 ◄── 路由转发跨网段SVISwitch Virtual Interface交换机上的 VLAN 三层接口常作为该 VLAN 内主机的默认网关。主机 AVLAN10访问主机 BVLAN20时A 发现目的不在本网段 → 把包交给网关SVI10交换机/路由器查路由从 SVI20 转发出去B 所在 VLAN 内再做一次邻居解析ARP/ND也有「路由器单臂」一个物理口 Trunk 多个 VLAN路由器上建子接口等老派拓扑骨架相同VLAN 负责切开跨 VLAN 是路由问题。跨 VLAN 仍 ping 不通时别只盯 Tag——还要查SVI 是否 up、地址是否对 主机网关是否指向对应 SVI ACL / 防火墙是否默丢 路由表是否有对端网段2.6 和 ARP 章的咬合同 VLAN 同 IP 网段 → ARP 广播能到达 → 可能学到邻居 不同 VLAN → ARP 到不了 → ip neigh 常 FAILED / 无 Reply Trunk 漏放行 → 某段路径「像不同 VLAN」→ 同样无 Reply所以「IP 都对却 ARP 无回复」的决策树要多几根枝ARP 无 Reply ├─ 对端关机 / 主机防火墙丢 ICMP先区分ARP 有没有 Reply ├─ 线/口故障link down、NO-CARRIER ├─ Access VLAN 不一致 ├─ 中间 Trunk 未允许该 VLAN └─ 端口隔离 / PVLAN / 无线客户端隔离表现类似抓包口诀若本机狂发 ARP Request、网线上同 VLAN 却永远没有 Reply优先怀疑「广播域没拼上」而不是先怀疑 IP 算术。2.7 Tag 在路径上的「加」与「剥」心里要有动画主机A(无Tag) → Access(VLAN10)打上/归入 10 → Trunk带 Tag 10 送往汇聚 → 对端 Trunk按 Tag 10 进入 VLAN10 管道 → Access 到主机B剥 Tag主机B 仍无感任一步 VLAN 映射错动画就演砸最常见是 Access 口划错或 Trunk 允许列表漏号。三、应用园区、家用、云上你都会碰到3.1 公司园区部门 / 访客隔离员工有线接入 → VLAN 办公 访客 Wi‑Fi → VLAN 访客常只能出公网 服务器区 → VLAN 服务器 打印机/IoT → 更窄的 VLAN ACL同一楼层交换机靠 VLAN 而不是「人手一交换机」做隔离。访客能上网却进不了文件服务器经常是无线关联成功 访客 VLAN ACL而不是「信号差」。3.2 语音与数据共线IP 电话与电脑有时共享一个口数据 VLAN 语音 VLAN口上支持 Voice VLAN 时。电话注册失败、电脑却正常时除了看 SIP/服务器也要问语音 VLAN 有没有在上行 Trunk 放行口上有没有把电话帧归错 VLAN3.3 数据中心与多租户机柜交换机上行 Trunk 承载大量 VLAN再往上可能是 VXLAN 等叠加。对主机同学不必先啃完整数据中心架构只要记住——多租户隔离在二层语义上仍是「广播别漏到别人家」。3.4 家用光猫藏起来的业务 VLAN家用设备常把 VLAN 藏进「IPTV 口 / 桥接 / 光猫多业务」配置里。电视口和上网口隔离本质也是不同业务 VLAN。插错口 进错广播域电脑插进 IPTV 口表现可以是「有链路灯却上不了网」或拿到奇怪地址。3.5 云上的「VLAN 式」直觉云控制台里的 VPC、子网、交换机、端口组、安全组并不总是字面意义上的 802.1Q但排障语言很像云上说法示意可用的二层/隔离直觉不同 VPC强隔离默认二层/三层都不通同 VPC 不同子网常要路由安全组再过滤同一子网两台 ECS更像「同广播域邻居」仍可能被安全组挡弹性网卡 / 辅助私网 IP改的是「口与地址绑定」不是随便改掩码就能跨域当你在云上看到「安全组已放行仍不通」先区分是邻居解析/路由问题还是策略丢包。VLAN 章练的就是前半段肌肉——「到底有没有在同一个二层可达域里」。3.6 虚拟机与 Linux 桥上的 VLAN 子接口实验或虚拟化环境可用 VLAN 子接口建立直觉需权限与网卡/驱动支持# 示意在 eth0 上建 VLAN 10 子接口 sudo ip link add link eth0 name eth0.10 type vlan id 10 sudo ip addr add 192.168.10.8/24 dev eth0.10 sudo ip link set eth0 up sudo ip link set eth0.10 up这让你在主机侧「看见」Tag 与隔离。生产配置仍以交换机/云平台策略为准乱在办公网口上建子接口可能把实验流量送进不该进的 Trunk——只在实验室或明确允许的环境做。清理示意sudo ip link delete eth0.10四、问题定位VLAN 配错长什么样4.1 经典症状清单现象常见 VLAN 向原因同网段 ping 不通ARP 无 Reply两端 Access VLAN 不同或其一插错口部分业务不通、其它同楼正常Trunk 未放行该 VLAN某楼层整片不通上行 Trunk 断 / VLAN 列表被改 / 汇聚故障间歇性古怪、难复现Native 不一致环路叠加 VLAN链路闪断能通网关不能通邻桌查是否同 VLAN是否端口隔离 / AP 客户端隔离跨部门访问失败但「网关能 ping」可能二层正常卡在跨 VLAN 路由/ACL4.2 决策树「局域网同网段不通」 │ ├─ link down / NO-CARRIER → 物理/线缆以太网章、物理层章 │ ├─ ARP 无 Reply │ ├─ 确认双方 IP/掩码真的同网段 │ ├─ 确认是否同一 Access VLAN │ └─ 中间若有 Trunk该 VLAN 是否允许通过 │ ├─ ARP 正常上层不通 → 主机防火墙 / 对端服务 / 安全组 │ └─ 不同 VLAN 却期望互通 → 查 SVI/路由/ACL三层问题4.3 终端侧能做的验证ip link show ip addr show ip neigh show ping -c 3 同网段邻居 sudo tcpdump -ni eth0 arp观察要点Request 是否持续重发有没有对应 Reply邻居表是 REACHABLE 还是 FAILED若 Request 狂发无 Reply把「VLAN / 口 / Trunk / 隔离」列入怀疑而不是只重装系统。在有管理权限的交换机上命令因厂商而异记意图看口该口 Access VLAN 是多少是否 up 看 Trunk允许列表含不含业务 VLANNative 是否一致 看 MAC 表对端 MAC 是否出现在预期 VLAN 看 SVI跨 VLAN 场景下三层口是否 up、有无地址4.4 「孤岛」两种含义孤岛类型含义常见抓手VLAN 孤岛某 VLAN 在接入有却到不了汇聚Trunk 漏放行、中间设备剥错 Tag三层孤岛二层通但没路由 / ACL 挡住跨 VLANSVI、路由表、防火墙对象排障时先问是 ARP 级不通还是跨网段不通——分别对应二层 VLAN 与三层策略。把两件事混在一张工单里最容易「改了一下午掩码」。4.5 和环路、风暴的叠加VLAN 能限制广播域但不是环路免疫。错误的冗余连线加上生成树未按预期工作仍可能在某个 VLAN 里打出风暴。症状某 VLAN 内主机全卡死其它 VLAN 相对正常——这时别只重启接入交换机要查是否二层环、是否某 VLAN 被错误透传。五、动手对照实验把隔离「摸实」理想环境两台 PC或两台虚拟机 一台可配 VLAN 的交换机/虚拟交换机。只有 Linux 桥/VLAN 子接口时也可做「思想实验 有限验证」。不要在生产办公网口上乱改 Trunk。实验 A同 VLAN 应通两口都划 Access VLAN 10两机配置同网段地址例如192.168.10.8/24与192.168.10.9/24互相 ping并观察ip neigh show sudo tcpdump -ni eth0 arp or icmp预期ARP 有 Reply邻居可达ping 通。实验 B改 VLANIP 不动——应断保持 IP 不变将其中一口改成 Access VLAN 20再 ping、再抓 ARP预期ARP Request 可见本机侧无 Replyip neigh趋向 FAILED。这一步专门用来建立肌肉记忆同网段是必要非充分条件。实验 C恢复同 VLAN——应立刻恢复把口改回 VLAN 10通常无需重装、无需改 IP连通性回来。若「改回后仍不通」再查是否缓存了奇怪邻居状态、是否还有端口安全/隔离策略——但大多数实验室对照到这一步已经够用。实验 D可选Trunk 漏放行思想实验若有两台交换机中间 Trunk 先允许 VLAN 10、20确认跨交换机的同 VLAN 主机互通从 Trunk 允许列表去掉 VLAN 20VLAN 20 主机应变「孤岛」VLAN 10 仍可通把现象记成一句话留给自己Trunk 漏放行的用户侧观感常常就是「这层楼这业务全挂别的业务还好」。实验 E可选跨 VLAN 需要 SVIPC-A 在 VLAN1010.10.10.8/24网关10.10.10.1PC-B 在 VLAN2010.10.20.8/24网关10.10.20.1三层交换机配置对应 SVI 并确保路由/转发开启先 ping 各自网关再互 ping若网关通、互 ping 不通查 ACL 与防火墙。若网关就不通先回到 Access/Trunk/SVI up 状态别先怪应用。实验 F把一次现场写成笔记现象________ 双方 IP/掩码________ ARP 有无 Reply________ Access VLAN若可知________ 中间是否有 Trunk / 是否怀疑漏放行________ 是否本应跨 VLAN若是SVI/网关/ACL________ 结论落在二层隔离 / 三层策略 / 物理链路 / 其它________本章小结若只能带走几句就带走这些VLAN 切的是广播域Access 给终端、Trunk 给多 VLAN 上行Tag 在链路上说话Native 要两端对齐同网段却 ARP 无 Reply优先怀疑 VLAN/口/Trunk跨 VLAN 是路由SVI问题不是改掩码能解决的。云上的隔离语言很多仍可映射回这套二层直觉。VLAN 逻辑切开的广播域二层隔离 Access 给终端Trunk 给上行多 VLAN Tag802.1Q在链路上携带 VLAN IDNative 两端一致 同网段却 ARP 无 Reply → 优先怀疑 VLAN/口/Trunk/隔离 跨 VLAN 通信靠三层SVI/路由再叠 ACL/安全组 云上的网络隔离很多仍可用 VLAN 直觉理解
返回列表