Linux_DHCP篇

IP地址的获取方式分为静态获取和动态获取两种方式,静态获取即手动配置指定IP,掩码,网关这些网络地址,而动态获取则需要主机从DHCP服务器上取得地址。

DHCP:Dynamic  Host  Control  Protocol,动态主机控制协议,C/S工作模式,server端监听在udp/67,client端为如今大规模安装部署系统提供了很大的作用,早期的无盘工作站安装系统时使用bootp协议来完成工作的,dhcp和bootp的工作方式类似,但是bootp协议有个特点:一旦地址分配给一台主机后,这个主机将一直使用第一次分配的地址,而不能使用地址池内的其它地址,这就像是永久合同一样,而dhcp就是解决这个问题的。

DHCP怎么工作?

1.client端在局域网内发送dhcp  discover广播寻找dhcp服务器,我的MAC是多少多少,谁能给我一个地址?

2.dhcp  server端收到后,表示:我就是dhcp服务器,我可以给一个地址,于是从自己的地址池里面取一个地址出来,从自己的地址池里面删除这个分配出去的地址,向全网发送dhcp offer广播,说这个地址拿去用吧

3.client 端收到报文后,现在局域网内检查有没有其他主机使用这个地址,如果没有则发送dhcp  request 广播,这个地址我用了

4.dhcp收到dhcp  request后,发送dhcp  ack广播,这个地址给你了,

问题1::在2中,如果有多台dhcp向client发送offer怎么办?

       此时,client先收到哪台server的就使用谁的,遵循先到先得,收到后再发送dhcp  request广播,此时其他dhcp server也会收到request广播,就会将发送出去的地址重新填入地址池,等待下次新的dhcp请求时分配

问题2:针对bootp分配给客户端的地址永久合同方式,dhcp是怎么解决的?

      dhcp将会给定client的地址一个使用期限,叫租约。租约期过了怎么办呢?为了避免租约过期,会在使用租约时间过了50%的时候,开始续租,续租的方式:

此时,client发送dhcp  request单播给dhcp server, server端再发送dhcp ack单播给client,此时client继续使用这个地址。。。但如果server端的地址池发生了变化,以前的地址不属于地址池了怎么办,此时dhcp server发送dhcp nak拒绝请求,dhcp server接着重新发送dhcp discover,发起新的地址请求,如果一直找不到可用的服务器,就主动放弃。

DHCP安装配置

1.安装dhcp server

~]# yum install -y dhcp

2.配置文件: 

 ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

3.编辑配置文件:

vim    /etc/dhcp/dhcpd.conf,需要修改的部分内容如下:

# 配置搜索域,可在hostname后面补上的域名
option domain-name "www.a.com";
#dns服务器的地址,解析为ip以后分配给客户端,最多可以三个并以逗号隔开,并以分号结尾,这里配置为本机
#option domain-name-servers ns1.example.org, ns2.example.org;
option domain-name-servers 172.16.52.58;
#租约时长,默认为秒,这里是默认值
default-lease-time 600;

#最大租约时长
max-lease-time 7200;

#subnet即为配置安全域,range的范围至少一个时本网段的,options routers指的是配置的网关,如果获取地址的的主机是静态获取方式,则不能取得这里的网关,还是原来的那个,如果是动态获取的,则能够获取到网关,可以用route查看

subnet 172.16.52.0  netmask 255.255.255.0 {
range 172.16.52.2 172.16.52.9;
option routers 172.16.52.58;

#这是指定pxe文件中的文件名,此处不做详解,不开启
# filename "pxelinux.0";

#指定pxe中的存放启动文件的服务器地址,这里不开启
# next-server 172.16.52.58;
}

配置好以后:wq!保存退出,重启服务

 ~]# systemctl restart dhcpd.service

测试:

在其他主机上面,用dhclient -d 进行测试,但是前提是保证没有dhclient进程占用,若占用,则kill掉,再dhclient -d ,如图:网关已经获取到了,因为eno16777736是dhcp获取方式

Linux_DHCP篇_第1张图片


其他:

vim    /etc/dhcp/dhcpd.conf  还可以对单个mac地址的主机绑定一个地址:配置如下:

#给某一主机固定分配一地址,node2是自定义命名的
host  node2 {

#绑定MAC地址
 hardware ethernet  00:0c:29:67:fe:12 ;

#固定IP地址
 fixed-address 172.16.52.3; 
}


定义从网卡启动:所有主机最好在同一虚拟网域内,避免受其他网段影响

安装tftp-server(udp/69,systemctl start  tftp.socket),syslinux

cp  /usr/share/syslinux/pxelinux.0   /var/lib/tftpboot/

启动另一主机,调整引导装置的顺序:



Linux_DHCP篇_第2张图片










      


你可能感兴趣的:(Linux_DHCP篇)