连接在同一台交换机上的机器是否属于同一子网?

连接在同一台交换机上的机器是否属于同一子网?

当我们谈论子网时 - 我们指的是连接到同一交换机的所有系统吗?

如果我分配的 IP 地址是 10.0.2.1,那么我是否与 10.0.1.39 位于同一子网?

当我们谈论 Wireshark 和其他从同一子网捕获数据包时,我是否能够捕获 10.0.0.0/8 的所有数据或仅捕获 10.0.2.0/24 的数据?

当 IP 为 10.0.1.39 的机器对 www.google.com 进行 GET 操作时,是否会向 10.0.0.1 (网关)发送一个数据包,并且整个 10.0.0.0/8 网络上的任何系统都会看到该数据包,可能是因为交换机 10.0.2.1 会将数据包转发到其网络 10.0.2.0/24?

答案1

但是,当我们谈论子网时,我们是指连接到同一交换机的所有系统吗?

交换机(或在第二层一起运行的一组互连交换机)定义广播域(提供或接受一些 VLAN 配置)。您可以在同一个广播域上运行一个、多个或不运行 IP 子网。如果在更高层添加隧道,您可以运行跨多个广播域的子网。不过,交换机的运行级别比 IP 网络低得多。

如果我分配的 IP 地址是 10.0.2.1,那么我是否与 10.0.1.39 处于同一子网中?

这完全取决于您的子网掩码。如果您使用的是 /24(即 255.255.255.0),则答案是否定的。如果您使用的是 /8 或 /16(即 255.0.0.0 或 255.255.0.0),则答案是肯定的。

当我们谈论 wireshark 和其他从同一子网捕获数据包时,我是否能够捕获 10.0.0.0/8 的所有数据或仅捕获 10.0.2.0/24 的数据?

这取决于接口和它所连接的网络。如果您在 10.0.0.0/8 上,那么您将看到 10.0.0.0/8 的数据包。如果您在 10.0.2.0/24 上,那么您将看到 10.0.2.0/24 的数据包。您可能如果同一物理网络上有其他子网,您还会看到额外的数据包四处飞散,但这并不能保证。交换机将尝试并有选择地仅转发专门发送给您或发送给网络上所有人的数据包,但这些地址位于比 IP 层更低的级别。

当 IP 为 10.0.1.39 的机器访问 www.google.com 时,是否会向 10.0.0.1(网关)发送一个数据包,并且整个 10.0.0.0/8 网络上的任何系统都会看到该数据包,可能是因为交换机 10.0.2.1 会将数据包转发到其网络 10.0.2.0/24?

正常情况下,来自交换网络上的客户端的请求将仅有的可以被它和默认网关之间的交换机看到。

答案2

假设我们讨论的是 IP 版本 4,IP 地址包含 32 位。在标准 XXXX 表示法中,每个八位字节 X 为 8 位。(请注意,将它们分组为 4 个八位字节并没有什么“特殊”之处,只是为了方便人类书写 - 机器在 32 位内进行划分没有任何问题。)

子网掩码将该地址分为两部分:网络部分(左)和主机部分(右)。

还要意识到 IP 地址是分配给接口(NIC 等)而不是单个机器的。

基本上,同一子网上的所有内容都可以相互通信,而无需通过路由器。不同子网上的所有内容,都需要路由器在中间转发,以便流量来回移动。

如果一台机器想要通过给定接口与另一台机器通信,并且该接口上的网络部分与另一台机器的网络部分相同,那么它应该能够将其想要说的内容推送到线路上,并标记其自己的地址(源)和想要与之通信的对象(目的地),另一台机器就会接收它。在 10BaseT 等旧时代,所有设备都物理连接到同一条物理线路,这种情况确实会发生。现在集线器和交换机已经取代了它。

如果一台机器想要通过给定接口与另一台机器通信,并且该接口上的网络部分与另一台机器的网络部分不同,流量需要经过路由器。机器需要记录路由器的 IP 地址(在这种情况下,路由器通常称为网关)并将流量发送到该子网。然后路由器/网关预计向前到目的地或更靠近目的地的另一个路由器的流量。

在大多数家庭网络设备上,连接到交换机的所有机器通常都配置为位于同一子网中,因为将它们全部连接到同一交换机的目的是让它们能够相互通信。如果其中一个配置错误,它将无法参与任何通信。但是,如果设备是集线器而不是交换机,集线器会将所有流量转发给它(因为集线器不记得 MAC 地址,只会转发或泛洪所有端口中的所有内容),并且如果 NIC 处于混杂模式,连接的系统可以“监听”所有流量。如果该系统将流量发回,如果它不在同一子网中,则没有其他 NIC 会接收它(除非它也处于混杂模式)。

高级网络设备可以“划分”为 VLAN,连接在一起的机器彼此之间看不到流量。要使不同 VLAN 上的机器进行通信,需要使用转发/路由器。

相关内容