我是这方面的新手,想弄清楚为什么我的配置不起作用。我有两个子网,每个子网都通过 2 级交换机连接。我已将子网更改为以下内容:子网 1 有 62 个主机,子网 2 有 7 个主机。子网 1 如下:范围 1-62,BC 63,掩码 255.255.255.128。子网 2 有 7 个主机,范围为 64-70,71 为 BC。子网掩码为 255.255.255.248。
我将每台计算机都连接到一个交换机,并将两个交换机相互连接。我试图演示两个不同子网上的两台计算机如何无法通过低级交换机相互通信。这里一切正常;它们无法相互 ping 通。现在到了有趣的部分。我将两台计算机放在同一个子网上,并让它们尝试相互 ping 通。它们仍然无法相互通信。显示主机不可访问。但是,四个数据包通过了。我这里遗漏了什么?
我还想最终添加一个路由器,以便子网可以相互通信。在这种情况下,我必须有两个路由器,对吗?每个路由器都配置了子网的私有设置,然后将两个路由器连接在一起?
答案1
如果您是新手,请不要从除 之外的子网掩码开始255.255.255.0
。让子网 1 为192.168.0.0
,子网 2 为192.168.1.0
。这应该能够演示您想要的内容。当您添加路由器时,您只需要一个路由器。它将有两个接口,每个子网上一个。一旦您让它工作,您就可以尝试使用非标准子网掩码。
答案2
任何通过以太网上的 TCP/IP 进行通信的系统都必须使用 ARP 或其他邻居发现协议来找出哪个 MAC 属于 IP。
大多数系统(包括 Windows、Linux 和所有常见系统)在第一次遇到 IP 时都会发出 ARP 请求,然后在另一个系统响应后缓存查找。
我敢打赌,您可能更改了一个系统的 IP,但另一个系统仍在使用过时的 ARP 条目。更改 IP 应该会清除 ARP 缓存,但如果您没有更改另一个系统上的 IP,那么它可能发送到错误的 MAC 地址。通过arp -d
在另一个系统上运行以清除 ARP 缓存可以纠正此问题。
通过的四个数据包可能是来自一个系统的 ARP 请求。
答案3
谢谢大家。菊花链无法正常工作,因为电缆是直通电缆而不是交叉电缆。另外,有一个开关有故障。我仍然想知道 Netgear 无线路由器上是否有可能有两个子网。如果可以,我应该在私有设置中将第二个子网放在哪里?我根本没看到这个。这是 NetGear WGR614v10
答案4
我把两台电脑放在同一个子网中,并让它们尝试互相 ping 通。它们仍然无法互相通信。显示主机无法访问。
如果你说你建立了身体的两台计算机之间的连接——也就是说,你把它们放在身体上在同一 LAN 段上 — 同时为它们配置 IP 地址和网络掩码,表明它们位于不同的子网,那么这是预期的行为。以下是 IP 堆栈在发送 IP 数据包时使用的逻辑的简化描述:
检查目标地址是否与此计算机的某个网络接口 (NIC) 位于同一子网。
- 如果是,则使用适当的接口将数据包直接发送到目的地。
(我故意在这里省略了很多细节;特别是关于 ARP 的细节。)- 如果没有,请检查我是否知道处理目的地的路由器。
- 如果是,则将数据包发送到该路由器。
- 如果没有,请检查我是否有默认路由器。
- 如果是,则将数据包发送到默认路由器。
- 如果没有,则报告“主机无法访问”。
也就是说,可以在同一台计算机上身体的网段(带身体的连接)无法相互通信,因为它们逻辑上在不同的子网上。并且可以通过添加在逻辑子网之间路由的路由器来建立它们之间的通信——即使它们位于同一个物理网络上。(事实上,我已经这样做了。)
但是,有四个数据包通过了。ping
出去时,它显示主机无法访问,但显示已发送 4 个数据包,已接收 4 个数据包,没有数据包丢失。这个消息让我很困惑。
好吧,这听起来令人费解。我仍然不确定我是否理解了你所做的,所以我猜:你有一个路由器。你的测试台是否连接到互联网?如果是,你可能有一个由 ISP 提供的路由器。你的计算机可能配置为使用 ISP 的路由器作为其默认路由器。因此,按照上面描述的算法,你的计算机将 ping 数据包发送到默认路由器。我还猜你没有 “告诉”您的路由器您的实验网络配置;因此,当路由器收到发往您家中另一台计算机的数据包时,它会感到困惑 — 它不知道如何处理它。因此它会以“主机不可达”控制消息(单个 ICMP 数据包)进行响应。
因此 — — 总的来说 — — 您的计算机已发送了四个数据包(到路由器)并收到了四个“主机不可达”数据包(来自路由器)。
PS:不,对于这样简单的设置,没有理由使用两个路由器。