一起学DHCP系列(三)理解、APIPA

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/162407

     这是《一起学DHCP》系列的第三节。

     上节中,我们提到了APIPA,这节里我们将详细讲解有关APIPA的相关知识点。当我们将网卡属性设置为自动获取后,如果客户端在一定时间内无法找到并从DHCP服务器或PPP协议获取到IP地址,那么系统就自动启用一种备选方案,也就是使用APIPA给客户端临时分配一个169.254.X.X的IP地址,具体范围是169.254.0.1—169.254.255.254,子网掩码均为255.255.0.0。这里的APIPA为Automatic Private IP Addressing的缩写,即为自动专用IP寻址, 当系统接入网络后,且长时间无法获取到IP地址,系统为了减少性能消耗(尽管这种消耗微乎其微),就会采取这种措施来避免永不休止的查找。这是一种应急的机制,作用并不是简单的分配一个IP,请注意这个名称最后的单词,IP Addressing,而并非IP Address。那这又有什么区别呢?稍后就会讲到。

我们先来看一个例子这里我模拟了一个客户端无法联系到DHCP服务器的场景,此时客户端获取到了一个169.254.X.X的IP地址。如下图:

1.jpg

这里请注意两个地方:

1、我使用的查询命令是ipconfig /all。大家都知道用这个命令可以把所有的重要参数都查询出来,包括IP地址、掩码、网关、DNS、MAC等等。但在上图中只有IP地址、掩码和MAC,并没有网关、DNS。原因是因为APIPA分配的网络信息只包含IP地址和子网掩码,比武其他。

2、请注意IP地址前的名称是“Autoconfiguration IP Address”,而不是正常情况下的“IP Address” 。从这点上我们也可以区别IP地址的来源。

还记得刚才那个问题吗?为什么DNS可以独立配置呢?其实也是出于这个的考虑。我们可以为APIPA手工设置一个DNS地址。还是刚才的环境,我们为这个地址

169.254.155.85配置一个DNS,1.1.1.1 。如下图:

 2.jpg

通过 ipconfig /all 查询。如下图:

3.jpg

可以看到,我们为这个地址设置的DNS生效了。那我们是否可以自己定义在这个IP呢?当然可以。在【备用配置】选项卡里,我们还可以手工设置IP地址。如下图:

4.jpg

别的信息我没有填写,其实都是一样的。通过这样的设置,其目的在于当DHCP服务器不可用,系统会将此地址分配给该网卡,而不会使用169.254这样的地址。

其实这个功能非常好用。如何使用?先来看一个场景,大家也一定都遇到过。

    有这么一个客户,在家时笔记本连接路由器并通过ADSL上网,为网卡设置了一个固定IP地址192.168.1.1。在公司,内网部署了DHCP,此时会从DHCP服务器获取一个10.0.0.10的IP,这样有两套不同的网络配置,如何做到两边都能顺利使用呢?通常的解决办法,或是手动修改地址,或是通过第三方软件辅助切换。但如果将192.168.1.1的IP设置在上图的选项中,那么在家的时候由于没有DHCP,则会自动使用这个地址,在公司,这个地址会被忽略掉,因为存在可用的DHCP服务器,客户端可以直接获取IP地址。这样一来用户就不用来回切换了,也不必使用第三方软件,基本可以做到无缝连接。有机会的话,还是希望大家可以试一下这个方法。

   我们再回到APIPA上来。对于默认分配的169.254这样的IP,和我们手工设置的有什么区别呢?大家千万不要看到网卡连接图标上有一个感叹号就觉得网络肯定有什么问题。其实不然,我们来做个测试就知道了。这样有两台主机,主机名分别是win2k3和XP2,都接在一个交换机上。由于网内没有DHCP服务器,自然都是通过APIPA获取IP地址。分别查看一下两台主机上的IP地址。如下图:

Win2k3:

5.jpg

XP2:

6.jpg

在XP2上PING一下Win2k3。如下图:

7.jpg

网络访问测试。如下图:

8.jpg

访问Win2k3的C盘。如下图:

9.jpg

可见,尽管是169.254之类的IP,但其实和我们手动设置的没有什么区别,只是似乎在一个局域网内这样的客户端的最大数量有一个限制,好像是要少于25台,这个我没有测试过,还没有这样的环境,所以无法得知这个限制是否存在。

我们也可以在注册表中将APIPA这个功能禁止掉,可以针对某个网卡,也可以针对全部的网卡。打开注册表后,请定位到以下位置:HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\这个下面会对应当前网卡的标识符,在相应的标记符下新增一个名为 IPAutoconfigurationEnabled 

