《网络协议》笔记-IP是怎么来的,又是怎么没的?

Posted iblade

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《网络协议》笔记-IP是怎么来的,又是怎么没的?相关的知识,希望对你有一定的参考价值。

例如,旁边的机器都是 192.168.1.x,我非得配置一个 16.158.23.6,会出现什么现象呢?

包发不出去,这是因为 MAC 层还没填。目标 MAC 填什么呢?是不是填 192.168.1.6 这台机器的 MAC 地址呢?当然不是。Linux 首先会判断,要去的这个地址和我是一个网段的吗,或者和我的一个网卡是同一网段的吗?

只有是一个网段的,它才会发送 ARP 请求,获取 MAC 地址。如果发现不是呢?

Linux 默认的逻辑是,如果这是一个跨网段的调用,它便不会直接将包发送到网络上,而是企图将包发送到网关。

如果你配置了网关的话,Linux 会获取网关的 MAC 地址,然后将包发出去。对于 192.168.1.6 这台机器来讲,虽然路过它家门的这个包,目标 IP 是它,但是无奈 MAC 地址不是它的,所以它的网卡是不会把包收进去的。

如果没有配置网关呢?那包压根就发不出去。如果将网关配置为 192.168.1.6 呢?不可能,Linux 不会让你配置成功的,因为网关要和当前的网络至少一个网卡是同一个网段的,怎么可能 16.158.23.6 的网关是 192.168.1.6 呢?

动态主机配置协议(DHCP)Dynamic Host Configuration Protocol

设备进进出出,管理员不可能手动分配每个上网设备的IP,我们需要有一个自动配置的协议。

数据中心里面的服务器,IP 一旦配置好,基本不会变,这就相当于买房自己装修。

DHCP 的方式就相当于租房。你不用装修,都是帮你配置好的。你暂时用一下,用完退租就可以了。

当一台机器新加入一个网络的时候,肯定一脸懵,啥情况都不知道,只知道自己的 MAC 地址。怎么办?先吼一句,我来啦,有人吗?这时候的沟通基本靠“吼”。这一步,我们称为 DHCP Discover。

在这个广播包里面,新人大声喊:我是新来的(Boot request),我的 MAC 地址是这个,我还没有 IP,谁能给租给我个 IP 地址!

如果一个网络管理员在网络里面配置了 DHCP Server 的话,他就相当于这些 IP 的管理员。他立刻能知道来了一个“新人”。这个时候,我们可以体会 MAC 地址唯一的重要性了。当一台机器带着自己的 MAC 地址加入一个网络的时候,MAC 是它唯一的身份,如果连这个都重复了,就没办法配置了。

只有 MAC 唯一,IP 管理员才能知道这是一个新人,需要租给它一个 IP 地址,这个过程我们称为 DHCP Offer。同时,DHCP Server 为此客户保留为它提供的 IP 地址,从而不会为其他 DHCP 客户分配此 IP 地址。

DHCP Server 仍然使用广播地址作为目的地址,因为,此时请求分配 IP 的新人还没有自己的 IP。DHCP Server 回复说,我分配了一个可用的 IP 给你,你看如何?除此之外,服务器还发送了子网掩码、网关和 IP 地址租用期等信息。
新来的机器很开心,它的“吼”得到了回复,并且有人愿意租给它一个 IP 地址了,这意味着它可以在网络上立足了。

当然更令人开心的是,如果有多个 DHCP Server,这台新机器会收到多个 IP 地址,简直受宠若惊。

它会选择其中一个 DHCP Offer,一般是最先到达的那个,并且会向网络发送一个 DHCP Request 广播数据包,包中包含客户端的 MAC 地址、接受的租约中的 IP 地址、提供此租约的 DHCP 服务器地址等,并告诉所有 DHCP Server 它将接受哪一台服务器提供的 IP 地址,告诉其他 DHCP 服务器,谢谢你们的接纳,并请求撤销它们提供的 IP 地址,以便提供给下一个 IP 租用请求者。

此时,由于还没有得到 DHCP Server 的最后确认,客户端仍然使用 0.0.0.0 为源 IP 地址、255.255.255.255 为目标地址进行广播。在 BOOTP 里面,接受某个 DHCP Server 的分配的 IP。

当 DHCP Server 接收到客户机的 DHCP request 之后,会广播返回给客户机一个 DHCP ACK 消息包,表明已经接受客户机的选择,并将这一 IP 地址的合法租用信息和其他的配置信息都放入该广播包,发给客户机,欢迎它加入网络大家庭。

最终租约达成的时候,还是需要广播一下,让大家都知道。

既然是租房子,就是有租期的。租期到了,管理员就要将 IP 收回。如果不用的话,收回就收回了。就像你租房子一样,如果还要续租的话,不能到了时间再续租,而是要提前一段时间给房东说。DHCP 也是这样。

客户机会在租期过去 50% 的时候,直接向为其提供 IP 地址的 DHCP Server 发送 DHCP request 消息包。客户机接收到该服务器回应的 DHCP ACK 消息包,会根据包中所提供的新的租期以及其他已经更新的 TCP/IP 参数,更新自己的配置。这样,IP 租用更新就完成了。


  1. 正确配置IP?

    CIDR、子网掩码、广播地址和网关地址。

  2. 在跨网段调用中,是如何获取目标IP的mac地址的?

    从源IP网关获取所在网关mac,
    然后又替换为目标IP所在网段网关的mac,
    最后是目标IP的mac地址

  3. 手动配置麻烦,怎么办?

    DHCP!Dynamic Host Configuration Protocol!
    DHCP, 让你配置IP,如同自动房产中介。

  4. 如果新来的,房子是空的(没有操作系统),怎么办?

    PXE, Pre-boot Execution Environment.
    "装修队"PXE,帮你安装操作系统。

以上是关于《网络协议》笔记-IP是怎么来的,又是怎么没的?的主要内容,如果未能解决你的问题,请参考以下文章

DHCP与PXE:IP是怎么来的,又是怎么没的?

说说Kubernetes是怎么来的,又是怎么没的

网络协议 12 - HTTP 协议:常用而不简单

网络协议 10 - Socket 编程:实践是检验真理的唯一标准

IPv6无网络访问权限、如何设置

笔记本电脑显示WLAN没有有效IP配置怎么办??