1. 程式人生 > >第六章 DHCP和自動配置

第六章 DHCP和自動配置

  • 引言
    • 為了使用TCP/IP協議族,每臺主機和路由器需要一定的配置資訊,配置資訊用於為系統指定本地名稱,以及為介面指定識別符號(例如IP地址).它還用於提供或使用各種網路服務,例如域名系統(DNS)和移動IP家鄉代理
    • 在本章中,我們將主要關注在Internet客戶端主機用於建立基本要素的協議和程式:動態主機配置協議(DHCP)以及IPv4和IPv6中的無狀態地址自動配置.
  • 動態地址配置協議
    • DHCP的設計基於一個早期協議----稱為Internet載入程式協議(BOOTP),目前已經過時
    • BOOTP為客戶提供有限的配置資訊,並沒有提供一種機制來支援改變已提供的資訊,DHCP使用租用的概念擴充套件該協議,客戶機可以進行續租進行DHCP的操作.
    • 伺服器使用埠67,客戶端使用埠68
    • DHCP有自動分配,動態分配.手工分配三種分配模式.
    • 動態分配
      • 客戶機從伺服器配置的地址池中獲得一個可撤銷的IP地址
    • 自動分配
      • 跟動態分配機制相同,但是不可撤銷
    • 手工分配
      • DHCP協議用於傳輸地址,但地址對於客戶機是不變的(即不屬於伺服器維護的分配池的一部分)
  • 地址池和租用
    • 在動態分配中,DHCP客戶器請求分配一個IP地址,伺服器從可用的地址池中選擇一個地址作為響應.
    • 分配的地址只在一段特定時間內有效,這段時間稱為租用期,可用使用這個地址知道租用期到期.在大多數情況下,客戶機可在希望延長租用期時續訂足月
  • DHCP和BOOTP訊息格式
    • 0 15,16 31
    • | OP(請求/應答,8位) | HW型別(htype,8位) | HW長度(hlen,8位) | 跳步數(8位) |
    • |                事務ID(xid,32位)                 |
    • |        秒數(Secs,16位)      |       標誌(16位)      |
    • |                客戶機IP地址(xid,32位)             |
    • |                你的IP地址(yid,32位)              |
    • |                (下一)伺服器的IP地址(siaddr,32位)       |
    • |                閘道器的IP地址(giaddr,32位)       |
    • |                客戶機硬體地址(chaddr,128位)       |
    • |                伺服器名(sname,64位)         |
    • |                引導檔名(file,128位)       |
    • |                選項(vend,可變)       |
    • OP
      • 標識訊息1:請求,2:應答
    • HW(htype)型別
      • 分配基於ARP使用的值,最常見的值是1
    • HW(htype)長度
      • 用於存放硬體(MAC)地址,對於類似乙太網的網路,該值通常為6
    • 跳步數
      • 用於記錄傳輸過程中中繼的次數,在生成訊息時,該值被初始化為0
    • 事務ID
      • 是有客戶機選擇的一個隨機數,伺服器需要將其複製到響應裡,用於請求和應答的匹配
    • 秒數
      • 由客戶機設定,他是第一次嘗試申請或重新申請地址經過的秒數
    • 標誌
      • 當前只有一個經過定義的位,稱為廣播標誌,客戶機可以在請求中設定該位,表示客戶機可以處理廣播資料報,但是不能處理單播IP資料報
    • 客戶機IP地址
      • 當已知請求者IP地址則填充到該欄位,否則為0
    • 你的IP地址
      • 由伺服器田蟹,以便向請求者提供伺服器地址
    • 下一伺服器IP地址
      • 給出下一個伺服器的地址,它用於客戶機的引導過程
    • 閘道器IP地址
      • 由DHCP或BOOTP中繼器填寫,它們在轉發DHCP(BOOTP)訊息時返回自己的地址
    • 客戶機硬體地址
      • 欄位儲存客戶機的唯一識別符號,並可由伺服器以不同方式在使用,包括當某個客戶機每次傳送地址請求時為其分配相同IP地址.
      • 該欄位通常儲存客戶機的MAC地址,他被用作一個識別符號,目前,客戶機識別符號是它的首選
    • 伺服器名和引導檔案
      • 這些欄位不是每次都需要田蟹,它們分別包含64位元組或128位元組ASCII字元,表示伺服器名或啟動檔案路徑.
      • 如果空間警長,它們可用於儲存DHCP選項
    • 選項
      • 長度可變,選項廣泛用於DHCP中,以區分DHCP訊息與傳統BOOTP訊息
  • DHCP和BOOTP選項
    • DHCP是對BOOTP的一種擴充套件
    • 有些欄位在BOOTP設計之初是不存在的,這些欄位可以通過選項來攜帶
    • 常見欄位:0:填充,1:子網掩碼,3:路由器地址,6:域名伺服器,15:域名,50:請求的IP地址,51:地址租用期,53,DHCP訊息型別,54,伺服器識別符號,55,引數請求列表,56:DHCP錯誤訊息,58:租約更新時間,59:租約重新繫結時間,61:客戶機識別符號,119:域搜尋列表,255:結束
    • 53:DHCP訊息型別選項在DHCP訊息中,是一定存在的
      • 1:DHCPDICOVER(發現)
      • 2:DHCPOFFER(提供)
      • 3:DHCPREQUEST(請求)
      • 4:DHCPDECLINE(下降)
      • 5:DHCPACK(確認)
      • 6:DHCKNAK(拒絕)
      • 7:DHCPRELEASE(釋出)
      • 8:DHCPINFORM(通知)
      • 9:DHCPFORCERENEW(強行更新)
      • 10:DHCPLEASEQUERY(租賃查詢)
      • 11:DHCPLEASEUNASSIGNED(租賃未分配)
      • 12:DHCPLEASEUNKNOWN(租賃未知)
      • 13:DHCPLEASEACITVE(租賃活動)
    • 當選項位於伺服器名和引導檔名時,稱之為選項超載,選項超載執行順序為選項欄位,引導檔名,伺服器名
  • DHCP協議操作
    • 典型DHCP交換
      • 客戶機---DISCOVER--->伺服器(決定配置)---OFFER---->客戶機(收集並選擇)----REQUEST---->伺服器(選擇的伺服器確定配置)------ACK---->客戶機(配置,驗證)-----檢測衝突----->客戶機(ACD檢測,如果有衝突則拒絕配置)
      • 客戶機首先會廣播一個DISCOVER訊息,所有DHCP伺服器都會相應一個OFFER訊息,並在你的IP欄位填充自己提供的可選擇IP地址,在客戶機接收到一個或多OFFER訊息後,確認使用哪個IP地址後,會進行REQUEST廣播,但只有提供給客戶機IP地址的伺服器會將該地址進行繫結,其他伺服器會清除與該請求相關的狀態,完成繫結後,提供IP地址的伺服器會響應一個ACK訊息,通知客戶機可使用該地址,如果該地址在分配時遇到問題,會相應一個NACK訊息,當客戶機接收到ACK訊息時,會在當前網路進行ACD衝突檢測,當檢測到地址已被使用,會發送一個DECLINE訊息給伺服器,在10秒後會重新執行該流程,在客戶機不進行續租行為時,會發送一個RELEASE訊息,當伺服器進行續租行為,會跳過最初的DICOVER/OFFER流程,直接進行REQUEST訊息請求當前使用的地址,當不希望更新當前地址,但是需要其他的配置資訊可以使用INFORM訊息代替REQUEST訊息,會接收到伺服器傳回的ACK訊息,也包括了其他的額外資訊
  • DHCP狀態機
  • DHCPv6
    • DHCPv6 和 DHCPv4,設計實現同一個目標,但是各自的協議設計和選項完全不同
    • DHCPv6使用一種有狀態模式,其工作原理非常像DHCPv4,他也可以使用一種無狀態模式,並結合無狀態地址自動配置
  • IPv6地址生命週期
    • IPv6每個介面擁有多個地址,每個地址擁有自己的生命週期,當宣告週期超時後,會從首選狀態轉為廢棄狀態可用於現有傳輸,但不能啟動新的連結
    • 當一個地址被第一次使用時,會進入臨時或樂觀的狀態,在進行DAD之後,會轉入首選狀態,進行無限制的使用,直到超時或者狀態被改為廢棄.
  • DHCPv6訊息格式
    • 客戶機埠546和伺服器埠547進行傳輸,封裝的資料報為UDP/IPv6
    • 存在兩種訊息,一種是用於客戶機和伺服器,一種是用於中繼伺服器
    • 客戶機/伺服器訊息格式
      • | 訊息型別 | 事務ID(24位) |
      • |     選項       |
    • 中繼代理訊息格式
      • | 訊息型別 | 跳步數 |      |
      • |       鏈路地址      |
      • |         |         |
      • |       對等方地址      |
      • |         |
      • |       選項       |
    • 鏈路地址給出了全域性IPv6地址.伺服器用它標識客戶機所處的鏈路
    • 對等方地址欄位包含中繼代理地址或客戶及地址.
    • 中繼過程可能是鏈狀的,可能來自另外一箇中繼的轉發
    • IPV6選項和IPV4選項的對應關係
      • 1:SLICIT(徵求) DHCPDISCOVER(發現)
      • 2:ADVERTISE(廣告) DHCPOFFER(提供)
      • 3:REQUEST(請求) DHCPREQUEST(請求)
      • 4:CONFIRM(請求) DHCPREQUEST(請求)
      • 5:RENEW(請求) DHCPREQUEST(請求)
      • 6:REBIND(重新繫結) DHCPDISCOVER(發現)
      • 7:REPLY(回覆) ACK/NAK(確認/拒絕)
      • 8:RELEASE(釋出) RELEASE(釋出)
      • 9:DECLINE(下降) DCLINE(下降)
      • 10:RECONFIGURE(重新配置) FORCERENEW(強制更新)
      • 11:INFORMATION-REQUEST(資訊請求) INFROM(通知)
      • 12:RELAY-FORW(中繼轉發) N/A
      • 13:RELAY-REPLY(中繼回覆) N/A
      • 14:LEASEQUERY(租賃請求) LEASEQUERY(租賃請求)
      • 15:LEASEQUERT-REPLY(租賃請求回覆) LEASE{UNASSIGNED,UNKNOWN,ACTIVE}
      • 16:LEASEQUERY-DONE(租賃查詢) LEASEQUERYDONE租賃查詢()
      • 17:LEASEQUERY-DATA(租賃資料) N/A
      • 18:N/A BULKLEASEQUERY()
  • 身份關聯
    • ID是用於DHCP客戶機和伺服器之間的一個識別符號,用於指向一個地址集,每個IA包括一個IA識別符號(IAID)和相關配置資訊.每個請求DHCPv6分配地址的客戶機介面至少需要一個IA,每個IA可以僅與一個介面相關聯
    • IA選項格式
    • 非臨時地址選項的IA
      • | OPTION_IA_NA | 選項長度 |
      • |       IAID       |
      • |       T1        |
      • |       T2        |
      • |       IA/NA選項     |
    • 臨時地址選項的IA
      • | OPTION_IA_NA | 選項長度 |
      • |       IAID       |
      • |       IA/NA選項     |
  • DHCP唯一識別符號
    • 用於標識一臺DHCPv6客戶機或伺服器,並被設計為可持續一段時間,伺服器用它標識所選地址對應的客戶機和配置資訊,客戶機用它標識感興趣的伺服器,DUID長度是可變的.對大多數用途來說,客戶機和伺服器將它看做一個不透明的值
  • 協議操作
    • DHCPv6 是否啟用取決於路由器通告訊息給出的2個位欄位,
      • M位是可管理地址配置標識,表示IPv6地址可使用DHCPv6獲得
      • O位是其他配置標識,表示IPv6地址之外的資訊可使用DHCPv6獲得
        • 兩者關閉則不進行任何操作
        • M關閉O啟動,表示客戶機使用無狀態DHCPv6
        • M啟用O關閉,最不實用
    • DHCPv6協議操作比DHCPv4多了一個ICMPv6路由器操作,其他相同,通過ICMPv6路由器訊息,獲取M和O的值,進行後續操作
  • DHCPv6字首委託
    • 一個路由器可以通過字首委託一個地址空間範圍.例如ISP給出一個可由潛在客戶重新分配的地址範圍
  • DHCP中繼
    • 中繼代理用於將DHCP操作擴充套件到跨越多個網段
  • DHCP認證
    • DHCP沒有提供安全暴漲,所以可能簡歷一些未授權的DHCP客戶機或伺服器,可能嚴重破壞一個網路的其他功能
    • | 程式碼  | 長度 | 協議 | 演算法 |
    • | RDM | 重放檢測         |
    • |         認證資訊     |
    • 認證選專案的確定DHCP是會否來自一個授權的傳送方
    • 程式碼欄位設定為90
    • 長度給出選項中的位元組數
    • 協議和演算法欄位如果為0,認證資訊如果儲存一個簡單的共享配置令牌,只要客戶機和伺服器的配置令牌相同,即可接受訊息.當然,該認證方式並不安全,僅可以防禦一些偶發的DHCP問題
    • 當協議和演算法欄位為1,客戶機的DISCOVER和INFORM訊息中會包含一個認證選項,並且伺服器OFFER和ACK訊息也會攜帶,認證選項會包括一個訊息驗證碼,用來檢驗檔案的完整性
    • 重放檢測,可以防禦重放訊息來的攻擊,該欄位總會遞增,如果該訊息為相同,可能是對一個早期DHCP訊息的重放
    • DHCP沒有廣泛使用,1:要在客戶機和伺服器之間共享一個金鑰,2:DHCP認證出現在DHCP廣泛使用之後
  • 重新配置擴充套件
    • 該擴充套件的目的是當網路中出現一些明顯的狀態改變時,使客戶端能重新建一個或丟棄自己的地址,但是該擴充套件很容易被dos攻擊利用,所以需要DHCP認證選項,也就沒有流行
  • 快速確認
    • 快速確認選項可以允許一臺DHCP伺服器通過一個DHCPACK;來相應DHCPDISCOVER.從而有效跳過DHCPREQUEST訊息,這個選項的設計目的是快速配置有可能頻繁改變其網路接入點的主機.
    • 如果需要快速確認選項,客戶機可以在DISCOVER訊息中新增該選項,其他訊息不能包含該選項,伺服器也僅能在ACK訊息中使用選項
    • 當一臺伺服器使用該選項後,客戶機可以立即使用伺服器通過ACK下傳的地址,如果沒通過ARP,客戶機可以通過DHCPDECLINE來放棄傳下的地址,也可以通過DHCPRELEASE訊息放棄地址
  • 無狀態地址自動配置
    • IPv4和IPv6都有用於鏈路本地地址自動配置的機制,一臺主機基本不需要協助就可以決定自己的地址,這就是所謂的無狀態地址自動配置(SLAAC)
  • IPv4鏈路本地地址的動態配置
    • 主機通過APIPA可自動從鏈路本地範圍使用16位子網掩碼生成自己的IPv4地址
  • IPv6鏈路本地地址的動態配置
    • IPv6SLAAC的目標是允許節點自動分配鏈路本地IPv6地址
  • IPv6重複地址檢測(DAD)
    • DAD使用ICMPv6鄰居請求和鄰居通告訊息,以確定一個特定IPv6地址是否已在連線鏈路上使用.
    • 一個節點首先加入臨時地址的所有節點組播地址和請求節點組播地址,為了檢查使用的地址是否重複,一個節點發送一個或多個ICMPv6鄰居請求訊息,這些訊息的源和目的IPv6地址分別是未指定地址和被檢查目的地址的請求節點地址,目的地址欄位設定為被檢查的地址,如果在響應中收到一個鄰居通告訊息,說明DAD失敗,並放棄被檢查的地址
  • 乙太網上的PPP
    • 這種方法設計在乙太網中攜帶PPP,所以稱為乙太網上的PPP
  • 與系統配置相關的攻擊
    • 未授權客戶機或未授權伺服器對DHCP的干擾,到耗盡資源的各種形式的Dos攻擊.IPv4無法通過典型部署還防禦這些攻擊.
    • IETF致力於為IPv6鄰居發現提供安全性,哪個鄰居,什麼時間或是否已部署SLAAC,這些因素將直接影響網路執行的安全性.

