Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

配置 DNS 服务器

DNS 概述

域名系统 (DNS) 是将域名解析为 IP 地址的标准协议,以便将流量路由到其目标。DNS 提供人类可读域名与其 IP 地址之间的转换。域名在分层树中定义,根后跟顶级和下一级域标签。

DNS 服务器存储域名的记录,并根据这些记录响应来自客户端的查询。对于配置为名称服务器的域,服务器具有权威性。对于其他域,服务器可以充当缓存服务器,通过查询其他域名服务器来获取记录。

以下是虚拟世界中域名服务的关键属性:

  • 应该可以配置多个域名服务器,以便为系统中生成的虚拟机提供名称解析服务。

  • 应该可以配置域名服务器以形成每个租户所需的 DNS 服务器层次结构。

    • 层次结构可以是独立的,并且与系统中存在的其他类似层次结构完全隔离,也可以为系统中存在的其他层次结构提供命名服务。

  • 创建或销毁虚拟机时,应动态更新系统中生成的虚拟机的 DNS 记录。

  • 该服务应具有可扩展性,以处理服务器数量的增加以及由此导致的系统中处理的虚拟机和 DNS 查询数量的增加。

在 Contrail 中定义多个虚拟域名服务器

Contrail 提供了在系统中的每个域下定义多个虚拟域名服务器的灵活性。每个虚拟域名服务器都是所配置 DNS 域的权威服务器。 图 1 显示了在默认域中定义的虚拟 DNS 服务器的示例,这些服务器为指示的 DNS 提供名称服务。

图 1:DNS 服务器示例 DNS Servers Examples

IPAM 和虚拟 DNS

系统中的每个 IP 地址管理 (IPAM) 服务都可以引用配置的虚拟 DNS 服务器之一。生成的虚拟网络和虚拟机与相应 IPAM 中指定的 DNS 域相关联。使用 DHCP 配置虚拟机后,它们会在 DHCP 域名选项中接收域分配。示例如图 2 所示

图 2:IPAM 和虚拟 DNS IPAM and Virtual DNS

DNS 记录类型

可以静态添加 DNS 记录。系统中当前支持 DNS 记录类型 A、CNAME、PTRNS 。每条记录都包括类型、类 (IN)、名称、数据和 TTL 值。有关记录类型的说明,请参阅 表 1

表 1:支持的 DNS 记录类型

DNS 记录类型

描述

A

用于将主机名映射到 IPv4 地址。名称是指虚拟机的名称,数据是虚拟机的 IPv4 地址。

别名头像

提供名称的别名。名称是指虚拟机的名称,数据是虚拟机的新名称(别名)。

Ptr

指向记录的指针,它提供从 IP 地址到名称的反向映射。名称是指 IP 地址,数据是虚拟机的名称。PTR 记录中的地址应该是为引用此虚拟 DNS 服务器的其中一个 IPAM 中的 VN 配置的子网的一部分。

Ns

用于将子域委派给其他 DNS 服务器。DNS 服务器可以是系统中定义的另一个虚拟 DNS 服务器,也可以是通过基础结构访问的外部 DNS 服务器的 IP 地址。名称是指被委派的子域,数据是虚拟 DNS 服务器的名称或外部服务器的 IP 地址。

图 3 显示了 NS 的 DNS 记录类型的用法示例。

图 3:NS 记录类型的 Example Usage for NS Record Type用法示例

在用户界面上配置 DNS

