本文最后更新于2 天前,其中的信息可能已经过时,如有错误请发送邮件到nanshaws360@gmail.com
适合完全零基础,或对网络术语一知半解,想在真实服务器上验证理论的开发者。
📑 目录
- 彻底搞懂最基础的 4 个词
- 什么是 VLAN?
- 什么是 PVLAN?
- 把“理论拓扑”翻译成“人话”
- 传统方案 VS PVLAN 方案
- 你的云主机到底在拓扑图里的哪个位置?
- 模拟“网关子接口”实验
- 终极总结
一、彻底搞懂最基础的 4 个词
在进入复杂拓扑前,我们必须把最基础的“零件”认清楚。否则就像不懂螺丝和扳手,直接去修车。
1. 网卡(eth0 / ens3)
- 是什么:就是电脑上的“网线插口”。你的电脑(物理机或虚拟机)插上网线,就靠这个口收发数据。
- 为什么名字不一样:
eth0:是 Linux 系统给第一块网卡的传统命名(Ethernet 0)。ens3:是新一代 Linux 的命名规则(例如:Ethernet Network Slot 3)。在你的云主机里,网卡名字可能叫ens3,它和eth0是同一个东西,只是叫法不同。
- 记住:在拓扑图里,VPC3 的
eth0,就相当于你云主机的ens3。
2. 交换机端口(e0/0、e0/1)
- 是什么:交换机就像一个“插线板”。上面有很多插孔(端口),比如
e0/0、e0/1。我们把电脑的网线插进这些孔里,电脑们就能互相通信了。 - 记住:
eth0/ens3是电脑上的口,e0/x是交换机上的口。一根网线,一头插电脑(eth0),一头插交换机(e0/1)。
3. IP 地址(192.168.100.10)
- 是什么:就像你家的门牌号。别人要找你,就必须知道这个号码。示例中你的 IP 是
192.168.100.10。
4. 网关(192.168.100.1)
- 是什么:就像你们小区的大门。你想出小区(访问外网),必须先走到大门那里。你的数据要出这个局域网,必须先发给
192.168.100.1。 - 关键判断:如果你的 IP 是
192.168.100.10,网关是192.168.100.1,注意看 IP 前三段都一样,说明它们住在同一个小区(同一个网段)。
二、什么是 VLAN?(虚拟局域网)
假设一个小区(交换机)里住了很多人。
- 没有 VLAN:所有人都在一个大操场上,谁喊一嗓子所有人都能听见(广播)。这很不安全,张三能直接敲李四的门。
- 有了 VLAN:物业把小区用墙隔开,分成 A区(VLAN 10) 和 B区(VLAN 20)。A区的人出不了自己的墙,B区的人也进不来。这样隔离了用户,也减少了广播噪音。
三、什么是 PVLAN?(专用虚拟局域网)—— 重点!
普通 VLAN 有个大问题:假设有 100 个住户,为了让他们互相隔离,难道要建 100 堵墙(划分 100 个 VLAN)吗?那太浪费墙(VLAN ID)了!
PVLAN 的聪明做法: 只建一个大围墙(Primary VLAN),但在大围墙里面,用铁丝网(Secondary VLAN)隔开。
PVLAN 里的三种“住户权限”:
| 端口类型 | 外号 | 权限说明 |
|---|---|---|
| 混杂端口(Promiscuous Port) | 小区物业总部(网关) | 权限最大,能去所有区域(能访问所有人)。 |
| 社区端口(Community Port) | 合租公寓 | 同公寓(同 Community VLAN)的室友可以互相串门,但不能去别的公寓。 |
| 隔离端口(Isolated Port) | 独立单人牢房 | 极其严格,不能跟任何人说话(连隔壁牢房都不行),只能跟物业总部(网关)说话。 |
四、把“理论拓扑”翻译成“人话”
现在回头看那张你看不懂的图:
VPC2 (物业总部 / 网关)
|
eth0 (电脑网卡)
|
(Promiscuous Port) e0/0 (插在交换机0号口)
|
-----------+-----------
| | |
e0/1 e0/2 e0/3 (交换机1,2,3号口)
| | |
VPC3 VPC4 VPC5
(小区101) (小区101) (小区102)
保姆级翻译:
- VPC2(网关):这台电脑是“物业总部”,插在交换机的
e0/0口。因为它权限最高(混杂),它能联系所有住户。 - VPC3 和 VPC4:两台住户电脑,插在
e0/1和e0/2,都属于 “101合租公寓”。因为在一个 Community VLAN 里,VPC3 能直接访问 VPC4(室友之间能聊天)。 - VPC5:这台住户电脑,插在
e0/3,属于 “102隔离单间”。因为它是隔离端口,VPC5 不能访问 VPC3,甚至不能访问隔壁的 VPC6(如果存在)。它只能找物业总部(VPC2)。
回答你最开始的疑问:
“也就是vpc5不能和vpc3通信?”
答:对! VPC5(隔离区)连 VPC3(合租区)的大门朝哪开都不知道,数据包到了交换机就直接被丢掉了。
五、传统方案 VS PVLAN 方案(为什么要有 PVLAN?)
如果没有 PVLAN,为了达到“VPC3 和 VPC5 隔离”的效果,网管只能这样干:
| 对比项 | 传统普通 VLAN 方案 | PVLAN 方案(你图里的) |
|---|---|---|
| 做法 | VPC3 划到 VLAN 101,VPC5 划到 VLAN 102 | VPC3 和 VPC5 都在同一个主 VLAN,但分属不同 Secondary VLAN |
| 网关配置 | 网关 VPC2 必须配两个子 IP(eth0.101 和 eth0.102),非常累 | 网关 VPC2 只需配一个 IP,很轻松 |
| VLAN 消耗 | 100 个用户 = 耗掉 100 个 VLAN ID | 100 个用户 = 只需 1 个主 VLAN + 2 个子 VLAN,极其节省 |
六、你的云主机到底在拓扑图里的哪个位置?(实操!)
现在请登录你的云主机(示例 IP 为 192.168.100.10 的机器),我们一步一步验证。
第一步:看看你的网卡叫什么名字
执行命令:
ip addr
你会看到类似:
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
inet 192.168.100.10/24 ...
结论:你的电脑网卡叫 ens3,它接在云平台的虚拟交换机上。
第二步:找到你的“大门”(网关 IP)
执行命令:
ip route | grep default
你会看到:
default via 192.168.100.1 dev ens3
结论:你家大门(网关)是 192.168.100.1,出门必须走 ens3 这张网卡。
第三步:判断你和网关是不是“邻居”(是否在同一 VLAN)
因为你的 IP 是 192.168.100.10,子网掩码是 /24(即 255.255.255.0),这说明:
- 操作系统认为:
192.168.100.1到192.168.100.254都是你的“邻居”(同个局域网)。 - 你的网关
1正好在这个范围内。
执行命令,看看你能不能直接找到网关的门牌号(MAC地址):
ping -c 1 192.168.100.1
arp -n | grep 100.1
如果看到 REACHABLE(可达),铁证如山:你和网关在同一个二层网络里(即同一个 VLAN,或者云平台模拟的同个网络)。
第四步:灵魂拷问 —— 为什么我看不到 VLAN 编号?(核心!)
执行命令,查看网卡的详细属性:
ip -d link show ens3
输出里面绝对没有 vlan 或 vlan-id 字样。
保姆级解释:
- 在理论实验(比如 ONIE 编译环境)里,为了演示隔离,网关需要创建
ens3.101、ens3.102这样的“子接口”来处理不同 VLAN 的标签。 - 但在你的真实云主机里:云平台底层的物理交换机确实划分了 VLAN(比如 VLAN 100),但在把数据包发给你的虚拟机之前,云平台已经把 VLAN 标签撕掉了。所以,你作为租户,根本看不到底层的 VLAN 号码。你看到的只是一片“扁平的大平原”。
七、终极总结(背下来这张表)
| 你遇到的问题 | 一句人话答案 |
|---|---|
eth0 是啥? | 你电脑上的网卡接口。你的叫 ens3,只是改了个名字。 |
| 网关在哪? | 在你上一级的路由器/防火墙上,你的云主机要出去必须经过它。 |
| 我怎么看不到 VLAN? | 云平台怕你搞乱,把标签剥掉了才给你。底层存在,你看不见。 |
| VPC5 能访问 VPC3 吗? | 不能。隔离 VLAN 就是老死不相往来,只能跟网关说话。 |
| PVLAN 牛在哪? | 省 VLAN ID,省网关配置,一个 IP 管所有用户。 |










