配置DHCP
先给server和client加一个VMnet1(仅主机模式)

同时因为我们自己要配dhcp,所以要把vmnet1的dhcp关掉

配置DHCP服务流程
1. 先配置一个固定的ip地址
bash
[root@server ~ 20:08:57]# nmcli connection
NAME UUID TYPE DEVICE
Wired connection 1 0b3cd631-c756-3179-be17-1566c419a902 ethernet ens33
ens32 41804fd8-9a16-47cb-96fb-5d627b9b8ab6 ethernet ens32
[root@server ~ 21:07:33]# nmcli connection delete Wired\ connection\ 1
Connection 'Wired connection 1' (0b3cd631-c756-3179-be17-1566c419a902) successfully deleted.
[root@server ~ 21:07:41]# nmcli connection
NAME UUID TYPE DEVICE
ens32 41804fd8-9a16-47cb-96fb-5d627b9b8ab6 ethernet ens32
[root@server ~ 21:07:47]# nmcli connection add type ethernet ifname ens33 con-name ens33 ipv4.method manual ipv4.addresses 10.1.1.10/24
Connection 'ens33' (66ae2751-4903-467f-9da2-4b13ade3e29f) successfully added.
[root@server ~ 21:08:09]# ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
ens32 UP 10.1.8.128/24 10.1.8.10/24 fe80::20c:29ff:febc:b536/64
ens33 UP 10.1.1.10/24 fe80::8f35:1b44:7601:ed1a/64
| 参数 | 含义 |
|---|---|
nmcli |
NetworkManager 的命令行管理工具,用于配置网络连接 |
connection add |
核心子命令,功能是新增一个网络连接配置 |
type ethernet |
指定连接类型为以太网(有线网络) |
ifname ens33 |
指定绑定的网卡设备名称为 ens33(虚拟机常用网卡名) |
con-name ens33 |
设置连接配置的名称为 ens33(可自定义,建议与网卡名一致方便管理) |
ipv4.method manual |
指定 IPv4 地址获取方式为手动配置(静态 IP) ,与之对应的是 auto(DHCP 自动获取) |
ipv4.addresses 10.1.1.10/24 |
设置静态 IPv4 地址和子网掩码:- IP 地址:10.1.1.10- 子网掩码:/24 等价于 255.255.255.0 |
2. 安装软件包
bash
[root@server ~ 19:29:23]# yum install -y dhcp
3. 查看下载的dhcp里包含那些文件
bash
[root@server ~ 19:30:29]# rpm -qc dhcp
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases
4. 可以看到dhcp.conf文件里只有一些备注,因为还没有开始配置dhcp,相当于只是下载了一个外壳,还没有开始配置
bash
[root@server ~ 19:30:49]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
5. 复制dhcp.conf
bash
[root@server ~ 09:24:48]# /bin/cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
| 部分 | 作用 |
|---|---|
/bin/cp |
指定使用cp命令的绝对路径(避免环境变量问题),核心功能是复制文件 |
/usr/share/doc/dhcp*/dhcpd.conf.example |
源文件:DHCP 安装后自带的示例配置文件dhcp*是通配符,匹配dhcp开头的目录(如dhcp-4.2.5),适配不同版本的 DHCP 包 |
/etc/dhcp/dhcpd.conf |
目标文件:DHCP 服务(dhcpd)的核心配置文件,服务启动时会读取这个路径 |
6. 配置服务器,例如修改服务器配置文件
bash
[root@server ~ 19:31:08]# vim /etc/dhcp/dhcpd.conf
:set nu
gg光标定位到行首,然后d46G,删除前1-46行
:11,28d 删除11-28行
:15,$d 删除15-最后行
:%s/10.5.5/10.1.1/g,查看替换
最终效果如下:
subnet 10.1.1.0 netmask 255.255.255.0 {
range 10.1.1.101 10.1.1.130;
#option domain-name-servers 223.5.5.5,223.6.6.6;
option domain-name "migaomei.cloud";
#option routers 10.1.1.2;
option broadcast-address 10.1.1.255;
default-lease-time 600;
max-lease-time 7200;
}
7. 启用服务并设置开机自启动
bash
[root@server ~ 09:20:24]# systemctl enable dhcpd --now
8. 设置防火墙
bash
[root@server ~ 09:42:16]# systemctl disable firewalld --now
9. 客户端验证
bash
[root@client ~ 09:01:35]# nmcli c
NAME UUID TYPE DEVICE
ens32 41804fd8-9a16-47cb-96fb-5d627b9b8ab6 ethernet ens32
Wired connection 1 ae57b862-5db5-365d-82f9-888f5cb10b80 ethernet ens33
[root@client ~ 09:05:35]# ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
ens32 UP 10.1.8.11/24 fe80::20c:29ff:fe1a:e4b0/64
ens33 UP 10.1.1.101/24 fe80::c516:99d:ff41:72d3/64
10. 根据mac地址绑定IP
例如00:0c:29:1a:e4:ba 绑定为10.1.1.11
先看一下硬件mac地址:
bash
[root@client ~ 09:05:42]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:1a:e4:b0 brd ff:ff:ff:ff:ff:ff
3: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:1a:e4:ba brd ff:ff:ff:ff:ff:ff
DHCP 服务配置文件中的主机绑定条目,作用是为指定 MAC 地址的主机分配固定的 IP 地址
bash
[root@server ~ 09:25:55]# vim /etc/dhcp/dhcpd.conf
subnet 10.1.1.0 netmask 255.255.255.0 {
range 10.1.1.101 10.1.1.130;
#option domain-name-servers 223.5.5.5,223.6.6.6;
option domain-name "migaomei.cloud";
#option routers 10.1.1.2;
option broadcast-address 10.1.1.255;
default-lease-time 600;
max-lease-time 7200;
}
host fantasia {
hardware ethernet 00:0c:29:1a:e4:ba;
fixed-address 10.1.1.11;
}
| 参数 | 作用 | 注意事项 |
|---|---|---|
host fantasia |
定义主机条目名称,仅用于配置文件可读性,可自定义 | 名称不能重复 |
hardware ethernet |
指定主机的物理 MAC 地址 | 格式为 xx:xx:xx:xx:xx:xx,区分大小写 |
fixed-address |
指定为该主机分配的固定 IP 地址 | 必须在 DHCP 服务的地址池范围内,且未被占用 |
bash
[root@server ~ 09:20:19]# systemctl restart dhcpd
激活Wired connection 1 的网络连接配置文件**:**
bash
[root@client ~ 09:19:39]# nmcli connection up Wired\ connection\ 1 #这条命令的作用是激活名为 Wired connection 1 的网络连接配置文件
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)
客户端验证:
bash
[root@client ~ 09:22:06]# ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
ens32 UP 10.1.8.11/24 fe80::20c:29ff:fe1a:e4b0/64
ens33 UP 10.1.1.11/24 fe80::c516:99d:ff41:72d3/64
UNKNOWN 127.0.0.1/8 ::1/128
ens32 UP 10.1.8.11/24 fe80::20c:29ff:fe1a:e4b0/64
ens33 UP 10.1.1.11/24 fe80::c516:99d:ff41:72d3/64