服务流程:
0. 关闭 selinux,iptables, 给自己当 dhcp 服务器的主机一个静态的 ip 地址
1. 安装包 yum 安装, 源码安装, 二进制安装
2. 配置文件
3. 准备数据
4. 启动服务
5. 测试
Linux DHCP 协议的实现程序: dhcp, dnsmasq(dhcp,dns)
dhcp 软件包是专门实现 dhcp 服务的, dnsmasq 也可以实现 dhcp 服务, 不过不是专门来实现 dhcp 的, 还可以当 dns 用
dhcp 服务器要想提供服务首先要有 一个静态的 ip 地址, 这样才能给别的主机分配 ip 地址
本次实验是 centos7.4 安装
- ~]# yum info dhcp 查看是否有 dhcp 服务的包
- ~]# yum install dhcp 安装 dhcp 服务
- ~]# rpm -qf dhcp 查看软件包包括的程序列表
- /etc/NetworkManager
- /etc/NetworkManager/dispatcher.d
- /etc/NetworkManager/dispatcher.d/12-dhcpd
/etc/dhcp/dhcpd.conf 配置文件
- /etc/dhcp/dhcpd6.conf
- /etc/dhcp/scripts
- /etc/dhcp/scripts/README.scripts
- /etc/openldap/schema/dhcp.schema
- /etc/sysconfig/dhcpd
- /usr/bin/omshell
/usr/lib/systemd/system/dhcpd.service 提供 dhcp 服务
/usr/lib/systemd/system/dhcpd6.service
/usr/lib/systemd/system/dhcrelay.service 提供中继服务, 和 dhcp 不可同时开启
/usr/sbin/dhcpd 主程序 (启动包括了 ipv4 和 ipv6)
/usr/sbin/dhcrelay 中继程序
/usr/share/doc/dhcp-4.2.5
/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example 配置文件参考的范例文件
- /usr/share/doc/dhcp-4.2.5/dhcpd6.conf.example
- /usr/share/doc/dhcp-4.2.5/ldap
- /usr/share/doc/dhcp-4.2.5/ldap/README.ldap
- /usr/share/doc/dhcp-4.2.5/ldap/dhcp.schema
- /usr/share/doc/dhcp-4.2.5/ldap/dhcpd-conf-to-ldap
- /usr/share/man/man1/omshell.1.gz
- /usr/share/man/man5/dhcpd.conf.5.gz
- /usr/share/man/man5/dhcpd.leases.5.gz
- /usr/share/man/man8/dhcpd.8.gz
- /usr/share/man/man8/dhcrelay.8.gz
- /usr/share/systemtap/tapset/dhcpd.stp
- /var/lib/dhcpd
/var/lib/dhcpd/dhcpd.leases 分配地址的地址数据库, 存放地址分配情况
- /var/lib/dhcpd/dhcpd6.leases
- ~]# vim /etc/dhcp/dhcpd.conf 编辑配置文件
- # DHCP Server Configuration file.
- # see /usr/share/doc/dhcp*/dhcpd.conf.example 配置文件为空, 需要参考范例文件
- # see dhcpd.conf(5) man page
- ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 复制范例文件, 并覆盖配置文件
- ~]# vim /etc/dhcp/dhcpd.conf 编辑配置文件
option domain-name "magedu.com"; 域名后缀, 访问某主机的时候会自动补上这个后缀
option domain-name-servers 114.114.114.114,8.8.8.8; DNS 服务器地址
default-lease-time 86400; 默认租期, 秒为单位, 可以设长点
max-lease-time 864000; 特殊的租期
subnet 192.168.27.0 netmask 255.255.255.0 { ip 地址的分配
range 192.168.27.50 192.168.27.200; ip 地址分配范围
option routers 192.168.27.1; 网关地址
}
host passacaglia { 绑定固定的 ip 地址
hardware ethernet 0:0:c0:5d:bd:95; 客户端 mac 地址
fixed-address 192.168.27.100; 绑定固定的 ip
- server-name "toccata.fugue.com";
- }
- ~]# systemctl start dhcpd 启动 dhcp 服务
- ~]# cat /var/lib/dhcpd/dhcpd.leases 开启另一台机器, 看是否可以获取到地址
lease 192.168.27.129 { 看到获取到的 dhcp 分配的地址
- starts 4 2018/03/15 09:12:38;
- ends 5 2018/03/16 09:12:38;
- cltt 4 2018/03/15 09:12:38;
- binding state active;
- next binding state free;
- rewind binding state free;
- hardware ethernet 00:0c:29:f2:8d:8f;
- client-hostname "centos6";
- }
- ~]# cat /var/lib/dhclient/dhclient-eth0.leases 在客户端查看 ip 地址获取情况
- lease {
- interface "eth0";
- fixed-address 192.168.27.129;
- option subnet-mask 255.255.255.0;
- option routers 192.168.27.1;
- option dhcp-lease-time 86400;
- option dhcp-message-type 5;
option domain-name-servers 114.114.114.114,8.8.8.8; dns 服务地址
option dhcp-server-identifier 192.168.27.128; dhcp 服务器地址
- option domain-name "magedu.com";
- renew 4 2018/03/15 19:14:26;
- rebind 5 2018/03/16 06:12:27;
- expire 5 2018/03/16 09:12:27;
- }
成功!
让客户端重新获取 ip, 需要在客户端做一下操作
- ~]# rm -rf /var/lib/dhclient/* 删除客户端数据库下的内容
- ~]# killall dhclient 杀掉客户端运行程序
- ~]# dhclient -d 前台显示重新获取 ip
这个实验的成功需要两步:
1. 关掉虚拟机的 dhcp 服务
2. 关掉桥接模式
来源: http://www.bubuko.com/infodetail-2543666.html