当主机配置IP及网关地址不在当前网段,请求报文会发到哪?

探讨了当主机IP及网关地址不在同一网段时,数据包为何无法发送的问题。通过分析ARP表和路由表,解释了跨网段寻址失败的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当主机配置IP及网关地址不在当前网段,报文会发到哪?

哪都去不了,报文应该发不出去。

测试

如下:我当前主机所在网段的网关是172.18.65.1,我本机配置的ip是172.18.65.61。这是没有问题的,可以正常上网。
在这里插入图片描述
现在修改我本机的ip地址172.18.63.61,网关是172.18.63.1,注意:配置的IP与网关两个地址需要在同一网段,尽管手动配置的静态ip地址与我当前实际网关(172.18.65.1)不在同一网段。
在这里插入图片描述
然后,重启网卡,使配置生效。
这个时候是上不了网的。

原因

会不会有朋友猜测,报文发出去了,但是到路由器这里丢了?
实际上应该没发出去。
接下来我解释下原因(其实是我自己的一些推测及验证,如果有解释不正确的地方,请在评论中及时指正,谢谢)
简单解释下请求报文如何寻址。

  1. 在IP路由表,根据目的ip,可以知道下一跳路由器,或者直达目的网络接口。
  2. 基于arp协议,可以找到目的ip映射的mac地址,也就是说这个IP对应的是哪块网卡(网络接口),然后从这个网卡发出去。
    现在实际情况是修改了IP不在当前网段后,报文发不出去了。
    原因我接着往下说:
    首先,没改IP前,看下arp表和路由表:
    在这里插入图片描述
    在这里插入图片描述
    看标红框的地方,是网关,比如我打开浏览器,访问百度,这个比喻不合适,因为报文发不出去,还怎么解析域名。
    但是,现在打个比方,比方我现在向百度的实际IP发一个请求报文,百度的实际IP肯定和上面路由表中的几个网段不在同一个网段
    在这里插入图片描述
    所以最终会选择从接口enp3s0发向网关。
    好了,现在我把本机IP及本机网关地址配置与当前不在一个网段:
    172.18.65.1 -> 172.18.63.1
    172.18.65.61 -> 172.18.63.61
    这时候看下arp表和路由表:
    在这里插入图片描述
    在这里插入图片描述
    首先,从路由表中,知道要要到达目的IP(39.156.66.18),当前要先发到网关172.18.63.1,因为不是直达么。但是在arp表中,可以看到:172.18.63.1的mac地址呢???
    虽然接口是enp3s0,但是现在谁能告诉它,mac地址是多少,要发给谁???因为没有目的mac地址,所以这个包最终应当是不会交到物理层的,也就是网卡这里不会发到物理层。
    抓个包可以看到:
    在这里插入图片描述
    我本机(戴尔的一款笔记本)一直在发arp请求,想知道192.18.63.1的mac地址是多少,但是永远不会收到arp应答。因为当前网段上根本就不存在这个ip,所以这个包也就发不出去了。

写在最后,小弟才疏学浅,好多东西怕是还没掌握,就担心有理解错误的地方,如有问题,请及时指正,不要让我一直错下去。好人一生平安。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不识君的荒漠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值