前言
最近在公司进行边缘服务器的部署工作,借此机会和大家交流一下部署中的一个技术环节——DHCP 服务器的搭建,为什么要多此一举搭建这个服务呢,用现成的他不香吗?其实,这个取决于你的实际应用场景,如果你部署的边缘服务器是批量的,你是怎么识别每台边缘服务器的 IP 呢,可能你会想到使用一些内网 IP 扫描工具来进行扫描,但是我们是以动态的方式来获取 IP 的,如果你的客户端服务器重启,那你的 IP 可能就会发生变化,即便通过搭建内网 DNS 的方式也需要明确你的客户端服务器的 IP,以及这个 IP 所对应的服务器跑的应用程序,那你的内网 DNS 才有意义。本文将介绍如何部署 DHCP 服务、如何通过 MAC 来绑定具体 IP。
一、基本概念
1.1 DHCP 协议
来自百度百科的解释
DHCP(Dynamic Host Configuration Protocol),即动态主机配置协议,是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的 IP 地址和子网掩码。默认情况下,DHCP 作为 Windows Server 的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。
1.2 IP 分配方式
1、手动分配
手动分配 IP 的分配方式是需要 DHCP 服务器管理员来具体定制的。
2、自动分配
自动分配 IP 的分配方式是在客户端从 DHCP 获取一个 IP 后,就会永久使用这个 IP 地址。
3、动态分配
动态分配 IP 的分配方式的话就很好理解,也就是客户端从 DHCP 获取一个 IP 后,并不会永久使用该 IP 地址,而是以租约的方式动态获取 IP 地址,如果租约到期则会释放该 IP 地址而供其他客户端使用。
二、部署规划
OS | 应用 | 备注 |
---|---|---|
Ubuntu18.04(192.168.136.130) | DHCP | 服务端 |
Ubuntu18.04(192.168.136.x) | - | 客户端 |
… | - | 客户端 |
注:DHCP_Server 和 DHCP_Client 须处于同一个局域网内。
三、DHCP 部署
3.1 动态获取 IP
1、安装 DHCP Server
sudo apt install -y 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 # 查看启动状态
5、客户端如何获取 IP ?
DHCP 服务器搭建好后,启动 DHCP_Client(客户端),向客户端发出请求,最后服务端响应客户端的请求并给客户端动态分配 IP 地址,具体的原理这里不做介绍,大家可以自行查阅一下相关资料。下图为动态获取 IP 的结果验证:
3.2 自动获取 IP
在以上基础上,只需修改一下 DHCP 服务的配置即可实现 MAC-IP 的形式获取 IP 地址。
1、先获取客户端 MAC 地址
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、验证
下图可看到,通过客户端 MAC 指定的固定 IP 已实现。
文章来源:https://www.toymoban.com/news/detail-417572.html
总结
以上就是关于 DHCP 服务的部署,以及客户端 IP 地址获取的方式配置,经过实际测试验证,最终实现了动态&&自动获取 IP 地址。如果大家实在本地虚拟机(如VMware),需要勾掉本地 DHCP 服务,以免对实验造成影响。
<点击跳转至开头>文章来源地址https://www.toymoban.com/news/detail-417572.html
到了这里,关于Ubuntu 18.04 搭建 DHCP 服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!