保姆级教程:从零看懂“PVLAN”和你的云主机网络
本文最后更新于2 天前,其中的信息可能已经过时,如有错误请发送邮件到nanshaws360@gmail.com

适合完全零基础,或对网络术语一知半解,想在真实服务器上验证理论的开发者。

📑 目录

  1. 彻底搞懂最基础的 4 个词
  2. 什么是 VLAN?
  3. 什么是 PVLAN?
  4. 把“理论拓扑”翻译成“人话”
  5. 传统方案 VS PVLAN 方案
  6. 你的云主机到底在拓扑图里的哪个位置?
  7. 模拟“网关子接口”实验
  8. 终极总结

一、彻底搞懂最基础的 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/0e0/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)

保姆级翻译

  1. VPC2(网关):这台电脑是“物业总部”,插在交换机的 e0/0 口。因为它权限最高(混杂),它能联系所有住户。
  2. VPC3 和 VPC4:两台住户电脑,插在 e0/1e0/2,都属于 “101合租公寓”。因为在一个 Community VLAN 里,VPC3 能直接访问 VPC4(室友之间能聊天)。
  3. 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 102VPC3 和 VPC5 都在同一个主 VLAN,但分属不同 Secondary VLAN
网关配置网关 VPC2 必须配两个子 IP(eth0.101 和 eth0.102),非常累网关 VPC2 只需配一个 IP,很轻松
VLAN 消耗100 个用户 = 耗掉 100 个 VLAN ID100 个用户 = 只需 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.1192.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

输出里面绝对没有 vlanvlan-id 字样。

保姆级解释

  • 在理论实验(比如 ONIE 编译环境)里,为了演示隔离,网关需要创建 ens3.101ens3.102 这样的“子接口”来处理不同 VLAN 的标签。
  • 但在你的真实云主机里:云平台底层的物理交换机确实划分了 VLAN(比如 VLAN 100),但在把数据包发给你的虚拟机之前,云平台已经把 VLAN 标签撕掉了。所以,你作为租户,根本看不到底层的 VLAN 号码。你看到的只是一片“扁平的大平原”。

七、终极总结(背下来这张表)

你遇到的问题一句人话答案
eth0 是啥?你电脑上的网卡接口。你的叫 ens3,只是改了个名字。
网关在哪?在你上一级的路由器/防火墙上,你的云主机要出去必须经过它。
我怎么看不到 VLAN?云平台怕你搞乱,把标签剥掉了才给你。底层存在,你看不见。
VPC5 能访问 VPC3 吗?不能。隔离 VLAN 就是老死不相往来,只能跟网关说话。
PVLAN 牛在哪?省 VLAN ID,省网关配置,一个 IP 管所有用户。
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