Linux配置DHCP服务器 简明教程
DHCP介绍
功能简介
DHCP是一个基于UDP的工作在应用层的协议,用来自动分配IP地址。
应用实例:一个办公室有十个人,每个人每天上下班都要带着自己的笔记本,所以每次都要手动配置IP地址,这样简直就不是计算机该干的事情是吧。。所以DHCP应运而生,它能够根据服务端的配置给连接到网络的客户机自动分配IP地址。
提供的服务
1.提供IP地址和子网掩码
2.提供IP地址对应的网络地址和广播地址
3.默认网关地址
4.DNS服务器地址
通俗的解释
你们寝室里有六个人(对应到客户机),每个人都需要用床(对应到IP地址)睡觉,所以每个人回到寝室都会需要一张床。这样的话每个人每次回到寝室的时候都需要宿管(对应到网络管理员)都需要给他分配一个床位,这样就很麻烦。
现在有一个“动态床位分配系统”(对应到DHCP服务器),你们每个人回到寝室的时候都会收到一张纸条,纸条上写了你可以使用哪个床位,这就简单多了。
再然后可能小明(对应到一个特定的客户机)有洁癖,他需要一个固定的床位(对应到一个需要固定IP的设备,比如打印机或者提供某些服务的服务器)。所以“动态床位分配系统”可以添加一条规则“叫小明的人来了就分配给他三号床位”,就解决了这个问题。
租约时间
DHCP分配给客户的IP是以租约形式分配的。当客户接入到网络中,DHCP便会分配一个IP给客户机,当租约时间到的时候如果客户机还在使用这个IP那么就可以续约,继续使用当前IP而不是从新分配一个。
在CentOS 7.x 下搭建DHCP服务
0X00 安装DHCP服务
使用yum、rpm、源码等方式进行安装
1 | yum install dhcpd |
0X01 配置服务器网络服务
首先我们要将本地的网络配置成静态地址,并重启网络服务
1 | vim /etc/sysconfig/network-scripts/enp0s3 |
这里的enp0s3
是我的网卡,你需要将这里修改成你的网卡,另外在CentOS 7.x 以前的版本中,使用的是ethx
的命名方式。
修改如下选项
1 | BOOTPROTO=static #之前很有可能是dhcp,现在我们修改它为静态 |
然后重启网络服务,如果配置文件没有错误的话,就可以正常启动了
1 | systemctl restart network.service |
这时候我们检查一下IP是不是已经变成我们设置的静态IP了
1 | ifconfig enp0s3 |
0X02 配置DHCP服务
配置文件在这里
1 | vim /etc/dhcp/dhcpd.conf |
打开之后会有三行注释,我们初次学习配置的时候可以先不管它,只有服务真的跑起来并生效了我们才会进一步学习是吧。
在配置文件最后添加如下内容
1 | #设置DHCP于DNS服务器的动态信息更新模式。初学时完全可以不理这个选项,但是全局设置中一定要有这个选项,否则DHCP服务不能成功启动。 |
0X03 给特定客户分配特定地址
上面也说过,如果同一网络内有需要固定IP的设备,我们也可以通过DHCP来给他分配固定的IP。(就比如说那个有洁癖的同学)
首先要说一下DHCP识别主机的方式:
DHCP通过接入客户的网卡的MAC地址来判断客户,所以如果你的机器有两块网卡,并且两块网卡同时接入了网络,那么DHCP就会认为有两个设备接入了网络,并给你的机器分配两个IP
MAC地址并不是“苹果地址”。。。
MAC地址是“物理地址”,每块网卡在出厂的时候都会有一个全球独一无二的MAC地址,MAC地址是一个48位2进制的数字,通常表达为六段两位十六进制。
下面我们继续修改DHCP配置文件,在刚才的配置后面追加下面的内容
1 | host Client_C { #有一个主机,叫Client_C |
这样配置的话,不管何时,只要这个CLient_C接入到了这个网络中,那么它获取的IP就是固定的这一个,并不会变
然后重启一下DHCP服务就好了
1 | systemctl restart dhcpd.service |