相關推薦

DHCP自動配置

引言 為了使用TCP/IP協議族,每臺主機和路由器需要一定的配置資訊,配置資訊用於為系統指定本地名稱,以及為介面指定識別符號(例如IP地址).它還用於提供或使用各種網路服務,例如域名系統(DNS)和移

二叉樹

a20 cfb 樹和二叉樹 fff itblog ffd ace cab dac 第六章 樹和二叉樹

快速生成樹配置

生成樹 交換 stp 一、實驗名稱快速生成樹配置二、實驗內容1.新建 packet tracer 拓撲圖2.默認情況下 STP 協議是啟用的。通過兩臺交換機之間傳送 BPDU 協議數據單元。選出跟交換機、根端口等,以便確定端口的轉發狀態。圖中標記為黃色的端口處於block 堵塞狀態。3.設置 RS

型別成員基礎

目錄: 6.1 型別的各種成員 6.2 型別的可見性 6.3 成員的可見性 6.4 靜態類 6.5 分部類,結構和介面 6.6 元件,多型和版本控制   6.1 型別的各種成員 常量:資料值恆定不變的符號。常亮總

二叉樹--Huffman樹-計算機17級

解析在下面,有什麼問題歡迎各位大佬指正   p1-1: 這個主要得看懂題,其實就是在考你哈夫曼樹的構造:每次把權值最小的兩顆二叉樹合併 ,越往下肯定權值越小,所以這句話肯定是對的 x2-1: d肯定不一定啊 x2-2: x2-3:

