|
四、Option82
Snooping支持option82功能后,Snooping模块会向DHCP请求报文添加option82选项,支持option82的server端就可以通过option82选项准确的知道client端的物理位置,从而根据管理员配置的规则来对其进行处理,也达到了预防DHCP攻击的效果。当SNOOPING收到的DHCP请求报文中不含有option82时,向请求报文中添加option82。对于已经含有option82的报文,按照用户配置的策略来处理。DHCP server可以根据此选项来设置一些相应的规则。当Snooping收到DHCP Server端的回应报文时,删除带有Option82的DHCP回应报文中的Option82字段。对于不带有option82的DHCP回应报文,直接转发。
当Snooping收到的DHCP请求报文中不含有option82时,将option82添加到请求报文的end option前面。对于已经含有option82的报文,按照用户配置的策略来处理。DHCP server可以根据此选项来设置一些相应的规则。
RFC中option82的标准格式为:
代码 长度 代理信息字段
+------+------+------+------+------+------+--...-+------+
| 82 | N | i1 | i2 | i3 | i4 | | iN |
+------+------+------+------+------+------+--...-+------+
长度 N 给出代理信息字段的所有个数(字节)。代理信息字段由每个子选项的“子选项/长度/值”的元组序列组成,并按下列格式进行编码:
子选项 长度 子选项值
+------+------+------+------+------+------+--...-+------+
| 1 | N | s1 | s2 | s3 | s4 | | sN |
+------+------+------+------+------+------+--...-+------+
子选项 长度 子选项值
+------+------+------+------+------+------+--...-+------+
| 2 | N | i1 | i2 | i3 | i4 | | iN |
+------+------+------+------+------+------+--...-+------+
其中各个子选项的分别代表:
DHCP Agent Sub-Option Description
Sub-option Code
--------------- ----------------------
1?Agent Circuit ID Sub-option
2 Agent Remote ID Sub-option
我们对于子选项的实现为:
Circuit ID子选项的帧格式
子选项类型 长度 Circuit ID 类型 长度
+------+------+------+------+------+-----------+
| 1 | 6 | 0 | 4 | VLAN | PORTINDEX |
+------+------+------+------+------+-----------+
1byte 1byte 1byte 1byte 2byte 2byte
Remote ID子选项的帧格式
子选项类型 长度 Remote ID
类型 长度
+------+------+------+------+------------------+
| 2?| 8 | 0?| 6 | MAC 地址 |
+------+------+------+------+------------------+
1byte 1byte 1byte 1byte?6byte
典型应用
本特性主要是对ARP报文进行检测,防止中间人攻击,对IP报文作检测,防止DOS攻击,在交换机端口作限速,减轻交换机负担。通过向DHCP请求报文中添加option82选项,支持option82的server端就可以通过option82选项准确的知道client端的物理位置,从而根据管理员配置的规则来对其进行处理,也达到了预防DHCP攻击的效果。
 |