Bootstrap

服务器DHCP配置IP分配方式

一、基本概念
1.1 DHCP 协议

DHCP(Dynamic Host Configuration Protocol),即动态主机配置协议,是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的 IP 地址和子网掩码。

1.2 IP 分配方式

1、手动分配

手动分配 IP 的分配方式是需要 DHCP 服务器管理员来具体定制的。

2、自动分配

自动分配 IP 的分配方式是在客户端从 DHCP 获取一个 IP 后,就会永久使用这个 IP 地址。

3、动态分配

动态分配 IP 的分配方式的话就很好理解,也就是客户端从 DHCP 获取一个 IP 后,并不会永久使用该 IP 地址,而是以租约的方式动态获取 IP 地址,如果租约到期则会释放该 IP 地址而供其他客户端使用。

二、部署规划

注:DHCP_Server 和 DHCP_Client 须处于同一个局域网内。

三、DHCP 部署
3.1 动态获取 IP
  1. 安装 DHCP Server

sudo apt install isc-dhcp-server

2、配置 DHCP Server 静态 IP

目的是为了 DHCP Server 的 IP 不发生变化,便于向其他客户端提供稳定服务。

# 安装 Netplan
sudo apt install -y netplan.io
# 修改配置文件
sudo vim /etc/netplan/01-xxxx.yaml
network:
  ethernets:
        ens33:
            dhcp4: no
            dhcp6: no
            addresses: [192.168.136.130/24]
            gateway4: 192.168.136.2
            nameservers:
                    addresses: [114.114.114.114,8.8.8.8]
  version: 2
# 应用配置(使其生效)
sudo netplan apply

3、配置 DHCP Server

sudo vim /etc/dhcp/dhcpd.conf
# 全局配置(若局部配置没设置则以全局配置为准)
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
...
# 局部配置(若局部配置已设置则以局部配置为准)
subnet 192.168.136.0 netmask 255.255.255.0 {         # 定义网络地址和子网掩码
       range 192.168.136.132 192.168.136.135;        # 指定IP地址池的范围
       option domain-name "zrs.com";                 # 域(比如访问www,就会自动补齐www.zrs.com)
       option domain-name-servers 192.168.136.130;   # DNS服务器(自建的DNS或所在地区的DNS)
       option subnet-mask 255.255.255.0;             # 子网掩码
       option routers 192.168.136.2;                 # 网关IP
       option broadcast-address 255.255.255.0;       # 广播地址
}
...

4、重启 DHCP Server

sudo systemctl restart isc-dhcp-server  # 启动
sudo systemctl enable isc-dhcp-server   # 开机自启
sudo systemctl status isc-dhcp-server   # 查看启动状态
3.2 自动获取 IP

在以上基础上,只需修改一下 DHCP 服务的配置即可实现 MAC-IP 的形式获取 IP 地址。

1、先获取客户端 MAC 地址

ifconfig/ipconfig

2、修改 DHCP Server 配置文件

sudo vim /etc/dhcp/dhcpd.conf
# 全局配置(若局部配置没设置则以全局配置为准)
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
...
# 局部配置(若局部配置已设置则以局部配置为准)
subnet 192.168.136.0 netmask 255.255.255.0 {         # 定义网络地址和子网掩码
       range 192.168.136.132 192.168.136.135;        # 指定IP地址池的范围
       option domain-name "zrs.com";                 # 域(比如访问www,就会自动补齐www.zrs.com)
       option domain-name-servers 192.168.136.130;   # DNS服务器(自建的DNS或所在地区的DNS)
       option subnet-mask 255.255.255.0;             # 子网掩码
       option routers 192.168.136.2;                 # 网关IP
       option broadcast-address 255.255.255.0;       # 广播地址
}
host ubuntu-app {
     hardware ethernet 00:0c:29:1a:74:a1;
     fixed-address 192.168.136.134;
}
# 说明
# 08:00:07:26:c0:a5:这是客户端服务器的MAC地址(即我们所说的物理地址)
# 192.168.136.133:这是我指定的IP地址(即这个MAC地址的服务器固定使用这个IP地址)

3、重启 DHCP Server

sudo systemctl restart isc-dhcp-server

接下来启动客户端,该客户端就会获得指定的 IP 地址。

注:不过要注意,在指定 IP 地址的时候,要确保这个 IP 没被其他客户端占用,否则会发生冲突,在指定之前可以先扫描一下所在内网 IP 的存活状态。

4、验证

注意:如果在本地虚拟机(如VMware),需要勾掉本地 DHCP 服务,以免对实验造成影响。

;