#1 楼
VLAN的作用之一是采用一个物理交换机,并将它们分解为多个较小的“虚拟”交换机。在操作上与相同拓扑的此逻辑描述相同:在同一子网中,您会注意到两个虚拟交换机(即VLAN)之间没有“链接”,因此,主机A / B无法与主机C / D通信。
为了使第二个映像中的主机彼此通信,您将需要某种设备来促进从一个“交换机”到另一个“交换机”的通信。为此目的存在的设备是路由器-因此,流量穿越VLAN边界需要路由器:
由于路由器的工作原理,每个路由器接口必须具有自己的唯一IP子网。这就是为什么每个VLAN传统上都需要其自己的唯一IP子网的原因-因为如果这些VLAN之间发生任何通信,则将需要唯一的子网。 ,您可以在此处阅读更多有关VLAN的概念,并在此处阅读有关VLAN之间的路由的信息。
评论
陷阱陷阱:请勿尝试以这种方式实际拆分交换机,然后通过未标记的端口连接VLAN-除非您确切知道该交换机中STP和CAM实现的设置方式。
–rackandboneman
19年4月11日在15:31
@rackandboneman这是一个很好的建议。但是,为了清楚起见,我帖子中的图像仅表示一个物理开关。 “两台交换机映像”是具有两个VLAN的一台物理交换机的逻辑表示。
–艾迪
19年4月11日在20:48
“每个路由器接口必须具有自己的唯一IP子网。”,对于某些路由器实现而言可能是正确的,但并非普遍如此。至少在Linux上,您可以将同一子网分配给多个接口,然后结合使用代理arp和/ 32路由来使流量在它们之间流动。
– Peter Green
19年4月12日在16:55
@PeterGreen异常始终存在。仅仅因为可以做某事,并不意味着就应该做—也不意味着它与眼前的问题相关。
–艾迪
19年4月13日在17:38
#2 楼
虚拟局域网的重点是在单个物理设备上创建单独的第2层局域网。房间的每半部分中的人不能再与前房间的另一半中的人进行通信。请注意,在大多数情况下,在两个不同的VLAN上使用同一子网是没有意义的。标准情况是将IP网络与VLAN关联。
评论
我很难想像在两个不同的VLAN上使用相同子网的情况。假设您是路由器,并且会收到发往192.168.5.15的数据包。那是哪个VLAN?
– Monty Harder
19年4月11日在15:58
@MontyHarder取决于。它来自哪个网络(虚拟的或非虚拟的)?
–重复数据删除器
19年4月11日在19:33
@Deduplicator我不确定为什么包的源IP是什么很重要。如果您对两个或多个VLAN使用相同的IP范围,如何知道IP是什么VLAN?只是没有意义。
– Monty Harder
19年4月11日在19:42
@MontyHarder我确实有这样的情况:我与使用相同寻址的提供程序互连,并且这些互连是在相同的交换机上进行的。由于我(通过不同的路由器)都与他们交谈,并且彼此之间不交谈,所以很好。
– JFL
19年4月12日在6:32
@MontyHarder实际上,在许多不同的LAN(因此是VLAN)上具有相同的子网是很常见的。 RFC1918专用地址已在数百万个LAN中重复使用。您可能在同一个VLAN上有多个单独的NAT网络。这很可能发生在托管环境中。但是这些网络确实被认为是完全独立的。
– jcaron
19年4月12日在8:50
#3 楼
IP子网在逻辑上将主机分组-同一子网内的主机使用其第2层连接直接相互通信。与另一个子网中的主机通信需要使用网关/路由器。VLAN在物理上将主机分组-同一VLAN /广播域/ L2网段中的主机可以直接相互通信。不同VLAN中的主机不能。 (不要打扰我-物理上分组并不是真的正确,但这确实表明了我的意思。)因此,当两个主机位于同一IP子网中但位于不同的VLAN /广播域/ L2它们无法通信的网络:源主机在其本地L2网络中假定目标,因此它尝试ARP目标地址(或NDP解析IPv6)。广播到本地L2网络,具有请求的IP地址的主机将使用其MAC地址进行应答。由于目标主机位于本地网络之外,因此它永远不会听到ARP请求并且ARP失败。目的地,因为它仍然在L2网络之外。来自本地L2网络外部的MAC毫无意义且无用。
#4 楼
与现有答案相辅相成,涵盖了从设计和理论的角度来看的问题...而不是问“他们为什么不交流?”,而是问“他们尝试时会发生什么?通信?”
首先,在交换机上配置VLAN是什么意思?在我们的示例中,有一些套接字配置为VLAN 10,一些已配置VLAN20。VLAN的定义是仅连接同一VLAN上的套接字。这意味着在给定VLAN的端口上接收到的帧只会发送到相同VLAN的端口。
,端口1、2、5在VLAN 10上,端口3、4、6在VLAN 20上。
假定主机A静态配置为192.168.5.10/24,而F静态配置为192.168 .5.20 / 24,来自问题。假设B到E具有其他静态配置地址(无论它们是什么)。
如果A ping 192.168.5.20,则确定它在相同的/ 24中,所以首先发生的是ARP请求:WHO HAS为192.168.5.20,以以太网广播的形式发送。 VLAN 10中的其他端口。主机B和E接收到ARP请求,并忽略了它,因为它不是它们的地址。
就这样。接下来发生的事情是A上的超时,随后是重复的ARP请求,直到应用程序放弃为止。
除VLAN 10端口以外的任何主机都看不到任何东西,不论其IP地址。显然其中包括F,它是192.168.5.20。
#5 楼
我希望您对子网掩码有很好的了解。当具有单独的VLAN时,必须具有唯一的IP地址范围和子网。这不是必需的。它将在您的交换机中创建单独的广播域。但是,当您使用Same ip创建虚拟LAN时,它是没有用的。除此之外,您还需要在交换机上配置Intervlan Routing。
评论
不,拥有相同子网的多个VLAN并非不可能。这是不寻常的,有些气disc,但是完全有可能。
– JFL
19年4月11日在11:42
@JFL是的,可以使用VRF或其他某种形式的分隔符,但是我还没有看到任何用例。请赐教。
–user36472
19年4月11日在11:51
@JFL对我来说也是同样的问题。我刚才在cisco数据包跟踪器中尝试了Intervlan路由。我不知道思科数据包跟踪器是否有问题。这是行不通的。我同意考恩。在VRF中是可能的。
–下文
19年4月11日在11:54
@Cown我不是说这是个好主意,也不是可以让他们相互交流(但NAT仍然可以)。但是我有一些用例。例如,我与通过某些重叠的RFC1918网络的提供程序进行了互连。它们连接到不同VLAN中的相同交换机,并且彼此之间不通信。
– JFL
19年4月11日在12:38
@JFL抱歉,我只是看不出与最初的问题相比是什么。是的,可以使用重叠的IP地址进行互连或使用NAT,但是我只是认为它不能反映实际情况。
–user36472
19年4月11日在12:45
#6 楼
请考虑一下,当您在家中有一个局域网以及一台IP为192.168.2.1的计算机时会发生什么。您路上的朋友家中也有一个局域网和一台IP 192.168.2.2的计算机。他们在同一个子网中,为什么他们不能互相交谈? >但是VLAN达到了相同的结果-它在第二层对网络进行了分段。用于确定分组是否可以在它们之间路由。基础拓扑也要发挥作用。将其发挥到极致,在最底层需要一些物理材料(很好,可以,或者空气:D)来实际传输数据。您的计算机可以位于同一子网中的同一房屋中,但没有物理连接(或具有无线链接),因此您不会期望数据包被路由。
#7 楼
VLAN的重点是要进行网络分段。您也可以使用子网达到相同的目的(除了一些警告)。由于您的子网分为两个不同的VLAN,因此您的设备无法在L2网络上进行通信。您可以在交换机上设置IRB接口,以允许VLAN之间进行通信。或者,您可以通过防火墙路由通信,并允许VLAN之间进行选择性通信。理想情况下,应将网络设计为每个VLAN具有不同的子网,然后对VLAN之间的流量进行防火墙保护。希望这会有所帮助。评论
在这种情况下,nonononono不使用IRB ...问题是,交换机永远不应在同一子网中配置两个VLAN。最好的答案是将所有主机放在同一VLAN的一个子网中。
–迈克·彭宁顿
19年4月11日在22:11
#8 楼
当以太网连接承载多个VLAN时,必须标记其中一个VLAN以外的所有VLAN。符合IEEE 802.1Q的VLAN标签放置在以太网帧中通常位于该帧的EtherType的位置。 VLAN标记的第一部分是标记协议标识符,它是恒定值0x8100。结果,不知道IEEE 802.1Q标记或配置为不期望它们的设备将看到标记的帧,并认为“这既不是IPv4,ARP也不是IPv6;该Ethertype 0x8100,这是完全不同的,我不知道”认为我一点都不了解。最好只是忽略它。”支持VLAN的交换机可以通过其VLAN标签过滤出发往每个端口的数据包,还可以选择从该端口的出站流量中剥离一个选定VLAN中的VLAN标签(并相互添加VLAN标签到该端口上的传入流量),以便所选VLAN的任何流量都显示为连接到该特定端口的设备的普通802.1Q以太网流量。这样选择的VLAN被称为该端口的本地VLAN。
802.1Q标准允许以太网端口同时支持一个本地VLAN和任意数量的标记VLAN,但是我了解使端口同时通过标记和未标记的以太网帧是一种有点不利的配置:您需要记住,端口/ NIC中的一个VLAN与所有其他VLAN不同,并且需要进行不同的配置。容易出错。
在Cisco术语中,交换机端口可以配置为访问端口或中继端口。访问端口将仅提供对单个VLAN的访问,并且VLAN标签会自动从传出流量中剥离,并添加到该端口的传入流量中。另一方面,中继端口将在一组可配置的VLAN上传递流量,但所有流量都将带有VLAN标签。
因此,对于在同一台交换机上两个不同VLAN中的两个设备,它们都使用同一IP子网上的地址的情况。发生的情况取决于如何为VLAN配置交换机端口(以及设备上的网络接口)。
1.)交换机端口为访问端口,设备不支持VLAN:交换机端口过滤掉“相反” VLAN的流量,因此设备将永远不会看到彼此的流量。这就提出了一个问题,即是否将它们全部视为“在同一网段上”是否有意义。
2.)交换机端口作为中继端口设置为通过两个VLAN,设备不支持VLAN:每个设备都会认为“为什么其他设备不断向我发送奇怪的Ethertype 0x8100信息?我不要这么说。“
3.)交换机端口作为中继端口,每个端口只能通过一个VLAN,设备可以识别VLAN:您需要在的网络配置中指定VLAN编号这些设备也一样,但是最终结果与情况#1基本相同:设备不会看到彼此的流量。
4.)交换机端口作为中继端口设置为通过两个VLAN设备可识别VLAN,但配置为不同的VLAN:现在是设备本身进行过滤的VLAN支持层,但实际结果与情况#1和#3相同:“相反”设备的流量永远不会到达设备网络协议栈中的IP协议层。
5.)交换机端口作为中继端口设置为通过两个VLAN,设备配置了VLAN感知,两个VLAN在设备中未显示。这超出了您的要求。现在,该设备将有效地存在于两个VLAN中。
由于两个VLAN都假装在以太网级别上是不同的,但是使用相同的IP子网,因此发生的情况将取决于设备IP路由的实现方式。主要的重要细节将是IP堆栈是设计为使用强主机模型还是弱主机模型,以及VLAN的概念如何准确地集成到系统中。
例如Linux会将任何已配置的带标记的VLAN呈现为额外的虚拟NIC,以反映基础物理NIC的链接状态,但在技术上尽可能独立。因此,就像您将两个NIC插入两个单独的物理网段(具有100%重叠的IP子网)一样:系统可能会很好地接收传入流量,但是将假定连接到目标IP子网的任何NIC都可以与之通信该IP子网中的任何其他主机,并且将使用哪个(虚拟的,特定于VLAN的)NIC首先出现在路由表中...因此,配置可能会或可能不会生效,具体取决于主机各部分的顺序NIC和VLAN配置已初始化。您需要使用Linux的高级路由功能并创建自定义路由规则才能很好地处理这种情况。
在两个不同的网段上使用相同的IP子网是第3层问题,无论该网段是什么第2层的分隔是物理的(=实际的独立NIC)或逻辑的(=用VLAN创建的)。第3层问题将需要第3层解决方案:使用路由器或其他某些设备对其中一个子网进行NAT对称删除以消除IP子网重叠,比尝试在单个设备上处理它要优雅得多。 br />
评论
您需要一个路由器在不同的VLAN之间进行路由。另外,这样做时,在这两个VLAN上不能有相同的IP子网。您好Jim Pap,欢迎您……就像您将两台主机插入两个不同的交换机一样,一个标记为“ LAN 10”,另一个标记为“ LAN 20”。在交换机上配置VLAN会将您的交换机分为多个虚拟交换机。
这个问题有点像一个重言式。他们之所以不能这样做,是因为他们无法做到。单独的VLAN的创建在逻辑上将交换的互联网分段。现在,您需要使用某种形式的VLAN间路由来使这些设备进行通信。
@Cown在Cisco路由器上不可能有来自不同接口上同一子网的地址,但这与不关心IP地址的VLAN本身无关(可以与IPX / SPX)。而且...思科是重要的参与者,但远非唯一的参与者。
@Cown不同的VRF将如何提供帮助?那样他们就不会沟通了,要回答您的问题,只需桥接vlan,就这么简单。自20年前我加入CCIE以来,思科路由器中就已经可以使用桥接了。