Linux学习130 dhcp服务简介

一、DHCP:

  1、把一个主机接入TCP/IP网络,要为其配置哪些网络参数:

    a、相应参数

      IP/mask

      Gateway

      DNS Server

      Wins Server,NTP Server

    b、参数配置方式:

      静态指定

      动态分配:

        bootp:boot protocol 引导协议,后来才发展为dhcp。早期的无盘工作站就是用的这种协议。

        dhcp:引入了“租约”的bootp;也可以实现为特定主机保留某固定地址

  2、DHCP:动态主机配置协议

    a、arp:address resolving protocol :地址解析协议

      IP --> MAC

    b、rarp:reverse arp :反向地址解析协议

      MAC --> IP

    c、工作流程

      (1)、Client:dhcp  discover  :客户端发dhcp  discover 报文,即客户端问网络中有没有dhcp服务器,如果有的话请给我提供相应的信息

      (2)、Server:dhcp offer(IP/mask,gw,...):dhcp服务器给客户端发送相应的配置信息

        lease time:租约期限。即这个配置什么时候到期。

      (3)、Client:dhcp  request 。客户端确认使用哪台DHCP server的配置,即假如网络中有多台dhcp服务器,那么谁的报文先到达客户端客户端就用哪一个的配置,然后客户端再反馈确认信息

      (4)、Server:dhcp ack  。服务端确认客户端发出的信息。

    d、续租

      (1)、一般租约期限到达一半的时候就会续租了,而不是直接到期后才续租。如果续租失败那么还是会继续租用,因为他租用的时间还没有到期。

      (2)、续租是单播给dhcp服务器的

        客户端会先发dhcp request给服务端

        续租成功的话dhcp服务器会发ack给客户端

        如果服务器端不租给你了会返回 dhcp nak 报文给客户端

        如果客户端续租失败那么他就只能再重新广播dhcp discover报文看看还有哪些dhcp服务器会租用地址给她了。

    e、CentOS:实现dhcp服务

      (1)、dhcp(ISC,named):ISC提供的dhcp包只能提供dhcp服务,named提供dns服务

      (2)、dnsmasq:dhcp && dns   可以提供dhcp服务和dns服务

      (3)、dhcp服务安装

        dhcpd:dhcp服务

        dhcrelay:中继服务(一般不会和dhcp服务一起启用)

    f、监听的端口

      服务端监听端口:67/UDP

      客户端监听端口:68/UDP  ,如果你把网卡设置成的dhcp模式你就能看到我们的UDP端口68已经启动了。

  3、dhcp安装(我们dhcp服务器也需要在分配的IP所在的子网中,否则无法分配成功,即如果我们分配的子网为192.168.10.0那么我们的dhcp服务器也需要在此子网中)

    a、以192.168.10.41为例,我们首先安装dhcp服务

[root@node1 /]# yum install -y dhcp

    b、我们来配置配置文件并启动服务

[root@node1 dhcp]# cat /etc/dhcp/dhcpd.conf
option domain-name "node1"; #dns域的名称为node1
option domain-name-servers 192.168.10.41; #DNS服务器的地址,此处写的是本机,也可以不用是本机,只要是互联网上的DNS服务器地址都可以
default-lease-time 43200; #默认租约期限,这儿是43200秒
max-lease-time 86400; #最长租约期限,此处是一天一夜,也就是86400秒
log-facility local7;
subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.150 192.168.10.200; #定义地址列表
}
[root@node1 dhcp]# systemctl restart dhcpd
[root@node1 dhcp]# netstat -anptu |grep dhcp
udp        0      0 0.0.0.0:67              0.0.0.0:*                           9211/dhcpd 

    c、我们找一台主机尝试获取地址,可以看到可以获取到,并且该主机上的udp client端服务68也启动了

      

    d、我们也可以在客户端通过命令来获取IP信息,通过 dhclient -d 命令即可,他的意思是将dhclient命令运行在前台,我们可以看到他也可以获取到地址

[root@node2 iperf-3.0.6]# dhclient -d
Internet Systems Consortium DHCP Client 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/ens37/00:0c:29:d3:d4:11
Sending on   LPF/ens37/00:0c:29:d3:d4:11
Listening on LPF/ens33/00:0c:29:d3:d4:07
Sending on   LPF/ens33/00:0c:29:d3:d4:07
Sending on   Socket/fallback
DHCPDISCOVER on ens37 to 255.255.255.255 port 67 interval 4 (xid=0x5d205099)
DHCPDISCOVER on ens33 to 255.255.255.255 port 67 interval 4 (xid=0x527d12af)
DHCPREQUEST on ens33 to 255.255.255.255 port 67 (xid=0x527d12af)
DHCPOFFER from 192.168.10.41
DHCPACK from 192.168.10.41 (xid=0x527d12af)
bound to 192.168.10.150 -- renewal in 16675 seconds.
DHCPDISCOVER on ens37 to 255.255.255.255 port 67 interval 10 (xid=0x5d205099)

    e、现在我们将我们dhcp中分配的网关添加为192.168.10.253,然后可以看到我们客户端也能获取到网关

      (1)、server端配置文件

[root@node1 ~]# cat /etc/dhcp/dhcpd.conf
option domain-name "node1"; #dns域的名称为node1
option domain-name-servers 192.168.10.41; #DNS服务器的地址,此处写的是本机,也可以不用是本机,只要是互联网上的DNS服务器地址都可以
option routers 192.168.10.253; #添加全局网关为192.168.10.253
default-lease-time 43200; #默认租约期限,这儿是43200秒
max-lease-time 86400; #最长租约期限,此处是一天一夜,也就是86400秒
log-facility local7;
subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.150 192.168.10.200; #定义地址列表
}

      (2)、客户端获取后信息如下    

        

    f、现在我们来配置局部网关,在也存在全局网关的情况下最终生效的是局部网关

      (1)、server端配置如下

