VMware云平台前置——DNS服务器部署
VMware云平台与DNS的关联
- 名称解析的必要性
VMware vSphere(包括vCenter Server、ESXi主机等)通常需要DNS来解析主机名和IP地址。
如果没有正确配置DNS,可能会导致组件间通信失败或不稳定,影响功能如集群管理、vMotion、vSAN等。 - vCenter Server依赖
vCenter Server的部署需要解析其FQDN(完全限定域名)。
建议在DNS中提前设置vCenter和其他关键组件的正向和反向解析记录,以避免在安装和配置中出错。 - 多站点或分布式部署
如果你的VMware环境是跨站点或多数据中心的,DNS可以帮助简化管理和服务发现。 - 最佳实践
配置DNS时,确保有一个稳定的、低延迟的DNS服务器。
建议使用内部DNS服务器,并确保所有VMware组件(如ESXi主机、vCenter Server、NSX、vRealize Suite等)能正确解析名称。
如果DNS服务暂时不可用,可以通过IP地址完成一些基础操作,但长期来看,会影响管理效率和系统功能。
CentOS 7 配置 DNS 服务器教程
在 Linux 系统上配置 DNS 服务器,可以使用 BIND(Berkeley Internet Name Domain)。以下是详细步骤:
前提条件
- 一台运行 CentOS 7 的服务器。
- 拥有 root 权限。
- 规划好要配置的域名(例如:
ceshi.com)和相关的 IP 地址。
1. 规划当前环境
| 用处 | 主机名 | ip地址 |
|---|---|---|
| DNS和NTP服务器 | ceshi | 192.168.60.10 |
| ESXI主机1 | esxi1 | 192.168.60.101 |
| ESXI主机2 | esxi2 | 192.168.60.102 |
| Vcenter | vcenter | 192.168.60.100 |
根据该IP表创建DNS服务器,同时配置上可以使用的yum源以方便下面安装所需软件。
2. 安装 BIND 软件包
使用以下命令安装 BIND:
sudo yum install bind -y

3. 配置 BIND 主配置文件
编辑主配置文件
BIND 的主配置文件路径为 /etc/named.conf。使用以下命令编辑文件:
sudo vim /etc/named.conf
修改允许的查询范围
在文件中找到 options 部分
options {
listen-on port 53 { 127.0.0.1; }; # 只监听本地地址127.0.0.1的端口53(DNS默认端口)
listen-on-v6 port 53 { ::1; }; # 只监听IPv6本地地址::1的端口53(DNS默认端口)
directory "/var/named"; # 指定BIND数据库文件和其他数据文件的存放目录
dump-file "/var/named/data/cache_dump.db"; # 存储缓存数据的文件路径
statistics-file "/var/named/data/named_stats.txt"; # 存储BIND服务器统计信息的文件路径
memstatistics-file "/var/named/data/named_mem_stats.txt"; # 存储BIND服务器内存使用情况统计信息的文件路径
recursing-file "/var/named/data/named.recursing"; # 存储递归查询状态的文件路径
secroots-file "/var/named/data/named.secroots"; # 存储DNSSEC根密钥文件的路径
allow-query { localhost; }; # 只允许来自localhost(本机)的查询
};
主要修改以下两句,并且修改为以下内容:
listen-on port 53 { any; };
allow-query { any; };
#本次修改意味着 DNS 服务器不仅在本地接口上监听,还会接受来自任何外部主机的查询请求。
#因此,如果是生产环境中并且想要限制某些网络的访问,通常会将 allow-query 改为特定的 IP 地址或网络范围,而不是 { any; }。

修改区域配置文件(方法一)
BIND 的个预配置文件文件路径为 /etc/named.rfc1912.zones。使用以下命令编辑文件:
sudo vim /etc/named.rfc1912.zones
在文件底部添加如下内容,写入你需要的正向反向解析域:
zone "ceshi.com" IN {
type master; # 该服务器为主服务器,负责管理 ceshi.com 区域的数据
file "ceshi.com.zone"; # 存储 ceshi.com 域名解析记录的文件
allow-update { none; }; # 不允许动态更新,不接受任何更新请求
};
zone "60.168.192.in-addr.arpa" IN { #192.168.60.0/24 对应反向区域为 60.168.192.in-addr.arpa。
#若 IP 地址超出该范围,解析将失败。
type master; # 该服务器为主服务器,负责管理 60.168.192.in-addr.arpa 区域的反向解析数据
file "ceshi.com.loopback"; # 存储 60.168.192.in-addr.arpa 区域反向解析记录的文件
allow-update { none; }; # 不允许动态更新,不接受任何更新请求
};

