Dhcp简介:
全称(Dynamic Host Configuration Protocol)
最常见的4种属性:ip/netmask/dns server/gateway
工作原理:前身boot protocol(bootp),无盘工作时,服务器为终端提供磁盘空间,那个时候,主机开机前需要获取ip,boot protocol协议产生,此时只有网卡mac地址,这个网卡在通电后自我唤醒、扮演客户端获取ip,发送rarp协议广播报文,通过mac得到ip,然后用ip从服务器上获取操作系统,boot protocol分配的ip是固定的,下一次使用还是这个ip,所以ip地址有一定限制,所以产生了dhcp,达到了ip地址的超负荷使用的目的,从而产生了租约的概念。
Dhcp报文类型:
1.client discover:发现
2.server offer:(ip/netmask,gw)
3.client request:
4.server ack:
Dhcp包安装:
Dhcp软件包中有dhcpd、dhcrelay两个守护进程,俩个进程不可以同时启动,dhcpd可为ipv4、ipv6提供服务,分别使用了不同的配置文件dhcpd.conf与dhcpd6.conf,但是用ipv6时不可独立启动,需要其他软件的支持.
守护进程 |
对应服务 |
配置文件 |
Dhcpd |
Dhcpd.service |
Dhcpd.conf |
Dhcpd6.service |
Dhcpd6.conf |
|
dhcrelay |
Dhcrelay.service |
作者没有找到,做dhcp中继也用不到。 |
/user/sbin/dhcpd守护进程
/etc/dhcp/dhcpd.conf à/etc/rc.d/init.d/dhcpd
除了dhcp包也可以使用dnsmasq(轻量级dns与dhcp)
Dhcp文件配置:
成功安装dhcp后开始配置,我们可以看到原本配置文件为空,但是有提供一个模板,只要复制即可:
option domain-name "magedu.com ";#域名选项option用来指定属性,指定除了地址掩码外的其他属性
option domain-name-servers 172.16.0.1,8.8.8.8;#域名服务器选项
default-lease-time 86400;#默认租期86400(一天)
max-lease-time 86400;#最大租期
在dhcp中配置文件里,option既可以定义在全局,也可以定义于subnet中,每一个subnet中定义一个子网,也可以放在host中,这个是专门保留的,但是要注意,范围越小越优先!!也说明配置信息可以被继承。
而域名服务器是要配置成ip地址的,因为主机拿到域名的话是无法解析的。
修改后的配置文件如下:
其他的配置并不需要,可以全部注释掉,子网配置需要与dhcp主机在同一个网段。
Dhcp测试:
通过以下命令重启并且查看dhcp启动状态及端口:
systemctl start dhcpd.service
systemctl status dhcpd.service
ss -unlp
可以看出来:dhcp监听在67端口
通过另一台主机,使用dhclient -d在前台获取ip:
可以看出可以获取地址,dhcp配置成功
并且cat /var/lib/dhcpd/dhcpd.leases可以查看dhcp分配记录:
我们刚刚并没有给dhcp配置网关,所以clinet1的网关并没有改变,接下来我们配置一下网关:
在dhcpd.conf 加入option routers 172.16.100.67;如果有多个subnet通常会写入到相应subnet中。
注意:每次写完文件需要systemctl restart dhcpd.service 重启服务
查看dhcp运行状态: