Linux DHCP原理与配置



DHCP

动态主机配置协议,一个局域网的网络协议,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数。由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。



DHCP优势

·减少管理员的工作量
·避免输入错误的可能
·避免IP地址冲突
·当更改IP地址段时,不需要重新配置每个用户的IP地址
·提高了IP地址的利用率
·方便客户端的配置



DHCP的分配方式

·自动分配:分到一个IP地址后永久使用
·手动分配:由DHCP服务器管理员专门指定IP地址
·动态分配:使用完后释放该IP,供其它客户机使用



DHCP的租约过程

客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程。
四个步骤:
(1)客户端在网络中搜索服务器(Discover报文,广播)
(2)服务器向客户端响应服务(Offer报文,单播)
(3)客户端向目标服务器发出服务请求(Request报文,广播)
(4)服务器向客户端提供服务(Ack报文,单播)

详解:

第二步骤:客户机请求IP地址。当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址。那么这个DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器。

第二步骤:DHCP服务器接收到来自客户机请求IP地址的信息时,会在自己的IP地址池中查找是否有合法的IP地址提供给客户机。如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,发送给客户机。

第三步骤:DHCP客户机从接收到的第一个DHCP Offer消息中获取IP地址,向DHCP服务器发送DHCP Request请求使用该IP地址。同时,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给其它DHCP客户机。

第四步骤:DHCP服务器接受到DHCP Request请求后,会向客户机发送DHCP ACK告诉客户机可以使用这个IP地址。客户机收到DHCP ACK确认信息,配置IP地址,完成TCP/IP出的初始化。

另:Linux的DHCP是两个广播两个单播,微软的DHCP是四个广播,放在DHCP server里。



DHCP客户机重新登录

DHCP客户机每次重新登录网络时,不需要再发送Discover报文,而是直接发送包含着上一次所获得分配的IP地址的Request报文向服务器请求使用该IP地址。如果该IP地址可以继续使用,DHCP服务器会向客户机发送ACK报文确定。如果该IP地址不可用了,服务器会发送NACK否定,客户机收到后会广播发送Discover报文重新请求IP地址。



租约更新

客户机从服务器获得的IP地址是有租约时间的,这个时间会在服务器上设置好的,当服务器给客户机使用的IP地址的租期到达50%时,就会提醒客户机。客户机可以向提供IP地址的服务器发送Request报文更新现有所使用IP地址的租约。



DHCP可分配的地址信息主要包括

·网卡的IP地址、子网掩码
·对应的网络地址、广播地址
·默认网关地址
·DNS服务器地址



DHCP服务器安装

·在Centos光盘中有dhcp软件包根据不同版本选择不同版本的软件包
·DHCP软件包的主配置文件:/etc/dhcpd.conf
·DHCP软件包的执行程序:/usr/sbin/dhcpd、/usr/sbin/dhcrelay



DHCP主配置文件dhcpd.conf配置构成

例:
subnet 192.168.100.0(网段) netmask 255.255.255.0 (子网掩码){
range 192.168.100.100 192.168.100.200(地址池)
option routers 192.168.100.1;(网关)
option broadcast-address 192.168.100.255; (广播地址)
option domain-name-servers 114.114.114.114,8.8.8.8; (域名服务器)
option domain-name “www.abcd.com”;(域名)
default-lease-time 21600;(默认租约时间)
max-lease-time 43200;(最大租约时间)
}

如果需要给某一台客户机分配一个固定的IP地址,可以加上:
host fantasia {
hardware ethernet 00:00:00:00:00:00; (填mac地址)
fixed-address 192.168.100.88;(填IP地址)
}



启动DHCP服务
systemctl start dhcpd (启动dhcp服务)
netstat -anpu | grep “:67”(查看67端口的UDP的连接信息)


查看租约文件
less /var/lib/dhcpd/dhcpd.lease


使用DHCP客户端两种方式

·修改网卡配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=dhcp
ONBOOT=yes
修改后重启网络:systemctl restart network

·命令
dhclient -d ens33

你可能感兴趣的:(Linux DHCP原理与配置)