原理:DHCP原理与配置

  • 来源:网络
  • 更新日期:2020-09-11

摘要:系统运维 前言: 自动分发IP地址服务,linux服务器主要作用在局域网当中 若是在广域网中,需要用到路由设备 一 : 了解DHCP服务 1.1 DHCP简述 D

系统运维

前言:

自动分发IP地址服务,linux服务器主要作用在局域网当中

若是在广域网中,需要用到路由设备

一 : 了解DHCP服务 1.1 DHCP简述 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是由Internet工作任务小组设计开发的,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议

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.2.3 windows中获得释放地址命令

windows中

​ 命令 ipconfig /release 释放ip地址

​ 命令 ipconfig /renew 重新获得地址

1.3 DHCP的租约过程 客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程 1.3.1 租约过程分为四个步骤

(1) 客户端在网络中搜索DHCP服务器

客户机请求IP地址 ,去寻找DHCP服务器,发送DHCP的discover:第一个搜索是广播

(2)服务器向客户端响应服务

服务器响应,给客户机发送DHCP的offer ————也是广播,其中包含要给客户机使用的ip地址资源池和相应的租约;因为此时客户端没有IP,所以还是广播

(3)客户端向目标服务器发出服务请求

客户机选择IP地址,向服务器发送DHCP的请求request:此时客户机知道自己未来使用的IP地址,然后广播请求确认此ip地址是否可用

(4)服务器向客户端提供服务

服务器确定租约,给客户机发送DHCP的ACK;当客户机收到ACK时,DHCP寻址过程结束,IP地址配置成功:————仍旧是广播,DHCP服务器发送ack,向客户机进行确认,

<1> 客户机请求IP地址

<2> 服务器响应

<3> 客户机选择IP地址

<4> 服务器确定租约

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 更新租约 当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约 客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约

更新租约时没找到DHCP服务器时,继续使用,租约期限内继续使用,过期自动释放掉,然后获得新地址(在打开dhcp自动获取时)169.254.0.0-168.254.255.255

二 : 使用DHCP动态配置主机地址 2.1 DHCP服务 为大量客户机自动分配地址,提供集中管理 对应的网络地址、广播地址 默认网关地址 dns服务地址 2.2 安装DHCP服务器 Centos光盘中的dhcp-4.2.5-47.e17.centos.x86_64.rpm dhcp软件包的主要文件 主配置文件:/etc/dhcpd.conf 执行程序:/usr/sbin/dhcpd、/usr/sbin/dhcrelay 执行参数配置:/etc/sysconfig/dhcpd
[root@dabendan Packages]# yum install dhcp* -y  \'安装\'
[root@dabendan Packages]# cd /etc/dhcp/
[root@dabendan dhcp]# ls
dhclient.d  dhclient-exit-hooks.d  dhcpd6.conf  dhcpd.conf  scripts
[root@dabendan dhcp]# vim dhcpd.conf    \'进入配置文件\'
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example \'去查看案例文件\'
#   see dhcpd.conf(5) man page
#
~                                
[root@dabendan dhcp]# cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖/etc/dhcp/dhcpd.conf? y

核心:主配置文件—— /etc/dhcp/dhcpd.conf

​ 第一次配置时需要把/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example 模板覆盖到/etc/dhcp/dhcpd.conf

执行参数配置是源码文件,不用去动它

2.3 主配置文件的全局配置文件设置 /etc/dhcp/dhcpd.conf

option routers 网关

default time 默认租约期限

host ns 固定的ip地址,要增加mac地址

ddns-update-style interim;      \'临时更新\'
subnet 10.5.5.0 netmask 255.255.255.224 {       
\'subnet网段netmask子网掩码,即网段声明\'
  range 10.5.5.26 10.5.5.30;            \'range 区间,配置选项\'
  option domain-name-servers ns1.internal.example.org;  \'选择dns服务器域名,或IP地址\'
  option domain-name internal.example.org;        \'选择域名\'
  option routers 10.5.5.1;      \'选择路由\'
  option broadcast-address 10.5.5.31;   \'选择网络号\'
  default-lease-time 600;   \'默认租约期限\'
  max-lease-time 7200;      \'最大租约期限\'
}

host ns {               \'ns 主机名\'
  hardware ethernet 08:00:07:26:c0:a5;  \'固定MAC地址\'
  fixed-address 207.175.42.254;     \'固定IP地址,主机生命\'
}

1.禁止动态更新

2.默认租约期限21600秒

3.最大租约期限 43200

4.指定域名 选项 域名 名字

