- DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)
- 由Internet工作任务小组设计开发
- 专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
- 减少管理员的工作量
- 避免输入错误的可能
- 避免IP地址冲突
- 当更改IP地址段时,不需要重新配置每个用户的IP地址
- 提高了IP地址的利用率
- 方便客户端的配置
-
自动分配∶分配到一个IP地址后永久使用(对应网段的)地址池
-
手动分配∶ 由DHCP服务器管理员专门指定IP地址(防火墙、打印机、门禁、电梯……)
-
动态分配∶ 使用完后释放该IP,供其它客户机使用(指定主机的方式进行dhcp分配)
ipconfig /release #释放IP ipconfig /renew #重新获取IP 192.168.X.X #无效地址
原子性:指事务的不可分割性,一个事务的所有操作要么不间断地全部被执行,要么一个也没有执行。
DHCP工作原理DHCP客户端向DHCP服务端请求IP地址的过程,我们称为租约过程
2.1DHCP租约过程1.客户机向DHCP请求IP地址
当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址,此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器;
2.
DHCP服务器接收到来自客户机请求lP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机。如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后以广播方式发送DHCP Offer消息
DHCP offer 消息中,包含DHCP服务器的IP地址、子网掩码和提供给客户端的合法IP地址
3.
客户机收到DHCP offer消息后,将从中提取DHCP服务器提供的IP地址等信息。并以广播的方式发送DHCP request信息,回复DHCP服务器,提供的IP地址客户机将使用。
4.
DHCP服务器收到客户机的DHCP request信息后,将以广播方式发送DHCP ACK消息,该消息包含有IP地址的有效租约和其他可配置的信息 ;当客户机收到DHCP ACK消息时,配置IP地址,完成TCP/IP的初始化
当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约; 客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约。
2.3重新登录DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息。如果次IP地址未被使用,则DHCP服务端发送DHCP ACK确认信息,让客户机继续使用该IP。
若该IP地址被其它客户机使用,DHCP服务端会发送DHCP Nak否认信息。让客户机重新发送DHCP Discover请求,进行新的租约请求。
为什么会获得169.254.0.0/16网段的地址
一开始,DHCP客户机初始化TCP/IP,通过UDP端口67向网络中发送一个DHCPDISCOVER广播包,请求租用IP地址。任何接收到DHCPDISCOVER广播包并且能
够提供IP地址的DHCP服务器,都会通过UDP湍口68给客户机回应一个DHCPOFFER广播包,提供一个IP地址。但是,DHCP客户机在发出IP租用请求的DHCPD
ISCOVE广播包后,将花费1秒钟的时间等待DHCP服务器的回应,如果1秒钟没有服务器的回应,它会将这一广播包重新广播四次(以2,4,8和16秒为
间隔,加上1~1000毫秒之间随机长度的时间)。四吹之后,如果仍未能收到服务器的回应,则运行W1 ndows的DHCP客户机将从169.254.0.0/16这个自
动保留的私有IP地址(APIPA)中选用一个IP地址,而运行其他操作系统的DHCP客户机将无法获得IP地址,
■DHCP服务
为大量客户机自动分配地址,提供集中管理
减轻管理和维护成本、提高网络配置效率
■可分配的地址信息主要包括(地址池必要配置)
网卡的P地址、子网掩码
对应的网络地址、广播地址
默认网关地址
DNS服务器地址
DHCP 服务端使用 UDP 67 端口, DHCP 客户端使用 UDP 68
DHCP 试验1、安装DHCP服务
yum install -y dhcp #下载软件包 rpm -qc dhcp #注意 dhcp 配置文件 是 /etc/dhcp/dhcpd.conf
2、配置dhcp配置文件
cat /etc/dhcp/dhcpd.conf #刚安装无配置文件 cp -fp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf #把配置文件复制到DHCP的配置文件中
3、dhcp全局配置
vim /etc/dhcp/dhcpd.conf #编辑配置文件 default-lease-time 21600; #默认租约为6小时,单位为秒 max-lease-time 43200; #最大租约为12小时,单位为秒 option domain-name "benet.com"; #指定默认域名 option domain-name-servers 202.106.0.20,202.106.148.1; #指定DNS服务器地址 218.2.135.1 ddns-update-style none; #禁用DNS动态更新
4、dhcp局部配置
vim /etc/dhcp/dhcpd.conf #编辑配置文件
#subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数)
subnet 192.168.80.0 netmask 255.255.255.0 { #声明要分配的网段地址
range 192.168.80.10 192.168.80.20; #设置地址池
option routers 192.168.80.254; #指定默认网关地址
}
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.254;
}
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.20 192.168.2.30;
option routers 192.168.2.254;
}
dhcp中继试验
1、网卡配置
vim /etc/sysconfig/network-scripts/ifcfg-ens33 #先更改网卡信息 systemctl restart network #重启网卡 hostnamectl set-hostname dhcp #更名 su #刷新查看
2、dhcp配置
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#关闭防火墙和核心防护
--------------
yum install -y dhcp #下载软件包
rpm -qc dhcp #注意 dhcp 配置文件
--------------
cp -fp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf #把配置文件复制到DHCP的配置文件中
vim /etc/dhcp/dhcpd.conf
subnet 192.168.100.0 netmask 255.255.255.0{
range 192.168.100.20 192.168.100.30;
option routers 192.168.100.2;
}
subnet 192.168.2.0 netmask 255.255.255.0{
range 192.168.2.20 192.168.2.30;
option routers 192.168.2.2;
}
subnet 192.168.1.0 netmask 255.255.255.0{
range 192.168.1.20 192.168.1.30;
option routers 192.168.1.2;
}
sw1
[SW1]vlan batch 10 20 100 //添加vlan 10 20 100 [SW1]int g/0/0/1 [SW1-GigabitEthernet0/0/1]port link-type trunk //设置中继 [SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan all //所有vlan口都可通过 [SW1]int e0/0/2 [SW1-Ethernet0/0/2]port link-type access [SW1-Ethernet0/0/2]port default vlan 10 [SW1-Ethernet0/0/2]int e0/0/3 [SW1-Ethernet0/0/3]port link-type access [SW1-Ethernet0/0/3]port default vlan 20 [SW1-Ethernet0/0/3]int e0/0/4 [SW1-Ethernet0/0/4]port link-type access [SW1-Ethernet0/0/4]port default vlan 100 [SW1-Ethernet0/0/4]int e0/0/1 [SW1-Ethernet0/0/5]port link-type access [SW1-Ethernet0/0/5]port default vlan 100
sw2
[SW2]dhcp enable //开启dhcp [SW2]vlan batch 10 20 100 [SW2]int vlanif 10 [SW2-Vlanif10]ip add 192.168.10.1 24 [SW2-Vlanif10]dhcp select relay //基于DHCP中继 [SW2-Vlanif10]dhcp relay server-ip 192.168.100.100 //去192.168.100.100请求DHCP服务 [SW2-Vlanif10]int vlanif 20 [SW2-Vlanif20]ip add 192.168.20.1 24 [SW2-Vlanif20]dhcp select relay [SW2-Vlanif20]dhcp relay server-ip 192.168.100.100 [SW2]int g/0/0/1 [SW2-GigabitEthernet0/0/1]port link-type trunk //设置中继 [SW2-GigabitEthernet0/0/1]port trunk allow-pass vlan all
PC主机配置–三台配dhcp
获取IP地址
ipconfig //查看网卡信息 ipconfig /release //释放地址 ipconfig /renew //重新获取地址配置指定主机的IP地址
创建一个Windows,设置网络改成dhcp
记住这个mac地址,等下在centos 主机中(centos主机也就是DHCP服务器)需要指定windows主机的mac地址。
物理地址: 00:0C:29:37:40:80
下载DHCP---->将内容多的配置文件复制到dhcp里面的配置文件—>配置虚拟机的网卡(vmnet2)—>将centos 7 主机的ip地址设置成vmnet2下面的子网网段—>最后进入配置文件进程编辑。
vim /etc/dhcp/dhcpd.conf
host hostname{
gardware ethernet 00:0C:29:37:40:80
fixed-address 192.168.100.20;
}
systemctl start dhcpd
验证Windows上面的IP地址是否分配成功
–>将centos 7 主机的ip地址设置成vmnet2下面的子网网段—>最后进入配置文件进程编辑。
vim /etc/dhcp/dhcpd.conf
host hostname{
gardware ethernet 00:0C:29:37:40:80
fixed-address 192.168.100.20;
}
systemctl start dhcpd
验证Windows上面的IP地址是否分配成功
[外链图片转存中…(img-h8ggRF7C-1655198973515)]