可以使用用户界面或使用脚本配置 DNS。以下过程说明如何通过瞻博网络 Contrail 界面配置 DNS。

  1. 访问 配置> DNS > 服务器以创建或删除虚拟 DNS 服务器和记录。

    此时将显示 “配置 DNS 记录 ”页面;参见 图 4

    图 4:配置 DNS 记录 Configure DNS Records
  2. 若要添加新的 DNS 服务器,请单击 “创建 ”按钮。

    “添加 DNS ”窗口中输入 DNS 服务器信息;参见 图 5

    图 5:添加 DNS Add DNS

    填写新服务器的字段;参见 表 2

    表 2:添加 DNS 字段

    领域

    描述

    服务器名称

    输入此服务器的名称。

    域名

    输入此服务器的域名称。

    生存时间

    在几秒钟内输入 TTL

    下一个 DNS 服务器

    如果无法在此服务器上处理 DNS 请求,请从列表中选择要处理的下一个 DNS 服务器的名称,或者 选择“无”。

    负载均衡顺序

    从列表中选择负载均衡顺序 - 随机、固定、轮循机制。当名称具有多个匹配的记录时,配置的记录顺序将确定记录在响应中的发送顺序。选择 随机”以随机顺序发送记录。选择 固定 以按创建顺序发送记录。选择“ 轮循机制 ”,针对对记录的每个请求循环记录顺序。

    还行

    单击“ 确定” 创建记录。

    取消

    单击 “取消 ”以清除字段并重新开始。

  3. 若要添加新的 DNS 记录,请在“ 配置 DNS 记录”页中,单击屏幕右下角的 “添加记录 ”按钮。

    出现 “添加 DNS 记录 ”窗口;参见 图 6

    图 6:添加 DNS 记录 Add DNS Record
  4. 填写新记录的字段;请参阅 表 3
    表 3:添加 DNS 记录字段

    领域

    描述

    记录名称

    输入此记录的名称。

    类型

    从列表中选择记录类型 - A、CNAME、PTR、NS。

    IP 地址

    输入此记录位置的 IP 地址。

    从列表中选择记录类 - IN 是默认值。

    生存时间

    在几秒钟内输入 TTL

    还行

    单击“ 确定” 创建记录。

    取消

    单击 “取消 ”以清除字段并重新开始。

  5. 若要将 IPAM 关联到虚拟 DNS 服务器,请在“ 配置 DNS 记录 ”页中选择屏幕右下角的“ 关联的 IPAM ”选项卡,然后单击“ 编辑 ”按钮。

    此时将显示 “将 IPAM 关联到 DNS” 窗口;参见 图 7

    图 7:将 IPAM 关联到 DNS Associate IPAMs to DNS

    使用 表 4 中的字段说明完成 IPAM 关联。

    表 4:将 IPAM 关联到 DNS 字段

    领域

    描述

    关联到所有 IPAM

    选中此框可将选定的 DNS 服务器关联到所有可用的 IPAM。

    可用的 IPAM

    此列显示当前可用的 IPAM。

    关联的 IPAM

    此列显示当前与所选 DNS 服务器关联的 IPAM。

    >>

    使用此按钮可将可用 IPAM 关联到选定的 DNS 服务器,方法是在左列中选择可用的 IPAM,然后单击此按钮将其移动到“关联的 IPAM”列。所选 IPAM 现在与所选 DNS 服务器关联。

    <<

    使用此按钮可取消 IPAM 与所选 DNS 服务器的关联,方法是在右列中选择关联的 IPAM,然后单击此按钮将其移动到左列(可用 IPAM)。所选 IPAM 现在已与所选 DNS 服务器解除关联。

    还行

    单击 “确定 ”提交窗口中指示的更改。

    取消

    单击 “取消 ”清除所有条目并重新开始。

  6. 使用“IP 地址管理”页(“配置>网络> IP 地址管理”);请参阅图 8)可以为任何 DNS 服务器配置 DNS 模式,并将 IPAM 关联到任何模式的 DNS 服务器或租户的 IP 地址
    图 8:配置 IP 地址管理 Configure IP Address Management
  7. 若要将 IPAM 关联到虚拟 DNS 服务器或租户的 IP 地址,请在“ IP 地址管理 ”页上,选择与此 IPAM 关联的网络,然后单击最后一列中的“ 操作 ”按钮,然后单击 “编辑”。

    将出现 “编辑 IP 地址管理 ”窗口;参见 图 9

    图 9:DNS 服务器 DNS Server
  8. 在第一个字段中,从列表中选择 DNS 方法 (无、默认 DNS、租户 DNS、虚拟 DNS;请参阅 表 5
    表 5:DNS 模式

    DNS 模式

    描述

    没有

    当 VM 不需要 DNS 支持时,请选择 “无 ”。

    默认

    在默认模式下,将根据服务器基础架构中的名称服务器配置执行虚拟机的 DNS 解析。子网默认网关配置为 VM 的 DNS 服务器,对 VM 的 DHCP 响应具有此 DNS 服务器选项。VM 发送到默认网关的 DNS 请求将发送到相应计算节点上配置的名称服务器。响应将发送回 VM。

    租户

    当租户想要使用自己的 DNS 服务器时,请配置此模式。在 IPAM 中配置 服务器列表。服务器列表在 DHCP 响应中作为 DNS 服务器发送到 VM。VM 发送的 DNS 请求的路由方式与基于可用路由信息的任何其他数据包相同。

    虚拟 DNS

    将此模式配置为支持虚拟 DNS 服务器 (VDNS) 解析来自虚拟机的 DNS 请求。每个 IPAM 都可以在此模式下配置虚拟 DNS 服务器。

  9. 填写此页面上的其余字段,然后单击“ 确定 ”提交更改,或单击 “取消 ”清除字段并重新开始。

使用脚本配置 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 模式和关联。

表 6:DNS 脚本

行动

脚本

添加虚拟 DNS 服务器

脚本: add_virtual_dns.py

示例用法: python add_virtual_dns.py --api_server_ip 10.204.216.21 --api_server_port 8082 --name vdns1 --domain_name default-domain --dns_domain juniper.net --dyn_updates --record_order random --ttl 1200 --next_vdns default-domain:vdns2

删除虚拟 DNS 服务器

脚本: del_virtual_dns_record.py

示例用法: python del_virtual_dns.py --api_server_ip 10.204.216.21 --api_server_port 8082 --fq_name default-domain:vdns1

添加 DNS 记录

脚本: add_virtual_dns_record.py

示例用法: python add_virtual_dns_record.py --api_server_ip 10.204.216.21 --api_server_port 8082 --name rec1 --vdns_fqname default-domain:vdns1 --rec_name one --rec_type A --rec_class IN --rec_data 1.2.3.4 --rec_ttl 2400

删除 DNS 记录

脚本: del_virtual_dns_record.py

示例用法: python del_virtual_dns_record.py --api_server_ip 10.204.216.21 --api_server_port 8082 --fq_name default-domain:vdns1:rec1

将虚拟 DNS 服务器与 IPAM 关联

脚本: associate_virtual_dns.py

示例用法: python associate_virtual_dns.py --api_server_ip 10.204.216.21 --api_server_port 8082 --ipam_fqname default-domain:demo:ipam1 --vdns_fqname default-domain:vdns1

取消虚拟 DNS 服务器与 IPAM 的关联

脚本: disassociate_virtual_dns.py

示例用法: python disassociate_virtual_dns.py --api_server_ip 10.204.216.21 --api_server_port 8082 --ipam_fqname default-domain:demo:ipam1 --vdns_fqname default-domain:vdns1