Ubuntu 18.04 搭建 DHCP 服务


前言

最近在公司进行边缘服务器的部署工作,借此机会和大家交流一下部署中的一个技术环节——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 已实现。

在这里插入图片描述

总结

以上就是关于 DHCP 服务的部署,以及客户端 IP 地址获取的方式配置,经过实际测试验证,最终实现了动态&&自动获取 IP 地址。如果大家实在本地虚拟机(如VMware),需要勾掉本地 DHCP 服务,以免对实验造成影响。
在这里插入图片描述
<点击跳转至开头>

  • 5
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云计算-Security

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值