美文网首页
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服务器

    DHCP服务 DHCP介绍 DHCP应用场景 DHCP工作原理 DHCP服务器部署 DHCP作用域 DHCP超级作...

  • 2018-12-10DHCP的搭建

    DHCP服务的搭建 1,安装DHCP服务端 #yum -y install dhcp 2,配置dhcp服务器 #v...

  • Centos7搭建DHCP服务器

    一、DHCP服务简介 ****1. DHCP服务简介**** DHCP(Dynamic Host Configur...

  • DHCP报文类型以及流程

    客户端发送DHCP Discover广播信息寻找DHCP服务器 服务器收到DHCP Discover后发送DHCP...

  • Centos7下搭建dhcp服务

    1.配置DHCP服务器 dhcp服务的安装与基本配置: 1)安装DHCP服务: yum install d...

  • 2020-12-08

    (小白学网络)DHCP实验—本地服务器 1.设置交换机为DHCP服务器 (config)#service dhcp...

  • Kali Linux常用服务配置教程安装及配置DHCP服务

    Kali Linux常用服务配置教程安装及配置DHCP服务 在Kali Linux中,默认没有安装DHCP服务。下...

  • DHCP snooping总结

    DHCP服务已是网络中必不可少的服务之一。随着DHCP服务的部署,一些安全问题也逐渐暴露出一些问题: DHCP报文...

  • Learning Openstack Part12 Neutro

    neutron提供DHCP服务的组件是DHCP agent。DHCP agent在网络节点上运行,默认通过dnsm...

  • linux pxe的构建

    服务端要求: (dhcp已经配好) 运行dhcp服务,用来分配地址,定位引导程序 运行tftp服务,提供引导程序下...

网友评论

      本文标题:DHCP服务

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