二叉樹--樹森林-計算機17級 7-2 家譜處理 (30 分)

7-2 家譜處理 (30 分) 人類學研究對於家族很感興趣,於是研究人員蒐集了一些家族的家譜進行研究。實驗中,使用計算機處理家譜。為了實現這個目的,研究人員將家譜轉換為文字檔案。下面為家譜文字檔案的例項: John Robert Frank And

二叉樹--樹森林-計算機17級

解析在後面,有問題的話歡迎各位大佬指正:   答案解析: 提示:不會做就畫圖,原理雖然不理解但答案基本都能出來 p1-1: x2-1: x2-2:同b1-1 x2-3:這個其實你只要會了森林轉換成二叉樹的方法畫個圖自

二叉樹--樹森林-計算機17級 7-1 樹的同構 (25 分)(答案超詳解)

7-1 樹的同構 (25 分) 給定兩棵樹T1和T2。如果T1可以通過若干次左右孩子互換就變成T2,則我們稱兩棵樹是“同構”的。例如圖1給出的兩棵樹就是同構的,因為我們把其中一棵樹的結點A、B、G的左右孩子互換後,就得到另外一棵樹。而圖2就不是同構的。  

二叉樹作業1—二叉樹--計算機17級 6-2 二叉樹的遍歷 (25 分)

