DHCP: Dynamic Host Configuration Protocol
lease:租约
报文:
首次获取IP地址(广播包)
- client 向服务器端发送DHCPDISCOVER 的UDP报文
- server端回应 DHCPOFFER报文
- client 发送DHCPREQUEST报文,向服务器请求使用该报文
- server端发送DHCPACK 报文,发送确认报文
续租(单播)
- client 向服务器端发送DHCPREQUEST报文
- server端发送DHCPACK 报文,发送确认报文
在一个公司中有多个部门,配置一个DHCP服务器,但是路由器是不能转发广播报文的,为解决该问题,需要将路由器配置DHCP中继服务器
保留地址:保留给某个特定主机使用的地址。(地址池之外的地址)
测试环境
代码语言:javascript复制[root@miner-k ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)
Jetbrains全家桶1年46,售后保障稳定
安装DHCP包
代码语言:javascript复制[root@miner-k ~]# yum -y install dhcp
代码语言:javascript复制[root@miner-k ~]# rpm -ql dhcp.x86_64
/etc/dhcp
/etc/dhcp/dhcpd.conf # DHCP的配置文件
/etc/dhcp/dhcpd6.conf
.......
/usr/sbin/dhcpd # DHCP的服务器端的主进程
/usr/sbin/dhcrelay # DHCP的中继服务器的进程
/var/lib/dhcpd/dhcpd.leases #DHCP的租约记录
修改配置文件
代码语言:javascript复制option domain-name "isc.org"; # 指定/etc/resolv.conf 中search后的参数
option domain-name-servers 114.114.115.115, 114.114.114.114; # DNS服务器的地址
subnet 10.254.239.0 netmask 255.255.255.224 {
option routers 204.254.239.1; #指定网关
range 10.254.239.10 10.254.239.20; # 指定DHCP的地址池,Linux分配IP地址是由大到小的分配,windows中分配是由小到大分配
option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
}
# 通过MAC地址指定IP对应的主机
host fantasia {
hardware ethernet 08:00:07:26:c0:a5; #网卡的mac地址
fixed-address 10.254.239.30; # 指定不在Range范围内的地址
}
DHCP 对应端口
服务器端 UDP 67 客户端 UDP 68
实例部署DHCP服务器
修改配置文件
代码语言:javascript复制[root@miner-k ~]# vim /etc/dhcp/dhcpd.conf
代码语言:javascript复制subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.200 192.168.100.210;
option domain-name-servers 114.114.114.114,114.114.115.115;
option domain-name "miner.example.org";
option routers 192.168.100.1;
default-lease-time 600;
max-lease-time 7200;
}
启动DHCP服务器
代码语言:javascript复制[root@miner-k ~]# service dhcpd restart
Starting dhcpd: [ OK ]
检查DHCP的监听端口
代码语言:javascript复制[root@miner-k ~]# netstat -anlp | grep 67
udp 0 0 0.0.0.0:67 0.0.0.0:* 4841/dhcpd
客户端检查
方法一,重启网络服务器
代码语言:javascript复制[root@miner-k ~]# service network restart
方法二: 重启网卡
代码语言:javascript复制[root@miner-k ~]# ifdown eth0
[root@miner-k ~]# ifup eth0
方法三:使用dhclinet启动
代码语言:javascript复制[root@miner-k ~]# dhclient #后端启动
[root@miner-k ~]# dhclient -d #前台运行,会输出打印结果
查看DNS服务器的配置
查看客户端监听的端口
代码语言:javascript复制[root@localhost ~]# netstat -anlp | grep 68
tcp 0 64 192.168.100.202:22 192.168.100.1:51352 ESTABLISHED 2581/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 2579/dhclient
服务器端检查租约信息
代码语言:javascript复制[root@miner-k ~]# 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.1.1-P1
server-duid "[root@miner-k ~]# 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.1.1-P1
server-duid "