DHCP服务

DHCP简介

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个工作在应用层的局域网网络协议,数据传输时使用UDP不可靠传输协议工作,通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配网络资源,使网络环境中的主机能动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
DHCP服务器在生产环境中不经常使用,因为路由器已经有DHCP功能了,况且服务器必须使用静态IP,但也存在需要配置DHCP服务器的时候,比如PXE网络批量装机时,就需要配置DHCP服务为待装机服务器分配IP地址等网络资源。

特点

  1. 优点:
    减少网络管理员的工作量
    避免配置时输入错误
    避免IP冲突
    提高IP地址使用率
  2. 缺点:
    局域网内有多台DHCP服务器时,IP来源不可控

原理

在这里插入图片描述

  • 一、客户端请求IP
    源IP: 0.0.0.0
    目标IP: 255.255.255.255
    目标端口:UDP协议67端口
    广播信息: DHCP Discover(客户端MAC地址和计算机名)
    • 1.局域网内无DHCP服务器
      客户端将从TCP/IP的B类网段169.254.0.0/16中挑选一个IP地址作为自己的IP地址,继续每隔5分钟尝试与DHCP服务器进行通讯,一旦与DHCP服务器取得联系,则客户机放弃自动配置的IP地址,而使用DHCP服务器分配的IP地址。
    • 2.局域网内有一台DHCP服务器
      执行DHCP四次握手从该DHCP服务器处获取IP地址、子网掩码、网关、DNS
    • 3.局域网内有多台DHCP服务器
      哪台DHCP服务器回复快,就从哪台DHCP服务器处获取IP地址、子网掩码、网关、DNS
  • 二、DHCP服务器响应请求
    源IP: DHCP服务器IP地址
    目标IP: 255.255.255.255
    源端口: UDP协议68端口
    广播信息:DHCP Offer(客户端MAC地址;DHCP服务器提供的合法IP地址;子网掩码;默认网关(路由);租约的期限;DHCP服务器的IP地址-MAC。)
  • 三、客户端选择IP
    源IP: 0.0.0.0
    目标IP: 255.255.255.255
    目标端口:UDP协议67端口
    广播信息: DHCP Request(为客户端提供IP配置的服务器的服务标识符(IP地址))
  • 四、DHCP服务器确定租约
    源IP: DHCP服务器IP地址
    目标IP: 255.255.255.255
    源端口: UDP协议68端口
    广播信息: DHCP ACK(确认租约)或 DHCP NACK(拒绝租约)
    如果DHCP Request不成功,例如客户机试图租约先前的IP地址,但该 IP地址不再可用,或者因为客户机移到其他子网,该IP无效时,DHCP服务器将广播否定确认消息DHCP NACK。当客户机接收到不成功的确认时,它将重新开始DHCP租约过程。
    注:
    DHCP客户机收到DHCP服务器回应的ACK报文后,通过地址冲突检测(arp)发现服务器分配的地址冲突或者由于其他原因导致不能使用,则发送DECLINE报文,通知服务器所分配的IP地址不可用。
  • 五、续租过程
    在这里插入图片描述
    • 1.客户端在租期过去50%的时候,以单播的方式向为其提供IP地址的DHCP服务器发送DHCP Request消息包请求续约。如果客户机接收到该服务器回应的DHCP ACK消息包,客户机就根据包中所提供的新的租期以及其它已经更新的TCP/IP参数,更新自己的配置,IP租用更新完成。
    • 2.如果在租期过去50%的时候没有更新,客户端将在租期过去87.5%的时候再次向为其提供IP地址的DHCP服务器联系请求续租。
    • 3.如果还不成功,到租约的100%时候,DHCP客户机必须放弃这个IP地址,重新广播申请。

搭建手册

  • 前提
    关闭防火墙及增强安全组件:
# 查询防火墙状态
[root@loaclhost ~]# iptables -L
# 关闭防火墙
[root@loaclhost ~]# service stop iptables
# 禁止防火墙开机自启
[root@loaclhost ~]# chkconfig iptables off
# 查询SE Linux状态
[root@loaclhost ~]# getenforce
# 关闭SE Linux
[root@loaclhost ~]# setinforce 0

