dhclient报错:dhclient(3108) is already running – exiting.的解决方法

问题表现:
执行dhclient命令时抛出以下错误。

dhclient(3108) is already running - exiting.
This version of ISC DHCP is based on the release available
on ftp.isc.org. Features have been added and other changes
have been made to the base software release in order to make
it work better with this distribution.
Please report for this software via the CentOS Bugs Database:
 http://bugs.centos.org/
exiting.

解决方法:
查找dhclient进程。

[root@localhost ~]# ps -ef | grep dhclient
root 3108 1    0 04:36 ?     00:00:00 dhclient
root 4140 3013 0 05:16 pts/0 00:00:00 grep dhclient

可以看到进程ID是3108,杀死他。

[root@localhost ~]# kill -9 3108

之后再次执行dhclient就正常了。

Linux下使用dhcpd创建超级作用域

超级作用域用来解决DHCP单个作用域中IP地址不足的情况,同时也方便了对多个作用域的同时管理。而且超级作用域可以实现DHCP服务器只有1个IP地址却可以分发多个网段的IP的功能(不使用超级作用域的话要么给DHCP服务器增加多块网卡,要么通过DHCP中继的方式来分发不同网段的IP)。
超级作用域的配置很简单,将多个标准作用域合在一起就可以啦~
查看dhcpd的配置文档。

vim /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample

转到第90行(因软件版本号差异,实际行号可能不同,可以通过搜索关键字来查找)

 90 shared-network 224-29 {
 91 subnet 10.17.224.0 netmask 255.255.255.0 {
 92 option routers rtr-224.example.org;
 93 }
 94 subnet 10.0.29.0 netmask 255.255.255.0 {
 95 option routers rtr-29.example.org;
 96 }
 97 pool {
 98 allow members of "foo";
 99 range 10.17.224.10 10.17.224.250;
100 }
101 pool {
102 deny members of "foo";
103 range 10.0.29.10 10.0.29.230;
104 }
105 }

上面就是超级作用域的配置模板,仔细观察一下可以发现其实就是将多个标准作用域使用shared-network给套了起来。
超级作用域配置格式:

shared-network 超级作用域的名称{
   参数...
   标准作用域1{
   选项...
   参数...
   }
   标准作用域2{
   选项...
   参数...
   }
   ...
}

明白了其配置方法后,我们就可以轻松组建超级作用域了。
下面是我配置的一个例子:

vim /etc/dhcp/dhcpd.conf
  1 shared-network mydhcpdomain {
  2 default-lease-time 172800;
  3 max-lease-time 259200;
  4 option domain-name-servers 114.114.114.114;
  5 option domain-name "dns.ibadboy.net";
  6 subnet 192.168.1.0 netmask 255.255.255.0 {
  7 range 192.168.1.210 192.168.1.210;
  8 option routers 192.168.1.254;
  9 }
 10 subnet 192.168.2.0 netmask 255.255.255.0 {
 11 range 192.168.2.210 192.168.2.210;
 12 option routers 192.168.2.254;
 13 }
 14 subnet 192.168.3.0 netmask 255.255.255.0 {
 15 range 192.168.3.210 192.168.3.210;
 16 option routers 192.168.3.254;
 17 }
 18 }

使用三台PC测试,若每台PC都可正常获取IP且获取到的IP的网段都不同,则本实验成功。

做AC三层发现实验时用到的DHCP option 43选项详解

DHCP的option 43选项是告诉AP,AC的IP地址,让AP寻找AC进行注册。
option 43值形如:

option 43 hex 0104C0A801FD

其中,hex代表十六进制,其后的数值中,0104是固定形式(神州数码设备如此),随后的是AC的IP地址的十六进制形式。
上面的例子代表的IP是192.168.1.253。192的十六进制是C0,168的十六进制是A8,1的十六进制是01,253的十六进制是FD。

CentOS 6中dhcp服务器安装与配置

安装dhcp服务

yum install -y dhcp

用vim文本编辑器打开dhcp服务的主配置文件。

vim /etc/dhcp/dhcpd.conf

可以看到如下内容:

意思就是告诉你想获取dhcp的配置方法可以参见/usr/share/doc/dhcp*/dhcpd.conf.sample文件或是使用man 5 dhcpd.conf命令
为方便,一般都是直接删除当前dhcpd.conf文件,并将/usr/share/doc/dhcp*/dhcpd.conf.sample复制到/etc/dhcp/目录下,重命名为dhcpd.conf。

cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf

在第四十七行左右可以看到如下内容,它们是在配置动态地址分配时可能会用到的选项,可根据实际情况进行配置与取舍。其中以“option”开头的为可选参数,否则为必填:

subnet 10.5.5.0 netmask 255.255.255.224 {             #配置要分配的网段及子网掩码
range 10.5.5.26 10.5.5.30;                     #设置要分配的地址范围
option domain-name-servers ns1.internal.example.org;        #设置默认分配的dns服务器
option domain-name "internal.example.org";             #设置域名(这地方我表示无法理解)
option routers 10.5.5.1;                      #设置默认分配的网关地址
option broadcast-address 10.5.5.31;                #设置广播地址(这个地方也是无法理解)
default-lease-time 600;                      #设置租期(单位是秒)
max-lease-time 7200;                        #设置最大租期(单位是秒)
}

以上是动态分配ip地址的配置内容,假如想给一台设备分配固定IP要怎么办呢?
翻到第75行左右,可以看见如下内容:

host fantasia {
hardware ethernet 08:00:07:26:c0:a5;                #客户端MAC地址,服务器通过MAC地址来确定是否需要给客户端分配固定IP地址。
fixed-address fantasia.fugue.com;                  #要分配的固定IP地址
}

最后,根据自己的需求做修改并重启dhcpd服务即可。

service dhcpd restart