配置 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 地址。 |
别名头像 |
提供名称的别名。名称是指虚拟机的名称,数据是虚拟机的新名称(别名)。 |
Ptr |
指向记录的指针,它提供从 IP 地址到名称的反向映射。名称是指 IP 地址,数据是虚拟机的名称。PTR 记录中的地址应该是为引用此虚拟 DNS 服务器的其中一个 IPAM 中的 VN 配置的子网的一部分。 |
Ns |
用于将子域委派给其他 DNS 服务器。DNS 服务器可以是系统中定义的另一个虚拟 DNS 服务器,也可以是通过基础结构访问的外部 DNS 服务器的 IP 地址。名称是指被委派的子域,数据是虚拟 DNS 服务器的名称或外部服务器的 IP 地址。 |
图 3 显示了 NS 的 DNS 记录类型的用法示例。

在用户界面上配置 DNS
可以使用用户界面或使用脚本配置 DNS。以下过程说明如何通过瞻博网络 Contrail 界面配置 DNS。
使用脚本配置 DNS
您可以使用 / opt/contrail/utils 目录中的 contrail-utils RPM/DEB 软件包中提供的脚本来配置 DNS。当您安装 contrail-utils RPM/DEB 软件包时,脚本会复制到 config_api_container 或 config 节点。您可以从config_api容器或配置节点执行脚本。 表 6 中描述了这些脚本。
使用脚本配置 DNS 时,请注意以下注意事项:
DNS 不允许在名称中使用特殊字符,-(破折号)和 .(句号)。名称中包含特殊字符的任何记录都将被系统丢弃。
仅当与 IPAM 关联的虚拟网络中 没有 虚拟机实例时,才应编辑 IPAM DNS 模式和关联。
行动 |
脚本 |
---|---|
添加虚拟 DNS 服务器 |
脚本: 示例用法: |
删除虚拟 DNS 服务器 |
脚本: 示例用法: |
添加 DNS 记录 |
脚本: 示例用法: |
删除 DNS 记录 |
脚本: 示例用法: |
将虚拟 DNS 服务器与 IPAM 关联 |
脚本: 示例用法: |
取消虚拟 DNS 服务器与 IPAM 的关联 |
脚本: 示例用法: |