Linux配置与应用DHCP服务

| 文章字数:2.6k | 阅读时长:9min
这是一篇更新于 582 天前的文章,其中的信息可能已经有所发展或是发生改变。

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个简化主机IP地址分配管理的TCP/IP协议。只要在网络中安装和配置了DHCP服务器,用户不用再自行输入任何数据,就可以将一台计算机接入到网络之中,所有入网的必要参数(包括IP地址、子网掩码、默认网关、DNS服务器的地址等)的设置都可交给DHCP服务器负责,它会自动的配置好。

DHCP服务器的租约方式

①限定租期:这种方式是一种动态分配的方式,并且可以很好的解决IP地址不够用的问题。

②永久使用:采用这种方式的前提是IP地址足够使用,这样DHCP客户端就不必就不必频繁地向DHCP服务器提出续约的请求。

客户机申请IP地址流程图

从图可以看出,DHCP服务工作分为6个阶段:

1)发现阶段

即DHCP客户端寻找DHCP服务器的过程,对于客户端发送DHCP发现(Discovery)报文。因为DHCP服务器对应于DHCP客户端是未知的,所以DHCP客户端发出的DHCP发现报文是广播包,源地址为0.0.0.0,目的地址为255.255.255.255。如果同一个网络内没有DHCP服务器,而该网关接口配置了DHCP中继(Relay)功能,则该接口即为DHCP的中继,DHCP中将继会将该DHCP报文的源IP地址修改为该接口的IP地址,而目的地址则为DHCP中继配置的DHCP服务器的IP地址。

2)应答阶段

网络上的所有支持TCP/IP的主机都会收到该DHCP发现报文,但是只有DHCP服务器会响应该报文。如果网络中存在多个DHCP服务器,则多个DHCP服务器均会回复该DHCP发现报文。

3)地址请求阶段

DHCP客户机收到若干个DHCP服务器响应的DHCP应答报文后,选择其中一个DHCP服务器作为目标DHCP服务器。选择策略通常为选择第一个响应的DHCP应答报文所属的DHCP服务器。然后以广播方式回答一个DHCP请求(Requset)报文,该报文中包含向目标DHCP的IP地址等信息。之所以是广播方式发出的,是为了通知其他DHCP服务器自己将选择该DHCP服务器所提供的IP地址。

4)确认分配IP地址阶段

DHCP服务器收到DHCP服务请求报文后,解析该报文请求IP地址所属的子网。并从dhcp.conf文件中与之匹配的子网(Subnet)中取出一个可用的IP地址(从可用地址段选择一个IP地址后,首先发送ICMP报文来ping该IP地址,如果收到该IP地址的ICMP报文,则抛弃该IP地址,重新选择IP地址继续进行ICMP报文测试,直到找到一个网络中没有人使用的IP地址,用以达到防止动态分配的IP地址与网络中其他设备的IP地址冲突的目的),设置在DHCP发现报文yiadress字段中,表示为该客户端分配的IP地址,并且为该租用(Lease)设置该子网配置的选项(Option),例如默认租用租期、最大租期、路由器等信息。

DHCP从地址池中选择IP地址,以如下优先级进行选择:

(1)当前已经存在的IP Mac的对应关系;

(2)客户端以前的IP地址

(3)读取发现报文中的Requested Ip Address Option的值,如果存在并且IP地址可用;

(4)从配置的子网中选择IP地址

5)更新租约阶段

DHCP客户机获取到的IP地址都有一个租约,租约过期后,DHCP服务器将收回该IP地址,所以如果DHCP客户机想继续使用该IP地址,则必须更新租约。更新的方式就是,当当前租约期限过了一半的时候,DHCP客户机将会发送DHCP更新(Rrenew)报文来续约租期。或者DHCP客户机重新登录网络,当DHCP客户机重新登录后,发送一个以包含之前的DHCP服务器分配的IP地址信息的DHCP请求报文。

6)确认新的租约阶段

当DHCP服务器收到更新租约的请求后,会尝试让DHCP客户端继续使用该IP地址,并回答一个ACK报文。但是如果该IP地址无法再次分配给该DHCP客户端后,DHCP回复一个NAK报文,当DHCP客户机收到该NAK报文后,会重新发送DHCP发现报文来重新获取IP地址。

项目实施

任务一 配置与安装单IP作用域

在某个局域网内有11台计算机,采用DHCP获取IP地址,地址段为192.168.16.1~192.168.16.14,子网掩码是255.255.225.240.其中IP地址192.168.16.1分配路由器,IP地址192.168.16.8和192.168.16.9分配给指定的Mac地址的主机,DNS服务器地址为8.8.8.8及114.114.114.114,配置一个DHCP服务器来动态分配IP地址。其中服务器本身IP地址为192.168.16.14。

实现步骤

配置本机ip地址

1
2
3
vim /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart
ifconfig

配置IP查看IP

安装DHCP服务

1
yum install dhcp -y

复制DHCP的示例文件

1
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

编辑DHCP的配置文件

1
vim /etc/dhcp/dhcp.conf

重启DHCP服务

