在DHCP协议的内容中,我们会经常见到中继代理的问题。这里我们就来详细讲解一下DHCP option 82(中继代理信息选项82)的内容。那么在该场景下,临时接入者可以在不安装认证客户端的情况下,直接访问Internet资源,但是不能访问学校、企业、政府单位的内网,适用于各种会务、学术交流、临时参观等应用场景,正式员工可以在会议区通过认证接入到内网。为了实现该场景,我们首先要对神州数码网络交换机产品的DHCP Option82功能进行描述。
Option82应用场景
|
网络使用者 |
内网 |
外网 |
举例说明 |
场景 |
访问者 |
不能访问 |
能访问 |
高校学术交流,与会者在会务期间,需要访问Internet,但出于安全考虑,这些临时来访者应当不允许访问学校内网。 |
Option82功能介绍
DHCP option 82是为了增强DHCP服务器的安全性,改善IP地址配置策略而提出的一种DHCP选项。通过在网络接入设备上配置DHCP中继代理功能,中继代理把从客户端接收到的DHCP请求报文添加进option 82选项(其中包含了客户端的接入物理端口和接入设备标识等信息),然后再把该报文转发给DHCP服务器,支持option 82功能的DHCP服务器接收到报文后,根据预先配置策略和报文中option 82信息分配IP地址和其它配置信息给客户端,同时DHCP服务器也可以依据option 82中的信息识别可能的DHCP攻击报文并作出防范。DHCP中继代理收到服务器应答报文后,剥离其中的option 82选项并根据选项中的物理端口信息,把应答报文转交到网络接入设备的指定端口。
Option 82报文结构
DHCP option 82又称为DHCP中继代理信息选项(Relay Agent Information Option),是DHCP报文中的一个选项,其编号为82。rfc3046定义了option 82,选项位置在option 255之前而在其它option之后。
Code:表示中继代理信息选项的序号,rfc3046定义为82,option 82即由此得名。
Len:为代理信息域(Agent Information Field)的字节个数,不包括Code和Len字段的两个字节。
Option 82可以由多个sub-option 组成,每个option 82选项至少要有一个子选项,rfc3046定义了以下两个子选项,其格式如下图所示:
SubOpt:为子选项编号,其中代理电路ID(即Circuit ID)子选项编号为1,代理远程ID(即 Remote ID)子选项编号为2。
Len:为Sub-option Value的字节个数,不包括SubOpt和Len字段的两个字节。
option82子选项1:option82子选项1定义了代理电路ID(即Circuit ID),它表示接收到的DHCP请求报文来自的链路标识,这个标识只在中继代理节点内部有意义,在服务器端不可以解析其含义,只作为一个不具含义的标识使用。在本文实现中代理电路ID默认是指接收到DHCP请求报文的接入交换机Vlan名加接入二层端口名称,如Vlan2+Ethernet0/0/10,也可以由用户指定自己的代理电路ID。通常子选项1与子选项2要共同使用来标识DHCP客户端的信息。
option82子选项2:option82子选项2定义了代理远程ID(即 Remote ID),在我司交换机实现中,代理远程ID是指接收到DHCP请求报文的接入交换机的vlan MAC地址。子选项2通常与子选项1共同使用来标识DHCP客户端的信息。
DHCP请求报文:指由DHCP客户端发起的报文,希望DHCP服务器响应后分配IP地址和其它配置信息。DHCP请求报文一般有四种,分别为DHCP_DISCOVER报文、DHCP_REQUEST报文、DHCP_RELEASE报文和DHCP_INFORM报文。中继代理只针对DHCP请求报文添加option 82选项并转发给服务器。本文实现的DHCP中继对这四种请求报文都添加option 82选项。
DHCP应答报文:指由DHCP服务器响应客户端发起的请求报文,包含配置信息或指示回应结果的DHCP响应报文,DHCP应答报文一般有DHCP_OFFER报文,DHCP_DECLINE报文,DHCP_ACK报文和DHCP_NAK报文。