什么是 VLAN?他们解决什么问题?
我正在帮助一个朋友学习基本的网络,因为他刚刚成为一家小公司的唯一系统管理员。我一直在向他指出与各种网络主题相关的 Serverfault 上的各种问题/答案,并注意到一个差距 - 似乎没有一个答案可以从第一原则解释什么是 VLAN。本着如何子网划分工作的精神,我认为在这里提出一个带有规范答案的问题会很有用。
答案中要涵盖的一些潜在主题:
编辑:明确地说,我已经知道 VLAN 是如何工作的 - 我只是认为 Serverfault 应该有一个涵盖这些问题的答案。如果时间允许,我也会提交我自己的答案。
假设您通过直接电缆将中继端口从支持 VLAN 的网络交换机连接到(不支持 VLAN 的)消费级网络交换机。现在,前一个交换机向后一个交换机发送一个 802.1Q 标记的以太网帧。后面的switch应该怎么做?掉帧?转发帧?未定义的行为?
如果行为未定义,最有可能的是什么?
0x8100EtherType 字段中的帧1维基百科有一个很好的图表比较了未标记和标记的以太网帧:
有报道称,一些消费级交换机可以很好地传递带有 VLAN 标记的帧。
1或更准确地说,其中无标记帧需要 EtherType 字段
我似乎对 VLAN 在 Linux 上的工作方式有一些根本性的误解,我希望这里的好人可以教育我。
演员:一台 Cisco 3560、一台 VLAN 和一台 Linux 机器 [1]。
Cisco --------------- Linux
ge0/1 eth0
Run Code Online (Sandbox Code Playgroud)
Cisco 有一个 Vlan 37 接口,IP 地址为 10.40.37.252/24。我想把 10.40.37.1/24 放在 Linux 机器上。
当 Cisco 解封 vlan 37 时,一切正常 [2]:
# Cisco
interface Vlan37
ip address 10.40.37.252/24
interface GigabitEthernet 0/1
switchport mode access
switchport access vlan 37
# Linux
ip link set eth0 up
ip addr add 10.40.37.1/24 dev eth0
$ ping 10.40.37.252 && echo It works
Run Code Online (Sandbox Code Playgroud)
但是,当我将端口设置为中继并在 Linux 端分配 vlan 37 时,它停止工作:
# …Run Code Online (Sandbox Code Playgroud) 刚开始时,我是一名思科人,被安排到 HP 项目中。
从外到内的基本拓扑概述:
我无法让 vlan 100 通过此链接。我还为连接到交换机的 AP 配置了中继,无法在 AP 上 ping vlan 100 BVI,但可以访问 vlan 1 BVI。
分销软件 2610:
MP1-0# show run
ip default-gateway 10.100.100.100
vlan 1
name "DATA"
untagged 1-22,24-A1,B1
ip address 10.100.100.6 255.255.255.0
no untagged 23
exit
vlan 100
name "GUEST"
untagged 23
tagged 24-A1
ip …Run Code Online (Sandbox Code Playgroud) 我正在尝试降低 ProCurve 交换机上 VLAN 1 的使用率;1 未使用。我知道 VLAN 1必须存在,但我想从所有端口中删除它,尤其是交换机之间的中继。
我遇到的问题是,如果没有 VLAN 1,堆叠似乎无法工作。
我已经更改了所有交换机上的主 VLAN 和管理 VLAN:
(config)# primary-vlan 42
(config)# management-vlan 42
(config)# no vlan 1 untagged 25
Run Code Online (Sandbox Code Playgroud)
端口 25 是我正在测试的两台交换机之间的链接;堆叠主设备和成员交换机;我只想要交换机之间的标记流量,没有未标记的帧。
show stacking 在 master 上将所有成员显示为“UP”,但我无法远程登录其中任何一个:
Telnet failed: Connection timed out.
Run Code Online (Sandbox Code Playgroud)
所有交换机都在 VLAN 42 上手动分配了(静态)IP 地址,并且都存在于同一个 /25 子网中,我的桌面也是如此。我可以将交换机直接从我的桌面 telnet 到各个交换机的 IP 地址,而不是从主交换机。
我是否需要重新启动交换机才能使主 VLAN 更改生效?或者还有什么我想念的吗?
编辑:show vlans输出:
Status and Counters - VLAN Information
Maximum VLANs to support : 16
Primary VLAN : ADM
Management VLAN : …Run Code Online (Sandbox Code Playgroud) 我正在阅读一些维基百科文章和 RFC 5517,研究 VLAN,但我不知道中继端口和标记端口之间的区别。
根据我正在阅读的材料,标记端口用于允许从不同的 VLAN 中看到主机。例如,如果端口 1 标记为“vlan 1”,并且也标记为“vlan 2”,则它可以向两个 VLAN 中的每个主机发送 2 级数据包。
我发现的Trunk端口的定义是“包含VLAN TAG的旅行数据包的端口”。VLAN TAG 包含 VLAN ID,因此根据我的理解,中继端口必须是标记端口,但交换机是否可以有一个标记端口,但不是中继端口?如果是,有什么区别?
PS:我最关心的是Cisco交换机。
我遇到了架构挑战的各种障碍。我有一台运行 KVM 的服务器——它将包含许多来宾,一些运行虚拟化防火墙,其他一些,只是普通的 Web 服务器。
现在,这通常很简单,只需eth0在其中添加一个网桥,在网桥上添加几个 VLAN(vmbr0.1等等) - 然后为每个来宾(或其倍数)分配一个带有未标记 VLAN 的接口。
firewall1 (vlan 1,2,3,4)
switch ===== eth0 vmbr0 firewall2 (vlan 1,2,5,6)
(eth0) server1 (vlan 7)
server2 (vlan 8)
vlan trunk
(1,2,3,4,5,6,7,8)
Run Code Online (Sandbox Code Playgroud)
现在,如果您只有几个需要传递给来宾的接口,这可以正常工作。但是当您需要将 500 个 VLAN 放入防火墙时会发生什么。它的不切实际。
所以我无法弄清楚如何创建一个数字中继(具有公共 VLAN 和不同的 VLAN),并将它们分配给来宾。
到目前为止,我找到的最接近的解决方案是在主桥上创建 VLAN,然后对于服务器,只需从中分配一个 VLAN。
然后对于防火墙,为每个防火墙创建一个桥,其中只有来宾的tap接口,然后vlan为相应的桥创建未标记的接口,并将其添加到主vmbr0桥。
唯一的问题是离开未标记接口的流量当然是未标记的。
是否可以标记离开接口的流量?
——
否则,如何实现 KVM 来宾的不同中继,这些中继可能具有公共 VLAN 和不同的 VLAN(但绝不是所有 VLAN) - 并且能够分配单个未标记的 vlan 接口
我有两个Netgear GS748TS 48 端口千兆可堆叠交换机,当通过两条 HDMI 电缆堆叠时,其中一个交换机上的主机可以与另一个交换机上的主机通信。
Netgear 声称 HDMI 中继允许 10Gbps 的带宽,但是当我使用 4 台计算机和 iperf 进行测试时,似乎只有 1Gbps 的带宽可用于交换机之间的通信。
是否需要额外配置?我在这里错过了一些基本的网络概念吗?
我真的很想保留所有客户端端口,嗯……客户端,而不是为了中继而牺牲 16 个或更多端口。
任何帮助表示赞赏,非常感谢。
编辑:我将使用更高质量的 HDMI 电缆重新测试并报告!
Windows Server 2012R2,带有 hyper-v。对于连接到多 vlan 的 hyper-v 来宾操作系统,主机的 NIC 连接到交换机集线器上的中继端口。但我想设置带有 VLAN ID(VLAN 10) 的主机操作系统,用于 VLAN 10 IP 地址。
我想为我们的网络构建一个新的“核心”。我们目前有一个 3com 4060 交换机作为核心,将所有其他 TOR 和接入交换机连接在一起。
目标是在不影响性能的情况下为核心增加弹性。
目前,每台交换机都通过配置为 LACP 中继的 2 到 4 条物理链路连接到核心。
我正在考虑用一对带有可选堆叠模块的 HP 2920 交换机替换 3com。我的理解是,通过堆叠模块,2 个交换机将充当 1 个“虚拟”交换机,因此我可以将每个链路从接入交换机连接到每个 2920:

实际问题
我知道这不是一个不寻常的安排,但我的问题是:
我发现了很多相互矛盾的信息。很多消息来源说分布式中继只能用 3xxx 或更高的交换机完成,但 HP QuickSpecs 说 DT 可以用 2920 完成。其他消息来源说 DT 只能在一对交换机和服务器之间完成(不是其他交换机)但如果 DT 显示为“下游”设备的 LACP 中继,那么这有什么关系?
我可以使用 STP 来阻止接入交换机和第二个核心交换机之间的链接,但我不想浪费所有带宽。