一、前言
当我们面对局域网中大量的主机需要配置ip地址时,手动配置很
难保证各主机ip不会产生冲突,为了能够有序、自动配置局域网的ip
地址需要用到DHCP,该协议能实现ip地址的自动配置,并且对分配出
去的ip地址进行记录。
二、与DHCP相关的参数
DHCP: Dynamic Host Configuration Protocol 主机动态配置协议
IP/Netmask 能与其他主机通信的必要条件
Gateway 与外网通信经过网关
DNS Server 域名解析服务,可解析域名ip访问主机
三、DHCP的工作流程
bootp: boot protocol --> dhcp
DHCP请求流程
ARP:IP-->MAC 该广播协议中知道目标ip地址请求mac
RARP:MAC-->IP 该广播协议中知道自己的MAC请求获取ip
1、Client: dhcp discover:客户端在局域网中用广播寻找
DHCP服务器。
2、Server: dhcp offer:(IP/netmask, gw):服务器收到广播后
响应客户端,告知其ip/netmask和gw。
3、Client:dhcp request :客户端收到dhcp的ip和gw后
用RARP对其发起IP获取请求。
4、Server: dhcp ack:服务器收到请求后在自己的可用ip列表挑选
一个ip给客户端,同时对其进行等级。
续租:
DHCP服务器对分配出去的地址实行租约形式
一般形式如下:
2hours:列如服务器规定租约期限是2小时
50%: 1hours --> 2hours :
当我们使用了1小时(每50%请求一次),客户端就
向服务端发出续租请求,如此直到续租成功。
75%: 0.5hours --> 2hours
87.5%: 0.25hours --> 2hours
dhcp discover:如果续租不成功,就再次执行dhcp
服务器发现命令
Client: dhcp request
Server: dhcp ack
Server: dhcp nak
四、Linux DHCP协议的实现程序:dhcp, dnsmasq
dhcp:
1、/usr/sbin/dhcpd DHCP服务器程序
配置文件
/etc/dhcp/dhcpd.conf --> /etc/rc.d/init.d/dhcpd
/etc/dhcp/dhcpd6.conf --> /etc/rc.d/init.d/dhcpd6
2、/usr/sbin/dhcrelay DHCP中继服务器
配置文件
/etc/rc.d/init.d/dhcrelay
67/udp 服务器监听端口
dhclient: 68/udp 客户端监听端口
3、配置文件
dhcpd.conf:
常用选项
option :用于指明除ip和掩码外的其他选项,可以在全局中
定义也可以在subnet定义
default-lease-time 600 :默认租约时间
max-lease-time 7200 :最大租约时间
subnet 172.16.0.0 netmask 255.255.0.0 {
range 172.16.100.151 172.16.100.170
option routers 172.168.100.1
...
} :作用域,指定一个子网,该处为子网为172.16.0.0(一定是
当前主机所在的网络)子段内的主机分配ip,分配的ip范围是,
起172.16.100.151到 172.16.100.170,并且为其指定网关是
172.168.100.1。
host {
}
4、查看地址分配记录
cat /var/lib/dhcpd/dhcpd.leases
5、其它配置选项:
filename: 指明引导文件名称;
next-server:提供引导文件的服务器IP地址;
filename "pxelinux.0";
next-server 172.16.100.67;