第三章 构建DHCP服务器
本节所讲内容:
3.1、DHCP服务器工作原理
3.2、使用DHCP为局域网中的机器分配IP地址
3.3、使用DHCP为服务器分配固定IP地址
3.4、ntpdate加计划任务同步服务器时间

实验环境:
服务端:dhcpserver IP:192.168.26.72
客户端:dhcpclient IP:自动分配
服务器:server IP:特别保留

正文部分:
3.1、DHCP服务器工作原理
3.1.1、DHCP工作原理
DHCP服务概述:
1)名称:DHCP--动态主机配置协议
2)功能:DHCP是一个工作在局域网内网络协议,使用UDP协议工作, 主要有两个用途:
1、给内部网络机器自动分配IP地址信息:IP地址、网关、DNS、域名等
2、配合实现其他目的,如:cobbler网络部署等
3)特点: C/S 模式
4)安装服务:
[root@dhcpserver ~]# yum -y install dhcp
3.1.2、工作过程
DHCP client discovery:客户端发送广播,在本广播域中找DHCP server,只有DHCP server会响应此广播
DHCP server offer:服务器对DHCP client回复可以提供DHCP服务的响应
DHCP client request:客户端请求DHCP server分配IP地址
DHCP server ack:服务器对DHCP client回复可用IP地址等信息
DHCP client request--renew:在50%租约时间内可以自动续约仍然使用分配IP,如果50%没有得到回复则仍然使用分配IP;到87.5%租约期再次向服务器发送请求,得到回复可续约仍然使用分配IP,没有得到回复会向本广播域再次发送DHCP client discovery请求;如果到100%租约时间仍然无DHCP server响应,则自动分配个169.254.0.0/16的地址
DHCP server ack--renew:根据租约时间回复DHCP client 续约请求

3.2、使用DHCP为局域网中的机器分配IP地址
查看配置文件dhcpd.conf的内容
[root@dhcpserver ~]# cat /etc/dhcp/dhcpd.conf
#

DHCP Server Configuration file.

see /usr/share/doc/dhcp*/dhcpd.conf.example

see dhcpd.conf(5) man page

由此可以看到,配置文件需要从/usr/share/doc/dhcp*/dhcpd.conf.example复制
[root@dhcpserver ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y
[root@dhcpserver ~]# vim /etc/dhcp/dhcpd.conf

dhcpd.conf

#

Sample configuration file for ISC dhcpd

#

option definitions common to all supported networks...

option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 600;
max-lease-time 7200;
.......
重要概念与协议说明:
作用域:可以分配IP的范围 subnet
地址池:可以分配给客户端的IP,range包括的IP
保留地址:指定某个客户端使用一个特定IP,通过host配置的
租约(时间):客户端可以使用这个IP地址的时间
1)subnet 网络号 netmask 子网掩码 {......} --重要
作用:定义作用域,指定子网
2)range 起始IP 地址结束IP 地址 --重要
作用:指定动态IP 地址范围
3)option routers IP 地址 --重要
作用:为客户端指定默认网关
如:option routers 192.168.26.2;
4)option domain-name
作用:为客户端指定默认的域
5)option domain-name-servers IP 地址
作用:为客户端指定DNS 服务器地址
删除其它内容,只保留下如:
[root@dhcpserver ~]# cat /etc/dhcp/dhcpd.conf
subnet 192.168.26.0 netmask 255.255.255.0 {
range 192.168.26.100 192.168.26.200;
option domain-name-servers 192.168.26.72;
option domain-name "wangtao.com";
option routers 192.168.26.2;
option broadcast-address 192.168.26.255;
default-lease-time 600;
max-lease-time 7200;
}
修改dhcpclient网卡从BOOTPROTO=static为BOOTPROTO=dhcp
[root@dhcpclient ~]# cd /etc/sysconfig/network-scripts/
[root@dhcpclient network-scripts]# cat ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
NAME=eth0
DEVICE=eth0
ONBOOT=yes
重启网卡后,发现IP地址已经获得了
[root@dhcpclient ~]# ip addr
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:e1:4b:b1 brd ff:ff:ff:ff:ff:ff
inet 192.168.26.100/24 brd 192.168.26.255 scope global dynamic eth0
valid_lft 552sec preferred_lft 552sec
inet6 fe80::20c:29ff:fee1:4bb1/64 scope link
valid_lft forever preferred_lft forever
在dhcpserver服务器上查看IP、租约等信息
[root@dhcpserver ~]# cat /var/lib/dhcpd/dhcpd.leases

