什么是 VLAN?他们解决什么问题?
我正在帮助一个朋友学习基本的网络,因为他刚刚成为一家小公司的唯一系统管理员。我一直在向他指出与各种网络主题相关的 Serverfault 上的各种问题/答案,并注意到一个差距 - 似乎没有一个答案可以从第一原则解释什么是 VLAN。本着如何子网划分工作的精神,我认为在这里提出一个带有规范答案的问题会很有用。
答案中要涵盖的一些潜在主题:
编辑:明确地说,我已经知道 VLAN 是如何工作的 - 我只是认为 Serverfault 应该有一个涵盖这些问题的答案。如果时间允许,我也会提交我自己的答案。
有趣的是,我在搜索“OpenVPN vs IPsec”时没有找到任何好的搜索结果。所以这是我的问题:
我需要在不受信任的网络上设置专用 LAN。据我所知,这两种方法似乎都是有效的。但我不知道哪个更好。
如果您能列出两种方法的优缺点,以及您关于使用什么的建议和经验,我将不胜感激。
在我的具体案例中,目标是让任意数量的服务器(具有静态 IP)相互透明地连接。但是一小部分动态客户端,如“公路战士”(具有动态 IP)也应该能够连接。然而,主要目标是在不受信任的网络之上运行一个“透明的安全网络”。我是个新手,所以我不知道如何正确解释“1:1 点对点连接”=> 解决方案应该支持广播和所有这些东西,所以它是一个功能齐全的网络。
假设您通过直接电缆将中继端口从支持 VLAN 的网络交换机连接到(不支持 VLAN 的)消费级网络交换机。现在,前一个交换机向后一个交换机发送一个 802.1Q 标记的以太网帧。后面的switch应该怎么做?掉帧?转发帧?未定义的行为?
如果行为未定义,最有可能的是什么?
0x8100EtherType 字段中的帧1维基百科有一个很好的图表比较了未标记和标记的以太网帧:
有报道称,一些消费级交换机可以很好地传递带有 VLAN 标记的帧。
1或更准确地说,其中无标记帧需要 EtherType 字段
根据标题,为什么人们告诉我不要出于安全目的使用 VLAN?
我有一个网络,其中有几个 VLAN。2 个 VLAN 之间有防火墙。我正在使用 HP Procurve 交换机并确保交换机到交换机的链接只接受标记帧,而主机端口不接受标记帧(它们不是“VLAN 感知”的)。我还确保中继链路的本地 VLAN (PVID) 与 2 个主机 VLAN 中的任何一个都不相同。我还启用了“入口过滤”。此外,我确保主机端口只是单个 VLAN 的成员,这与相应端口的 PVID 相同。属于多个 VLAN 的唯一端口是中继端口。
有人可以向我解释为什么上述不安全吗?我相信我已经解决了双重标签问题..
谢谢
更新:两个交换机都是 Hp Procurve 1800-24G
我们目前正在运行一个由 800 多台 PC 和 20 多台服务器组成的网络,网络基础设施沿着核心交换机 10Gb-> 区域交换机 2GB-> 本地交换机 1GB-> 桌面。所有正在运行的 3Com 设备 (1)。
我们有四个区域的 3 个区域交换机(A、B、C、D 与核心合并),每个区域交换机将有 10 到 20 个本地交换机连接到这些区域。还有一个备用核心交换机,功率较小,但与主核心交换机一样连接。
我们还有一个IP电话系统。计算机/服务器和交换机在 10.x ip 范围内,电话在 192.168.x 范围内。除了在计算机实验室中,计算机通常不必相互通信,但它们确实需要能够与我们的大多数服务器(AD、DNS、Exchange、文件存储等)通信。
当我们设置时,决定我们有 3 个 VLAN,一个用于交换机和计算机,一个用于电话,一个用于服务器复制(这违反了 3Com 工程师的建议)。从那时起,网络一直稳定运行 (2),但我们现在已经开始升级到 SAN 和虚拟化环境。现在将这个新的基础设施拆分成单独的 VLAN 是有道理的,重新审视我们的 VLAN 是如何设置的似乎是明智的。
现在建议 VLAN 应该在一个房间一个房间的基础上设置,即拥有 5 台以上 PC 的计算机实验室应该是它自己的 VLAN,但如果我们遵循这个模型,我们将至少查看 25 个“新”VLAN ,加上用于 SAN/虚拟服务器的 VLAN。在我看来,这会增加过多的管理,尽管我很高兴被证明是错误的。
最佳实践似乎建议什么?是否有一定数量的 PC 建议不要在 VLAN 中越过 / 低于 VLAN。
(1) 3Com 交换机(3870 和 8800)在 VLAN 之间路由与其他一些路由不同,它不需要单独的路由器,因为它们是第 3 层。
(2) 我们有时确实会遇到高丢弃率或 STP 更改,并且有时 3Com 网络主管报告说交换机负载不足并且响应 ping …
假设有人与我在同一个网络上并欺骗他们的 MAC 地址以匹配我的:
如何使用单个无线适配器同时连接到多个 Wifi 接入点?
我目前使用 pfSense 作为我的家用路由器,我希望它以无线方式连接到多个 AP。你知道这可能吗?
或者,我们如何在 Ubuntu 下做到这一点?请给我一些启发:)
有趣的笔记:
背景
我有一个 Windows DHCP 服务器(Server 2008 R2)分发多个范围的地址。这些范围之一适用于某些 Mitel IP 电话。电话被配置为使用 dhcp 选项 125 来获取配置信息。当电话启动时,它不知道要使用什么 vlan,因此它只会获取它连接到的任何端口的默认(未标记)vlan。dhcp 服务器给它一个包含选项 125 信息的响应,电话能够从这个响应中读取它应该使用的 vlan。然后电话释放其原始地址并使用正确的 vlan 标记请求新的 dhcp 租用。电话通常还具有连接到直通端口的计算机。来自计算机的数据包永远不会被标记,因此 PC 将保留在端口的原始(未标记)VLAN 上。这已经为我们工作了多年。
问题和症状
在过去几周的某个地方,发生了一些变化,我不确定是什么。只要电话不重启,电话就会继续工作,这意味着必须正确处理 dhcp 更新请求。连接到某些交换机的电话甚至可以在重新启动后继续使用。但是,连接到其他交换机的电话在重新启动时将无法完成该过程。我们所有的电话都使用由 UPS 备份的 PoE,因此很久没有重新启动了。这意味着我不知道问题何时首次出现。我所知道的是,一部手机在昨天重新启动时出现故障,今天在对其进行故障排除时,我们重置了该开关柜。现在那个交换机上的电话都没有工作(谢天谢地,这仍然是一个小数目)。我也知道事情在 1 月底左右开始运作,
当我看着手机启动时,我可以看到它成功地获取了第一个地址。然后成功读取option 125信息,设置正确的vlan tag,释放原来的IP租约。它甚至能够接收和接受来自服务器的正确 vlan 上的报价。然而,事情也就到此为止了。电话的屏幕上有一条消息,上面写着“ DHCP: Offer 2 ACC”,但 Windows DHCP 服务器没有记录租约,电话也没有继续前进。我只能猜测 DHCP REQUEST 数据包永远不会到达 Windows 服务器,因此电话正在等待来自 Windows 的最终 ACK 可以继续。
解决方法
我终于能够让手机再次工作。为此,我必须先断开计算机的连接。然后我将电话的交换机端口设置为在电话 vlan 上未标记,在 PC vlan 上没有成员资格。手机现在将正确重启。此时,我可以将交换机端口配置放回应有的位置,只要在我重置端口时没有人尝试拨打该号码,电话就不会错过任何一个节拍。然后我可以重新连接计算机。显然,这不是一个理想的过程,但由于手机很少重启,我将能够使用它让人们重新工作,直到我找到根本原因。办公室现在本周关闭,因此实际上可以在周末解决这个问题(我没有电话所在的个别办公室的钥匙)。
我固定的这个电话是服务器机房的服务电话,直接连接到我们的核心交换机。问题可能是核心交换机上的路由或处理标签的问题,因此该解决方法在数据包首先通过(标记)其他交换机的远程办公室无效,但我会感到非常惊讶如果发生这种情况,鉴于我知道它必须正确处理 dhcp 续订和实际电话对话。
一个扭曲是将端口标记在 PC vlan 上意味着电话会失败并显示消息“ DHCP: Offer 1 ACC”。我需要完全删除该 vlan 才能成功。 …
对于大多数人来说,这是一个愚蠢的问题,但我很想知道“为什么 VLAN 有 IP 地址?”
此地址与默认网关不同吗?或者这个地址和这个VLAN的广播地址一样吗?
IP address 192.168.4.100 255.255.255.0
我在 eth0 上添加了一个标记的 VLAN:
#ip link add link eth0 name eth0.20 type vlan id 20
Run Code Online (Sandbox Code Playgroud)
这导致:
#ip link
2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 9c:c7:a6:95:65:1c brd ff:ff:ff:ff:ff:ff
....
12: eth0.20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 9c:c7:a6:95:65:1c brd ff:ff:ff:ff:ff:ff
#ip -d link show eth0.20
70: eth0.20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 9c:c7:a6:95:65:1c brd ff:ff:ff:ff:ff:ff
vlan id 20 <REORDER_HDR>
#cat /proc/net/vlan/config
VLAN Dev name | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
eth0.234 …Run Code Online (Sandbox Code Playgroud) vlan ×10
networking ×6
security ×3
switch ×3
dhcp ×2
trunk ×2
3com ×1
802.1 ×1
ethernet ×1
ip-address ×1
ipsec ×1
mac-address ×1
openvpn ×1
pfsense ×1
wifi ×1