LinuxService- CentOS7搭建DHCP服务器

引言:DHCP,dynamic host configuration protocol,动态主机配置协议,使用UDP的67/68号端口,用来自动给客户端配置TCP/IP信息参数的网络协议。这些参数包括,IP地址,子网掩码,缺省网关、DNS服务器。


1  概念

1)地址池:服务器端存放地址的地方,存的是子网,bootP协议的地址池中的参数一旦被分配出去就不会回收,因而产生了DHCP租约。

2)DHCP工作原理:

IP租用请求——客户端向多个服务器端发送IP租用请求。当DHCP客户端启动后,向网络内广播一个DHCP请求信息,所有的机器都会收到,但不是DHCP服务器的机器会把信息丢掉。其中,信息中包含客户端的MAC地址

IP租用提供——服务器端收到后都会给客户端提供一个IP用来租用。DHCP服务器回应客户端,提供一个网内没有的IP地址。且信息中增加服务器的MAC地址

IP租用选择——客户端会对服务器提供的IP进行就近选择。如果DHCP服务器有多个,则选择第一个回应的信息,然后向网络中广播一个消息,表明自己已经接受一个DHCP服务器的IP

IP租用确认——然后服务器端就会进行IP租用确认。DHCP服务器接受到客户选择信息之后,会返回给客户端一个消息包,客户端按服务器的信息配置机器IP,服务器记录客户端的IP地址。

3)如果没有DHCP服务器回应相应的DHCP客户端,则会导致

i)没有 IP 地址(对于有些 Linux 发行版会这样)

ii) 客户端等待间隔 : 客户机等待 1 秒。否则,每隔2 、 4 、 8 、 16 秒重发广播 , 若仍未收到,使用 169.254.0.0/16 ( 0.1-25.254)。 同时每隔5分钟再试一次

iii) 有些 Linux 发行版默认使用169.254.0.0/16 的地址 , 但将会每 5 分钟向本地网络广播一次寻求有效的DHCP分配IP

注:即便是获取到了169.254.0.0/16这个段的地址也不能上网,只是占个位置等着

4)DHCP租约续租

       客户端租期已过去 50% 时,客户机直接向 DHCP 服务器发送消息包,如果收到服务器的回应则会使用服务器重新分配的IP ,如无回应,则继续使用当前的 IP

      当租期过去 87.5% 时,客户端再次向给其提供IP的DHCP服务器发送请求包,如果不能成功,则重新开始 IP 租用过程

      如果 DHCP 客户机重新启动时,将尝试更新上次关机时的 IP 租用,主动与租期列表中的默认 DHCP 服务器联系,如果租期没到期并且得到服务器回应,客户机会仍使用上次关机时的IP;否则,会每隔 5 分钟尝试一次 IP 租用

      到达 100% 时,如果在 87.5% 没有服务器应答 , 则继续使用租约,租约到达 100% 时向整体子网发送广播完成新租约生成过程。

      注:最大租期是7200s,默认租期是600s。

2  DHCP服务配置

2.1  实现单区域DHCP

      即同一子网下IP地址的获取,server——client

1)配置环境前提

DHCP服务器必须为固定IP地址,客户端没有IP地址,且设置为自动获取。

2)配置服务器端

第一步:安装软件                     #yum  install  dhcp  -y

第二步:进入DHCP配置文件所在目录   #cd  /etc/dhcp

第三步:通过模板生成DHCP配置文件

#cp   /usr/share/doc/dhcp-4.25/dhcpd.conf.example   /etc/dhcp/dhcpd.conf

// 目录/usr/share/doc是存放配置文件模板的,后面的dhcp-4.25也可以用dhcp-* 。

第四步:打开DHCP配置文件           #vim  /etc/dhcp/dhcpd.conf

配置文件解读:

option  domain-name  “blue.com”;

//设置DHCP客户端resolve.conf内解析用的域名

option  domain-name-servers  192.168.10.3,192.168.10.4;

//设置DHCP客户端reslove.conf的IP