The format of this file is documented in the dhcpd.leases(5) manual page.

This lease file was written by isc-dhcp-4.2.5

server-duid "\000\001\000\001&F\304y\000\014)\030\344p";

lease 192.168.26.100 {
starts 4 2020/05/07 13:10:47;
ends 4 2020/05/07 13:20:47;
cltt 4 2020/05/07 13:10:47;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet 00:0c:29:e1:4b:b1;
client-hostname "dhcpclient";
}
3.3、使用DHCP为服务器分配固定IP地址
在DHCP 中的IP 地址绑定用于给客户端分配固定IP 地址。比如服务器需要使用固定IP 地址就可以使用IP 地址绑定,通过MAC 地址与IP 地址的对应关系为指定的物理地址计算机分配固定IP地址--类似于交换机中端口与MAC地址绑定,此处是IP与MAC地址绑定。
整个配置过程需要用到 host 声明和hardware、fixed-address 参数。
1)host 主机名 {......}
作用:用于定义保留地址
2)hardware 类型硬件地址
作用:定义网络接口类型和硬件地址。常用类型为以太网(ethernet),地址为MAC 地址。
3)fixed-address IP 地址
作用:定义DHCP 客户端指定的IP 地址。
3.3.2、给服务器分配固定IP地址
1)查看绑定IP服务器的MAC地址
[root@server ~]# ip addr |egrep ether | awk '{print $2}'
00:0c:29:cc:9e:dc
2)修改dhcpd.conf配置文件
[root@dhcpserver ~]# cat /etc/dhcp/dhcpd.conf
subnet 192.168.26.0 netmask 255.255.255.0 {
range 192.168.26.100 192.168.26.200;
option domain-name-servers 192.168.26.72;
option domain-name "wangtao.com";
option routers 192.168.26.2;
option broadcast-address 192.168.26.255;
default-lease-time 600;
max-lease-time 7200;
host server{
hardware ethernet 00:0c:29:cc:9e:dc;
fixed-address 192.168.26.80;
}
}
蓝色字体为添加内容
[root@dhcpserver ~]# systemctl restart dhcpd
3)修改server网卡从BOOTPROTO=static为BOOTPROTO=dhcp并删除配置的IP地址,重启网卡如果IP获得是192.168.26.80则说明配置是对的
4)对服务器server网卡修改
[root@server ~]# cd /etc/sysconfig/network-scripts/
[root@server network-scripts]# vi ifcfg-eth0
[root@server network-scripts]# cat ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
NAME=eth0
DEVICE=eth0
ONBOOT=yes
[root@server network-scripts]# systemctl restart network
[root@server ~]# ifconfig eth0
eth0: flags=4163 mtu 1500
inet 192.168.26.80 netmask 255.255.255.0 broadcast 192.168.26.255
.....

3.4、实战ntpdate加计划任务同步服务器时间
服务器时间对分析日志与处理业务是非常重要的,服务器时间一定要确保正确
[root@server ~]# yum -y install ntpdate
[root@server ~]# which ntpdate
/usr/sbin/ntpdate
[root@server ~]# crontab -e
/3 * /sbin/ntpdate -u times.aliyun.com &> /dev/null
这样就是三分钟与时间服务器同步一次。