一起學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.www58058.com/1559

(1)
s19930811s19930811
上一篇 2015-03-25
下一篇 2015-03-25

相關推薦

  • 文件查找和壓縮

    文件查找     在文件系統上查找符合條件的文件;       文件查找:locate, find        非實時查找( 數據庫查找) :locate        實時查找:find locate &n…

    Linux干貨 2016-08-18
  • raid各級別特性

      簡介 RAID是一個我們經常能見到的名詞。但卻因為很少能在實際環境中體驗,所以很難對其原理 能有很清楚的認識和掌握。本文將對RAID技術進行介紹和總結,以期能盡量闡明其概念。 RAID全稱為獨立磁盤冗余陣列(Rdeundant Array of Independent Disks),基本思想就是把 多個相對便宜的硬盤組合起來,成為一個硬盤陣列組…

    Linux干貨 2016-01-19
  • 正則

    Edit 正則 概述: 正則表達式,Regular Expression,縮寫regex、regexp、RE 正則表達式是文本處理極為重要的技術,用它可以對字符串按照某種規則進行檢索、替換 1970年,Unix之父ken Thompson將正則表達式引入到Unix中文本編輯器ed和grep命令中,由此正則表達式普及開來 1980年后,perl語言對Henry…

    Linux干貨 2017-11-06
  • Linux系統的磁盤管理

    linux磁盤及文件系統管理 磁盤分區及文件系統管理 RAID設備 LVM: 磁盤的動態編輯管理 CPU, memory(RAM), I/O I/O設備: Disks, Ethercard (網卡) Disks: 實現持久存數數據 接口類型: IDE(ata): 并口  理論速度: 133MB/s SCSI: 并口 640MB/s SATA: 串口…

    Linux干貨 2016-08-29
  • 系統基礎之vim工具詳解

    vim工具詳解 作為運維人員,每天要面對大量的文件操作,如何使用一個功能強大,操作快捷的文本編輯器,就至關重要.那天,今天給大家詳細的介紹下vim這款編輯器,完全符合我們的要求,下面讓我們一起來看看吧! 概論:  文本編輯器:  文本:純文本信息,   ASCII text:  純粹的,不加修飾的文字  文本…

    Linux干貨 2016-08-10
  • 配額-and-RAID

    配置配額系統 控制單個用戶,或組在某磁盤上所能占的最大空間大小 配額是基于磁盤分區的,不基于文件 如何基于軟件控制配額:          1、設置分區掛載選項          &nbsp…

    Linux干貨 2016-08-29
欧美性久久久久