linux下DHCP服务器配置

  • A+
所属分类:系统文档

一、安装DHCP Server

使用命令yum install dhcp安装最新版本的DHCP Server,目前使用的版本为DHCP Server 4.2.5。通过以下命令可以查看版本信息:

# dhcpd12

显示内容如下: 
linux下DHCP服务器配置

二. 环境配置

2.1 创建主配文件dhcpd.conf

/etc/dhcp/下的dhcpd.conf文件是DHCP服务器的主要配置文件,所有功能都是在该文件中修改并实现的。在/usr/share/doc/dhcp*下有dhcpd.conf.example和dhcpd6.conf.example分别是IPv4和IPv6的配置模板,其中有详细的注释和所有的配置内容。

下面我们手动创建dhcpd.conf,内容如下:

ddns-update-style none;
ignore client-updates;
default-lease-time 21600;
max-lease-time 43200;
option domain-name "linuxde.net";
option domain-name-servers 202.96.199.133, 116.228.111.118;
option routers 192.168.100.254;
subnet 192.168.100.0 netmask 255.255.255.0 {
    range 192.168.100.50 192.168.100.100;
    option subnet-mask 255.255.255.0;
    host server1 {
            hardware ethernet b0:c0:c3:22:46:81;
            fixed-address 192.168.3.100;
    }
}12345678910111213141516

2.2 其他设置

创建了dhcpd.conf文件后,基本上已经可以通过service dhcpd start命令来启动dhcpd服务了,不过还是可能会遇到其他的问题。以下内容为解决可能存在的问题:

2.2.1 更改网卡IP

在DHCP服务无法正常启动,通过journalctl –xe查看日志发现如下错误信息:

linux下DHCP服务器配置

这通常是因为对应的网卡IP不在dhcpd.conf可分配的IP网段范围内,比如我设置的网卡eth0 IP为192.168.3.100,而对应的DHCP网段为192.168.100.50~192.168.100.100,则DHCP服务无法正常启动,只需要将eth0的IP重新修改就行了:

# vim /etc/sysconfig/network-scripts/ifcfg-eth012

将IPADDR修改为192.168.100.80后,再重启网络服务:

# service network restart12

通过ifconfig eth0查看IP已经修改成功就可以重新启动DHCP服务。

2.2.2 创建DHCP服务器租约文件

# touch /var/db/dhcpd.leases12

如果没有创建此文件,启动服务时候可能会提示以下错误信息:

WARNING: host declarations are global. They are not limited to the scope you declared them in.
Can't open lease database /var/db/dhcpd.leases: No such file or directory --123

2.2.3 配置网络接口

当出现not configured to listen on any interfaces这样的错误的时候通常上因为没有指明要在哪一张网卡启动DHCP服务,所以我们需要指定网络接口名称。操作如下:

# cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/
# vi /etc/systemd/system/dhcpd.service123

内容如下:

linux下DHCP服务器配置

找到ExecStart这一行,并按照如下格式修改内容:

ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid <指定网卡接口名称>12

修改完继续执行:

# systemctl --system daemon-reload
# systemctl restart dhcpd.service123

2.2.4 设置开机启动

使用chkconfig实现DHCP服务开机启动:

# chkconfig dhcpd on12

没有chkconfig的话可以安装或者采用其他方式。

三、启动DHCP服务

在所有内容都已经配置好后,通过如下命令便可以启动DHCP服务:

# service dhcpd start12

我们在进程中查看DHCP是否已经启动:

# netstat –apn | grep dhcpd12

得到的查看结果如下:

linux下DHCP服务器配置

说明我们的DHCP服务确实已经启动并且成功运行。

四、测试DHCP服务

测试DHCP服务是否配置成功并且能够如预期一样运行有很多种方法,这里采用比较简单的一种,看能够给本机Linux分配IP地址、子网掩码等。

首先,在启动好了需要测试网卡的网络服务和DHCP服务后,我们需要将Linux本机的IP设置成自动获取,操作如下:

# vim /etc/sysconfig/network-scripts/ifcfg-eth012

可以看到对应的网卡配置文件内容如下:

linux下DHCP服务器配置

其中DEVICE是物理设备即网卡的名称;ONBOOT表示是否在Linux启动时被激活,有yes和no两个取值;BOOTPROTO表示IP的配置方式,有 三种取值方式:none、static、dhcp,none和static均表示通过指定IP静态配置的方法,dhcp表示通过DHCP服务器动态分配IP的方式;IPADDR和 NETMASK指IP地址和掩码地址。

可以看出上面采用的是静态配置IP的方法,我们将BOORPOTO改为dhcp,并且将IPADDR和NETMASK注释掉:

linux下DHCP服务器配置

之后将文件保存并退出,设置成自动获取IP地址后再重新启动网络:

# service network restart12

网络重启成功后,再来查看IP地址是否已经重新分配了:

# ifconfig eth012

linux下DHCP服务器配置

可以看见我们的IP地址从之前静态配置的IP 192.168.100.80变为了192.168.100.50,并且是192.168.100.50~192.168.100.100间的IP地址,同时之前设置的掩码地址从255.255.254.0变为了255.255.255.0。

然后再查看我们的主机域名和对应DNS服务器地址是否设置成功:

# cat /etc/resolv.conf12

可以看到结果如下:

linux下DHCP服务器配置

正好是我们在dhcpd.conf中设置的内容,说明我们的DNS设置成功了。

https://blog.csdn.net/syoya1997/article/details/53329286

《主要是touch  *.leases很有用》

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: