主机获取网络配置的方式
- 静态配置
- 动态配置
- bootp:MAC 与 IP 地址一一对应
- DHCP:增强的bootp,且是动态的
1、DHCP工作原理
DHCP 动态主机配置协议,其使用 UDP 协议,是基于C/S 模式的。DHCP server 使用 67/UDP,客户端的分别使用 68/udp(ipv4)和 546/udp(ipv6)
1.1、DHCP的工作过程
- 客户端向服务器端发起 discover 请求(广播报文)
- 服务器向客户机发送 offer 与一个没有使用的 ip 地址
- 客户机一条request 报文,回应选择哪一台 DHCP 服务器的 ip 地址(广播报文)
- 被选中的 DHCP 服务器给客户机发送一条 ACK 确认
1.2、DHCP服务续租
- 50%:租赁时间达到50%时就来续租,向原来的 DHCP 服务器重新发送 DHCP request 请求,如果 DHCP 服务器没有拒绝的理由,则回应 DHCP ack 信息。当客户端收到应答信息后,就重新开始计算租约时间
- 87.5%:如果之前的 DHCP 服务器没有回应续租请求,等到租约期的 7/8 时,客户端会再次发送广播请求
1.3、跨网段DHCP服务
- 使用 DHCP 中继代理
- 使用支持 RFC1542 的路由器
在组建跨网段备份服务器时,可以使用 80/20 原则,即在本地 DHCP 服务器地址池中配置 80% 的 ip 地址,在远端备份服务器上配置 20% 的 ip 地址
2、DHCP实现
DHCP 服务使用的相关软件
- dhcp(centos7) 或 dhcp-derver(centos8)
- dnsmasq:可提供 DHCP 和 DNS 功能
2.1、DHCP相关文件
DHCP server 相关文件
- /usr/sbin/dhcpd:DHCP服务主程序
- /etc/dhcp/dhcpd.conf:DHCP 服务配置文件
- /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example:DHCP 服务配置范例文件
- /usr/lib/systemd/system/dhcpd.service:DHCP 服务文件
- /var/lib/dhcpd/dhcpd.leases:地址分配记录
DHCP client 相关文件
2.2、配置DHCP服务
-
安装DHCP
[root@test-host ~]# yum install dhcp -y
**注意:**安装完毕 dhcp 软件包后,无法直接启动服务,需要先对服务进行配置后,才可正常启动服务
-
配置DHCP
[root@test-host ~]# vim /etc/dhcp/dhcpd.conf option domain-name "test.com"; option domain-name-servers 61.139.2.69, 114.114.114.114; default-lease-time 86400; max-lease-time 172800; log-facility local7; subnet 192.168.137.0 netmask 255.255.255.0 { range 192.168.137.100 192.168.137.200; option routers 192.168.137.1; }
-
查看dhcpd地址分配记录
[root@test-host ~]# tail -f /var/lib/dhcpd/dhcpd.leases lease 192.168.137.101 { starts 0 2022/12/11 13:24:04; ends 0 2022/12/11 13:26:04; tstp 0 2022/12/11 13:26:04; cltt 0 2022/12/11 13:24:04; binding state free; hardware ethernet 00:0c:29:0c:e0:cb; } # 此处的时间为UTC时间
-
给主机分配固定ip
[root@test-host ~]# vim /etc/dhcp/dhcpd.conf host test_host { hardware ethernet 00:0c:29:0c:e0:cb; fixed-address 192.168.137.10; }
分配固定 ip 时,不会在 /var/lib/dhcpd/dhcpd.leases 中记录,可以通过 /var/log/messages 日志查看相关信息
[root@test-host ~]# tail -f /var/log/messages Dec 11 21:28:09 test-host dhcpd: DHCPREQUEST for 192.168.137.110 from 00:0c:29:0c:e0:cb via ens33: lease 192.168.137.110 unavailable. Dec 11 21:28:09 test-host dhcpd: DHCPNAK on 192.168.137.110 to 00:0c:29:0c:e0:cb via ens33 Dec 11 21:28:09 test-host dhcpd: DHCPDISCOVER from 00:0c:29:0c:e0:cb via ens33 Dec 11 21:28:09 test-host dhcpd: DHCPOFFER on 192.168.137.10 to 00:0c:29:0c:e0:cb via ens33 Dec 11 21:28:09 test-host dhcpd: DHCPREQUEST for 192.168.137.10 (192.168.137.100) from 00:0c:29:0c:e0:cb via ens33 Dec 11 21:28:09 test-host dhcpd: DHCPACK on 192.168.137.10 to 00:0c:29:0c:e0:cb via ens33
2.3、其他配置
- next-server:提供引导文件的服务器ip地址
- filename:引导文件名称
subnet 192.168.137.0 netmask 255.255.255.0 {
range 192.168.137.100 192.168.137.200;
option routers 192.168.137.1;
# TFTP服务器
next-server 192.168.137.100;
# boot loader启动文件名称
filename "pxelinux.0";
}