的DWORD值,并将其值设为十六进制的0即可。修改完成后重启才能生效。如果想禁用全部网卡的这个功能,则在interfaces下增加相同的键值。关于禁用APIPA的方法算是个补充知识,稍作了解即可。

还记得之前提到过有关IP Addressing的问题吗?为什么这里是addressing 而不是address呢? 当默认使用APIPA获取一个169.254的地址后,系统并非就这样一直使用这个地址,而是会每隔一段时间就会向网内发送DHCP DISCOVER数据包,这个间隔时间大约是5分钟。在此期间,系统还会随机进行DHCP服务器的查询,如果查询到DHCP并获得了一个IP,那么就会将169.254的IP释放掉。从这里我们可以看到,APIPA提供的是一套冗余IP配置和寻址的结合方案,显然这里使用addressingaddress意义更广泛。我们从协议层面来加深一下理解:

主机启动后,就会发送DHCP Discover包查询DHCP。如下图:

10.jpg

很显然,由于没有找到DHCP服务器,所以就会得到169.254的IP,但并不表示以后都不在搜索DHCP了,默认情况下会每隔5分钟进行一次集中的查询,其余时间也会进程查询,但由于还有别的程序或者协议在运行,所以就显得不那么集中。如下图:

11.jpg

到此为止,有关APIPA相关的一些知识点就说完了,下一节会讲到DHCP服务器的安装和配置。

谢谢!

转自:http://jeffyyko.blog.51cto.com/28563/162407

原创文章,作者:s19930811,如若转载,请注明出处:http://www.178linux.com/1559

(1)
s19930811s19930811
上一篇 2015-03-25 10:59
下一篇 2015-03-25 11:08

相关推荐

  • sed 高级用法(1) 之 n N

    前言 我在参考其它多个Blog中发现,有些Blog中sed的功能介绍和实际有出入,这可能和版本有关系,正如sed文档中所说“might change in future versions”,所以本文sed是以4.2.1为例。如果以后sed更新版本了,有可能会不一样。 好记性不如烂笔头! sed的工作原理 sed维护着两个数据的缓冲空间,一个是模式空间(pat…

    Linux干货 2015-07-03
  • Linux基础知识点(二)

    此篇博客只是记录第二周未掌握或不熟悉的知识点,用来加深印象。

    2018-03-13
  • 为你的网络传输加把锁(OpenSSL)

    互联网形成的初期,更多关注的是设备之间通过网络相互访问功能的实现,我们都知道,两个设备之间要想相互通信,就必需遵循某种协议,于是早期的互联网也出现来众多的协议,比如传输层最著名的协议就是tcp和udp,而应用层比较著名的协议有:http、ftp、pop、smtp、dns、telnet等等,而这些协议这开发初期,更多是关注功能的实现,数据这网络上传输是明文方式…

    Linux干货 2015-12-06
  • Linux程序包管理(rpm、yum、make)

    linux系统程序安装的方法有rpm yum 以及make手动编译3种方法: rpm这个机制最早由Redhat公司开发出来,后来由于实在好用,所以被很多发行版所使用作为软件安装的管理方式。不过由于使用RPM安装软件时有时会涉及到文件的依赖信,此时需要手动去逐个安装被依赖的包操作起来十分复杂,于是yum这种线上升级的机制便出现了,它会自己主动解决各文件的依赖关…

    Linux干货 2017-10-02
  • 【超全整理】《Linux云计算从入门到精通》系列实战笔记全放送

          为了方便Linux云计算爱好者的学习查看,马哥Linx云计算团队特别整理了《Linux云计算从入门到精通》年度重磅大放送,囊括了整个学习过程的学习精华,内容全部由马哥Linux云计算学员撰写,欢迎大家支持!!!       详情请看:  一、Linux运维基础实战入门 从Linux0基础入门开始,全面讲解作为新手如何学习Linux,以及学习方法和…

    2017-09-14
  • 文件的查找工具find

    有的时候我们需要快速查找一些文件,但是我们却不知道这个文件在哪的时候,就急切的需要一个工具来帮助我们,这时候find就诞生了。Find能实现精确查找,虽然速度略慢,但是并不妨碍我们使用,下面就介绍一下find的使用方法。(一) 基于时间戳的查找          假如需要查看七天前的文件,但是总不能一一的去看…

    2017-08-13