配置 DNS 服务器
DNS 概述
域名系统 (DNS) 是将域名解析为 IP 地址以便将流量路由到其目的地的标准协议。DNS 提供人类可读域名与其 IP 地址之间的转换。域名在分层树中定义,根后跟顶级和下一级域标签。
DNS 服务器存储域名的记录,并基于这些记录响应客户端的查询。服务器对于将其配置为名称服务器的域具有权威性。对于其他域,服务器可以充当缓存服务器,通过查询其他域名服务器来获取记录。
以下是虚拟世界中域名服务的关键属性:
-
应该可以配置多个域名服务器,为系统中生成的虚拟机提供名称解析服务。
-
应该可以将域名服务器配置为形成每个租户所需的 DNS 服务器层次结构。
-
这些层次结构可以独立于系统中存在的其他类似层次结构并完全隔离,或者它们可以为系统中存在的其他层次结构提供命名服务。
-
-
创建或销毁虚拟机时,应动态更新系统中生成的虚拟机的 DNS 记录。
-
该服务应该是可扩展的,以处理服务器的增加以及由此导致的系统中处理的虚拟机和 DNS 查询数量的增加。
在 Contrail 中定义多个虚拟域名服务器
Contrail 可以灵活地在系统中的每个域下定义多个虚拟域名服务器。每个虚拟域名服务器都是配置的 DNS 域的权威服务器。 图 1 显示了在 默认域中定义的虚拟 DNS 服务器示例,这些服务器为指定的 DNS 域提供命名服务。
IPAM 和虚拟 DNS
系统中的每个 IP 地址管理 (IPAM) 服务都可以引用配置的虚拟 DNS 服务器之一。生成的虚拟网络和虚拟机与相应 IPAM 中指定的 DNS 域相关联。为虚拟机配置了 DHCP 后,它们将在 DHCP 域名选项中接收域分配。图 2 显示了示例
DNS 记录类型
DNS 记录可以静态添加。系统当前支持 DNS 记录类型 A、CNAME、PTR 和 NS 。每条记录包括类型、类 (IN)、名称、数据和 TTL 值。有关记录类型的说明,请参阅 表 1 。
|
DNS 记录类型 |
描述 |
|---|---|
|
A |
用于将主机名映射到 IPv4 地址。名称是指虚拟机的名称,数据是虚拟机的IPv4地址。 |
|
CNAME |
为名称提供别名。名称是指虚拟机的名称,数据是虚拟机的新名称(别名)。 |
|
PTR |
它是一个指向记录的指针,提供从 IP 地址到名称的反向映射。名称是指 IP 地址,数据是虚拟机的名称。PTR 记录中的地址应是为引用此虚拟 DNS 服务器的 IPAM 之一中的 VN 配置的子网的一部分。 |
|
NS |
用于将子域委托给另一个 DNS 服务器。DNS 服务器可以是系统中定义的另一个虚拟 DNS 服务器,也可以是可通过基础架构访问的外部 DNS 服务器的 IP 地址。名称是指被委托的子域,数据是虚拟DNS服务器的名称或外部服务器的IP地址。 |
图 3 显示了 DNS 记录类型 NS 的示例用法。
示例用法
在用户界面上配置 DNS
可以使用用户界面或脚本配置 DNS。以下过程显示如何通过瞻博网络 Contrail 接口配置 DNS。
使用脚本配置 DNS
您可以使用 /opt/contrail/utils 目录中的 contrail-utils RPM/DEB 包中提供的脚本来配置 DNS。安装 contrail-utils RPM/DEB 软件包时,脚本将复制到 config_api_container 或配置节点。您可以从 config_api 容器或配置节点执行脚本。 表 6 中描述了脚本。
使用脚本配置 DNS 时,请注意以下注意事项:
-
DNS 不允许在名称中使用特殊字符,但 - (破折号) 和 .(句号)。系统将丢弃名称中包含特殊字符的任何记录。
-
仅当与 IPAM 关联的虚拟网络中 没有 虚拟机实例时,才应编辑 IPAM DNS 模式和关联。
|
行动 |
脚本 |
|---|---|
|
添加虚拟 DNS 服务器 |
脚本: 示例用法: |
|
删除虚拟 DNS 服务器 |
脚本: 示例用法: |
|
添加 DNS 记录 |
脚本: 示例用法: |
|
删除 DNS 记录 |
脚本: 示例用法: |
|
将虚拟 DNS 服务器与 IPAM 关联 |
脚本: 示例用法: |
|
取消虚拟 DNS 服务器与 IPAM 的关联 |
脚本: 示例用法: |