6-2 二叉樹的遍歷 (25 分) 本題要求給定二叉樹的4種遍歷。 函式介面定義: void InorderTraversal( BinTree BT ); void PreorderTraversal( BinTree BT ); void PostorderT

二叉樹作業1—二叉樹--計算機17級 7-1 根據後序中序遍歷輸出先序遍歷 (25 分)

7-1 根據後序和中序遍歷輸出先序遍歷 (25 分) 本題要求根據給定的一棵二叉樹的後序遍歷和中序遍歷結果,輸出該樹的先序遍歷結果。 輸入格式: 第一行給出正整數N(≤30),是樹中結點的個數。隨後兩行,每行給出N個整數,分別對應後序遍歷和中序遍歷結果,數字間以空

二叉樹作業1—二叉樹--計算機17級 6-3 先序輸出葉結點 (15 分)

6-3 先序輸出葉結點 (15 分) 本題要求按照先序遍歷的順序輸出給定二叉樹的葉結點。 函式介面定義: void PreorderPrintLeaves( BinTree BT ); 其中BinTree結構定義如下: typedef struct TN

二叉樹作業1—二叉樹--計算機17級 6-1 求二叉樹高度 (20 分)

6-1 求二叉樹高度 (20 分) 本題要求給定二叉樹的高度。 函式介面定義: int GetHeight( BinTree BT ); 其中BinTree結構定義如下: typedef struct TNode *Position; typedef P

