DHCP实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DHCP实现相关的知识,希望对你有一定的参考价值。
DHCP实现
服务流程:
- 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.关掉桥接模式
以上是关于DHCP实现的主要内容,如果未能解决你的问题,请参考以下文章