DHCP的搭建
一 准备实验环境
两台机器,网络连接模式自定义为VMnet*模式
关闭防火墙和SElinux
[root@master ~]# systemctl stop firewalld.service # 关闭防火墙
[root@master ~]# systemctl disable firewalld.service
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
# 关闭selinux
[root@master ~]# setenforce 0 #临时关闭selinux
[root@master ~]# vim /etc/selinux/config #永久关闭selinux
SELINUX=disabled
## 关闭VMwaer虚拟编辑器的DHCP功能

二 DHCP相关信息
软件名
dhcp(DHCP服务软件包 )
dhcp-common (DHCP命令软件包)默认已安装
服务名
dhcpd (DHCP服务名)
dhcraley (DHCP中继服务名)
端口号
udp67 (作为客户端的目标端口,接受客户端的DHCP请求)
udp68 (作为服务器的源端口,用来向客户端回复数据包)
配置文件
dhcpd /etc/dhcp/dhcpd.conf (默认此文件是空的,需要找模板文件重新生成)
dhcp的模板配置文件
dhcrelay /etc/sysconfig/dhcrelay # 该文件是中继配置文件
三 安装
[root@master ~]# rpm -q dhcp #检查是否已安装DHCP
未安装软件包 dhcp
[root@master ~]# rpm -q dhcp-common #系统默认已安装
dhcp-common-4.3.6-49.el8.noarch
[root@master ~]# yum install dhcp* --nobest #'--nobest' 来不只使用软件包的最佳候选
文件/etc/dhcp/dhcpd.conf中为空文件,需要找到真正的配置文件(/usr/share/doc/dhcp-server/dhcpd.conf.example)
[root@master ~]# cp -a /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖'/etc/dhcp/dhcpd.conf'?y
DHCP配置文件详解
subnet 192.168.1.0 netmask 255.255.255.0 { #声明要分配的网段和子网掩码
range 192.168.1.23 192.168.1.254; #声明可以ip地址池
option dmaon-name 'whd123.com' ; #设置dns域
option dmaon-name-servers 8.8.8.8; #设置dns服务器IP地址
option routers 192.168.1.2; #设置网关地址
option broadcast-addresses 192.168.1.255; #设置广播地址(可以不写)
default-lease-time 600; #默认租约(s)
max-lease-time 7200; #最大租约 (s)
{
DHCP配置部署
DHCP基本功能实验
[root@master ~]# cp -a /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak #配置文件备份
先将其他的subnet注释掉,只留最后一个
[root@master ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.23 192.168.1.254;
# option domain-name-servers ns1.internal.example.org;
# option domain-name "whd123456.org";
# option routers 192.168.1.2;
# option broadcast-address 10.5.5.31;
default-lease-time 600;
max-lease-time 7200;
}
[root@master ~]# systemctl start dhcpd.service #启动DHCP服务
[root@master ~]# systemctl status dhcpd.service #查看服务状态
[root@master ~]# netstat -tlun #查看端口
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::111 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
udp 0 0 192.168.122.1:53 0.0.0.0:*
udp 0 0 0.0.0.0:67 0.0.0.0:*
udp 0 0 0.0.0.0:67 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 127.0.0.1:323 0.0.0.0:*
udp6 0 0 :::111 :::*
udp6 0 0 ::1:323 :::*
在另一台机器上设置IP 使用dhcp设置获得IP地址
~~~1
[root@node02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=ens160
UUID=e4ee5f04-9076-4136-a5fc-9b8fc1d3968a
DEVICE=ens160
ONBOOT=yes
PREFIX=24
GATEWAY=192.168.1.2
DNS1=8.8.8.8
IPV6_DISABLED=yes
[root@node02 ~]# nmcli connection up ens160 #重启服务
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/12)
[root@node02 ~]# ip a #查看IP
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:0c:54:0e brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.1.33/24 brd 192.168.1.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet 192.168.1.23/24 brd 192.168.1.255 scope global secondary dynamic noprefixroute ens160
valid_lft 548sec preferred_lft 548sec
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:09:4c:c5 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
验证(服务端ping)
[root@master ~]# ping 192.168.1.23
PING 192.168.1.23 (192.168.1.23) 56(84) bytes of data.
64 bytes from 192.168.1.23: icmp_seq=1 ttl=64 time=0.690 ms
64 bytes from 192.168.1.23: icmp_seq=2 ttl=64 time=0.377 ms
64 bytes from 192.168.1.23: icmp_seq=3 ttl=64 time=0.331 ms
....................................................
................................