二叉樹作業1—二叉樹--計算機17級

 解析在下面      p1-1: 前序根,左,右。 中序左,根,右。 後序左,右,根。 中和後一樣,肯定是都沒有右孩子。 p1-3: p1-4: p1-5:

二叉樹--Huffman樹

1-1 對N(≥2)個權值均不相同的字元構造哈夫曼樹,則樹中任一非葉結點的權值一定不小於下一層任一結點的權值。 (2分) T  2-1 對N(N≥2)個權值均不相同的字元構造哈夫曼樹。下列關於該哈夫曼樹的敘述中,錯誤的是: (2分) 樹中一

二叉樹作業1—二叉樹

1-1 某二叉樹的後序和中序遍歷序列正好一樣,則該二叉樹中的任何結點一定都無右孩子。(2分) T 後序:左右根 中序:左根右 想要一樣,必沒有右孩子。   1-2 某二叉樹的後序和中序遍歷序列正好一樣,則該二叉樹中的任何結點一定都無左孩子。(2分)

(譯)Netty In Action—channelhandler channelpipeline

請尊重勞動成果,未經本人允許,拒絕轉載,謝謝! 這一章涵蓋以下內容: - ChannelHandler 和 ChannelPipeline的APIs介紹 - 資源洩漏檢測 - 異常處理 在前一章節你已經學習了ByteBuf——Netty的資料容器。隨著在這一章研究Ne

