一、 DHCP简述
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是由Internet工作任务小组设计开发的,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议。
当局域网络中有大量主机时,如果逐个为每一台主机手动配置IP地址、默认网关、DNS服务器地址等网络参数,显然时一个费力也未必讨好的办法,而DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)服务器的应用,正好可以解决这个问题。
DHCP的典型应用模式下,在网络中架设一台专用的DHCP服务器,负责集中分配各种网络地址参数(主要包括IP地址、子网掩码、广播地址、默认网关、DNS),其他主机作为DHCP客户机,将网卡配置为自动获取地址,即可与DHCP服务器进行通信,完成自动配置过程。
1.2 DHCP 的作用
1.2.1 使用DHCP的好处
1.减少管理员的工作量
2.避免IP地址冲突
3.当网路更改IP地址段时,不需要再重新配置每个用户的IP地址
4.提高了IP地址的利用率
5.方便客户端的配置
1.2.2 DHCP的分配方式
1.自动分配:分配到一个IP地址后永久使用
2.手动分配:由DCP服务器管理员专门指定IP地址
3.动态分配:使用完后释放该IP,供其它客户机使用
例:局域网当中的网络打印机,便是设置自动分配,永久使用
1.3.1 租约过程分为四个步骤
DHCP租约过程:4个步骤,discover(广播)、offer(单播)、request(广播)、ACK(单播)
(1) 客户端在网络中搜索DHCP服务器
客户端请求IP地址,在局域网内发送discover广播包,寻找DHCP服务器。
- 服务器向客户端响应服务
如果局域网内,存在DHCP服务器,服务器接收discover广播包后,服务器会向客户端发送响应请求的offer单播包,告诉局域网内的客户端,我就是DHCP服务器。
(3)客户端向目标服务器发出服务请求
客户端接收到服务器offer单播包后,客户机选择IP地址为request广播包,IP地址为DHCP地址池中的IP范围。
(4)服务器向客户端提供服务
服务器收到客户端request广播包后,向客户端发送ACK单播包,表示确认IP地址的租约时间
1.3.2四个过程都是广播
dicover 广播寻找提供DHCP的服务器
offer :源地址,目标地址255.255.255.255
可用IP地址(确定在后面),相关的租约期限8天
request :请求确认,若是没有被用,就会返回ack,若是被别的主机占用,就会重新发送offer
ack:若是同一网段内有多台DHCP服务器,谁先发送ack就用谁的IP资源池
dhcp协议:续约是在过半时就申请续约,续约的8天从此时重新计算
1.4 DHCP的重新获取ip的过程——重新登录时
若是之前使用的ip没有被占用,服务器就会ack确认,若是被用,就会nack否认,此时主机会重新发送第一阶段的广播discover
1.5 更新租约
1、当DHCP服务器向客户机出租的IP地址租期(8天)达到50%时,就需要更新租约
2、客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约
更新租约时没找到DHCP服务器时,继续使用,租约期限内继续使用,过期自动释放掉,然后获得新地址。
搭建DHCP动态主机配置服务
实验环境:Centos7操作系统
实验步骤:
搭建DHCP动态主机配置服务
1、安装DHCP服务器软件并且配置:
[root@localhost ~]# cd /media/dvd/Packages/ 进入rpm库目录
[root@localhost Packages]# rpm -ivh dhcp-4.2.5-47.el7.centos.x86_64.rpm 安装dhcp
warning: dhcp-4.2.5-47.el7.centos.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:dhcp-12:4.2.5-47.el7.centos ################################# [100%]
[root@localhost Packages]# cat /etc/dhcp/dhcpd.conf 查看dhcp配置文件所在路径
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
复制配置文件到dhcp安装目录所在处
[root@localhost Packages]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y 是否覆盖这里选择是
[root@localhost Packages]# vim /etc/dhcp/dhcpd.conf 配置dhcp
47 subnet 192.168.0.0 netmask 255.255.255.0 { 声明那个网段,并且修改子网掩码
48 range 192.168.0.40 192.168.0.50; 地址池
49 option domain-name-servers ns1.internal.example.org; DNS的IP地址,这里默认
50 option domain-name "internal.example.org"; DHCP分发DNS解析时候的域名
51 option routers 192.168.0.1; 网关
52 option broadcast-address 192.168.0.255; 广播地址
53 default-lease-time 600; 默认连接时长
54 max-lease-time 7200; 最大连接时长(单位:秒)
55 }
80 host abc { 这里是名字可以根据需要进行修改
81 hardware ethernet 00:0c:29:8b:52:7d; 打印机的mac地址
82 fixed-address 192.168.0.35; 将要分配给打印机的IP地址
83 }
[root@localhost Packages]# systemctl stop firewalld 关闭防火墙
[root@localhost Packages]# setenforce 0 关闭沙盒
[root@localhost Packages]# systemctl start dhcpd 启动DHCP服务器
2、打印机完成网卡配置,并且获得IP地址
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=dhcp 类型修改为dhcp
~
~
~
:x
[root@localhost ~]# systemctl restart network 重启网卡
[root@localhost ~]# ip a 查看IP地址
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:8b:52:7d brd ff:ff:ff:ff:ff:ff
inet 192.168.0.35/24 brd 192.168.0.255 scope global dynamic ens33
valid_lft 596sec preferred_lft 596sec
inet6 fe80::7e9b:c031:d8cd:3b4f/64 scope link
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
link/ether 52:54:00:43:fb:6f brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
link/ether 52:54:00:43:fb:6f brd ff:ff:ff:ff:ff:ff
3、客户机完成配置,获取随机IP地址
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=dhcp 类型修改为dhcp
~
~
~
:x
[root@localhost ~]# dhclient -d ens33 获取IP地址
Internet Systems Consortium DHCP Client 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/ens33/00:0c:29:5a:cb:b2
Sending on LPF/ens33/00:0c:29:5a:cb:b2
Sending on Socket/fallback
DHCPDISCOVER on ens33 to 255.255.255.255 port 67 interval 5 (xid=0x5125a11c)
DHCPREQUEST on ens33 to 255.255.255.255 port 67 (xid=0x5125a11c)
DHCPOFFER from 192.168.0.20
DHCPACK from 192.168.0.20 (xid=0x5125a11c)
bound to 192.168.0.50 -- renewal in 246 seconds. 当看到这里分配出IP时候即可打断
^C
[root@localhost ~]# ip a 查看分配下的随机IP地址
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:5a:cb:b2 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.50/24 brd 192.168.0.255 scope global secondary dynamic ens33
valid_lft 597sec preferred_lft 597sec
inet6 fe80::c063:5ee5:29e:e0e/64 scope link
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
link/ether 52:54:00:60:48:f3 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
link/ether 52:54:00:60:48:f3 brd ff:ff:ff:ff:ff:ff