我有一个关于切换的问题。我有两个设备连接到IP地址为192.168.5.20和192.168.5.10的交换机。两个设备的前缀都相同,/ 24。这意味着它们在同一子网中。
如果将这些设备拆分到交换机的不同VLAN(10和20)上,尽管它们位于同一子网中,但它们将无法通信。为什么会这样呢?
我有一个关于切换的问题。我有两个设备连接到IP地址为192.168.5.20和192.168.5.10的交换机。两个设备的前缀都相同,/ 24。这意味着它们在同一子网中。
如果将这些设备拆分到交换机的不同VLAN(10和20)上,尽管它们位于同一子网中,但它们将无法通信。为什么会这样呢?
Answers:
VLAN要做的事情之一是使用物理交换机,并将其分解为多个较小的“虚拟”交换机。
这意味着一个交换机和两个VLAN的物理描述:
是在操作上基本相同,以相同的拓扑的这种逻辑描述:
即使第二个映像中的IP地址位于同一子网中,您也会注意到两个虚拟交换机(即VLAN)之间没有“链接”,因此主机A / B无法与主机C进行通信/ D。
为了使第二个映像中的主机彼此通信,您将需要某种设备来促进从一个“交换机”到另一个“交换机”的通信。为此目的存在的设备是路由器 -因此,流量穿越VLAN边界需要路由器:
并且由于路由器的工作方式,每个路由器接口必须具有自己的唯一 IP子网。这就是为什么每个VLAN传统上都需要自己的唯一IP子网的原因-因为如果这些VLAN 之间发生任何通信,则将需要唯一的子网。
虚拟LAN的重点是在单个物理设备上创建单独的第2层LAN。
这就像在一个房间里建造一面防弹墙以创建2个房间一样。房间另一半的人不能再与前一房间另一半的人交流。
因此,您在两个不同的L2网络上有两个主机,但没有任何主机可以进行通信。
请注意,在大多数情况下,在两个不同的VLAN上使用相同的子网是没有意义的。标准情况是将IP网络与VLAN关联。
IP子网在逻辑上将主机分组-同一子网内的主机使用其第2层连接直接相互通信。与另一个子网中的主机通信需要使用网关/路由器。
VLAN在物理上对主机进行分组-同一VLAN /广播域/ L2网段中的主机可以直接相互通信。不同VLAN中的主机不能。(别打我- 身体上的组合并不是真的正确,但这是我的观点。)
因此,当两个主机位于同一个IP子网中但位于不同的VLAN /广播域/ L2网络上时,它们将无法通信:源主机假定目标位于其本地L2网络内,因此它尝试ARP目标地址(或NDP解析为IPv6)。
ARP通过将请求广播发送到本地L2网络来工作,具有请求的IP地址的主机使用其MAC地址进行应答。由于目标主机在本地网络外部,因此它永远不会听到ARP请求,并且ARP失败。
即使源知道以某种方式知道目标的MAC地址并建立寻址到该MAC的帧,它也永远不会到达目标,因为它仍然在L2网络之外。来自本地L2网络外部的MAC毫无意义且无用。
与现有答案的补充,涵盖从设计和理论角度考虑的问题...
与其问“ 为什么他们不沟通? ”,不如问“ 他们尝试沟通时会发生什么?”。
首先,在交换机上配置VLAN是什么意思?在我们的示例中,有一些套接字配置为VLAN 10,一些套接字配置为VLAN20。VLAN的定义是仅连接同一VLAN上的套接字。这意味着在给定VLAN的端口上接收到的帧仅发送到相同VLAN的端口。
10 10 20 20 10 20 VLAN of port
1 2 3 4 5 6 Port number
===+===+===+===+===+===+===
| | | | | |
A B C D E F Hosts
在此图中,我们有六个主机,端口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,通过以太网广播发送。
交换机在端口1上接收广播。这是VLAN 10,因此它从端口2和5(VLAN 10中的其他端口)发送广播。主机B和E接收ARP请求,并忽略了该请求,因为它不是它们的地址。
而已。
没有ARP回复;接下来发生的事情是A上的超时,随后是重复的ARP请求,直到应用程序放弃。
主机插入除VLAN 10端口以外的任何端口,无论其IP地址如何,都将看不到任何内容。这显然包括F,即192.168.5.20。
我希望您对子网掩码有很好的了解。当您有单独的VLAN时,必须具有子网的唯一IP地址范围,这不是必需的。
VLAN是一个单独的局域网,但它是一个虚拟局域网。另外,虚拟局域网用于在同一台交换机中分离网络。但是,当您使用Same ip创建虚拟LAN时,它是没有用的。
除此之外,您还需要在交换机上配置Intervlan Routing。
请考虑一下,当您在家中有一个局域网以及一台IP为192.168.2.1的计算机时会发生什么。您路上的朋友家中也有一个局域网和一台IP 192.168.2.2的计算机。他们在同一个子网中,为什么他们不能互相交谈?
在这样的示例中,原因与您要询问的原因不同。
但是VLAN可以达到相同的结果-它在第二层分割了一个网络。
我的观点是,我们可以很容易地看到“ IP地址在同一子网中”这一事实不足以确定数据包是否可以在它们之间路由。基础拓扑也可以发挥作用。
要将其发挥到极致,最底层需要一些物理材料(很好,可以,或者空气:D)才能实际传输数据。您的计算机可以位于同一子网中的同一房屋中,但是没有物理连接(或具有无线链接),因此您不会期望数据包被路由。
VLAN的重点是要进行网络分段。您也可以使用子网达到相同的目的(除了一些警告)。由于您的子网分为两个不同的VLAN,因此您的设备无法在L2网络上进行通信。您可以在交换机上设置IRB接口,以允许VLAN之间进行通信。或者,您可以通过防火墙路由通信,并允许VLAN之间进行选择性通信。理想情况下,应将网络设计为每个VLAN具有不同的子网,然后对VLAN之间的流量进行防火墙。希望这可以帮助。
当以太网连接承载多个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子网重叠,比尝试在单个设备上处理它要优雅得多。