关闭 Vmware 虚拟网络编辑器的DHCP功能配置文件(真实环境下无需选择此项)

  • DHCP服务相关信息
    • DHCP服务的rpm软件包:dhcp
    • DHCP命令的rpm软件包:dhcp-common(默认已安装)
    • DHCP服务的服务名:dhcpd
    • DHCP中继的服务名:dhcrelay
  • 端口
    • udp 67 #作为客户端的目标端口,接收客户端的请求DHCP请求
    • udp 68 #作为服务器的源端口,用来向客户端回复数据包
  • 配置文件
    • DHCP服务
      DHCP服务的配置文件一般使用IPv4的模板进行修改。
配置文件详解
/etc/dhcp/dhcpd.conf默认是空的,需要找模板文件重新生成(IPv4
/etc/dhcp/dhcpd6.conf默认是空的,需要找模板文件重新生成(IPv6)
/usr/share/doc/dhcp-4.*.*/dhcpd.conf.sampleDHCP的模板配置文件(IPv4)
/usr/share/doc/dhcp-4.*.*/dhcpd6.conf.sampleDHCP的模板配置文件(IPv6)

配置文件模板解析:/usr/share/doc/dhcp-4../dhcpd.conf.sample

  • 全局模式区域
#DHCP全局选项
#DHCP分配DNS服务器地址,此处有两个:ns1.example.org和ns2.example.org
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
#默认租约时间和最大租约时间(单位:s)
default-lease-time 600;
max-lease-time 7200;
#日志文件选项(默认保存在/var/log/messages内)
log-facility local7;
  • subnet区域
#subnet区域:DHCP服务器配置区域,DHCP服务器配置时可将前面的所有subnet区域删除,直接修改最后一个subnet区域即可
#网段和子网掩码(配置时需和本机处于同一网段)
subnet 10.5.5.0 netmask 255.255.255.224 {
#往外分配的IP地址池
  range 10.5.5.26 10.5.5.30;
#往外分配的DNS服务器地址(可将ns1.internal.example.org修改为202.106.0.20, 8.8.8.8)
  option domain-name-servers ns1.internal.example.org;
#设置DNS域(此行可删除)
  option domain-name "internal.example.org";
#默认网关的地址
  option routers 10.5.5.1;
#广播地址(此行可删除)
  option broadcast-address 10.5.5.31;
#默认租约(s)
  default-lease-time 600;
#最大租约(s)
  max-lease-time 7200;
}
  • #$%^&*(区域
host passacaglia {
  hardware ethernet 0:0:c0:5d:bd:95;
  filename "vmunix.passacaglia";
  server-name "toccata.fugue.com";
}
  • 地址保留配置区域
#地址保留区域:指定某IP固定分配给指定物理地址的客户端。以达到某客户端每次都能分到固定的IP地址。
#fantasia:标签名,可设置为客户机名称,如webserver1
host fantasia {
#客户机的MAC地址
  hardware ethernet 08:00:07:26:c0:a5;
#指定分配给该客户机的IP地址,将fantasia.fugue.com换成IP,但尽量写subnet区域地址池以外的IP。
  fixed-address fantasia.fugue.com;
}
  • 超级作用域配置区域
#此处无须修改
class "foo" {
  match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
}
#超级作用域区域:当待分配客户端超过255台时,一个网段已无法满足这么多设备,此时就需要使用单臂路由来让这么多客户端都能分配到IP并且能互相通信。
#224-29:标签名。可修改。如分配地址网段为10、11则可设置为10-11。
shared-network 224-29 {
#subnet区域,需要添加一行range 起始IP 终止IP;
  subnet 10.17.224.0 netmask 255.255.255.0 {
    range 10.5.5.26 10.5.5.30;
    option routers rtr-224.example.org;
  }
  subnet 10.0.29.0 netmask 255.255.255.0 {
    option routers rtr-29.example.org;
  }
  pool {
    allow members of "foo";
    range 10.17.224.10 10.17.224.250;
  }
  pool {
    deny members of "foo";
    range 10.0.29.10 10.0.29.230;
  }
}        
  • DHCP中继服务
配置文件详解
/etc/sysconfig/dhcrelay该文件是中继配置文件,中继实验中用到

实战

  • 基础DHCP服务器搭建
  1. 服务器端
# 安装DHCP软件
yum  -y  install  dhcp
#拷贝配置文件模板至/etc/dhcp/目录下
cp -a /usr/share/doc/dhcp*/dhcpd.conf.example  /etc/dhcp/dhcpd.conf
# 修改配置文件/etc/dhcp/dhcpd.conf
# 将配置文件的前几个subnet声明注释掉。修改最后一个subnet声明,(subnet区域前面是全局变量配置区域,详情见附件配置文件详解)
# 注:注意配置文件中每行结尾的分号和结束大括号
vim  /etc/dhcp/dhcpd.conf
	subnet  <网段>  netmask  <子网掩码> {
        range  <IP地址池起始IP  IP地址池结束IP>;
        option  domain-name-servers  <DNS1,DNS2>;
        option domain-name "<DNS域>";  #(Linux通常不设置)
        option  routers  <默认网关>;
        option  broadcast-address  <广播地址(网段.255)>;
        default-lease-time  <默认租约时间(s)>;
        max-lease-time  <最大租约时间(s)>;
    }
# 重启DHCP服务
service  dhcpd  restart

在这里插入图片描述

  1. 客户端
    将网卡配置文件修改为DHCP获取IP,将网卡设置为开机自启。重启网卡即可生效。
  • 地址保留(一般结合基础配置使用)
  1. 确认待分配IP地址的客户端的MAC地址。(ip a或ifconfig命令)
  2. 服务器端
# 安装DHCP软件
yum  -y  install  dhcp
#拷贝配置文件模板至/etc/dhcp/目录下
cp -a /usr/share/doc/dhcp*/dhcpd.conf.example  /etc/dhcp/dhcpd.conf
# 修改配置文件/etc/dhcp/dhcpd.conf
vim  /etc/dhcp/dhcpd.conf
    host <fantasia> {					#名字fantasia随便取,需见名知意。
        hardware ethernet  <MAC地址>;		#客户机的mac地址
        fixed-address  <IP地址>;	#固定分配给客户机的ip地址(使用地址池以外的IP)
    }
注:此处IP地址必须是该DHCP服务器地址池以外的IP,避免IP冲突
# 重启DHCP服务
service  dhcpd  restart
  1. 客户端
    将网卡配置文件修改为DHCP获取IP,将网卡设置为开机自启。重启网卡即可生效。
  • 超级作用域
    单臂路由: 在路由器的一个接口上通过配置子接口(或“逻辑接口”,并不存在真正物理接口)的方式,实现原来相互隔离的不同VLAN(虚拟局域网)之间的互联互通。
    通俗点说就是DHCP服务器可以通过给单个网卡添加子网卡配置文件来实现DHCP服务器为单个物理网络上的客户端提供多个逻辑网段(作用域)租约地址。
    功能:一台DHCP服务器单个网卡为单个物理局域网内分配多个逻辑网段IP资源。
    实验环境:三台虚拟机同一网络模式,一个DHCP服务器,两个客户机

在这里插入图片描述

  1. 服务器端
# 安装DHCP服务
yum –y install dhcp
#拷贝配置文件模板至/etc/dhcp/目录下
cp -a /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
# 设置DHCP服务器的单臂路由所需子网卡(配置两张网卡为两个网段即可)
vim /etc/sysconfig/network-scripts/ifcfg-eth0
vim /etc/sysconfig/network-scripts/ifcfg-eth1
# 开启路由转发(将此选项修改为1即可)
vim /etc/sysctl.conf
    net.ipv4.ip_forward = 1
#刷新内核参数配置文件
sysctl –p
# 修改配置文件/etc/dhcp/dhcpd.conf(注释掉前所有个subnet区域和主机声明后追加!)
vim /etc/dhcp/dhcpd.conf
    shared-network <网段1-网段2> {
        subnet <网段1> netmask <子网掩码> {
            option routers <网关>;
            range <IP地址池起始IP  IP地址池结束IP>;
        }
        subnet <网段2> netmask <子网掩码> {
            option  routers  <网关>;
            range  <IP地址池起始IP  IP地址池结束IP>;
        }
    }
# 剩余内容注释掉或删除掉,切记别落下大括号
Public建议修改为‘网段1-网段2-...’(亦可随意取名)
网关为该服务器该网段网卡IP地址
# 重启DHCP服务
service  dhcpd  restart

在这里插入图片描述

  1. 客户端
    将网卡配置文件修改为DHCP获取IP,将网卡设置为开机自启。重启网卡即可生效。
  • DHCP中继服务器
    DHCP Relay(DHCPR)DHCP中继是一个小程序,可以实现在不同子网和物理网段之间处理和转发dhcp信息的功能。
    在这里插入图片描述
  1. DHCP服务器端
# 安装DHCP服务
yum –y install dhcp
#拷贝配置文件模板至/etc/dhcp/目录下
cp -a /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
# 修改配置文件/etc/dhcp/dhcpd.conf(注释掉前所有subnet区域和主机声明后追加如下信息!)
vim /etc/dhcp/dhcpd.conf
    subnet 网段1 netmask <子网掩码> {
        option routers <网关>;
        range <IP地址池起始IP  IP地址池结束IP>;
    }
    subnet网段2 netmask <子网掩码> {
        option  routers  <网关>;
        range  <IP地址池起始IP  IP地址池结束IP>;
    }
# 剩余内容注释掉或删除掉,切记别落下大括号
Public建议修改为‘网段1-网段2-...’(亦可随意取名)
网关为该服务器该网段网卡IP地址
# 重启DHCP服务
service  dhcpd  restart

在这里插入图片描述

  1. DHCP中继器端
# 安装DHCP服务
yum –y install dhcp
# 修改配置文件/etc/sysconfig/dhcrelay(该文件不存在,创建并写入如下信息即可)
vim /etc/sysconfig/dhcrelay
    dhcrelay <DHCP服务器IP>
# 设置DHCP服务器的单臂路由所需子网卡(配置两张网卡为两个网段即可)
vim /etc/sysconfig/network-scripts/ifcfg-eth0
vim /etc/sysconfig/network-scripts/ifcfg-eth1
# 开启路由转发(将此选项修改为1即可)
vim /etc/sysctl.conf
    net.ipv4.ip_forward = 1
#刷新内核参数配置文件
sysctl –p
# 重启DHCP服务
service  dhcpd  restart

在这里插入图片描述

  1. 客户端
    将网卡配置文件修改为DHCP获取IP,将网卡设置为开机自启。重启网卡即可生效。
DHCP(动态主机配置协议)是一种计算机网络协议,它允许在网络上的计算机自动获得IP地址和其他网络参数,而无需手动配置。DHCP服务器是负责分配IP地址和其他网络参数的服务程序。以下是DHCP服务器在Linux中的配置步骤: 1. 安装DHCP服务器软件:在Linux系统中,DHCP服务器软件通常是dhcpd包。使用命令行终端运行以下命令安装软件: ``` sudo apt-get install isc-dhcp-server ``` 2. 配置DHCP服务器:编辑/etc/dhcp/dhcpd.conf文件。该文件包含DHCP服务器的所有配置信息。在此文件中,您需要指定DHCP服务器要分配的IP地址范围,子网掩码和默认网关等参数。例如,以下是一个简单的配置示例: ``` subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.1; option domain-name-servers 8.8.8.8; } ``` 这个示例配置了一个子网,其中IP地址范围是从192.168.1.100到192.168.1.200,子网掩码为255.255.255.0。默认网关是192.168.1.1,DNS服务器为8.8.8.8。 3. 配置DHCP服务器接口:打开/etc/default/isc-dhcp-server文件,将DHCP服务器要使用的接口名称添加到INTERFACES变量中。例如: ``` INTERFACES="eth0" ``` 这个示例将DHCP服务器配置在eth0接口上。 4. 启动DHCP服务器:运行以下命令启动DHCP服务器: ``` sudo service isc-dhcp-server start ``` 现在,DHCP服务器已经配置完毕并启动。它将为连接到指定接口的设备分配IP地址和其他网络参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值