樣本抽樣分佈

∮1.隨機樣本 總體:某項數量指標X的全體 樣本:如果x1,x2,x3,⋯,xn,相互獨立且與總體X同分布則稱x1,x2,x3,⋯,xn,為來自總體的簡單隨機樣本。 ∮3抽樣分佈 統計量是統計理論中用來對資料進行分析、檢驗的變數。巨集觀量是大量微

TCP/IP詳解卷一之DHCP自動配置

1 主機或路由器的配置資訊 —配置資訊包括: ·“基本要素”:IP地址、子網掩碼、DNS伺服器的IP地址、路由器的IP地址。 ·“其他要素”:家鄉代理、組播路由器、VPN閘道器等,取決於使用或提供的服務型別。 2 Internet中客戶端與伺服器、路由器配置方式 —配置方式: · 客戶端

樹的同構 (25 分)(答案超詳解)二叉樹--樹森林-計算機17級 7-1

7-1 樹的同構 (25 分) 給定兩棵樹T1和T2。如果T1可以通過若干次左右孩子互換就變成T2,則我們稱兩棵樹是“同構”的。例如圖1給出的兩棵樹就是同構的,因為我們把其中一棵樹的結點A、B、G的左右孩子互換後,就得到另外一棵樹。而圖2就不是同構的。 圖1

列舉註解

30. 用enum代替int常量 31. 用例項域代替序數 32. 用EnumSet代替位域 EnumSet是執行緒不安全的,需要藉助Collections.synchronizedSe