5.指定分配的DNS地址 域名 名字 服务

Subnet 网段

range(地址池) 起始地址 结束地址

​ 选择子网掩码

​ 选择网关

子网段内可以设置dns ,优先级比全局设置高

[root@dabendan dhcp]# vim /etc/dhcp/dhcpd.conf 

# A slightly different configuration for an internal subnet.
subnet 10.5.5.0 netmask 255.255.255.224 {
  range 10.5.5.26 10.5.5.30;
  option domain-name-servers ns1.internal.example.org;
  option domain-name internal.example.org;
  option routers 10.5.5.1;
  option broadcast-address 10.5.5.31;
  default-lease-time 600;
  max-lease-time 7200;
}
host主机声明 hardware ethernet 参数:指定对应主机的mac地址 fixed-address 参数:指定为该主机保留的IP地址
host passacaglia {
  hardware ethernet 0:0:c0:5d:bd:95;
  filename vmunix.passacaglia;
  server-name toccata.fugue.com;
}

haedware ethernet 要配置主机的MAC地址

fixed(固定)-address 固定ip地址

host passacaglia {      
  hardware ethernet 0:0:c0:5d:bd:95;        \'要配置主机的MAC地址\'
  filename vmunix.passacaglia;
  server-name toccata.fugue.com;
}
三 : 启动DHCP 服务

查看/var/lib/dhcpd/dhcpd.leases文件

[root@dabendan dhcp]# vim /var/lib/dhcpd/dhcpd.leases 

在启用服务后,租约文件内才会写入信息

# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.2.5

lease 192.168.100.11 {  \'分配的客户端IP\'
  starts 3 2019/11/20 09:05:53;     \'租约的相关时间\'
  ends 3 2019/11/20 09:13:35;
  tstp 3 2019/11/20 09:13:35;
  cltt 3 2019/11/20 09:05:53;
  binding state free;
  hardware ethernet 00:0c:29:d6:c0:8a;  \'客户端的mac地址\'
}
3.1 配置DHCP使客户端获得IP地址 3.1.1两种使用方式 修改网卡配置文件(ifcfg-ens33) BOOTPROTO=dhcp
[root@test01 dhcpd]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=0f432513-5d7a-455c-88b4-257a9a1dbb45
DEVICE=ens33
ONBOOT=yes

第二种使用dhclient命令

dhclient [-d] [网络接口名]

[root@test01 dhcpd]# dhclient -d ens33
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:d6:c0:8a
Sending on   LPF/ens33/00:0c:29:d6:c0:8a
Sending on   Socket/fallback
\'DHCPDISCOVER\' on ens33 to 255.255.255.255 port 67 interval 7 (xid=0x75b88e50)    \'单引号是我自己加的\'
\'DHCPREQUEST\' on ens33 to 255.255.255.255 port 67 (xid=0x75b88e50)
\'DHCPOFFER\' from 192.168.100.100
DHCPNAK from 192.168.139.254 (xid=0x75b88e50)
\'DHCPACK\' from 192.168.100.100 (xid=0x75b88e50)
bound to 192.168.100.11 -- renewal in 272 seconds.

查看日志文件记录

四 : 实验————DHCP中继原理

五 : 配置文件总结 5.1 主配置文件:/etc/dhcp/dhcpd.conf

第一次需要把模板文件/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example覆盖到/etc/dhcp/dhcpd.conf


主配置文件内的设置参数
#全局配置参数
option routers; #网关 
default-lease-time; #默认租约期限
option domain-name-servers DNS服务器域名或主机名;
max-lease-time 7200;
#最大租约期限
ddns-update-style interim;
#临时更新

subnet 192.168.10.0 netmask 255.255.255.0 {
#网段                          子网掩码  
   range 192.168.10.1 192.168.10.254;
#ip地址池区间  从                 到
  option domain-name-servers DNS服务器域名或主机名;
#DNS指定
  option domain-name 域名;
#指定域名
  option routers 192.168.10.1;
#指定网关
  option broadcast-address 192.168.10.255;
#指定网络号
  default-lease-time 600;
#默认租约期限
  max-lease-time 7200;
#最大租约期限
}
host ns {
#ns 主机名 host 主机声明,作用于单个主机
  hardware ethernet 00:00:00:00:00:00;
#指定mac地址
  fixed-address 192.168.10.88;
#声明主机的固定ip地址
  option subnet-mask 192.168.10.1;
#指定子网掩码
  server-name 域名;
#指定服务器名
}
5.3 /var/lib/dhcpd/dhcpd.leases 租约文件

新网虚拟主机