DHCP Option 82详细讲解

      option 82是dhcp报文中的中继代理信息选项(relay agent information option)。当dhcp client发送请求报文到dhcp server时,若需要经过dhcp中继,则由dhcp中继将option 82添加到请求报文中。option 82包含很多sub-option,本文中的option 82只支持sub-option 1、sub-option 2和sub-option 5。sub-option 1中定义了代理电路id(即circuit id),sub-option 2中定义了代理远程id(即 remote id),sub-option 5为链路选择(link selection)子项,该选项中包含了dhcp中继添加的ip地址。

       option 82实现了dhcp客户端和dhcp中继设备的地址信息在dhc p服务器上的记录, 与其他软件配合使用可以实现dhcp分配的限制和计费功能。

       1. 概念介绍

       option

       dhcp报文中的一个选项, 该选项在dhcp报文中为可变长的字段, option选项中包含了部分租约信息、报文类型等。 option选项中最多可以包括255个option, 最少为1个option。

       option 82

       option 82又称为中继代理信息选项(relay agent information option),是dhcp报文中option内容的一部分。 rfc3046中定义了option 82,其位置在option 255之前而在其他option之后。option 82中可以包含最多255个sub-option, 若定义了option 82,至少要定义一个sub-option。目前option 82中常用的sub-option 1、sub-option 2和sub-option 5。

       sub-option 1

       sub-option 1是option 82的一个子选项,为代理电路id(即circuit id)子项。子选项通常在dhcp中继设备上配置, 定义了在传输报文的时候要携带dhcp客户端所连接交换机端口的 vlan-id及二层端口号。通常sub-option 1与sub-option 2子选项要共同使用来标识dhcp源端的信息。

       sub-option 2

       sub-option 2也是option 82的一个子选项,为代理远程id(即remote id)子项。该子选项也通常在dhcp中继设备上配置, 定义了在传输报文的时候要携带中继设备的mac地址信息。 通常与sub-option 1子选项要共同使用来标识dhcp源端的信息。

       sub-option 5

       sub-option 5也是option 82的一个子选项。为链路选择(link selection)子项, 该选项中包含了dhcp中继添加的ip地址。这样dhcp server在分配ip地址给dhcp客户端的时候就可以分配与 该地址同网段的ip地址。

       2. option 82报文组成
       
       在dhcp报文中有一个options字段,该字段可以为空, 也可以为某一个特性的option,option 82就是其中的一种option,可以有多个sub- option 组成。

       code:标识了中继代理信息选项的序号。本报文中序号为82, 即option 82。option 82 在其他option之后,在option 255 之前。

       len:为代理信息域(agent information field)的长度。

       agent information field:代理信息域。在该字段中指定了使用的sub- option。

       sub-option报文结构

       subopt:子选项序号,本报文中为sub-option 1、sub-option 2和sub-option 5。各子选项含义如下:

       1表示代理电路id(circuit id)子项

       2表示代理远程id(remote id)子项

       5表示链路选择(link selection)子项

       len:标识sub-option value域的长度。

       sub-option value:sub-option的值。例如sub- option 1对应的值为circuit id。

       3. 标准模式与华为固网模式

       dhcp relay支持option 82, 在收到从client到server的请求报文中添加optio n 82,以标识用户的位置信息。现在只添加sub-option 1和sub-option 2,不添加sub-option5。在标准模式,sub- option 1是接收报文的二层端口号和vlan号,sub-option 2是接收报文设备的mac地址。

       为了更加精确地定位用户位置信息, 我司针对dslam应用提出ip dslam用户物理位置定位解决方案,定义了dhcp option 82的华为固网模式,其中option 82的sub-option1表示“节点标识+框号/槽号/ 子槽/端口号+vlan”;sub-option2没有改变, 表示的是的relay系统mac地址;sub-option5 relay不添加。

       option 82的sub-option1中的节点标识为字符串, 缺省可以采用设备的管理接口mac地址,形如:00-e0- fc-0d-dc-ec。为了提高维护的方便性, 也允许网络管理者通过配置修改用户节点标识, 可以选择是用relay的桥mac或设备名( 通过sysname配置的),也可以由用户自行输入字符串。

       华为固网模式option 82中sub-option 1的标识格式:

       accessnodeidentifier eth frame/slot/subslot/port:vlan

       对各段的解释如下:

       accessnodeidentifier:接入节点标识, 长度不超过50个字符的字符串,缺省为桥mac

       frame:框号,不支持的为0

       eth:以太端口类型

       slot:槽号

       subslot:子槽号

       port:端口号

       vlan:vlan标识

       4. 相关规范

       与dhcp中继支持option 82相关的协议规范有:

       rfc2131 dynamic host configuration protocol

       rfc3046 dhcp relay agent information option

       5. dhcp 中继支持option 82工作机制

       dhcp客户端通过dhcp中继从dhcp服务器获取ip地址的 过程与同网段的dhcp获取过程完全相同,都要经历发现、提供、 选择和确认四个阶段,详细的过程请参考本手册“网络层协议” 的dhcp部分。这里将只介绍dhcp中继支持option 82时的工作机制,具体如下:

       dhcp客户端在初始化时以广播的形式发送请求报文;

       若本地网络存在dhcp服务器, 则客户端可以直接从该服务器获取ip地址。

       若本地网络没有dhcp服务器, 则与本网络相连的dhcp中继设备对该广播报文进行相应的处理。 dhcp中继设备将检查报文中是否已有option 82选项,进行相应的处理。

       如果报文中已有option 82,设备按照配置的策略对该报文进行处理(丢弃、 用中继设备本身的option 82项替代报文中原有的option 82项或保持报文原有的option 82项),然后将请求报文转发给dhcp服务器。

       若请求报文中没有option 82选项,则dhcp中继设备将option 82选项添加到报文中后转发给dhcp服务器。此时, 请求报文中将包含了dhcp客户端所连接的交换机端口的mac地 址、所属的vlan以及dhcp中继设备本身的mac地址。

       dhcp服务器收到dhcp中继设备转发的dhcp请求报文后, 将记录报文中option选项所携带的信息, 然后将带着dhcp配置信息以及option 82信息的报文发给dhcp中继。

       dhcp中继收到dhcp服务器的返回报文后将剥离报文中的op tion 82信息, 然后将带有dhcp配置信息的报文转发给dhcp客户端。

       dhcp客户端发送的请求报文有四种,分别为dhcp_ discover报文、dhcp_request报文、 dhcp_release报文和dhcp_inform报文, dhcp中继设备将在四种报文中都添加option 82选项, 因为不同厂商生产的dhcp服务器设备对请求报文的处理机制不同 ,有些设备处理dhcp_discover报文中的option 82信息,而有些处理dhcp_ request报文中的option 82信息。

你可能感兴趣的:(DHCP,option82,dhcp_option82)