default-lease-time   600;     //默认租约时间

max-lease-time   7200;      //最长租约时间

log-facility  local7;          //采用的日志设备为本地设备

第五步:编辑配置文件  vim   /etc/dhcp/dhcpd.conf  ,复制32-35行内容并修改如下

subnet 192.168.1.0 netmask 255.255.255.0  {  //声明本机IP地址池和相关配置

  range 192.168.1.100 192.168.1.200;          //设置可以分配的IP范围

      option routers 192.168.1.1;        //设置路由信息,本例的这里也可以什么都不写

}

第六步:启动dhcpd服务   systemctl  restart  dhcpd

        查看dhcpd服务   systemctl  status   dhcpd

3)客户端测试

第一步:安装dhcp软件  yum  install  dhclient  -y

第二步:获取dhcp服务器IP

dhclient   -r   eno网卡号  

//释放某网卡的ip,如果释放所有eno,就直接#dhclient   -r

dhclient   -v   eno网卡号  

//为某个网卡获取ip,为所有网卡获取ip直接用#dhclient   -v

4)查看租约信息

    查看服务器端租约信息,  #cat   /var/lib/dhcpd/dhcpd.leases

    查看客户端租约信息,    #cat   /var/lib/dhclient/dhclient.leases

2.2  多区域DHCP的实现

server——r1——r2——client

1) DHCP中继代理:

异子网的DHCP配置需要使用DHCP中继,即只要是处于不同的网络段,就得使用DHCP中继代理。DHCP中继设备要求:网络上存在一个兼容RHC1542的路由器,此标准的路由器除了DHCP广播信息转发外,其他的广播信息均直接过滤。

DHCP中继是为远程网络提供IP地址自动分配机制,它在逻辑上与某DHCP服务器server1一一对应。当DHCP中继接收到某客户端发出的IP租用请求(广播包)时,会以事先约定好的配置通过物理路径点对点发送给server1,然后server1点对点将反馈信息提供给中继代理,中继代理再以广播的形式发送给客户端。选中继的时候要选离客户端最近的。

2)配置环境前提

    首先要保证server到r2是通畅的,也就是说server要有固定的IP地址、网关,r1与r2要有IP地址与网关(要么通过2.1的方式自动获取,要么用nmtui设置),且r1与r2要设置好路由转发以保证网络通畅;客户端client不设置ip与网关,且设置为自动获取。

3)配置服务器端

第一步:安装软件                     #yum  install  dhcp  -y

第二步:进入DHCP配置文件所在目录   #cd  /etc/dhcp       //这步跳过也行

第三步:通过模板生成DHCP配置文件

#cp   /usr/share/doc/dhcp-4.25/dhcpd.conf.example   /etc/dhcp/dhcpd.conf

// 目录/usr/share/doc是存放配置文件模板的,后面的dhcp-4.25也可以用dhcp-* 。

第四步:打开DHCP配置文件           #vim  /etc/dhcp/dhcpd.conf

第五步:编辑配置文件  vim   /etc/dhcp/dhcpd.conf  ,在35行后面添加如下内容

subnet 192.168.1.0 netmask 255.255.255.0  {  //声明IP地址池和相关配置

  range 192.168.1.100 192.168.1.200;          //设置可以分配的IP范围

      option routers 192.168.1.1;        //设置路由信息,本例的这里也可以什么都不写

}

//如果用nmtui已经设置好了IP与网关,这个就不用写。否则就要写。

subnet 192.168.3.0 netmask 255.255.255.0  {  //声明IP地址池和相关配置

  range 192.168.3.10 192.168.3.20;          //设置可以分配的IP范围

      option routers 192.168.2.2;        //设置路由信息,上面的option routers的选取要选择最靠近3.0网段的网关。

}

//需要给哪个网络段自动分配IP地址就写哪个网络段的地址池与网关

第六步:启动dhcpd服务   systemctl  restart  dhcpd

        查看dhcpd服务   systemctl  status   dhcpd

3) 配置中继代理器