[root@node1 ~]# cat  /etc/dhcp/dhcpd.conf
option domain-name "node1"; #dns域的名称为node1
option domain-name-servers 192.168.10.41; #DNS服务器的地址,此处写的是本机,也可以不用是本机,只要是互联网上的DNS服务器地址都可以
option routers 192.168.10.253; #添加全局网关为192.168.10.253
default-lease-time 43200; #默认租约期限,这儿是43200秒
max-lease-time 86400; #最长租约期限,此处是一天一夜,也就是86400秒
log-facility local7;
subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.150 192.168.10.200; #定义地址列表
  option routers 192.168.10.252; #添加局部网关为192.168.10.252,在已有全局网关的情况下,最终生效的是此局部网关192.168.10.252而不是全局网关192.168.10.253
}

      (2)、客户端生效后配置如下

          

    g、现在我们来配置局部DNS地址,也是同理

      (1)、我们server端配置如下

[root@node1 ~]# cat /etc/dhcp/dhcpd.conf
option domain-name "node1"; #dns域的名称为node1
option domain-name-servers 192.168.10.41; #DNS服务器的地址,此处写的是本机,也可以不用是本机,只要是互联网上的DNS服务器地址都可以
option routers 192.168.10.253; #添加全局网关为192.168.10.253
default-lease-time 43200; #默认租约期限,这儿是43200秒
max-lease-time 86400; #最长租约期限,此处是一天一夜,也就是86400秒
log-facility local7;
subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.150 192.168.10.200; #定义地址列表
  option routers 192.168.10.252; #添加局部网关为192.168.10.252,在已有全局网关的情况下,最终生效的是此局部网关192.168.10.252而不是全局网关192.168.10.253
  option domain-name-servers 192.168.10.250; #DNS服务器的地址,同理,在全局都存在的情况下最终生效的是局部配置的DNS服务器信息,即分配的DNS地址是192.168.10.250
}

      (2)、我们client端获取后配置如下

        

    h、我们现在配置给某个主机指定固定地址,即只要是这个主机就永远指定这个地址

      (1)、我们在server端配置信息如下

[root@node1 ~]# cat /etc/dhcp/dhcpd.conf
option domain-name "node1"; #dns域的名称为node1
option domain-name-servers 192.168.10.41; #DNS服务器的地址,此处写的是本机,也可以不用是本机,只要是互联网上的DNS服务器地址都可以
option routers 192.168.10.253; #添加全局网关为192.168.10.253
default-lease-time 43200; #默认租约期限,这儿是43200秒
max-lease-time 86400; #最长租约期限,此处是一天一夜,也就是86400秒
log-facility local7;
subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.150 192.168.10.200; #定义地址列表
  option routers 192.168.10.252; #添加局部网关为192.168.10.252,在已有全局网关的情况下,最终生效的是此局部网关192.168.10.252而不是全局网关192.168.10.253
  option domain-name-servers 192.168.10.250; #DNS服务器的地址,同理,在全局都存在的情况下最终生效的是局部配置的DNS服务器信息,即分配的DNS地址是192.168.10.250
}
host passacaglia { #给固定的客户端配置固定的IP信息,注意固定地址不能使用别人地址池中分配的地址
  hardware ethernet 00:0c:29:d3:d4:07; #此处的mac地址要使用客户端的mac地址
  fixed-address 192.168.10.99;
}

      (2)、客户端信息如下

        

    i、同理,我们也可以给固定的客户端配置固定的ip信息和网关dns信息等

      (1)、服务端配置信息如下

[root@node1 ~]# cat /etc/dhcp/dhcpd.conf
option domain-name "node1"; #dns域的名称为node1
option domain-name-servers 192.168.10.41; #DNS服务器的地址,此处写的是本机,也可以不用是本机,只要是互联网上的DNS服务器地址都可以
option routers 192.168.10.253; #添加全局网关为192.168.10.253
default-lease-time 43200; #默认租约期限,这儿是43200秒
max-lease-time 86400; #最长租约期限,此处是一天一夜,也就是86400秒
log-facility local7;
subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.150 192.168.10.200; #定义地址列表
  option routers 192.168.10.252; #添加局部网关为192.168.10.252,在已有全局网关的情况下,最终生效的是此局部网关192.168.10.252而不是全局网关192.168.10.253
  option domain-name-servers 192.168.10.250; #DNS服务器的地址,同理,在全局都存在的情况下最终生效的是局部配置的DNS服务器信息,即分配的DNS地址是192.168.10.250
}
host passacaglia { #给固定的客户端配置固定的IP信息,注意固定地址不能使用别人地址池中分配的地址
  hardware ethernet 00:0c:29:d3:d4:07; #此处的mac地址要使用客户端的mac地址
  fixed-address 192.168.10.99;
  option routers 192.168.10.252; #添加局部网关为192.168.10.252,在已有全局网关的情况下,最终生效的是此局部网关192.168.10.252而不是全局网关192.168.10.253
  option domain-name-servers 192.168.10.250; #DNS服务器的地址,同理,在全局都存在的情况下最终生效的是局部配置的DNS服务器信息,即分配的DNS地址是192.168.10.250
}

      (2)、客户端信息如下

        

    j、我们dhcp的租约记录文件在/var/lib/dhcpd/dhcpd.leases中

 

posted @ 2021-03-09 13:19  Presley  阅读(345)  评论(0编辑  收藏  举报