连接到交换机的两个不同子网的主机


10

将两个不同子网的主机分别连接到同一交换机S,即A-10.1.2.1/24和B-10.1.3.1/24。它们可以通信吗?

据我了解:

  • A发送IP为B的数据包
  • S接收它并将其与“存储的地址表”中的值进行比较,否则广播它。
  • B收到数据包,检查IP并接受它。

我对吗?

Answers:


17

不幸的是,不,您不正确。

罗恩指出,您没有提供子网掩码,因此,如果我们假设使用有类掩码,则10.xxx地址将具有255.0.0.0掩码,这实际上会将两台主机放在同一网络上。如果是这样,他们将毫无问题地交流。

但是,考虑到问题的性质,我想您打算让这些主机中的每一个使用较小的掩码-我们将继续使用255.255.255.0,它将这两个主机置于两个不同的子网中。

话虽如此,您缺少的核心在于忘记ARP(地址解析协议)。具体来说,HostA决定使用谁来进行ARP。让我解释...


在任何主机将任何数据包放入网络之前,它要做的第一件事就是确定目标IP是在其自己的网络上还是在外部网络上。让我们从主机A的角度进行遍历。

主机A知道其IP(10.1.2.1)和其子网掩码(/ 24,或255.255.255.0)。通过少许子网划分,HostA可以确定其网络跨越10.1.2.0到10.1.2.255范围内的所有IP地址。 (我们将省略NetID和BroadcastIP的详细信息,因为它们暂时不相关)

主机A还知道其目标IP为10.1.3.1,它不在主机A自己的网络内的IP地址范围内。这样,主机A将得出以下结论:目标IP 10.1.3.1在外部网络上,并且主机A只能通过通过路由器讲话才能到达外部网络。更具体地说,是通过HostA的默认网关

如果此时HostA尚未配置默认网关,则该过程将在此处结束,并出现一般故障。HostA无法与HostB通话。

如果主机A 配置了默认网关,它会发出一个ARP请求(这本身就是一个广播帧),询问其默认网关的MAC地址- 不是最终的目的地IP的MAC地址。

接收到广播帧的交换机会将数据包泛洪到所有接口上,以包括一个HostB连接到的接口。HostB确实会收到该数据包,但是由于ARP正在查找默认网关的MAC地址(而不是HostB的MAC地址),因此HostB会丢弃并忽略ARP请求,而不会发送任何形式的响应。

这样,HostA将永远不会收到其默认网关的MAC地址,因此将无法封装带有第2层标头的第3层数据包。数据包将在那里失败。

您可以看到此视频中说明的ARP过程。


就是说,尽管与您的问题有些无关,但我确实想对您说的话说话。这可能是术语上的细微差别,但我只是想确保它可以传达。开关仅做两两件事: 转发帧为它知道目的MAC地址,或洪水帧为它不知道目的MAC地址交换机从不广播

一个广播是一个框架谁的目的MAC地址ffff.ffff.ffff。这是一个专门保留的MAC地址,专门用于广播帧。当交换机遇到发往ffff.ffff.ffff的帧时,其行为是始终淹没该帧。

您可以这样看,因为ffff.ffff.ffff是保留的MAC地址,因此交换机无法学习。因此,每当交换机收到发往ffff.ffff.ffff的内容时,就会被迫将其泛洪到最初接收该帧的VLAN中的所有端口中。


该答案在某些情况下...主机可以没有网关,也可以将自己的地址配置为网关地址。这会导致主机对所有地址进行ARP,并且启用到目的地的路由(甚至是默认路由)的启用了代理ARP的路由器将使用自己的mac地址进行回复。
cpt_fink

3
几乎所有答案/情况都存在极端情况。我不认为在这里讨论其中的某些内容与该问题有关。
艾迪

2

是。如果它们在/ 16子网下。对于/ 24子网,您需要路由器。


1
您可以通过进一步解释来改善答案。例如,解释为什么它可以与一起使用/16,但是`/ 24需要一个路由器。
罗恩·莫平

0

如果主机A和B在不同的网络或子网中,并且连接到同一台交换机,我相信它们可以通过默认网关进行通信。


网关地址必须与主机上配置的地址位于同一网络中。由于网关地址是用于从网络发送流量的地址,因此它必须与发送主机位于同一网络中,否则主机将需要一个网关才能到达该网关。
罗恩·莫平

0

仅当交换机连接到知道如何在这两个子网之间路由的路由器时。


第3层交换机不需要单独的路由器
下文
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.