第一步:选择最靠近客户端的主机(或路由器)配置中继代理

第二步:安装软件        #yum   install   dhcp   -y

第三步:

法一:编辑配置文件

#vim   /usr/lib/systemd/system/dhcrelay.service,将里面的下面这行内容

ExecStar=/usr/sbin/dhcrelay   -d   --no-pid  后面依次添加(不换行):

——  –i  eno*** (指定本中继代理器连接到客户端的网络接口);

——  -i  eno***  (指定本机中继代理器连接到服务器端的网络接口);

——  DHCP服务器的IP地址

例:ExecStar=/usr/sbin/dhcrelay  -d  --no-pid   –i   eno50332184   –i   eno33554984  192.168.1.1注:两个eno的顺序如果不正确的话也是可以的;配置文件中的其他内容不变。

法二:使用命令

#dhcrelay  -d  -i  eno50332184  -i  eno33554984   192.168.1.1

第四步:启动DHCP中继代理,依次执行下面的命令

#systemctl   daemon-reload        

#systemctl   restart   dhcrelay

4)客户端测试

第一步:安装软件                #yum  install  dhclient  -y

第二步:获取dhcp服务器IP

dhclient  -r  eno网卡号  //释放某网卡的ip,如果释放所有eno,就直接#dhclient  -r

dhclient  -v  eno网卡号 //为某个网卡获取ip,为所有网卡获取ip直接用#dhclient  -v

5)查看租约信息

查看服务器端租约信息,  #cat   /var/lib/dhcpd/dhcpd.leases

    查看客户端租约信息,    #cat   /var/lib/dhclient/dhclient.leases

2.3  分配固定的IP地址

    应用情况,公司租用的IP地址不是很多,为了防止公司的领导获取不到IP,需要为其设置自动分配固定的IP地址

1)配置服务器端

第一步:编辑配置文件   #vim  /etc/dhcp/dhcpd.conf里面写上:

host  boss  {

option  host-name  "boss.blue.com";

hardware  thernet   00:00:A0:2E:9E:0A;

fixed-address   192.168.150;

}

第二步:启动dhcpd服务     #systemctl  restart  dhcpd

查看dhcpd服务     #systemctl  status   dhcpd

2)客户端测试

第一步:安装软件                #yum  install  dhclient  -y

第二步:获取dhcp服务器IP

    dhclient   -r  eno网卡号  //释放某网卡的ip,如果释放所有eno,就直接#dhclient  -r

    dhclient  -v  eno网卡号  //为某个网卡获取ip,为所有网卡获取ip直接用#dhclient  -v

3)查看租约信息

    查看服务器端租约信息,  #cat   /var/lib/dhcpd/dhcpd.leases

    查看客户端租约信息,    #cat   /var/lib/dhclient/dhclient.leases

2.4  实现共享区域

      如果打算在同一个物理网络中存在多个逻辑网络段,则使用共享作用域即可。例如,假设四台主机都在同一个LAN区段,2.2的所有配置过程均不变,那么client机首先会获取与server机同一网络段的地址,比如192.168.1.102,如果1.0网络段的地址用光了才会配置3.0网络段的。而共享区域就是不让它获取1.0网段的地址,直接获取3.0网段的地址。

1)配置服务器端

第一步 编辑配置文件    #vim   /etc/dhcp/dhcpd.conf

option   domain-name   “nilu.edu”;

option   domain-name-servers

192.168.10.3, 192.168.10.4;

default-lease-time   600;

max-lease-time   7200;

log-facility   local7;

shared-network   blue  {

subnet   192.168.1.0   netmask   255.255.255.0  {

range   192.168.120   192.168.120;

option   routers   192.168.10.1;

}

subnet   192.168.20   netmask   255.255.255.0  {

range   192.168.2.120   192.168.2.220;;

option   routers   192.168.2.1;

}

}

第二步:启动dhcpd服务   #systemclt   restart  dhcpd

2)客户端测试


转载请注明出处,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼刺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值