centos搭建dhcp服务
发表于更新于
字数总计:1.5k阅读时长:6分钟阅读量: 安徽
centos搭建dhcp服务
前言
dhcp是什么意思?
dhcp即动态主机设置协议,是一个局域网的网络协议,使用UDP协议工作。主要是给网络快速自动地分配IP地址,DHCP能够帮助我们将IP地址和相关IP信息分配给网络中计算机。
dhcp还可以给设备上配置正确的子网掩码,默认网关和DNS服务器信息。由于这些功能,现在几乎每台连接到网络的设备都配置了dhcp。
DHCP通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
dhcp有以下四个功能:
保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
DHCP应当可以给用户分配永久固定的IP地址。
DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。
DHCP服务器应当向现有的BOOTP客户端提供服务。 dhpc的工作原理是将IP地址和IP信息“出租”给网络客户端一段时间。因此DHCP客户端必须通过一系列DHCP消息与DHCP服务器进行交互,主要包括DHCP
DISCOVER,DHCP OFFER,DHCP REQUEST和DHCP ACK。
好了,废话少说,我们直接开干

下载dhcp服务
配置网卡
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| [root@controller ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:c9:be:62 brd ff:ff:ff:ff:ff:ff inet 192.168.10.11/24 brd 192.168.10.255 scope global dynamic ens33 valid_lft 85476sec preferred_lft 85476sec inet6 fe80::20c:29ff:fec9:be62/64 scope link valid_lft forever preferred_lft forever [root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="dhcp" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="f7c83436-f055-442c-9425-64a1209d659e" DEVICE="ens33" ONBOOT="yes" IPADDR="192.168.10.11" PREFIX="24" GATEWAY="192.168.10.2"
|
网卡配置完成后我们直接下载服务
1
| [root@controller ~]# yum install dhcp -y
|
步骤没问题哦,如果你有报错会有两个原因
1.有网环境:网卡配置出错,未能连接外网
2.无外网环境:未配置本地yum源
- 其实有没有网配置本地yum都可以下载(本来想找外链,想想质量分还是自己写吧)
配置本地yum源
先挂镜像
1 2 3 4
| [root@controller ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 写保护,将以只读方式挂载 [root@controller ~]# mkdir /opt/centos [root@controller ~]# cp /mnt/* /opt/centos/
|
再写yum.repo文件
1 2 3 4 5 6 7
| [root@controller ~]# vim /etc/yum.repos.d/centos.repo
[centos] name=centos baseurl=file:///opt/centos gpgcheck=0 enabled=1
|
1 2 3
| [root@controller ~]# yum clean all && yum repolist 源标识 源名称 状态 centos centos 4,070
|
ok,回去下载吧
配置dhcp文件
复制一个模板
1 2 3
| [root@controller ~]# find / -name dhcpd.conf.example /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example [root@controller ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
|
编辑文件
vim /etc/dhcp/dhcpd.conf
配置文件中你会看到许多这种
subnet 192.168.10.0 netmask 255.255.255.0{
}
这个是你要分配的子网,他跟你网卡的网段是一样的,如果你要分配两个或者多个子网的时候你需要有对应数量的网卡哦那么到时候配置文件就是这样的
subnet 192.168.10.0 netmask 255.255.255.0{
}
subnet 192.168.20.0 netmask 255.255.255.0{
}
subnet 192.168.30.0 netmask 255.255.255.0{
}
那么我这里仅作例子只写一个
1 2 3 4 5 6 7 8 9
| subnet 192.168.10.0 netmask 255.255.255.0{ range 192.168.10.50 192.168.10.100; option domain-name-servers 8.8.8.8; option domain-name "internal.example.org"; option routers 192.168.10.2; option broadcast-address 10.5.5.31; default-lease-time 600; max-lease-time 7200; }
|
关于配置文件的解读呢,我偷了张图出处

开启服务
1 2 3
| [root@controller ~]# systemctl restart dhcpd [root@controller ~]# systemctl enable dhcpd Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
|
测试
首先我们要将vmware的dhcp关掉

下面来到客户机也就是compute
没别的意思,打开dhcp就行了
BOOTPROTO=”dhcp”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| [root@compute ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="dhcp" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="d5677465-8888-4277-abff-db622fefb6bd" DEVICE="ens33" ONBOOT="yes" IPV6_PRIVACY="no"
|
然后重启网卡
再看ip

ok啦
1 2 3 4 5 6 7 8 9 10 11
| [root@compute ~]# ping 192.168.10.11 PING 192.168.10.11 (192.168.10.11) 56(84) bytes of data. 64 bytes from 192.168.10.11: icmp_seq=1 ttl=64 time=0.364 ms 64 bytes from 192.168.10.11: icmp_seq=2 ttl=64 time=0.488 ms 64 bytes from 192.168.10.11: icmp_seq=3 ttl=64 time=0.527 ms 64 bytes from 192.168.10.11: icmp_seq=4 ttl=64 time=0.354 ms ^C --- 192.168.10.11 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3001ms rtt min/avg/max/mdev = 0.354/0.433/0.527/0.077 ms [root@compute ~]#
|
总结
那就到这啦,请叫我不待,拜拜~
你是不是很好奇为什么两台机器明明没什么关联他dhcp分配却能得到ip呢,其实选择相同的网卡也就相当与物理环境中使用同一根网线相连或在一个局域网中,那么我们的机器打开dhcp后会自动搜索局域网内的dhcp服务,发送请求这个时候他没有ip也就是0.0.0.0,说白了就是到处发,完事dhcp服务器收到请求会回复他,并且附上ip大礼包~~


不待
Backend, AI & DevOps Sharing