使用Linux配置DHCP Option

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用Linux配置DHCP Option
目录
目录
使用Linux配置DHCP Option (1)
目录 (1)
摘要 (1)
正文 (3)
一. 预置条件 (3)
二. 测试拓扑图 (3)
三. 测试步骤 (4)
四. 总结 (8)
五. 备注说明 (9)
附件 (10)
参考文献 (10)
摘要
目前在公司产品开发中要求验证相关DHCP Option功能的项目越来越多。

本指导书旨在指导测试人员正确完成对CPE网关设备的DHCP Option功能的测试,以判断产
品是否符合相关需求。

其中CPE网关设备作为DHCP Server,主要是测试Option 60, Option 43和Option 125等作为接入认证技术的功能。

如果其中CPE网关设备是作为DHCP Client,则主要是测试一些基本功能,如DHCP Option 6,Option 15,Option 42和Option 50等。

如果其中CPE网关设备是作为DHCP Relay Agent,则主要是测试Option 82功能。

正文
一.预置条件
1.准备PC机一台,安装Linux 操作系统RHEL AS4(请注意需安装ethereal抓包软件);
2.验证Linux系统中可以使用命令dhclient (即PC机作为DHCP Client,CPE设备作为DHCP Server)。

如该命令无效,则需安装相应的dhclient RPM包。

3.验证Linux系统中已经安装dhcpd服务器(此时CPE设备为DHCP Client,PC机作为DHCP Server);如果“service dhcpd restart”命令无效,则需安装相应的dhcpd RPM包。

4.网线、电话线若干;
二.测试拓扑图
PC
Fig 1测试拓扑图1
PC
Fig 2 测试拓扑图2
PC1
Fig 3 测试拓扑图3
三.测试步骤
测试内容可以包括五大部分(I、II、III、Ⅳ、Ⅴ)
I.DHCP Option 60测试(参照测试拓扑图1)
DHCP OPTION 60中带有Vendor和Service Option信息,是由用户终端发起DHCP请求时携带的信息,网络设备只需要透传即可。

其在应用中的作用是用来识别用户终端类型,从而识别用户业务类型,DHCP服务器可以依赖于此分配不同的业务IP地址。

其格式为:
Code Len Vendor class Identifier
+-----+-----+-----+-----+---
| 60 | n | i1 | i2 | ...
+-----+-----+-----+-----+---
1.编辑/etc/dhclient.conf文件(默认安装后此文件并不存在,需要手工创建),举例如下:interface “eth0” {
send vendor-class-identifier “IP_Camera”;
#上面即PC机作为DHCP Client时,要求携带DHCP Option 60,值为“IP_Camera”。

可以根据不同客户需求设置不同的值。

request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name, netbios-name-servers, netbios-scope;
#上面即DHCP Option 55中的相关内容。

可以设置不同的参数集合。

}
2.在终端中输入命令:
#dhclient –r
其中“#”为linux超级用户命令提示符;
该命令为释放当前的租约,终止DHCP Client。

#ifconfig eth0 192.168.1.2
该命令为eth0端口随意设置一IP, 便于下面抓包工具启动抓包。

3.启动抓包工具ethereal。

(选择eth0端口)
4.在终端中输入命令:
#dhclient eth0
命令完成后在抓包工具中过滤栏中输入:bootp,可以在DHCP Discover和DHCP Request行中看到Option 60的参数和值。

II.DHCP Option 43测试(参照测试拓扑图1)
DHCP Option 43格式如下:
Code Len Vendor-specific information
+-----+-----+-----+-----+---
| 43 | n | i1 | i2 | ...
+-----+-----+-----+-----+---
如果使用封装的Vendor-specific information,则iX信息如下格式:
Code Len Data item Code Len Data item Code
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| T1 | n | d1 | d2 | ... | T2 | n | D1 | D2 | ... | ... |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
1.Client PC开启编辑/etc/dhclient.conf文件,举例(TR111要求的)如下:
interface “eth0” {
send vendor-encapsulated-options 01:04:41:41:41:41:02:05:42:42:42:42:42:03:06:43:43:43:43:43:43;
#上面即PC机作为DHCP Client时,要求携带封装的DHCP Option 43:Code为1 的Data段为4个0x41(即字母B);Code为2 的Data段为5个0x41(即字母C);Code为3
的Data段为6个0x43(即字母C);可以自行根据实际需要修改添加。

request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name, netbios-name-servers, netbios-scope;
#上面即DHCP Option 55中的相关内容。

可以设置不同的参数集合。

}
2.在终端中输入命令:
#dhclient –r
其中“#”为linux超级用户命令提示符;
该命令为释放当前的租约,终止DHCP Client。

