程志辉博客 - 一个伪文艺青年
贵在坚持,难在坚持,成在坚持!
程志辉

什么是DHCP?

DHCP服务(Dynamic Host Configuration Protocol,动态主机配置协议)

服务功能:为每一台连接到网络的主机动态地提供IP信息。

实验环境

VMware 、Red Hat Enterprise Linux 6 、Windows XP

为了方便实验以及后续的学习,我在本地装了一个rhel6和winxp,通过快照的方式生成两台rhel并命名为node1,node2;一台winxp命名为node3。

DHCP服务配置要求

  某公司决定在内部网络中架设一台DHCP服务器,用于给局域网中的100台主机动态分配IP地址和网络环境配置信息。服务端操作系统选用Linux,客户端中有50台是Windows系统,还有50台是Linux系统。网管员为局域网规划的IP地址段是192.168.x.0/24,DHCP服务器地址是192.168.x.1/24,网关地址是192.168.x.254/24,公司还部署了内部的主从DNS服务器两台,进行内部域名y.com的名称解析,主DNS服务器地址是192.168.x.3/24,从DNS服务器地址是192.168.x.4/24,另外需要为老板的windows主机绑定IP地址192.168.x.188/24。

实验环境搭建

  本次实验我们进行的是DHCP服务,我们三台主机设备硬件-->网络适配器-->仅主机模式。但是由于VMware会自动给主机进行进行DHCP分配IP地址,显然我们是不需要的。我们可以在编辑-->虚拟网络编辑器中进行配置。

  并且还需要给自己本地的VMware网卡接口进行一个配置,并且网卡的IP地址不能与实验环境中的IP地址重合。所以DHCP服务器IP地址192.168.42.1肯定是不能用的。案例来说192.168.42.147这个地址在后续配置中,也不能分配给局域网中其他的设备使用,由于懒惰,就偷个懒好了....

实验操作

易忘点温馨提示
1.Linux主机需要修改网卡标识为eth0
2.Linux主机需要修改主机名
3.Linux主机需要关闭和禁用防火墙
4.Linux主机需要禁用Selinux
5.DHCP服务器需要配置本地YUM源仓库

1.设置网卡相关信息

由于实验机器是用快照生成的,网卡标识会显示为eth1,我们得先把它设置eth0,在此基础下才能进行后续的操作

# rm /etc/udev/rules.d/70-persistent-net.rules
# vim /etc/sysconfig/network-scripts/ifcfg-eth0

需要注意一下,node1作为DHCP服务器,所以获取IP方式得设置为静态。BOOTPROTO=none or static

2.修改node1主机名

# vim /etc/sysconfig/network

3.关闭和禁用防火墙

# service iptables status
# chkconfig --level 35 iptables off

4.禁用Selinux

# vim /etc/selinux/config 

5.检验光驱并挂载光盘

易忘点温馨提示
1.怎么确认光驱是否存在?
2.怎么确认光驱中有光盘?
3.怎么开机自动挂载光盘?
4.光盘文件类型为iso9660,只能读不能写

# ls /dev/sr0
# fdisk -l /dev/sr0
# mkdir /cdrom
# vim /etc/fstab

6.配置本地YUM源仓库

首先得确认是否成功挂载光盘,否则后面的都做不了。

# df -hT

下一步就是设置仓库指向文件

# vim /etc/yum.repos.d/cdrom.repo

查看一下YUM仓库的有效性
# yum clean all
# yum makecache
# yum repolist

7.对node2/linux客户端配置

主要还是对node2网卡这块进行一个操作啦,在DHCP服务中,DHCP服务端需要固定IP,且需要将获取IP的方式设置为静态。而DHCP客户端这块,是需要以DHCP方式获取IP地址的,则不需要配置IP地址信息。

再就是不需要配置YUM源仓库,因为它只是一个客户端,没必要去做额外的操作。同时修改主机名的操作与node1相同,目的是更加清晰的让管理员知道这是哪一台设备。

# vim /etc/sysconfig/network-scripts/ifcfg-eth0

正式开始配置DHCP服务

1.查看 DHCP 服务端软件是否安装

# rpm -qa | grep dhcp

如果没有安装的话,那就安装一下咯~

# yum install dhcp

2.修改DHCP配置文件并查看

# vim /etc/dhcp/dhcpd.conf 

此时会发现里面除了see /usr/share/doc/dhcp*/dhcpd.conf.sample外,什么都没有。我们把这个示例文件覆盖到DHCP配置文件就好~

# cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

然后再次回到DHCP配置文件进行修改

# vim /etc/dhcp/dhcpd.conf

覆盖后的文件是一套DHCP配置模板,我们在他的基础上进行修改就好了。#开头代表注释掉改行,具体修改的过程就不给大家演示了,直接显示我修改后模板内容(不包括注释项以及空格行)

# grep -v ^# /etc/dhcp/dhcpd.conf | grep -v ^$

紧接着就得运行服务了~此时如果不能运行那就说明你的配置有一些问题

# service dhcpd restart 
# service dhcpd status

我在做DHCP服务配置的时候总是把subnet 这一块填写错,大家要注意一些,subnet后面紧接着的是你所配置的网段

到这里DHCP服务的配置就结束了,后面的操作是对DHCP服务进行一个检验测试

哇啊啊啊啊!!!突然发现一个致命的问题,我没有配置开机自启,开发环境中DHCP服务器重启后DHCP服务没有自动,那不是很尴尬。

# chkconfig dhcpd on

3.查看 DHCP 服务进程已运行

# ps -eaf | grep dhcpd

此时你会发现显示的进程号与查看dhcp服务运行状态时显示的进程号一致

4.查看 DHCP 服务端口已监听

# netstat -tunlp | grep dhcpd

DHCP服务端口注意一下,默认情况下端口为 UDP67和UDP68

5.查看 DHCP 客户端(Linux)已获取 IP 地址和网络环境配置信息

# dhclient
# ifconfig

6.查看 DHCP 客户端(Windows)已获取 IP 地址和网络环境配置信息

Windows下释放IP地址、重新获取IP地址、查询IP地址信息

# ipconfig /release
# ipconfig /renew
# ipconfig

总结一下

  到此关于DHCP服务配置的教程就结束了,里面都是进行配置文件的修改(开机后还有),所以很多步骤是环环相扣的,大家需要自行手动重启~最后的最后感谢浩哥的指导。本文由程志辉原创独自编辑,难免会出现一些错误,欢迎大家在评论区支出,同时转载请留下版权!

2019年04月05日
  • 响石潭 飘过,看不懂,哈哈哈哈哈哈
  • 程志辉 作者 回复 响石潭 嘿嘿,术业有专攻嘛~
  • 逝雪蓝冰 这么硬核的文章,年轻人看好你!努力加油!
  • 程志辉 作者 回复 逝雪蓝冰 嘿嘿,对上课内容进行一个总结,同时方便你我他~
  • 逝雪蓝冰 回复 逝雪蓝冰 很不错的学习方法,这样学到的知识会更牢固。
  • Din 是个狼人 我只在树莓派上接触过DHCP
  • 程志辉 作者 回复 Din DHCP服务最基础的啦,多数情况下都不需要自己去配置。话说我也想去耍耍树莓派了~
Icefox Theme . 鄂ICP备16001608号-1