修改区域配置文件(方法二)
直接在主配置文件named.conf写入正反向解析
zone "ceshi.com" {
type master;
file "/var/named/ceshi.com.zone";
};
zone "60.168.192.in-addr.arpa" IN {
type master;
file "ceshi.com.loopback";
};
补充
文件比较:named.conf vs named.rfc1912.zones
1. named.conf
概述:
named.conf是 BIND DNS 服务器的主配置文件。- 它包含了所有的 DNS 区域配置、服务器设置、日志设置等。
named.conf文件在启动 BIND 服务时被加载,定义了整个 DNS 服务的工作方式。- 在这个文件中可以配置正向和反向区域、DNS 服务器的选项、访问控制、缓存设置等。
特点:
- 主配置文件:包含 DNS 服务器的全局设置,所有区域和服务器设置都需要在这个文件中配置。
- 灵活配置:你可以在
named.conf中配置自定义的域名区域、转发器、区域文件的路径等。 - 包含其他配置文件:可以通过
include指令包含其他配置文件,如named.rfc1912.zones,以便将常用配置集中管理。 - 优先级较高:
named.conf中的配置会覆盖其他包含文件中的配置,具有最高优先级。
2. named.rfc1912.zones
概述:
named.rfc1912.zones文件是一个预配置文件,通常包含一些常见的 DNS 区域配置,例如回环地址和反向解析区域等。- 它通常通过
named.conf文件的include指令被包含进来。 - 这个文件的目的是简化和集中管理常见的 DNS 配置。
特点:
- 常见配置集中管理:用于存放一些常见的、标准的 DNS 区域配置,避免在主配置文件中冗长的设置。
- 默认配置:包括一些标准的 DNS 区域设置(例如回环区域和反向解析区域),便于管理。
- 可扩展性:可以通过
include指令将named.rfc1912.zones文件包含到named.conf中,这样可以减少named.conf文件的复杂性。 - 不适用于复杂配置:通常不用于复杂或特定的区域配置,而是用于常规的标准区域,如反向解析和回环地址等。
3. 区别总结
| 特点 | named.conf |
named.rfc1912.zones |
|---|---|---|
| 功能 | 主配置文件,管理 DNS 服务的所有配置 | 用于集中管理常见的标准 DNS 区域配置 |
| 包含配置 | 可以包含所有 DNS 区域和服务器设置,支持高级自定义配置 | 存放常见的 DNS 区域配置,如回环地址和反向解析等 |
| 灵活性 | 非常灵活,可以配置任何自定义的区域和选项 | 主要用于标准的、默认的配置,灵活性较低 |
| 优先级 | 配置项的优先级高于 named.rfc1912.zones 中的配置 |
配置项通常是默认的,不覆盖主配置文件中的设置 |
4. 创建区域文件
进入 /var/named 目录
sudo cd /var/named/
创建你的刚刚在named.rfc1912.zones定义的正向反向解析区域文件:
sudo cp -p named.localhost ceshi.com.zone
sudo cp -p named.loopback ceshi.com.loopback
#named.localhost和named.loopback分别为正向解析和反向解析的模版文件
进入ceshi.com.zone填写以下内容(将 ntp等 和 IP 地址替换为你的实际值):
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
ntp A 192.168.60.10
vcenter A 192.168.60.100
esxi1 A 192.168.60.101
esxi2 A 192.168.60.102
进入ceshi.com.loopback填写以下内容(将 域名 和 主机号 替换为你的实际值):
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
PTR localhost.
10 PTR ntp.ceshi.com. #在域名后一定要加点
100 PTR vcenter.ceshi.com.
101 PTR esxi1.ceshi.com.
102 PTR esxi2.ceshi.com.
5. 检测文件是否正确修改
确保区域文件和相关目录的权限正确:
named-checkzone ceshi.com /var/named/ceshi.com.zone #检测配置文件是否正常
named-checkzone 60.168.192.in-addr.arpa /var/named/ceshi.com.loopback #检测区域文件是否正常
正常的话返回如下图结果

6. 启用 BIND,关闭防火墙
启动 BIND 服务并设置开机自启:
sudo systemctl start named
sudo systemctl enable named
sudo systemctl status named
关闭防火墙
systemctl stop firewalld #停止服务“firewalld”
setenforce 0 #关闭防火墙
如果不想直接关闭防火墙的话可以运行如下命令,进行定向放通
sudo firewall-cmd --permanent --add-port=53/tcp
sudo firewall-cmd --permanent --add-port=53/udp
sudo firewall-cmd --reload
7. 安装DNS测试根据
centos7在最小化安装的情况下可能没有nslookup和dig的包:
sudo yum install -y bind-utils
8. 测试 DNS 服务器
使用 dig 或 nslookup 测试你的 DNS 服务器:
测试域名解析
nslookup ceshi.com
测试子域名解析
nslookup ntp.ceshi.com

IP地址反向解析
nslookup 192.168.60.10

DIG正反向解析测试
dig ceshi.com
dig -x 192.168.60.10
结果如下图


总结
以上步骤完成后,你已经成功在 CentOS 7 上配置了一个基本的 DNS 服务器。在后面安装Vcenter时Vcenter安装程序就会根据DNS自动输入域名。

浙公网安备 33010602011771号