• 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中

  • 相关阅读:
    hive同环比实现
    hive中的to_date和to_char
    正则表达式匹配一个独立的字符
    Mysql Explain用法详解
    hadoop安装踩坑
    hadoop ssh localhost无密码登录
    Node.js第十二篇:图片随机验证码
    Node.js第十一篇:Koa框架基础
    Ajax第五篇:JQuery中使用Ajax
    Ajax第四篇:跨域JSONP、CORS
  • 原文地址:https://www.cnblogs.com/Presley-lpc/p/14504966.html
Copyright © 2020-2023  润新知