DHCP原理与配置
1、DHCP(Dynamic Host Configuration Protocol)动态主机配置协议
2、可分配的地址信息主要包括:
- ⽹卡的IP地址
- ⼦⽹掩码
- 对应的⽹络地址
- ⼴播地址
- 默认⽹关地址
- DNS服务器地址等
3、DHCP的分配⽅式
(1)⾃动分配:分配到⼀个IP地址后永久使⽤
(2)⼿动分配:由DHCP服务器管理员专⻔指定IP地址
(3)动态分配:使⽤完后释放该IP,供其他客户机使⽤
4、DHCP的租约过程
客户机从DHCP服务器获取IP地址的过程称为DHCP的租约过程。
租约过程分为四个步骤:
(1)客户机请求IP(客户机发DHCP Discover⼴播包)
DHCP客户机以⼴播⽅式发送DHCP Discover发现信息来寻找DHCP服务器。
⼴播信息中包含DHCP客户机的MAC地址和计算机名,以便DHCP服务器确定是哪个客户机发送的请求。
(2)服务器响应(服务器发DHCP Offer⼴播包)
DHCP Offer消息内容:DHCP客户机的MAC地址、DHCP服务器提供的合法IP地址、⼦⽹掩码、默认⽹关、租约的期限、DHCP服务器的IP地址。
(3)客户机选择IP(客户机发DHCP Request⼴播包)
客户机将DHCP Request消息⼴播到所有的DHCP服务器,表明它接收提供的内容。
DHCP Request消息包括为客户机提供IP配置的服务器的服务标识符(服务器IP地址)。
(4)服务器确定租约(服务器发DHCP ACK⼴播包)
DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机⼴播成功确认,
该消息包括含有IP地址的有效租约和其他可配置的信息。
(5)重新登录
DHCP客户机每次重新登录⽹络时,不需要再发送DHCP Discover信息,⽽是
直接发送包含前⼀次所分配的IP地址的DHCP Request请求信息。当DHCP服务器
接收到这⼀信息后,它会尝试让DHCP客户机继续使⽤原来的IP地址,并回答⼀个
DHCP ACK确认信息。
如果此IP地址已⽆法再分配给原来的DHCP客户机使⽤,DHCP服务器给DHCP客户机回答⼀个DHCP Nack否
认信息。当原来的DHCP客户机接收到此DHCP Nack否认信息后,它就必须重新发送DHCP Discover发现信息来请求信的IP地址。
(6)更新租约
当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约。客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约。
若此时DHCP服务器⽆法正常回复DHCP客户机的请求,客户机的此IP地址可以继续使⽤到最⼤租约时间的87.5%。
6、Linux中DHCP的安装与配置
[root@localhost ~]# ifconfig ens32
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.200.111 netmask 255.255.255.0 broadcast
[root@localhost ~]# mount /dev/cdrom /media/cdrom
[root@localhost ~]# rpm -ivh /media/cdrom/Packages/dhcp-4.2.5-68.el7.centos.x86_64.rpm
配置DHCP服务
主配置⽂件:/etc/dhcp/dhcpd.conf
执⾏程序:/usr/sbin/dhcpd
服务脚本名:dhcpd
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
option domain-name "crushlinux.com"; //定义分配的域名
option domain-name-servers 202.106.0.20, 8.8.8.8; //定义分配的DNS服务器信息
default-lease-time 21600; //定义分配IP地址的默认租约时间,单位是秒
max-lease-time 43200; //定义分配IP地址的最⼤租约时间,单位是秒
subnet 192.168.200.0 netmask 255.255.255.0 { //定义分配IP地址⽹段及⼦⽹掩码
range 192.168.200.150 192.168.200.200; //定义分配IP地址的地址池范围
option routers 192.168.200.1; //定义分配⽹关地址
}
[root@localhost ~]# systemctl start dhcpd
针对部分主机可绑定其MAC地址为其分配固定IP地址
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
host win7 { //添加主机定义
hardware ethernet 00f0c:29:a4f48:bb; //客户机MAC地址
fixed-address 192.168.200.99; //为客户机绑定的IP地址
}
[root@localhost ~]# systemctl restart dhcpd
DHCP服务器调整:
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32
GATEWAY=192.168.200.112 //⽹关需要指向DHCP中继服务器同⽹络的IP地址
DHCP中继服务器调整:
设置两块网卡
安装DHCP
[root@localhost ~]# rpm -ivh /media/cdrom/Packages/dhcp-4.2.5-68.el7.centos.x86_64.rpm
打开DHCP中继服务器路由转发功能
[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@localhost ~]# sysctl -p
开启DHCP中继服务
[root@localhost ~]# dhcrelay 192.168.200.111