Centos 搭建dhcp服务器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos 搭建dhcp服务器相关的知识,希望对你有一定的参考价值。
参考技术A dhcp是动态主机配置协议,使用udp协议,主要使用udp67和udp 68号端口1.client端会发送dhcp discover广播包
2.dhcp服务器会回应dhcp offer广播包
3.client端会发送dhcp request广播包
4.dhcp服务器发送dhcp ack广播包
[root@mini ~]# rpm -qa dhcp
[root@mini ~]# cat /etc/centos-release
CentOS release 6.9 (Final)
[root@mini ~]# uname -r
2.6.32-696.el6.i686
[root@mini ~]# uname -m
i686
[root@mini ~]# yum install -y dhcp
[root@mini ~]# rpm -qa dhcp
dhcp-4.1.1-53.P1.el6.centos.1.i686
[root@mini ~]# rpm -qc dhcp
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/portreserve/dhcpd
/etc/sysconfig/dhcpd
/etc/sysconfig/dhcpd6
/etc/sysconfig/dhcrelay
/etc/sysconfig/dhcrelay6
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases
[root@mini ~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
#
查询dhcp sample文件(dhcpd.conf.sample文件为dhcp配置文件模板)
# rpm -ql dhcp
配置完成后的文件
[root@mini ~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
#
# A slightly different configuration for an internal subnet.
subnet 172.16.1.0 netmask 255.255.255.0
range 172.16.1.10 172.16.1.30;
option domain-name-servers mini.localdomain;
option domain-name "mini.localdomain";
option routers 172.16.1.1;
option broadcast-address 172.16.1.1;
default-lease-time 600;
max-lease-time 7200;
查看配置是否正确
[root@mini ~]# /etc/init.d/dhcpd configtest
Syntax: OK
DHCP启动失败,并查询到如下报错信息(/var/log/messages)
Nov 6 06:37:24 mini dhcpd: No subnet declaration for eth0 (192.168.28.139).
Nov 6 06:37:24 mini dhcpd: ** Ignoring requests on eth0. If this is not what
Nov 6 06:37:24 mini dhcpd: you want, please write a subnet declaration
Nov 6 06:37:24 mini dhcpd: in your dhcpd.conf file for the network segment
Nov 6 06:37:24 mini dhcpd: to which interface eth0 is attached. **
Nov 6 06:37:24 mini dhcpd:
Nov 6 06:37:24 mini dhcpd:
Nov 6 06:37:24 mini dhcpd: Not configured to listen on any interfaces!
Nov 6 06:37:24 mini dhcpd:
Nov 6 06:37:24 mini dhcpd: This version of ISC DHCP is based on the release available
Nov 6 06:37:24 mini dhcpd: on ftp.isc.org. Features have been added and other changes
Nov 6 06:37:24 mini dhcpd: have been made to the base software release in order to make
Nov 6 06:37:24 mini dhcpd: it work better with this distribution.
Nov 6 06:37:24 mini dhcpd:
Nov 6 06:37:24 mini dhcpd: Please report for this software via the CentOS Bugs Database:
Nov 6 06:37:24 mini dhcpd: http://bugs.centos.org/
Nov 6 06:37:24 mini dhcpd:
Nov 6 06:37:24 mini dhcpd: exiting.
解决办法:
这是因为DHCP程序发现没有“Not configured to listen on any interfaces”,只需要配置相应的IP到目标网卡中便可以解决这个问题。
[root@mini ~]# ifconfig eth1 172.16.1.1/24
[root@mini ~]# /etc/init.d/dhcpd start
Nov 6 06:43:11 mini dhcpd: Internet Systems Consortium DHCP Server 4.1.1-P1
Nov 6 06:43:11 mini dhcpd: Copyright 2004-2010 Internet Systems Consortium.
Nov 6 06:43:11 mini dhcpd: All rights reserved.
Nov 6 06:43:11 mini dhcpd: For info, please visit https://www.isc.org/software/dhcp/
Nov 6 06:43:11 mini dhcpd: Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file
Nov 6 06:43:11 mini dhcpd: Wrote 0 leases to leases file.
Nov 6 06:43:11 mini dhcpd: Listening on LPF/eth1/00:0c:29:c5:2b:7e/172.16.1.0/24
Nov 6 06:43:11 mini dhcpd: Sending on LPF/eth1/00:0c:29:c5:2b:7e/172.16.1.0/24
Nov 6 06:43:11 mini dhcpd:
Nov 6 06:43:11 mini dhcpd: No subnet declaration for eth0 (192.168.28.139).
Nov 6 06:43:11 mini dhcpd: ** Ignoring requests on eth0. If this is not what
Nov 6 06:43:11 mini dhcpd: you want, please write a subnet declaration
Nov 6 06:43:11 mini dhcpd: in your dhcpd.conf file for the network segment
Nov 6 06:43:11 mini dhcpd: to which interface eth0 is attached. **
Nov 6 06:43:11 mini dhcpd:
Nov 6 06:43:11 mini dhcpd: Sending on Socket/fallback/fallback-net
[root@mini ~]# cat /var/lib/dhcpd/dhcpd.leases
注意:如果Linux开启了防火墙,那么需要对UDP 67和UDP 68放行。或者直接将放火墙关闭
Centos 搭建DHCP服务,新建独立网卡完成DHCP实验
文章目录
什么是DHCP
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
DHCP有三种机制分配IP地址:
- 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
- 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
- 手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。
三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址。
工作原理:
DHCP协议采用UDP作为传输协议,主机发送请求消息到DHCP服务器的68号端口,DHCP服务器回应应答消息给主机的67号端口。
实验信息:
虚拟机操作平台:VMware® Workstation 15 Pro
操作系统:Centos 7
拓扑图:
在虚拟机中添加一块用于测试DHCP的网卡
点击“编辑”菜单里面的“虚拟网络编辑器”选项,打开虚拟机网络配置器
添加一个网络,设置为“仅主机模式”并设置IP为 192.168.178.0
(后面会用到这个IP作为DHCP自动分配的网络)并关闭DHCP服务
进入虚拟机设置,将网卡添加进来
输入 ifconfig
命令可以看到,刚才的网卡已经成功挂载了进来
接下来我们要在这个接口上配置DHCP服务
配置服务器的IP
在安装DHCP服务之前需要先将服务器DHCP接口配置上静态IP
CentOS7默认网卡设备文件存放于 /etc/sysconfig/network-scripts/
目录下, 编辑 ifcfg-ens38
(根据 ifconfig
命令结果里面的接口起名) ,如果没有请创建
TYPE=Ethernet # 网卡类型:为以太网
PROXY_METHOD=none # 代理方式:关闭状态
BROWSER_ONLY=no # 只是浏览器:否
BOOTPROTO=static # 网卡的引导协议:static[中文名称: 静态主机配置协议]
IPADDR=192.168.178.1 #ip地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.178.1 #默认网关
DEFROUTE=yes # 默认路由:是, 不明白的可以百度关键词 `默认路由`
IPV4_FAILURE_FATAL=no # 是不开启IPV4致命错误检测:否
IPV6INIT=yes # IPV6是否自动初始化: 是[不会有任何影响, 现在还没用到IPV6]
IPV6_AUTOCONF=yes # IPV6是否自动配置:是[不会有任何影响, 现在还没用到IPV6]
IPV6_DEFROUTE=yes # IPV6是否可以为默认路由:是[不会有任何影响, 现在还没用到IPV6]
IPV6_FAILURE_FATAL=no # 是不开启IPV6致命错误检测:否
IPV6_ADDR_GEN_MODE=stable-privacy # IPV6地址生成模型:stable-privacy [这只一种生成IPV6的策略]
NAME=ens38 # 网卡物理设备名称
UUID=f47bde51-fa78-4f79-b68f-d5dd90cfc698 # 通用唯一识别码, 每一个网卡都会有, 不能重复, 否两台linux只有一台网卡可用
DEVICE=ens38 # 网卡设备名称, 必须和 `NAME` 值一样
ONBOOT=yes # 是否开机启动, 要想网卡开机就启动或通过 `systemctl restart network`控制网卡,必须设置为 `yes`
配置好后执行
systemctl restart network
ifconfig
此时可以看到ens38接口引脚配置上了IP
安装DHCP服务
yum install -y dhcp
修改配置文件
配置 /etc/dhcp/dhcpd.conf
文件
添加如下配置,注意DNS服务器请设置一个存在的DNS服务器,因为我已经在这个服务器上搭建了DNS系统,所以将DNS服务器设置成了本服务器地址
##网段和掩码
subnet 192.168.178.0 netmask 255.255.255.0
##地址范围
range 192.168.178.100 192.168.178.200;
## dns服务器地址
option domain-name-servers 192.168.178.1;
##网关
option routers 192.168.178.1;
##广播地址
option broadcast-address 192.168.178.255;
## 租约时间
default-lease-time 300;
## 最大租约时间
max-lease-time 7200;
运行DHCP服务,设置开机自动启动
systemctl enable dhcpd
systemctl start dhcpd
systemctl status dhcpd
iptables 放行UDP 67接口
iptables -I INPUT -p tcp --dport 67 -j ACCEPT
service iptables save
验证结果
配置主机中对应的网卡为DHCP模式
保存后查看网卡信息,可以看到已经成功拉取到了IP地址了
此时在服务状态里可以看到,已经为我的宿主机分配了一个IP地址
注意做完实验记得禁用这个网卡,否则可能导致宿主机无法联网!
参考文档
centos7之dhcp服务部署、管理、配置详解
Centos7静态ip设置(亲测有效)
CentOS7搭建DHCP服务器
以上是关于Centos 搭建dhcp服务器的主要内容,如果未能解决你的问题,请参考以下文章
Centos 搭建DHCP服务,新建独立网卡完成DHCP实验