最近在做软路由,其中一个功能是dhcp服务。记录一下过程,供其他人参考。
(dhcpd版本4.1.1,centos版本6.6)
参考文章:
(1)点击打开链接
(2)点击打开链接
正文:
(1)安装dhcp
ubuntu用apt-get,centos用yum,这就不多说了。
(2)开机启动和开启服务
把dhcpd设为开机启动,centos下用命令chkconfig dhcpd on;
ubuntu下怎么设置启动请google。
如果要马上开启服务,service dhcpd start;
(3)添加配置文件
安装完dhcpd之后。默认配置文件是没有内容的,所以service dhcpd start会报错。
其中两个错误提示如下:
No subnet declaration for eth5 (192.168.106.221)
Not configured to listen on any interfaces!
原因是我们还没有设置配置文件 。
可以把/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample
拷贝到/etc/dhcp/dhcpd.conf(不同的发行版,配置文件位置可能不一样)。
(4)修改配置文件
如果不修改配置文件的话,启动dhcpd依然会报错的。
可以参考一下别人的dhcpd.conf文件进行修改。
因为我做的是路由器,网卡比较多,参数也比较复杂,就不贴出来了。
下面贴一下其他人的吧,这个相对容易理解一点:
<span style="font-size:14px;">ddns-update-style interim; #配置使用过渡性 DHCP-DNS互动更新模式。 ignore client-updates; #忽略客户端更新 subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; #路由器地址 option subnet-mask 255.255.255.0; #子网掩码选项 option nis-domain "xfbaydhcp.com"; option domain-name "xfbaydhcp.com"; #域名 option domain-name-servers 202.102.152.3; #DNS地址 option time-offset -18000; # Eastern Standard Time range dynamic-bootp 192.168.1.100 192.168.1.200; #租用IP地址的范围 default-lease-time 21600; #缺省租约时间 max-lease-time 43200; #最大租约时间 # we want the nameserver to appear at a fixed address host ns { next-server marvin.redhat.com; hardware ethernet 12:34:56:78:AB:CD; fixed-address 207.175.42.254; } }</span>
(5)lan网卡绑定dhcpd
Not configured to listen on any interfaces!
报这个错误的原因是,没有声明在哪个网卡启动dhcp功能。
解决办法:
在/etc/sysconfig/dhcpd中添加一行
<span style="font-size:14px;">DHCPDARGS=eth4</span>
这个是centos里面的路径,ubuntu中可能会有点不同。
修改完这些之后,service dhcpd start;就可以启动服务了。
(6)附录:dhcpd.conf参数说明
/etc/dhcpd.conf通常包括三部分:parameters、declarations 、option。 1.DHCP配置文件中的parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户 ddns-update-style 配置DHCP-DNS 互动更新模式。 default-lease-time 指定确省租赁时间的长度,单位是秒。 max-lease-time 指定最大租赁时间长度,单位是秒。 hardware 指定网卡接口类型和MAC地址。 server-name 通知DHCP客户服务器名称。 get-lease-hostnames flag 检查客户端使用的IP地址。 fixed-address ip 分配给客户端一个固定的地址。 authritative 拒绝不正确的IP地址的要求。 2.DHCP配置文件中的declarations (声明):用来描述网络布局、提供客户的IP地址等 shared-network 用来告知是否一些子网络分享相同网络。 subnet 描述一个IP地址是否属于该子网。 range 起始IP 终止IP 提供动态分配IP 的范围。 host 主机名称 参考特别的主机。 group 为一组参数提供声明。 allow unknown-clients;deny unknown-client 是否动态分配IP给未知的使用者。 allow bootp;deny bootp 是否响应激活查询。 allow booting;deny booting 是否响应使用者查询。 filename 开始启动文件的名称. 应用于无盘工作站。 next-server 设置服务器从引导文件中装如主机名,应用于无盘工作站。 3. DHCP配置文件中的option(选项):用来配置DHCP可选参数,全部用option关键字作为开始 subnet-mask 为客户端设定子网掩码。 domain-name 为客户端指明DNS名字。 domain-name-servers 为客户端指明DNS服务器IP地址。 host-name 为客户端指定主机名称。 routers 为客户端设定默认网关。 broadcast-address 为客户端设定广播地址。 ntp-server 为客户端设定网络时间服务器IP地址。 time-offset 为客户端设定和格林威治时间的偏移时间,单位是秒。 注意:如果客户端使用的是视窗操作系统,不要选择"host-name"选项,即不要为其指定主机名称