#ifconfig eth0 192.168.1.2
该命令为eth0端口随意设置一IP, 便于下面抓包工具启动抓包。

3.启动抓包工具ethereal。

(选择eth0端口)
4.在终端中输入命令:
#dhclient eth0
命令完成后在抓包工具中过滤栏中输入:bootp,可以在DHCP Discover和DHCP Request行中看到Option43的参数和值。

III.DHCP Option 125测试(参照测试拓扑图1)
DHCP Option 125格式如下:
Fig 3 RFC3925中对于Option 125报文格式的说明
5.Client PC开启编辑/etc/dhclient.conf文件,举例(TR111要求的)如下:option option-125 code 125 = string;
interface “eth0” {
send option-125 00:0D:E9:18:01:06:41:41:41:41:41:41:02:06:42:42:42:42:42:42:03:06:43:43:43:43:43:43;
#上面即PC机作为DHCP Client时,要求携带DHCP Option 125,Option125的Option Data Enterprise Number for DSL Forum 3561: 000DE9; Data length: 0x18, 此Enterprise Number包含的Option Data的总长度; DeviceOUI 为6个0x41(即字母B);
DeviceSerialNumber为6个0x42(即字母C);DeviceProductClass为6个0x43(即字母C);
request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name, netbios-name-servers, netbios-scope;
#上面即DHCP Option 55中的相关内容。

可以设置不同的参数集合。

}
6.在终端中输入命令:
#dhclient –r
其中“#”为linux超级用户命令提示符;
该命令为释放当前的租约,终止DHCP Client。

#ifconfig eth0 192.168.1.2
该命令为eth0端口随意设置一IP, 便于下面抓包工具启动抓包。

7.启动抓包工具ethereal。

(选择eth0端口)
8.在终端中输入命令:
#dhclient eth0
命令完成后在抓包工具中过滤栏中输入:bootp,可以在DHCP Discover和DHCP Request行中看到Option125的参数和值。

Ⅳ。

DHCP Option 6/15/42/121/50等测试(参照测试拓扑图2)
这个需求是CPE网关设备作为DHCP Client,而PC机作为DHCP Server。

其中:
DHCP Option 6是Domain Name Server,其格式为:
Code Len Address 1 Address 2
+-----+-----+-----+-----+-----+-----+-----+-----+--
| 6 | n | a1 | a2 | a3 | a4 | a1 | a2 | ...
+-----+-----+-----+-----+-----+-----+-----+-----+--
DHCP Option 15是Domain Name,其格式为:
Code Len Domain Name
+-----+-----+-----+-----+-----+-----+--
| 15 | n | d1 | d2 | d3 | d4 | ...
+-----+-----+-----+-----+-----+-----+--
DHCP Option 42是Network Time Protocol Servers,其格式为:
Code Len Address 1 Address 2
+-----+-----+-----+-----+-----+-----+-----+-----+--
| 42 | n | a1 | a2 | a3 | a4 | a1 | a2 | ...
+-----+-----+-----+-----+-----+-----+-----+-----+--
DHCP Option 121是Classless Static Route的Option,其格式(请参考RFC3442)为:
Code Len Destination 1 Router 1
+-----+---+----+-----+----+----+----+----+----+
| 121 | n | d1 | ... | dN | r1 | r2 | r3 | r4 |
+-----+---+----+-----+----+----+----+----+----+
Destination 2 Router 2
+----+-----+----+----+----+----+----+
| d1 | ... | dN | r1 | r2 | r3 | r4 |
+----+-----+----+----+----+----+----+
1.编辑/etc/dhcpd.conf文件,举例如下:
(RHEL AS4中,可以参考/user/share/doc/dhcp-3.0.1/dhcpd.conf.sample)
ddns-update-style interim;
ignore client-updates;
(下面两行仅供配置Option 121,如无需测试可用#注释)
option classless-static-routes code 249 = string;
option classless-static-routes 00:c0:a8:01:01:0a:0a:57:c0:a8:01:64;
(添加2条静态路由:1,路由为0.0.0.0 mask 0.0.0.0 gw 192.168.1.1
2,路由为10.64.0.0 mask255.192.0.0 gw 192.168.1.100 )
subnet 172.24.0.0 netmask 255.255.0.0 {
option routers 172.24.1.1;
options subnet-mask 255.255.255.0;
option domain-name “”;
option nis-domain “”;
option domain-name-servers 172.24.1.1;
option time-offset -18000;
option ntp-servers 172.24.1.1;
range dynamic-bootp 172.24.2.100 172.24.2.200;
default-lease-time 21600;
max-lease-time 43200;
}
2.在PC终端中输入命令:
#service dhcpd restart
启动DHCPD后台进程
3.在CPE网关设备上查看此modem的DNS是否为dhcpd.conf中设置的如“172.24.1.1”。

4.在CPE网关设备上查看此modem的Domain Name是否为dhcpd.conf中设置的如“”。

5.通过在CPE网关设备上查看此modem的Network Time Protocol Servers是否为dhcpd.conf 中设置的如“172.24.1.1”。

6.(option 121)通过telnet到CPE,通过route show命令显示是否已经增加设置的两条静态路由。

其中:DHCP Option 50是Requested IP Address,其格式为:
Code Len Address
+-----+-----+-----+-----+-----+-----+
| 50 | 4 | a1 | a2 | a3 | a4 |
+-----+-----+-----+-----+-----+-----+
此DHCP Option是DHCP Server必须支持的,无需在配置文件中进行设置,现在是测试
DHCP Client,所以只需抓包看即可。

Ⅴ。

DHCP Option 82测试(参照测试拓扑图3)
这个需求是CPE网关设备作为DHCP Relay,而PC2机作为DHCP Server。

举例配置dhcpd.conf 如下:(根据DHCP Option 82不同的应用需要选择不同的配置策略)
ddns-update-style interim;
ignore client-updates;
option space agent;
option agent.circuit_id code 1 = string;
option agent.remote_id code 2 = unsigned integer 16;
option agent.link_selection code 5 = string;
option relay_agent code 82 = encapsulate agent;
subnet 172.24.0.0 netmask 255.255.0.0 {
class "TEST1" {
match if option agent.circuit-id=”test1”;}
class "TEST2" {
match if option agent.circuit-id=”test2”;}
pool { allow members of "TEST1";
option routers 172.24.242.1;
option domain-name-servers 172.24.10.10, 172.24.11.10;
range dynamic-bootp 172.24.35.10 172.24.35.15;
default-lease-time 21600;
max-lease-time 43200;
}
pool { allow members of "TEST2";
option routers 172.24.242.1;
option domain-name-servers 172.24.10.10, 172.24.11.10;
range dynamic-bootp 1 72.24.55.10 172.24.55.15;
default-lease-time 21600;
max-lease-time 43200;
}
}
在上面的配置文件中,我们定义了两个类“TEST1”和“TEST2”,当DHCP Server收到的OPTION 32字段的circuit_id 子选项为test1的时候,我们将其归在类“TEST1”中,并给其分配172.24.55.10-172.24.55.15范围内的地址,同样,当DHCP Server收到的OPTION 82字段的circuit_id 子选项为test2的时候,我们将其归在类“TEST2”中,并给其分配172.24.35.10-172.24.35.15范围内的地址。

四.总结
1.CPE 网关设备作为DHCP Server,则PC作为DHCP Client主要通过/etc/dhclient.conf进行配置和dhclient命令进行操作。

2.CPE 网关设备作为DHCP Client,则PC作为DHCP Server主要通过/etc/dhcpd.conf进行配置和service dhcpd restart命令进行操作。

五.备注说明
1.目前尚没有实现如何在Linux系统中设置DHCP Inform包。

2.DHCP 协议中的magic cookie是固定的:63 82 53 63(16进制,RFC2132),与其它协议不太相似。

附件
1.《多业务接入认证技术白皮书.pdf》:
多业务接入认证技
术白皮书.pdf
2.DHCP自定义选项.rtf
DHCP自定义选项.rt
f
参考文献
【1】:IETF RFC 3925 《Vendor-Identifying Vendor Options for Dynamic Host Configuration Protocol version 4 (DHCPv4)》
【2】:IETF RFC 2132 《DHCP Options and BOOTP V endor Extensions》
【3】:IETF RFC 3046 《DHCP Relay Agent Information Option》
【4】:IETF RFC 3342 《The Classless Static Route Option for Dynamic Host Configuration Protocol (DHCP) version 4》。

相关文档
最新文档