美文网首页
DHCP服务

DHCP服务

作者: SRE1 | 来源:发表于2019-10-08 10:16 被阅读0次

    DHCP概念提出

    为了实现网络可以动态合理地分配IP地址给主机使用,提出了DHCP协议。
    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作。

    DHCP相对于静态手工配置的优点:
    (1)效率高
    (2)灵活性强
    (3)易于管理

    把一个主机接入到tcp/ip网络,要为其配置网络参数:

    • IP/mask:仅有此项时,只能进行本地通信,不能跨网段通信
    • Gateway:非本地通信时配置
    • DNS Server:可实现基于主机名通信

    参数配置方式:

    • 静态指定
    • 动态分配
      (1)BOOTP:BOOTP用于无盘工作站的局域网中,可以让无盘工作站从一个中心服务器上获得IP地址。通过BOOTP协议可以为局域网中的无盘工作站分配动态IP地址,这样就不需要管理员去为每个用户去设置静态IP地址。
      (2)DHCP:引入了“租约”的BOOTP;也可实现为特定主机保留某固定地址;

    DHCP:动态主机配置协议

    DHCP应用场景
    • DHCP服务器能够为大量主机分配IP地址,并能够集中管理
    • DHCP采用C/S模式

    监听的端口:
    服务端:udp/67 (源端口:接收客户端请求的)
    客户端:udp/68(目的端口:向客户端发送请求成功或失败的回应)

    DHCP基础工作过程

    免费ARP用于检测冲突的IP地址,如果发现冲突IP地址,客户端会回Decline报文,重新发Discover报文,请求新的IP地址服务器端收到Decline报文后,会把刚才的IP地址列为冲突地址,当服务器没有空闲地址可用的时候,才会从冲突地址中选择进行分配。

    DHCP租期更新

    一般租约到达一半时50%,就开始续租;如果找不到dhcp,就续租到75%,再找不到就续租87.5%,再找不到dhcp就重新发起dchp请求;

    IP地址释放

    若IP租约到期前没有收到DHCP服务器响应,客户端会停止使用此IP地址。
    若DHCP客户端不再使用分配的IP地址,也可以主动向DHCP服务器发送DHCP Release报文,释放该地址。

    注意:dhcp服务器必须先提供本地dhcp服务,才能可以给另一网络提供服务,否则不允许直接向另一网络提供dhcp服务;每一个地址分配的范围叫一个作用域;
    dhcp服务器可提供的服务不止是分配网络地址,还可提供文件路径;

    DHCP服务

    Linux DHCP协议的实现程序:

    • dhcp:(ISC,named):只提供能提供dhcp服务;
    • dnsmasq:dhcp & dns :轻量化,没有配置文件,通过命令行+选项参数进行指定;

    dhcp程序包:提供两个程序,二者不同同时启用;
    dhcpd:提供dhcp服务;
    dhcrelay:提供中继服务;

    部署dhcp服务

    [root@promote ~]# yum info dhcp
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.cn99.com
     * epel: mirrors.tuna.tsinghua.edu.cn
     * extras: mirrors.cn99.com
     * updates: mirrors.cn99.com
    Installed Packages
    Name        : dhcp
    Arch        : x86_64
    Epoch       : 12
    Version     : 4.2.5
    Release     : 77.el7.centos
    Size        : 1.4 M
    Repo        : installed
    From repo   : base
    Summary     : Dynamic host configuration protocol software
    URL         : http://isc.org/products/DHCP/
    License     : ISC
    Description : DHCP (Dynamic Host Configuration Protocol) is a protocol which allows
                : individual devices on an IP network to get their own network
                : configuration information (IP address, subnetmask, broadcast address,
                : etc.) from a DHCP server. The overall purpose of DHCP is to make it
                : easier to administer a large network.
                : 
                : To use DHCP on your network, install a DHCP service (or relay agent),
                : and on clients run a DHCP client daemon.  The dhcp package provides
                : the ISC DHCP service and relay agent.
    
    [root@promote ~]# yum -y install dhcp 安装dhcp
    ...
    [root@promote ~]# rpm -ql dhcp 查看安装dhcp生成的文件
    其中:
    /etc/dhcp/dhcpd.conf 提供dhcp服务的配置文件
    /etc/dhcp/dhcpd.conf 为ipv4的配置文件
    /etc/dhcp/dhcpd6.conf 为ipv6的配置文件
    /usr/lib/systemd/system/dhcpd.service 启动dhcp服务(ipv4)
    /usr/lib/systemd/system/dhcpd6.service 
    /usr/lib/systemd/system/dhcrelay.service 启动中继服务器
    /usr/sbin/dhcpd 主程序(启动包括了ipv4和ipv6)
    /usr/sbin/dhcrelay 中继程序
    /var/lib/dhcpd/dhcpd.leases  DHCP的租约记录
    

    编辑配置文件:

    [root@promote ~]# vim /etc/dhcp/dhcpd.conf 显示复制文件即可;
    [root@promote ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
    [root@promote ~]# cat /etc/dhcp/dhcpd.conf 
    显示部分内容:
    default-lease-time 600; 默认租约期限,单位是秒钟
    subnet 10.5.5.0 netmask 255.255.255.224 {
      range 10.5.5.26 10.5.5.30; 指明地址池
      option domain-name-servers ns1.internal.example.org; 可有3个dhcp服务器
      option domain-name "internal.example.org"; 搜索后缀
      option routers 10.5.5.1; 指明默认网关
      option broadcast-address 10.5.5.31; 指明广播地址
      default-lease-time 600;
      max-lease-time 7200;
    }
    
    host passacaglia {
      hardware ethernet 0:0:c0:5d:bd:95;
      filename "vmunix.passacaglia"; 加载文件的文件名
      server-name "toccata.fugue.com";
    }
    
    host fantasia {
      hardware ethernet 08:00:07:26:c0:a5;
      fixed-address fantasia.fugue.com; 固定的分配一个地址,可直接指明IP地址;
    }
    

    其中:
    option 定义选项,可定义在全局中也可定义在subnet中;
    subnet 定义子网
    host 表示在dhcp中主机名,并不代表真正的主机名,只是个标识;

    [root@promote ~]# vim /etc/dhcp/dhcpd.conf 
    把没用的行注释:输入:.,$s/^[^#]/#/g
    option domain-name "magedu.com";
    option routers 172.18.100.1;
    option domain-name-servers 172.18.0.1, 192.168.255.1; 设定DNS服务器
    
    default-lease-time 43200;
    max-lease-time 86400;
    
    log-facility local7;
    
    subnet 172.18.0.0 netmask 255.255.0.0 {
        range 172.18.11.100 172.18.11.120;
        option routers 172.18.0.1;
        option domain-name-servers 1.1.1.1;
    }
    
    host passacaglia { 这种某主机使用固定ip地址
        hardware ethernet 0:0:c0:5d:bd:95; 为要设定ip地址主机的mac地址
        option routers 172.18.11.254; 指定网关
        fixed-address 172.18.11.1; 注意不能使用地址池中的地址
    }
    
    
    [root@promote ~]# systemctl start dhcp.service
    [root@promote ~]# ss -tnl 
    服务端监听在udp/67
    
    dhcp已经分配的结果记录存放在:/var/lib/dhcpd/dhcpd.leases
    [root@promote ~]# less /var/lib/dhcpd/dhcpd.leases
    
    dhcp客户端

    前提要网卡地址设为动态分配;
    但不用把网卡改为dhcp,使用dhclient命令测试;

    [root@promote ~]# dhclient -h 查看使用帮助
    [root@promote ~]# dhclient -d 运行dhcp在前端,可观察工作过程
    [root@promote ~]# ss -tunl 可查看客户端udp的68端口监听
    [root@promote ~]# route -n 查看客户端的网关
    [root@promote ~]# cat /etc/resolv.conf 查看客户端DNS服务器
    

    如果不期望使用dhcp分配的DNS服务器地址,就想用自己指定的,可修改过客户端网卡配置文件:

    [root@promote ~]# vim /etc/resolv.conf
    nameserver 2.1.1.1 用自己指定的DNS服务器
    [root@promote ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
    PEERDNS=no
    

    此时dhcp服务器搭建完毕

    dhcpd程序

    配置文件:/etc/dhcp/dhcpd.conf
    主要配置ipv4的网络服务

    注:启动对于Centos 6和7是不同的

    option routers GW;
    option domain-name-servers IP,IP,IP;
    default-lease-time ...;
    max-lease-time ...;
    
    subnet NET netmask MASK {
        range ;
        ...
    }
    
    host HOST_ID {
       hardware ethernet MAC;
       fixed-address IP; 不能是在地址池中的地址
    }
    

    分配信息库:/var/lib/dhcp/dhcpd.leases~

    [root@promote ~ ]# man dhcpd.conf
    其它配置选项:
    filename:指明引导文件名称;可认为是基于网络引导的Bootloader文件;
    next-server:指明引导文件所在的服务器主机的ip地址;

    例如:

    filename "pxelinux.0";
    next-server 172.18.0.1;
    通常next-server所指向的服务器为tftp服务器;
    tftp:trivial ftp 简单文件传输协议,通过udp/69
    

    相关文章

      网友评论

          本文标题:DHCP服务

          本文链接:https://www.haomeiwen.com/subject/yseguctx.html