dhcp服务详解

写作目标

了解DHCP服务的工作原理

能够配置简单的dhcp服务器

一、DHCP服务介绍

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,UDP协议,67号端口

主要用于动态管理分配IP地址

二、DHCP服务的工作原理

过程分析:

dhcpdiscover(发现):该过程中客户端开始建立请求,以0.0.0.0作为自己的ip地址

dhcpoffer(提供):当网络中的dhcp服务器收到dhcpdiscover信息后,对自身进行检查,并发送相应的地址。

dhcprequset(请求):当dhcp客户收到服务器的返回信息后,就以广播的方式发送一个dhcp请求信息给本网络中的存在或不存在的其他的dhcp服务器

三、DHCP服务器配置

环境准备:你需要一台云服务器,这里我用的是3A网络的,速度快,部署简单,适合新手。

步骤:

安装dhcp软件包

[root@server ~]# yum -y install dhcp

[root@server ~]# rpm -ql dhcp /etc/dhcp /etc/dhcp/dhcpd.conf //主配置文件 /etc/rc.d/init.d/dhcpd //启动脚本

修改配置文件

vim /etc/dhcp/dhcpd.conf

option domain-name "itcast.cc";  //域名

option domain-name-servers 192.168.1.110, 8.8.8.8;  //DNS(可以写多个)

default-lease-time 3600;  //缺省租约

max-lease-time 7200;      //客户端最大租约

log-facility local7;      //定义日志设备载体 (/var/log/boot.log输出)

subnet 192.168.2.0 netmask 255.255.255.0 {  //子网<网段>

subnet 10.1.1.0 netmask 255.255.255.0 {

  range 10.1.1.100 10.1.1.150;

  option routers 10.1.1.1;

  option broadcast-address 10.1.1.255

}

[root@MissHou ~]# service dhcpd start

Starting dhcpd:                                            [FAILED]

//启动失败

原因分析:

当我们排除了所有可能的情况下还找不出原因的话,就需要通过日志去分析

日志错误信息

[root@server ~]# tail -f /var/log/messages

Apr 16 17:54:22 MissHou dhcpd: /etc/dhcp/dhcpd.conf line 16: semicolon expected.

Apr 16 17:54:22 MissHou dhcpd: }

Apr 16 17:54:22 MissHou dhcpd:  ^

Apr 16 17:54:22 MissHou dhcpd: /etc/dhcp/dhcpd.conf line 16: unexpected end of file

Apr 16 17:54:22 MissHou dhcpd: }

Apr 16 17:54:22 MissHou dhcpd:  ^

Apr 16 17:54:22 MissHou dhcpd: Configuration file errors encountered -- exiting

Apr 16 17:54:22 MissHou dhcpd:

通过查看日志发现,在}附近有报错,再次查看配置文件,发现少了一个分号;

更改如下: option domain-name "itcast.cc"; option domain-name-servers 8.8.8.8; default-lease-time 3600; max-lease-time 7200; log-facility local7; subnet 10.1.1.0 netmask 255.255.255.0 { range 10.1.1.100 10.1.1.150; option routers 10.1.1.1; option broadcast-address 10.1.1.255; //刚刚少了一个分号导致服务无法启动 }

测试验证

client端修改IP地址为动态获取:

[root@client ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

[root@client ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=dhcp

[ OK ]

查看IP地址是否是指定的IP范围:

[root@client ~]# ifconfig eth1

eth1      Link encap:Ethernet  HWaddr 00:0C:29:41:A2:FC 

          inet addr:10.1.1.100  Bcast:10.1.1.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fe41:a2fc/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:17493870 errors:0 dropped:0 overruns:0 frame:0

          TX packets:2271 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:1319498963 (1.2 GiB)  TX bytes:221741 (216.5 KiB)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容