zoukankan      html  css  js  c++  java
  • 第六章 系统配置:DHCP和自动配置

    系统配置:DHCP和自动配置

    写在开头:今天和导师见了个面,抛给我一堆材料以及论文,感觉自己学业更加繁重。有些知识现阶段我可能没办法掌握,但是至少在我需要进一步理解它的时候,要知道在哪个地方能够找到。努力协调好项目以及导师的安排,课堂的内容尽量都在课堂直接消化了。找到能够一起学习的伙伴们是多门幸运的事情,好好加油~

    Yesterday you said tomorrow.


    引言

    我们知道每台主机和路由器都是需要一定的配置的信息的,配置信息用于为系统指定本地名称,以及接口制定标识符(比如IP地址),而在TCP/IP网络中。每个接口需要:

    • IP地址
    • 子网掩码
    • 广播地址

    系统需要一个路由或转发表,用来确定到达不同目的地的系统通讯。

    Internet客户端主机中用于建议基本要素的协议和程序:动态主机配置协议(DHCP)以及IPv4和IPv6的无状态地址自动配置。

    状态机:状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作,完成特定操作的控制中心。


    动态主机配置协议

    DHCP是一种流行的客户机/服务器协议,它用于为主机(或路由器)指定配置信息。

    DHCP的设计是基于一种早期的协议,Internet引导程序协议(BOOTP),只不过它已经过时了…

    DHCP由两个主要的部分组成,地址管理和配置数据交付。

    地址管理用于IP地址的动态分配,并为客户机提供地址租用。
    配置数据交付包过DHCP协议的消息格式和状态机

    DHCP服务器可配置提供三种地址分配:

    • 自动分配,同动态分配,但是地址不可撤销
    • 动态分配,最常用,客户机从服务器配置的地址池中获得一个可撤销的IP地址
    • 手动分配,

    地址池和租用

    在动态分配中,DHCP客户机请求分配一个IP地址,服务器从可用的地址池中选择一个地址作为响应。

    分配给客户机的地址只在一段特定时间内有效,这段时间称为租用期

    运作
    当发送DHCP请求时,客户机需要向服务器提供信息。这些信息包过客户机的名称、请求的租用期、已使用或最后使用过的地址副本和其他参数。

    当服务器接收到这个请求时,它可利用客户机提供的信息(包过MAC地址请求),结合其他从外部获得的信息(例如一天的时间,接受请求的接口),决定在响应中提供的地址和配置信息。

    当服务器向客户机提供租用期时,服务器将租用信息保存在持久性的存储器(非易失性内存或磁盘)中。


    DHCP消息格式

    我们知道 DHCP前身是BOOTP,所以它的消息格式是采用拓展BOOTP的方式

    如图所示:

    名称 内容及作用
    Op 标识消息是请求(1),还是应答(2)
    htype 基于ARP使用的值,(1)为以太网
    hlen 存放硬件(MAC)地址
    跳步 用于保存消息传输过程中的中继次数,初始为0,依次增加
    事务ID xid 客户机选择的随机数,服务器需要将它复制在应答中,用于匹配应答与请求
    秒数 申请地址经过的秒数
    标志 广播标志,表示客户机所发请求不能处理单播IP数据报,但能处理广播数据报
    客户机IP地址 请求者的IP地址,如果没有就为0
    你的IP地址,yiaddr 即服务器地址
    下一服务器IP地址 顾名思义客户机可能需要另一个DHCP服务器来完成它的请求
    网关IP地址 中继地址,由DHCP中继器填写,在转发时返回自己的地址
    客户机硬件地址 客户机唯一标识符

    其他字段例如服务器名,引导文件名并不是每次都需要填写的,但是选项字段区分DHCP和传统BOOTP消息。

    因此我们可以称DHCP消息是带有一组特殊选项的BOOTP消息,至于选项的细节,我们在这里暂时不提


    DHCP协议操作

    当新客户机连接网络时,它首先发现DHCP服务器们以及服务器们能提供的地址。然后它向中意的服务器发送它中意的请求,同时也向其他服务器发送它的决定。如果该服务器还保留该地址,便通过确认将地址分配给客户机。

    他们之间的互相通讯可以由上图反应,数据包中各单位值的修改我暂时没有写在这里。

    这里存在一个疑问,DHCP服务器如何向一个没有设置IP地址的客户机传达消息呢?

    还记得数据报中的标志字段吗?设置标志字段表示自己能够接收广播数据报,所以DHCP服务器是采用广播的方式连上客户机的

    下图给出DHCP的状态机


    DHCP中继

    在更复杂的网络中,可以通过DHCP中继代理来中继DHCP流量,这样会更方便~

    如图,在网段AB之间的中继器会转发DHCP消息。通过选项或者填充空白字段使用额外的消息来标识它。

    这里有个要注意的地方,中继一般不会参与到客户机与服务器的所有流量交换。它仅中继客户机首次广播的消息,当客户机获得了服务器的IP地址,那就可以直接与服务器单播通讯了。

    中继代理信息选项(RAIO)

    定义了很多子选项,例如几个被ISP用于标识一个请求来自哪个用户、链路或网络的选项

    例如:中继代理远程ID子选项和IPv6远程ID选项

    用于标识发送请求的DHCP客户机的方法。通俗来说就是采用本地解释的命名方式,例如呼叫方ID、用户名、调制解调器ID、点到点链路的远程IP地址等


    DHCP和DNS交互

    当一台DHCP客户机获得一个IP地址时,它接收的配置信息的重要部分是一台DNS服务器的IP地址。

    组合DHCP/DNS服务器或动态DNS用来实现指定DHCP地址与相应的DNS地址的映射更新方法。

    组合DHCP/DNS服务器可读取请求中的客户机标识符或域名,在ACK进行响应前,通过映射更新内部DNS数据库,这样在后续的DNS请求中,能够在客户机名称和新分配的IP地址之间转换


    以太网上的PPP

    对于大多苏局域网和一些广域网连接,DHCP提供了最常见的客户机系统配置的方法。对于广域网连接,常用另一种基于PPP的方法替代它。这种方法设计在以太网中携带PPP,因此称为以太网上的PPP(PPPoE

    PPPoE用于广域网连接设备(例如图中的DSL调制解调器)作为一个交换机或网桥而不是使用路由器的情况下。

    在DSL调制解调器与ISP成功建立一条底层链路后,PC就可以开始PPPoE交换

    PPPoE消息交换开始于发现阶段及建立PPP会话阶段。每个消息是一个PAD(主动发现)消息。PADI(初始化)请求来自PPPoE服务器的响应,PADO(提供)提供连接。PADR(请求)表示客户机可以从多个可能的服务器中做出选择。PADS(会话确认)从选中的服务器向客户机提供一个确认。经过PAD交换,一次PPP会话开始。

    PPP会话可以由任何一方发送PADT(终止)消息来终止,或在底层链路出现故障时关闭。

  • 相关阅读:
    Java实现 LeetCode 50 Pow(x,n)
    Java实现 LeetCode 50 Pow(x,n)
    Java实现 LeetCode 49 字母异位词分组
    Java实现 LeetCode 49 字母异位词分组
    Java实现 LeetCode 49 字母异位词分组
    Java实现 LeetCode 48 旋转图像
    Java实现 LeetCode 48 旋转图像
    Java实现 LeetCode 48 旋转图像
    Java实现 LeetCode 47 全排列 II(二)
    Java实现 LeetCode 47 全排列 II(二)
  • 原文地址:https://www.cnblogs.com/Huzr/p/8688795.html
Copyright © 2011-2022 走看看