LinuxDHCP原理及配置


引言:在网络地址配置中,当主机比较多的时候,为每台机器配置静态IP时,工作量过于庞大,这个时候我们就需要设置一个动态的获取IP地址方式,也就是今天所说的DHCP。

一.DHCP服务

1.1什么是DHCP

DHCP动态主机配置协议:是专门为TCP/IP网络中计算机自动分配TCP/IP参数的协议
DHCP采用C/S架构,C-client(客户机),S-server(服务器)
DHCP服务采用传输层UDP协议,因为是C/S架构,所以客户机端口号是67,服务器端口号是68

1.2DHCP的好处

使用动态主机配置协议。可以减少网络管理员的工作量;避免手动配置时的错位配置;避免IP地址冲突;当更改IP网段时,不需要重新分配每个用户的IP地址;可以提高IP地址使用率;方便客户端的配置。

1.3DHCP分配方式

1.自动分配:分配一个IP地址后永久使用
2.手动分配:由网络管理员指定IP地址
3.动态分配:使用完后释放该IP,供其它客户机使用

二.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的初始化

2.2DHCP更新租约

当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约; 客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约。

2.3重新登录

DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息。如果次IP地址未被使用,则DHCP服务端发送DHCP ACK确认信息,让客户机继续使用该IP。
若该IP地址被其它客户机使用,DHCP服务端会发送DHCP Nack否认信息。让客户机重新发送DHCP Discover请求,进行新的租约请求。

三.DHCP配置

3.1DHCP服务安装

Linux系统默认是没有DHCP服务的,需要我们自行进行安装
安装DHCP服务:
1.检查并安装dhcp服务

[root@xiayan ~]# rpm -q dhcp          //检查系统是否有dhcp服务
未安装软件包 dhcp 
[root@xiayan ~]# yum install dhcp -y  //安装dhcp

2.配置dhcp配置文件
在这里插入图片描述

[root@xiayan ~]# cat /etc/dhcp/dhcpd.conf           //程序刚安装完,没有配置文件信息要将配置文件模板拷贝过来
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example     //配置文件模板位置
#   see dhcpd.conf(5) man page
#
[root@xiayan ~]# cp -fp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf  //拷贝配置文件

3.2DHCP全局配置

vim /etc/dhcp/dhcpd.conf 编辑配置文件

  6 # option definitions common to all supported networks...     
  7 option domain-name "example.org";                             //指定默认搜索域,本地域名
  8 option domain-name-servers ns1.example.org, ns2.example.org;  //指定DNS服务器地址,多台用“,”分割
  9 
 10 default-lease-time 600;  //默认租约为600秒
 11 max-lease-time 7200;     //默认最大租约为7200秒,即2小时
 12 

全局配置一般为默认设置,不进行修改

3.3DHCP局部配置

一台DHCP服务可以为多个网段提供服务,因此subnet网段声明必须有而且可以有多个。
每行命令的结尾为==“;”==别忘记分割
vim /etc/dhcp/dhcpd.conf 编辑配置文件

 # This is a very basic subnet declaration.             //子网声明
   subnet 192.168.100.0 netmask 255.255.255.0 {         //声明网段地址
   range 192.168.100.150 192.168.100.180;               //设置地址池
   option routers 192.168.100.100;                      //指定默认网关地址
   option domain-name-servers 114.114.114.114;          //定义DNS服务器
}

更改完配置信息,需要重启dhcp服务
systemctl restart dhcpd.service

3.4预留指定IP配置

vim /etc/dhcp/dhcpd.conf 编辑配置文件

host fantasia {                             //主机名
 81   hardware ethernet 08:00:07:26:c0:a5;  //主机网卡地址
 82   fixed-address fantasia.fugue.com;     //预留IP地址
 83 }
host w10 {
 81   hardware ethernet 08:00:07:26:c0:a5;
 82   fixed-address 192.168.100.2;
 83 }

更改完配置信息,需要重启dhcp服务
systemctl restart dhcpd.service

3.5DHCP信息查询

1.DHCP租约日志:/var/lib/dhcpd/dhcpd.leases
在这里插入图片描述
2.dhclient -d +网卡名 查看租约请求过程
在这里插入图片描述

四.DHCP中继设置

当企业内部网络规模比较大时,通常通过 VLAN 将网络规划为多个不同的子网。但是 在该情况下一台 DHCP 服务器无法为不同网段的客户机同时提供服务,因为 DHCP 协议使用广播,而VLAN能隔离广播。
DHCP中继原理:
用一个三层交换,将DHCP服务器以中继连接到交换机上,由交换机进行转发,实现不同网段通过中继服务器转发获取IP地址。

模拟三个网段,用同一DHCP服务自动配置IP地址
各配置如下图
在这里插入图片描述

4.1DHCP配置

vim /etc/sysconfig/network-scripts/ifcfg-ens33 配置网卡信息
systemctl restart network 配置完重启服务

IPADDR=192.168.100.100        #此IP地址为DHCP接口地址            
GATEWAY=192.168.100.1         #网关IP
NETMASK=255.255.255.0

vim /etc/dhcp/dhcpd.conf 配置DHCP
systemctl restart dhcpd 重启dhcp服务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
windows虚拟网卡vm1设置
在这里插入图片描述

4.2ENSP配置

首先配置Cloud1,配置完后再接入网络
在这里插入图片描述

二层交换机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主机配置
在这里插入图片描述

4.3获取IP地址

windows系统中IP获取命令

 ipconfig          //查看网卡信息
 ipconfig /release //释放地址
 ipconfig /renew   //重新获取地址

在这里插入图片描述

三台不同网段的主机,成功通过DHCP服务器自动获取IP地址,我们可以看下DHCP的日志文件
vim /var/lib/dhcpd/dhcpd.leases
在这里插入图片描述

五.总结

1.DHCP协议可以动态分配IP地址,减少管理员工作量
2.DHCP可以给部分主机预留IP地址,保证部分特殊用户的网络正常
3.DHCP采用UDP协议 端口为67、68


版权声明:本文为weixin_44175418原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。