1
2
service dhcpd restart
chkconfig dhcpd on #设置开机自启

客户端验证

1)Windows客户端验证(由于无线路由器有dhcp功能,会干扰验证,可以尝试,插上网线,启用有线网卡的功能,并在虚拟机里的网络选项配置桥接到有线网卡)

2)Linux客户端验证

任务二 架设企业级的DHCP服务器

公司需要架设一台DHCP服务器,服务器IP地址为192.168.23.254,其余要求如下

(1)为子网192.168.23.0/24建立一个IP作用域,并将192.168.23.20~192.168.23.200范围之内的IP地址动态分配给客户机。

(2)子网中的DNS服务器地址为192.168.23.2与114.114.114.114,IP路由器地址为192.168.23.1,所在的网域名为bestyhy.com,将这些惨呼指定给客户机使用。

(3)为某台主机保留192.168.23.123,这个IP地址,DNS服务器地址为192.168.23.5.

实现步骤

配置本机ip地址

1
vim /etc/sysconfig/network-scripts/ifcfg-eth0

设置主机名和打开网络开关

1
vim /etc/sysconfig/network

备注:networking=yes打开网络的总开关,如果设置为no,那么本服务器将🙅‍不能提供任何网络功能。

1
2
NETWORKING=yes			#打开服务器网络总开关
HOSTNAME=bestyhy.com #设置主机名字为bestyhy.com

设置主机名与主机IP对应解析

1
2
3
vim /etc/hosts 

192.168.23.254 bestyhy.com

设置默认搜索域名

1
2
3
4
vim /etc/resolv.conf

search bestyhy.com
nameserver 192.168.23.2

重启网络服务

1
2
service network restart
ifconfig

编辑DHCP配置文件

1
vim /etc/dhcp/dhcp.conf

重启DHCP服务

客户端验证

1)Windows客户端验证(由于无线路由器有dhcp功能,会干扰验证,可以尝试,插上网线,启用有线网卡的功能,并在虚拟机里的网络选项配置桥接到有线网卡)

2)Linux客户端验证

任务三配置多IP作用域服务器

背景公司原有机器为250台,IP地址规划为192.168.31.0/24网段,动态管理网络IP地址,现在要升级到500台,公司要求在保持原有IP地址规划不变的情况下扩容现有的网络IP地址。

实现步骤

开启路由转发功能

备注服务器的IP就是管理各网段的网管,也就是说DHCP服务器的网卡担当网关的功能,这需要打开DHCP服务器的转发功能(让两个网段的机器可以相互通信)

1
vim /etc/sysctl.conf

找到net.ipv4.ip_forward=0,把0改为1。在命令模式下输入 / +自己想要搜索的内容然后回车即可快速找到相关信息。

②通过shell命令

1
echo "1" > /proc/sys/net/ipv4/ip_forword

sysctl -p刷新修改的参数设置,使之立刻生效。

给网卡配置多个IP地址

1
2
cd /etc/sysconfig/network-scripts/
vim ifcfg-eth0

1
2
cp ifcfg-eth0 ifcfg-eth0:1
vim ifcfg-eth0:1

使用service network restart命令重新启动网络服务,是IP地址生效。

修改DHCP配置文件

1
vim /etc/dhcp/dhcpd.conf

重启DHCP服务

任务四配置DHCP的中继服务

任务说明DHCP客户端使用IP广播来寻找同一网段上的DHCP服务器。当服务器和客户端处在不同网段,即使被路由器分割开来时,路由器是不会转发这种广播包的。因此可能需要在每个网段上都设置一个DHCP服务器,虽然DHCP只消耗很小的一部分资源,但是多个DHCP服务器会带来管理上的不便。DHCP中继的使用使得一个DHCP服务器同时为多个网段服务的可能。在DHCP广播情况下,客户在本地网段广播一个DHCP发现分组。网关获得这个分组,如果配置了帮助地址,就将DHCP分组转发到特定地址。

背景企业在组网时,根据实际需要划分了两个VLAN,中间通过一台Linux服务器连接。如何让一台DHCP服务器为多个网段提供服务。

实现步骤

两个网络中的IP作用域的配置与任务三相同,配置中继服务的两个IP地址分别为192.168.31.1和192.168.32.1

配置DHCP relay

1
vim /etc/sysconfig/dhcrelay

开启路由转发功能

备注服务器的IP就是管理各网段的网管,也就是说DHCP服务器的网卡担当网关的功能,这需要打开DHCP服务器的转发功能(让两个网段的机器可以相互通信)

1
vim /etc/sysctl.conf

找到net.ipv4.ip_forward=0,把0改为1。在命令模式下输入 / +自己想要搜索的内容然后回车即可快速找到相关信息。

②通过shell命令

1
echo "1" > /proc/sys/net/ipv4/ip_forword

sysctl -p刷新修改的参数设置,使之立刻生效。

运行DHCP服务

1
2
service dhcpd restart
chkconfig dhcpd on

配置DHCP客户端

通过setup命令,在use DHCP后面的[]中,按空格添加“*”

扫码加我微信