DHCP Option 82详细讲解

http://www.agou.net/article/study/699.htm

 

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中继设备的地址信息在dhcp服务器上的记录,与其他软件配合使用可以实现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的请求报文中添加option 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服务器的返回报文后将剥离报文中的option 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 Option 82详细讲解)