了解DHCP服务的工作原理
能够配置简单的dhcp服务器
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,UDP协议,67号端口
主要用于动态管理分配IP地址
过程分析:
dhcpdiscover(发现):该过程中客户端开始建立请求
dhcpoffer(提供):当网络中的dhcp服务器收到dhcpdiscover信息后,对自身进行检查。
dhcprequset(请求):当dhcp客户收到服务器的返回信息后,就以广播的方式发送
dhcpack(确认):一旦被选中的dhcp收到客户端的请求信息后,就将以保留的这个ip标识为以租用
环境准备:云服务器,我用的是3A网络的,上手简单,适合小白,可以随时更换ip地址。
步骤:
安装dhcp软件包
- [root@server ~]# yum -y install dhcp
- [root@server ~]# rpm -ql dhcp
- /etc/dhcp
- /etc/dhcp/dhcpd.conf //主配置文件
修改配置文件
- 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 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;
测试验证
- 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
-
- 重启网络让client端自动获取IP地址:
- [root@client ~]# service network restart
- Shutting down loopback interface: [ OK ]
- Bringing up loopback interface: [ OK ]
- Bringing up interface eth0: Active connection state: activating
- Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/