
我今天看到一个问题:可以B pingA。这是问题的完整说明:
如下图所示,服务器A的IP地址为192.168.26.129,掩码为255.255.255.0,服务器B的IP地址为192.168.26.3,掩码错误地设置为255.255.255.224。假设服务器B对服务器A执行ping操作,

首先查看系统如何执行IP地址路由。我们知道,同一网络上的两个主机将直接将数据包发送到目标IP地址,而无需任何路由。判断同一网段(同一网段除以子网掩码)的标准是什么?如果IP地址和掩码与操作结果相同,则两者位于同一网络中。如果它们不在同一网络中,则需要通过路由查找网关以转发数据包。因此,网关的IP地址必须首先在同一网络上,否则在配置网络时会自动报告错误。
对于不同网络中的两个主机:首先,标准是:IP地址和子网掩码的AND操作结果与目标IP和本地网关的AND操作结果不同。系统在本地路由表中搜索匹配的路由信息。影响路由的几个因素是:策略路由,主路由和默认网关。针对上述问题,当B通过计算向A发起ping操作时,发现A与自身不在同一个网络中,因此B会将数据包发送到网关,网关将转发该数据包。到A。当B用ICMP答复A在发送消息时,发现A与它本身在同一网络上,因此数据包被直接发送到B。实际的数据包传输过程是:

只要在B侧未配置网关或网关不起作用,就无法ping通。如果从A到B启动ping,并且B没有网关,则数据包捕获将发现A可以正常发送ICMP数据包,但是B响应的ICMP数据包无法接收,并且在B的一侧,您会发现它可以接收到ICMP数据包,但无法响应A。
从这个问题开始,扩展了路由表和默认网关的原理。

当我们需要指定哪些对等网络可以访问此计算机时,我们可以配置特定的路由来实现此目的。路由表的操作在本博客中进行了详细描述:linux路由表的配置。通常情况下,我们可能只需要主路由表。例如,主机通过网卡连接到LAN,LAN和外部网络之间的连接通过网关实现。这时,路由器作为网关来实现数据包的路由和转发。
如上图所示,对于这样的网络配置,Windows系统将为我们生成一条路由信息:

表示所有数据包都经过192.168.1.1,这是网络中路由器指定的网关地址。
当系统的网络环境比较复杂时,例如主机有两个网卡,每个网卡连接到一个独立的网络,则将两个网卡的配置指定为:
一张网卡,IP:192.168.1.2,网关:192.168.1.1,掩码:255.255.255.0
B网卡,IP:100.100.1.2,网关:100.100.1.2,掩码:255.255.255.0
A连接到内部网络,而B通过网关连接到外部网络(Internet)。在Linux系统上,如果同时使用两个网络A和B的网关作为主机的默认网关,则如果Internet上有主机200.200.[k19通过B网关的] 2传入的数据包需要进行处理和响应。响应数据包时,系统会在路由表中查找可用的路由。您会发现没有路由可以匹配它,因此转到默认网关的唯一方法是发送数据包。但是目前,系统具有两个默认网关,因此无法决定使用哪个网关。一般来说,其中之一是随机选择的。如果还选择了B,则此时可以连接网络。如果选择了A,则数据包最终将被A的网关丢弃。网络性能是间歇性的。
此问题的解决方案是:1、将特定路由添加到外部网络的IP地址,以将其绑定到B网络的网关。2、删除网络A的网关作为默认网关。通常,我们不知道哪个是外部网络,因此使用方法2更容易。因此,不可能为两个网卡均等地配置网络,而是根据具体情况对它们进行不同的处理。有时,由于配置命令的特定功能不够熟悉,将导致在特定网络上出现间歇性通信的现象。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxingongju/article-337764-1.html
我们会做一个合格的对手