Linux之搭建dhcp服务器(实验)

文章目录

  • 前言
  • 一.安装dhcp相关的软件包
  • 二.修改配置文件,配置dhcp服务器
  • 三.启动服务,调试
  • 四.测试使用
  • 总结


前言

实验目的:搭建一台dhcp服务器给一台客户机分配ip地址、dns和网关,并使客户机顺利上网
系统:Centos7
软件:VMware Workstation 15.0.0


一.安装dhcp相关的软件包

准备一台虚拟机作为dhcp服务器,以下操作都在服务器上进行

安装dhcp软件包

ping www.baidu.com -c 2	# 确认能上网
yum install dhcp -y

二.修改配置文件,配置dhcp服务器

[root@localhost ~]$  cd /etc/dhcp/	# 主目录
[root@localhost dhcp]$ ls
dhclient.d  dhclient-exit-hooks.d  dhcpd6.conf  dhcpd.conf  scripts

其中,
dhcpd.conf是ipv4的主要配置文件

dhcpd6.conf是ipv6的主要配置文件

[root@localhost dhcp]$ vim dhcpd.conf 
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
~              
~

发现有个样例文件,复制到/etc/dhcp目录,覆盖原文件

[root@localhost dhcp]$ cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@localhost dhcp]$ ls
dhclient.d  dhclient-exit-hooks.d  dhcpd6.conf  dhcpd.conf  scripts
[root@localhost dhcp]$ vim dhcpd.conf 

只保留如下最基础的配置

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

# A slightly different configuration for an internal subnet.
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;
  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;
}

编辑配置

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;	# 指定日志类型,local7的日志在/var/log/boot.log/目录下

# A slightly different configuration for an internal subnet.
subnet 192.168.88.0 netmask 255.255.255.0 {		# 分配ip地址的网段号和子网掩码
  range 192.168.88.1 192.168.88.254;	# 地址池范围
  option domain-name-servers 114.114.114.114;	# 域名服务器,一个就行了
  option routers 192.168.88.1;	# 网关地址
  # 广播地址这里没有配置
  default-lease-time 600;	# 租约时长,单位s
  max-lease-time 7200;	# 最大时长两个小时
}
  • 设置的ip地址网段需是服务器所在网段,地址池的范围可以适当调控
  • 设置的网关和dns服务器需要是正确可用的,不然客户机上不了网

三.启动服务,调试

[root@localhost dhcp]$ service dhcpd start	# 启动服务
Redirecting to /bin/systemctl start dhcpd.service
[root@localhost dhcp]$ ps aux|grep dhcpd	# 检查进程
dhcpd      1696  0.0  0.8 105892  8124 ?        Ss   17:53   0:00 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid
root       1698  0.0  0.0 112828   988 pts/0    S+   17:54   0:00 grep --color=auto dhcpd
[root@localhost dhcp]$ netstat -anplut|grep dhcp	# 检查端口
udp        0      0 0.0.0.0:67              0.0.0.0:*                           1696/dhcpd          

如上则启动成功

启动服务时如果出现如下错误提示

[root@localhost dhcp]# service dhcpd start
Redirecting to /bin/systemctl start dhcpd.service
Job for dhcpd.service failed because the control process exited with error code. See "systemctl status dhcpd.service" and "journalctl -xe" for details.

可以执行journalctl -xe查看执行日志,根据标红提示检查配置哪里出错了

四.测试使用

配置一台虚拟机用于做dhcp客户机,建议客户机的原ip地址不在dhcp服务器分配范围内,这样效果更明显,以下操作在客户机上进行

修改ip配置文件 /etc/sysconfig/network-scripts/ifcfg-ens33,只保留其中四行,配置如下

BOOTPROTO="dhcp"	# 指定ip地址获得方式,dhcp为动态获得,none为静态配置
NAME="ens33"
DEVICE="ens33"		# 网卡的名字
ONBOOT="yes"		# 开机启动网卡

此时释放IP地址 dhclient -r 后再启用ip地址 dhclient ens33 后,可能会出现以下情况:

一.还是原ip地址

先检查防火墙是否关闭,防火墙不关闭可能无法释放ip地址,输入service firewalld stop关闭防火墙

其次可能是第一次连接新的dhcp服务器,所以ip请求会慢一点,稍等一会儿再查看ip地址

如果ip释放不掉的时候可以尝试 dhclient -v 命令后再尝试释放就可以了,-v选项可以启动dhcp服务的同时输出详细信息,至于为什么执行后就可以释放ip,具体原理小伙伴们感兴趣的可以自行查阅资料

最后还是原IP地址的话,则是因为客户端虚拟机会保留之前用过的ip地址,dhcp请求时也会请求之前的ip地址,而VMware服务虚拟了一个dhcp服务来给我们的虚拟机分配了原来的ip,换句话说,VMware的虚拟dhcp服务在和我们的dhcp服务器抢生意,并且我们的客户机更乐意去照顾老朋友VM的生意,导致ip地址不变。那我们可以在启用ip地址时指定我们搭建的dhcp服务器:

dhclient -s 这里写我们配置的dhcp服务器ip地址 ens33

此时我们的ip就是新dhcp服务器分配的了

二.搭建的dhcp服务器分配的ip地址

这样一次成功的情况应该只会发生在新机器身上,我们搭建的dhcp服务器抢到了这个新用户

三.同时拥有两个ip地址

一个是原地址,一个是我们搭建的dhcp服务器分配的地址,这是因为一张网卡可以有多个ip地址,所以这样也算是成功了,不过这样可能不能确定出新的ip地址能不能正常上网,所以建议和第一种情况一样,启用dhcp服务时指定我们搭建的dhcp服务器

最后测试客户机能否上网

此时可用ping www.baidu.com来测试一下新的ip地址是否可以上网
不能上网则要检查dhcp服务器的dns和网关是否配置正确了,注意修改服务器的配置文件后记得重启dhcp服务:service dhcpd restart。

总结

到这里整个dhcp服务器的搭建实验差不多就结束了,该实验只是搭建了一个基础的dhcp服务,更高级的配置小伙伴们可以自行查阅资料,如果有问题的小伙伴可以在评论区提问哦

你可能感兴趣的:(Linux,linux,服务器,运维)