Geneve
[ml2_type_geneve]
vni_ranges
[ml2_type_gre]
tunnel_id_ranges
[ml2_type_vlan]
network_vlan_ranges
VXLAN
[ml2_type_vxlan]
vni_ranges
如果没有满足这些先决条件,网络服务会使用默认的
dns_domain
值(
openstacklocal)在内部解析器中创建一个 DNS 分配。
作为云管理员,提供您的凭据文件。
DNS 域必须始终是完全限定域名(FQDN),这意味着它始终以句点结尾。
创建您希望特定项目中的用户创建 DNS 条目的网络。
在本例中,云管理员会创建一个网络
example-network
,它使用之前创建的区域
example.com.
和一个分段 ID
2017
,其位于 ml2_conf.ini 中定义的范围之外:
$ openstack network create --dns-domain example.com. \
--provider-segment 2017 --provider-network-type geneve \
example-network
在网络上,创建一个子网。
在本例中,云管理员在网络
example-network
上创建子网
example-subnet
:
网络服务(neutron)和 DNS 服务(指定)之间的集成可让您在创建虚拟机实例时自动启用 DNS。
您的云管理员为您提供了创建启用了 DNS 的实例时要使用的所需网络。
提供您的凭据文件。
$ source ~/overcloudrc
使用云管理员提供的网络,创建一个实例。
在本例中,云用户创建一个名为
my_vm
的实例:
$ openstack server create --image cirros-0.5.2-x86_64-disk --flavor m1.micro --nic net-id=example-network my_vm
$ openstack recordset list --type A example.com.
Networking 服务(neutron)和 DNS 服务(指定)之间的集成可让您在创建端口时自动添加 DNS 记录集。
在创建启用了 DNS 的端口时,您的云管理员为您提供了要使用的网络。
提供您的凭据文件。
$ source ~/overcloudrc
使用云管理员提供的区域和网络,创建一个端口。
在本例中,云用户会创建一个端口
my-port
,其网络(
example-network
)中的 DNS 名称为
example-port
:
$ openstack port create --network example-network \
--dns-name example-port \
my-port
$ openstack recordset list --type A example.com.
网络服务(neutron)和 DNS 服务(指定)之间的集成可让您在创建浮动 IP 时自动添加 DNS 记录集。
您的云管理员为您提供了在创建启用了 DNS 的浮动 IP 时要使用的所需外部网络。
提供您的凭据文件。
$ source ~/overcloudrc
使用云管理员提供的区域和外部网络,创建一个浮动 IP。
在本例中,云用户在网络(
public
)中创建一个带有 DNS 名称
example-fip
的浮动 IP:
$ openstack floating ip create --dns-name example-fip \
--dns-domain example.com. \
public
$ openstack recordset list --type A example.com.
本节介绍顶级域,并描述了如何在 Red Hat OpenStack Platform DNS 服务(指定)中创建和管理它们。管理允许用户创建哪些域名的方式是通过 denylists。
本节中包含的主题有:
第 5.1 节 “关于顶级域”
第 5.2 节 “创建顶级域”
第 5.3 节 “列出并显示顶级域”
第 5.4 节 “修改顶级域”
第 5.5 节 “删除顶级域”
第 5.6 节 “关于 DNS 服务拒绝列表”
第 5.7 节 “关于 denylists 中的 DNS 服务正则表达式”
第 5.8 节 “创建 DNS 服务拒绝列表”
第 5.9 节 “列出并显示 DNS 服务拒绝列表”
第 5.10 节 “修改 DNS 服务拒绝列表”
第 5.11 节 “删除 DNS 服务 denylists”
您可以使用顶级域(TLD)来限制用户可以在其下创建区域的域。在域名系统(DNS)术语
TLD
是指直接位于 root 下的域集合,如
.com
。在 Red Hat OpenStack Platform (RHOSP) DNS 服务(designate)中,TLD 可以是任何有效的域。
由于 TLD 定义允许域的集合,因此用户创建的区域必须存在于其中一个 TLD 中。如果在 DNS 服务中没有创建 TLD,则用户可以创建任何区域。TLD 没有允许特权用户在允许的 TLD 之外的区域创建区域的策略。
创建
.com
TLD 后,如果用户试图创建不包含在
.com
TLD 中的区域,则尝试会失败。
$ openstack zone create --email [email protected] test.net.
顶级域(TLD)允许您限制用户可以在其下创建区域的域。在 Red Hat OpenStack Platform (RHOSP) DNS 服务(designate)中,TLD 可以是任何有效的域。要创建 TLD,请使用 OpenStack Client
openstack tld create
命令。
您必须是一个具有
admin
角色的 RHOSP 用户。
作为云管理员,提供您的凭据文件。
$ source ~/overcloudrc
您可以通过运行
openstack tld create
命令创建 TLD。
例如,如果需要用户创建以
.org
结尾的区域,您可以创建一个
.org
TLD:
$ openstack tld create --name org
您可以查询 Red Hat OpenStack Platform DNS 服务(指定)数据库并列出所有顶级域(TLD)或显示特定 TLD 的属性。执行此操作的 OpenStack 客户端命令分别是
openstack tld list
和
openstack tld show
。
提供您的凭据文件。
$ source ~/overcloudrc
使用以下命令列出 DNS 服务数据库中的所有 TLD:
$ openstack tld list
使用
openstack tld show <TLD_NAME_or_ID
> 命令显示特定 TLD 的属性。
$ openstack tld show org
命令行界面参考中的
tld list
命令行界面参考中的
tld show
Red Hat OpenStack Platform (RHOSP) DNS 服务(designate)可让您更改顶级域(TLD)的各种属性,如其名称。您可以使用 OpenStack Client
openstack tld set
命令修改 TLD。
您必须是一个具有
admin
角色的 RHOSP 用户。
作为云管理员,提供您的凭据文件。
$ source ~/overcloudrc
您可以使用以下命令选项以各种方式修改 TLD:
openstack tld set [--name NAME] \
[--description DESCRIPTION | --no-description] \
[TLD_ID | TLD_NAME]
之前的语法图不显示
openstack tld set
命令的各种格式选项。有关所有命令选项的列表,请参阅"添加资源"中的链接。
在本例中,
openstack tld set
命令将
org
TLD 重命名为
example.net
:
$ openstack tld set org --name example.net
+-------------+--------------------------------------+
| Field | Value |
+-------------+--------------------------------------+
| created_at | 2022-01-10T13:07:33.000000 |
| description | |
| id | 9fd0a12d-511e-4024-bf76-6ec2e3e71edd |
| name | example.net |
| updated_at | 2022-01-10T22:35:20.000000 |
+-------------+--------------------------------------+
运行
openstack tld show <TLD_NAME_or_ID
> 命令,并确认您的修改存在。
命令行界面参考
中设置的
TLD
Red Hat OpenStack Platform (RHOSP) DNS 服务(designate)可让您使用 OpenStack Client
openstack tld delete
命令删除顶级域(TLD)。
您必须是一个具有
admin
角色的 RHOSP 用户。
作为云管理员,提供您的凭据文件。
$ source ~/overcloudrc
运行以下命令,获取您要删除的 TLD 的 ID 或名称:
$ openstack tld list
使用上一步中的名称或 ID,输入以下命令:
$ openstack tld delete <TLD_NAME_or_ID>
此命令成功时没有输出。
运行 openstack
tld show <TLD_NAME_or_ID
> 命令,并验证 TLD 是否已移除。
命令行界面参考中的
tld delete
Red Hat OpenStack Platform (RHOSP) DNS 服务(指定)有一个 denylist 功能,可让您防止用户创建带有与特定正则表达式匹配的区域。例如,您可以使用 denylist 来防止用户:
创建特定区域。
创建包含特定字符串的区域。
创建特定区的子区。
如果
example.com.
是拒绝列表中的成员,一个域或项目用户尝试创建如
foo.example.com.
或
example.com.
的区,则会遇到错误:
$ openstack zone create --email [email protected] example.com.
Blacklisted zone name
$ openstack zone create --email [email protected] foo.example.com.
Blacklisted zone name
满足
use_blacklisted_zone
基于角色的访问控制的用户可以创建具有 denylist 中名称的区域。默认情况下,具有此覆盖的唯一用户是 RHOSP 系统管理员。
您可以使用 OpenStack Client
openstack zone blacklist
命令创建、列出、显示、修改和删除拒绝列表。
命令行界面参考中的
zone blacklist create
5.7. 关于 denylists 中的 DNS 服务正则表达式
在 Red Hat OpenStack Platform DNS 服务(指定)中使用 denylists 的大型部分正在使用正则表达式(regexes),这可能很难使用。有关 regex 的 Python 文档可能会作为有用的介绍。在线正则表达式工具可帮助构建和测试用于 denylist API 的正则表达式。
Python 3 文档中的
正则表达式 HOWTO
第 5.6 节 “关于 DNS 服务拒绝列表”
Red Hat OpenStack Platform DNS 服务(指定)中的 Denylists 可让您防止用户使用与特定正则表达式匹配的名称创建区域。您可以使用 OpenStack Client
openstack zone blacklist create
命令创建 denylists。
您必须是一个具有
admin
角色的 RHOSP 用户。
作为云管理员,提供您的凭据文件。
$ source ~/overcloudrc
使用
openstack zone blacklist create
命令创建 denylist。
在本例中,域
example.com.
及其所有子域都添加到 denylist 中。
$ openstack zone blacklist create --pattern ".*example.com."
+-------------+--------------------------------------+
| Field | Value |
+-------------+--------------------------------------+
| created_at | 2021-10-20T16:15:18.000000 |
| description | None |
| id | 7622e241-8c3d-4c03-a692-8747e3cf2658 |
| pattern | .*example.com. |
| updated_at | None |
+-------------+--------------------------------------+
运行
openstack zone blacklist list
命令,并确认您的 denylist 存在。
命令行界面参考中的
zone blacklist create
第 5.7 节 “关于 denylists 中的 DNS 服务正则表达式”
您可以查询 Red Hat OpenStack Platform DNS 服务(指定)数据库并查看所有拒绝列表,或显示特定 denylist 的属性。执行此操作的 OpenStack 客户端命令是
openstack zone blacklist list
和
openstack zone blacklist show
。
查看所有拒绝列表会很有帮助,因为您必须知道 denylist ID 才能使用其他 denylist 命令。
提供您的凭据文件。
$ source ~/overcloudrc
使用以下命令列出 DNS 服务数据库中拒绝列表:
$ openstack zone blacklist list
Red Hat OpenStack Platform DNS 服务(designate)可让您修改拒绝列表。例如,您可能希望更改 denylist,允许用户创建具有过去限制的特定域名的区域。您可以使用 OpenStack Client
openstack zone blacklist set
命令修改 denylists。
您必须是一个具有
admin
角色的 RHOSP 用户。
作为云管理员,提供您的凭据文件。
$ source ~/overcloudrc
运行以下命令,获取您要修改的 denylist 的 ID:
$ openstack zone blacklist list
您可以使用以下命令选项以各种方式修改 denylist:
$ openstack zone blacklist set \
[--description DESCRIPTION | --no-description] denylist_ID
之前的语法图不显示
openstack zone blacklist set
命令的各种格式选项。有关所有命令选项的列表,请参阅"添加资源"中的链接。
在本例中,正则表达式(regex)被修改为允许
web.example.com
域:
$ openstack zone blacklist set 81fbfe02-6bf9-4812-a40e-1522ab6862ca --pattern ".*web.example.com"
+-------------+--------------------------------------+
| Field | Value |
+-------------+--------------------------------------+
| created_at | 2022-01-08T09:11:43.000000 |
| description | None |
| id | 81fbfe02-6bf9-4812-a40e-1522ab6862ca |
| pattern | .*web.example.com |
| updated_at | 2022-01-15T14:26:18.000000 |
+-------------+--------------------------------------+
运行
openstack zone blacklist show <denylist_ID
> 命令,并确认您的修改是否存在。
命令行界面参考
中设置的区黑名单
第 5.7 节 “关于 denylists 中的 DNS 服务正则表达式”
5.11. 删除 DNS 服务 denylists
Red Hat OpenStack Platform DNS 服务(指定)中的 Denylists 可让您防止用户使用与特定正则表达式匹配的名称创建区域。您可以使用 OpenStack Client
openstack zone blacklist delete
命令删除拒绝列表。
您必须是一个具有
admin
角色的 RHOSP 用户。
作为云管理员,提供您的凭据文件。
$ source ~/overcloudrc
运行以下命令,获取您要删除的 denylist 的 ID:
$ openstack zone blacklist list
使用上一步中的 ID,输入以下命令:
$ openstack zone blacklist delete <denylist_ID>
此命令成功时没有输出。
运行 openstack
zone blacklist show <denylist_ID
> 命令,并验证 denylist 已被删除。
命令行界面参考中的
zone blacklist 删除
Red Hat OpenStack Platform (RHOSP)提供了一组 DNS 资源配额,云管理员可使用 DNS 服务(指定)进行修改。使用 DNS 配额可帮助您通过设置项目的 DNS 资源限制,从拒绝服务攻击等事件来保护 RHOSP 站点的安全。使用 DNS 配额也可以帮助您跟踪用户的 DNS 资源消耗。云管理员可以设置适用于所有项目的 DNS 配额值,或者根据项目配置一个或多个配额。
本节中包含的主题有:
第 6.1 节 “查看 DNS 资源配额”
第 6.2 节 “修改 DNS 资源配额”
第 6.3 节 “将 DNS 资源配额重置为默认值”
第 6.4 节 “DNS 服务配额及其默认值”
您可以使用 DNS 服务(designate)查看 Red Hat OpenStack Platform (RHOSP)项目的资源配额。
您必须是您要查看其配额的项目的成员。
具有
admin
角色的 RHOSP 用户可以查看任何项目的配额。
提供您的凭据文件。
$ source ~/overcloudrc
查看为项目设置的 DNS 资源配额:
$ openstack dns quota list
$ openstack dns quota list --project-id ecd4341280d645e5959d32a4b7659da1
您可以使用 DNS 服务(designate)更改 Red Hat OpenStack Platform (RHOSP)项目的 DNS 资源配额。
您必须是一个具有
admin
角色的 RHOSP 用户。
作为云管理员,提供您的凭据文件。
$ source ~/overcloudrc
获取您要修改其配额的项目的 ID。
请记住该 ID,因为后续步骤需要它。
$ openstack project list
使用项目 ID,修改项目的 DNS 资源配额。有关可用配额列表,请参阅
第 6.4 节 “DNS 服务配额及其默认值”
。
在本例中,
zones
配额已改变。项目 ID
ecd4341280d645e5959d32a4b7659da1
的区域总数可以包含 30:
$ openstack dns quota set --project-id ecd4341280d645e5959d32a4b7659da1 --zones 30
您可以使用 DNS 服务(指定)将 Red Hat OpenStack Platform (RHOSP)项目的 DNS 资源配额重置为默认值。
您必须是一个具有
admin
角色的 RHOSP 用户。
作为云管理员,提供您的凭据文件。
$ source ~/overcloudrc
获取您要重置配额的项目的 ID。
请记住该 ID,因为后续步骤需要它。
$ openstack project list
使用项目 ID,重置项目的 DNS 资源配额。
在本例中,ID 为
ecd4341280d645e5959d32a4b7659da1
的项目的配额被重置为默认值:
$ openstack dns quota reset --project-id ecd4341280d645e5959d32a4b7659da1
成功
openstack dns quota reset
命令没有输出。
确认已重置了项目的 DNS 资源配额:
$ openstack dns quota list --project-id ecd4341280d645e5959d32a4b7659da1
+-------------------+-------+
| Field | Value |
+-------------------+-------+
| api_export_size | 1000 |
| recordset_records | 20 |
| zone_records | 500 |
| zone_recordsets | 500 |
| zones | 10 |
+-------------------+-------+
命令行界面参考中的
DNS
配额重置
第 6.4 节 “DNS 服务配额及其默认值”
Red Hat OpenStack Platform (RHOSP) DNS 服务(指定)有云管理员可以设置的配额来限制所有 RHOSP 项目中的云用户的 DNS 资源消耗。
表 6.1. 区配额
Quota
|
默认
|
描述
|
zones
每个项目允许的区域数量。
|
表 6.2. 记录和记录设置配额
Quota
|
默认
|
描述
|
zone_recordsets
每个区允许的记录集数。
zone_records
每个区允许的记录数。
recordset_records
每个记录集允许的记录数。
|
表 6.3. zone 导出配额
Quota
|
默认
|
描述
|
api_export_size
区域导出中允许的记录集数。
|
Red Hat OpenStack Platform (RHOSP) DNS 服务(designate)使用区将命名空间分成易于管理的内容。用户可以创建、修改、删除、导出和导入区域,只要其 RHOSP 项目拥有该区。
本节中包含的主题有:
第 7.1 节 “DNS 服务中的区”
第 7.2 节 “创建区”
第 7.3 节 “更新区”
第 7.4 节 “删除区”
第 7.5 节 “导出区域”
第 7.6 节 “导入区域”
第 7.7 节 “传输区域所有权”
第 7.8 节 “修改区传输请求”
Red Hat OpenStack Platform (RHOSP) DNS 服务(designate)使用类似的区所有权模型作为 DNS,它有两个主要区别。
例如,在 DNS 中,在根区域(
.
)中,每个顶级域 (TLD) 如
.org.
and
.com.
都有区。在 TLD 区域中,可以委托给其他区域,如
example.org.
或
example.com。
它们可以由其他机构(或其他名称服务器组)所有和管理。此示例演示了责任层次结构,其中更高级别的区域大部分由委派到低级区域。
与 DNS 类似,使用 RHOSP DNS 服务时,区只能归一个租户所有。但是,与 DNS 不同,DNS 服务不支持租户之间的区域委托。也就是说,租户无法创建父区域归其他租户所有的子区域。
DNS 和 RHOSP DNS 服务之间的第二个区别在于 DNS 服务管理 TLD 与区不同。DNS 服务限制租户创建不在受管 TLD 中的区域。如果 DNS 服务没有管理 TLD,则租户可以创建任何 TLD 和 root 区域以外的任何区域。
zones 可让您更轻松地管理命名空间。默认情况下,任何用户都可以创建 Red Hat OpenStack Platform (RHOSP) DNS 服务(designate)区域。
您的 RHOSP 项目必须拥有创建子区的区域,或者区必须是允许的 TLD。
提供您的凭据文件。
$ source ~/overcloudrc
通过为区域指定名称和负责该区域的人员的电子邮件地址来创建区域。
$ openstack zone create --email [email protected] example.com.
当您创建区时,DNS 服务会自动创建两个记录集:一个 SOA 记录和 NS 记录。
运行
openstack zone list
命令确认您的区域已存在。
+--------------------------------------+--------------+---------+------------+--------+--------+
| id | name | type | serial | status | action |
+--------------------------------------+--------------+---------+------------+--------+--------+
| 14093115-0f0f-497a-ac69-42235e46c26f | example.com. | PRIMARY | 1468421656 | ACTIVE | NONE |
+--------------------------------------+--------------+---------+------------+--------+--------+
命令行界面参考
中的
zone create
命令行界面参考
中的
zone list
在某些情况下,您必须更新由 Red Hat OpenStack Platform (RHOSP) DNS 服务(designate)管理的区。例如,当您要更改与区域关联的电子邮件地址时,或者您想要更改区域 TTL (生存时间)值时。默认情况下,任何用户都可以修改区。
您的 RHOSP 项目必须拥有要修改的区。
提供您的凭据文件。
$ source ~/overcloudrc
通过指定要更改的区域名称和要更改的区属性来修改区:
-
--email <email_address>
-
负责区域(所有者)的人员的有效电子邮件地址。
-
--ttl <seconds>
-
(实时)持续时间(以秒为单位),即 DNS 客户端- 例如解析器、Web 浏览器,操作系统- 可以在检查检查是否有更新前缓存记录。
-
--description <string> | --no-description
-
描述区目的的字符串。
-
--masters <dns-server> [<dns-server> ...]
-
DNS 服务器的完全限定域名,即主实例 - 其他 DNS 服务器可以从同步到成为次要服务器的实例。
$ openstack zone set example.com. --ttl 3000
确认您对区域的修改成功。
$ openstack zone show example.com.
命令行界面参考
中的
zone set
命令行界面参考
中的
zone show
您可以删除由 Red Hat OpenStack Platform (RHOSP) DNS 服务(designate)管理的区域。例如,当区域名称已更改时,您将删除区域。
您的 RHOSP 项目必须拥有您要删除的区。
提供您的凭据文件。
$ source ~/overcloudrc
删除区域。
$ openstack zone delete example.com.
运行
openstack zone list
命令确认您的区域不再存在。
命令行界面参考
中的
zone delete
命令行界面参考
中的
zone list
从 Red Hat OpenStack Platform (RHOSP) DNS 服务导出区域数据包括创建 DNS 服务默认在内部存储的区导出资源。例如:
designate://v2/zones/tasks/exports/e75aef2c-b562-4cd9-a426-4a73f6cb82be/export
.创建区导出数据资源后,您可以访问其内容。导出区数据是整个备份策略的一部分,用于保护 RHOSP 部署的 DNS 信息。
您的 RHOSP 项目必须拥有要从中导出数据的区。
提供您的凭据文件。
$ source ~/overcloudrc
导出区域。
$ openstack zone export create example.com.
+------------+--------------------------------------+
| Field | Value |
+------------+--------------------------------------+
| created_at | 2022-02-11T02:01:30.000000 |
| id | e75aef2c-b562-4cd9-a426-4a73f6cb82be |
| location | None |
| message | None |
| project_id | cf5a8f5cc5834d2dacd1d54cd0a354b7 |
| status | PENDING |
| updated_at | None |
| version | 1 |
| zone_id | d8f81db6-937b-4388-bfb3-ba620e6c09fb |
+------------+--------------------------------------+
创建区导出资源后,DNS 服务将继续使用对区域所做的任何更改来更新资源。
记录区域导出 ID (
e75aef2c-b562-4cd9-a426-4a73f6cb82be
),因为您必须使用它来验证区域导出数据,以及访问区域导出数据。
确认 DNS 服务已成功创建了 zone 导出资源。
$ openstack zone export show e75aef2c-b562-4cd9-a426-4a73f6cb82be
+------------+--------------------------------------------------------------------------------+
| Field | Value |
+------------+--------------------------------------------------------------------------------+
| created_at | 2022-02-11T02:01:30.000000 |
| id | e75aef2c-b562-4cd9-a426-4a73f6cb82be |
| location | designate://v2/zones/tasks/exports/e75aef2c-b562-4cd9-a426-4a73f6cb82be/export |
| message | None |
| project_id | cf5a8f5cc5834d2dacd1d54cd0a354b7 |
| status | COMPLETE |
| updated_at | 2022-02-11T02:01:30.000000 |
| version | 2 |
| zone_id | d8f81db6-937b-4388-bfb3-ba620e6c09fb |
+------------+--------------------------------------------------------------------------------+
zone export create
命令创建 DNS 服务默认在内部存储的资源。
使用您之前获得的区域导出 ID,访问区域导出文件的内容。
使用
-f value
选项打印区域文件的内容,而不显示任何 tabulation。您还可以将内容重定向到本地文本文件,如果想要在本地修改导出的区域文件,然后将其导入到 DNS 服务以更新区域,这非常有用。
$ openstack zone export showfile e75aef2c-b562-4cd9-a426-4a73f6cb82be -f value
$ORIGIN example.com.
$TTL 3600
example.com. IN NS ns1.example.com.
example.com. IN SOA ns1.example.com. admin.example.com. 1624414033 3583 600 86400 3600
www.example.com. IN A 192.0.2.2
www.example.com. IN A 192.0.2.1
区文件格式:
RFC1034,第 3.6 节
RFC1035, 第 5.1 节
命令行界面参考中的
zone export create
命令行界面参考中的
zone export show
命令行界面参考中的
zone export showfile
将区域数据导入到 Red Hat OpenStack Platform (RHOSP) DNS 服务中包括对符合 DNS 区数据文件格式的文件运行
openstack zone import
命令,如从
openstack zone export showfile
命令生成的文件。导入数据的一个原因是用户意外删除区。
您的 RHOSP 项目必须拥有创建子区的区域,或者区必须是允许的 TLD。
您要导入的区必须尚不存在。
您要导入的区数据必须包含区 TTL (实时)值。
提供您的凭据文件。
$ source ~/overcloudrc
列出系统中的区:
$ openstack zone list
如果要导入的区域已存在,则必须首先通过运行
openstack zone delete
命令删除它。
$ openstack zone delete example.com.
通过列出系统中的区来确认您的区不再存在:
$ openstack zone list
确认您要导入的区域数据包含区 TTL 值。
$ cat /home/stack/zone_file
$ORIGIN example.com.
$TTL 3000
example.com. IN NS test.example.com.
example.com. IN SOA test.example.com. admin.example.com. 1624415706 9000 500 86000 5000
www.example.com. IN A 192.0.2.2
test.example.com. IN NS test.example.com.
导入有效的区数据文件。
$ openstack zone import create /home/stack/zone_file
确认 DNS 服务已成功导入区域。
$ openstack recordset list -c name -c type -c records -c status example.com.
+-------------------+------+---------------------------------------------------------------------+--------+
| name | type | records | status |
+-------------------+------+---------------------------------------------------------------------+--------+
| example.com. | SOA | ns1.example.com. admin.example.com. 1624415706 3582 500 86000 3600 | ACTIVE |
| test.example.com. | NS | test.example.com. | ACTIVE |
| example.com. | NS | ns1.example.com. | ACTIVE |
| www.example.com. | A | 192.0.2.2 | ACTIVE |
+-------------------+------+---------------------------------------------------------------------+--------+
区文件格式:
RFC1034,第 3.6 节
RFC1035, 第 5.1 节
命令行界面参考中的
zone import create
命令行界面参考
中的
zone list
您可以将区域的所有权从一个项目传输到另一个项目。例如,财务团队可能希望将
wow.example.com.
区域的所有权从其项目传输到销售团队中的项目。
您可以传输区域的所有权,而无需云管理员参与。但是,当前项目区域所有者和接收项目的成员都必须同意转让。
您的项目必须拥有您要传输的区域。
创建转让请求后,接收项目的成员必须接受您要传输的区域。
提供您的凭据文件。
$ source ~/overcloudrc
获取您要将区域所有权传输到的项目的 ID。
$ openstack project list
+----------------------------------+--------------------+
| ID | Name |
+----------------------------------+--------------------+
| 7af0acba0486472da2447ff55df4a26d | Finance |
| 1d12e87fad0d437286c2873b36a12316 | Sales |
+----------------------------------+--------------------+
使用上一步中获取的项目 ID,为您要传输的区域创建一个区域传送请求。
在使用目标项目 ID 时,其他项目都不接受区域传送。如果没有提供目标项目 ID,则具有转让请求 ID 及其密钥的任何项目都可以接收区域传送。
要将区域
wow.example.com.
传送到项目
1d12e87fad0d437286c2873b36a12316
,您可以运行:
$ openstack zone transfer request create --target-project-id 1d12e87fad0d437286c2873b36a12316 wow.example.com.
$ openstack zone transfer accept show a4c4f872-c98c-411b-a787-58ed0e2dce11
将区域所有权从一个项目传输到另一个项目的第一步是创建区域传送请求。如果您需要更改或删除区域传送请求,您可以这样做。
您的项目必须拥有您要修改的传输请求的区域。
提供您的凭据文件。
$ source ~/overcloudrc
获取您要修改的区域传送请求的 ID。
$ openstack zone transfer request list -c id -c zone_name
+--------------------------------------+------------------+
| id | zone_name |
+--------------------------------------+------------------+
| 63cab5e5-65fa-4480-b26c-c16c267c44b2 | wow.example.com. |
+--------------------------------------+------------------+
使用上一步中获取的区传输请求 ID,您可以更新区域传送请求中的一组有限字段,如描述和目标项目 ID。
$ openstack zone transfer request set --description "wow zone transfer" 63cab5e5-65fa-4480-b26c-c16c267c44b2
+-------------------+-----------------------------------------------------+
| Field | Value |
+-------------------+-----------------------------------------------------+
| created_at | 2022-05-26T22:06:39.000000 |
| description | wow zone transfer |
| id | 63cab5e5-65fa-4480-b26c-c16c267c44b2 |
| key | BIFJIQWH |
| links | {'self': 'http://127.0.0.1:60053/v2/zones/tasks/tra |
| | nsfer_requests/63cab5e5-65fa-4480-b26c-c16c267c44b2 |
| | '} |
| project_id | 6265985fc493465db6a978b318a01996 |
| status | ACTIVE |
| target_project_id | 1d12e87fad0d437286c2873b36a12316 |
| updated_at | 2022-05-27T20:52:08.000000 |
| zone_id | 962f08b4-b671-4096-bf24-8908c9d4af0c |
| zone_name | wow.example.com. |
+-------------------+-----------------------------------------------------+
使用在第 2 步中获取的区域传送请求 ID,您可以通过删除其区域传送请求来取消待处理的区域传送。
$ openstack zone transfer request delete 63cab5e5-65fa-4480-b26c-c16c267c44b2
zone transfer request delete
命令没有输出。运行
zone transfer request list
命令来确认区域传送请求已被移除。
第 7.7 节 “传输区域所有权”
命令行界面参考中的
zone transfer request set
命令
命令行界面参考中的
zone transfer request delete
命令
Red Hat OpenStack (RHOSP) DNS 服务(指定)在记录集中存储有关区的数据。记录集合由一个或多个 DNS 资源记录组成。除了添加、修改和删除它们外,您还可以查询区来列出其记录集。
本节中包含的主题有:
第 8.1 节 “关于 DNS 服务中的记录和记录集”
第 8.2 节 “创建记录集”
第 8.3 节 “更新记录集”
第 8.4 节 “删除记录集”
域名系统(DNS)使用资源记录在命名空间内存储区域数据。Red Hat OpenStack (RHOSP) DNS 服务(designate)中的 DNS 记录通过使用记录集进行管理。
每个 DNS 记录都包含以下属性:
name
- 指明 DNS 命名空间中位置的字符串。
type
- 标识如何使用记录的字母代码集合。例如,
A
标识地址记录和
CNAME
标识规范名称记录。
class
- 指定记录命名空间的字母代码集合。通常,
这适用于
互联网,但其他命名空间存在。
TTL
- (生存时间)记录有效的持续时间(以秒为单位)。
Rdata
- 记录的数据,如 A 记录的 IP 地址或 CNAME 记录的另一个记录名称。
每个区命名空间都必须包含授权起始(SOA)记录,并可具有权威名称服务器(NS)记录和各种其他类型的记录。SOA 记录表明此名称服务器是关于该区域的最佳信息来源。NS 记录标识对区域具有权威的名称服务器。区域的 SOA 和 NS 记录是可读的,但不能修改。
除了所需的 SOA 和 NS 记录外,最常见的三个记录类型是地址(A)、规范名称(CNAME)和指针(PTR)记录。记录将主机名映射到 IP 地址。PTR 记录将 IP 地址映射到主机名。CNAME 记录标识别名的完整主机名。
记录集代表一个或多个具有相同名称和类型的 DNS 记录,但可能存在不同的数据。例如,名为
web.example.com
的记录集,类型为
A
,它包括了数据
192.0.2.1
和
192.0.2.2
,这可能会反映位于这两个 IP 地址的用于托管
web.example.com
的两个 Web 服务器。
您必须在区中创建记录集。如果您删除了包含记录集的区,则区中的记录集也会被删除。
考虑使用
openstack recordset list -c name -c type -c records example.com
命令查询
example.com
区中包括的输出:
+------------------+------+----------------------------------------------+
| name | type | records |
+------------------+------+----------------------------------------------+
| example.com. | SOA | ns1.example.net. admin.example.com. 16200126 |
| | | 16 3599 600 8640 0 3600 |
| | | |
| example.com. | NS | ns1.example.net. |
| | | |
| web.example.com. | A | 192.0.2.1 |
| | | 192.0.2.2 |
| | | |
| www.example.com. | A | 192.0.2.1 |
+------------------+------+----------------------------------------------+
在本例中,
example.com.
区的权威名称服务器是
ns1.example.net.
,NS 记录。要验证这一点,您可以使用 BIND dig 工具查询 NS 记录的名称服务器:
$ dig @ns1.example.net example.com. -t NS +short
ns1.example.net.
您还可以验证 A 记录集:
$ dig @ns1.example.net web.example.com. +short
192.0.2.2
192.0.2.1
$ dig @ns1.example.net www.example.com. +short
192.0.2.1
默认情况下,任何用户都可以创建 Red Hat OpenStack Platform DNS 服务(designate)记录集。
您的项目必须拥有一个要在其中创建记录集的区域。
提供您的凭据文件。
$ source ~/overcloudrc
您可以使用
openstack recordset create
命令创建记录集。记录集需要区域、名称、类型和数据。
$ openstack recordset create --type A --record 192.0.2.1 example.com. www
使用完全限定域名(FQDN)时,需要结尾的点(
.
)。如果省略尾部点,则区域名称会在生成的记录名称中重复,例如
www.example.com.example.com。
在前面的示例中,用户已创建一个名为
example.com
的区域。因为记录集名称
www
不是 FQDN,所以 DNS 服务会将它添加到区名称中。您可以使用记录设置 name 参数的 FQDN 来达到相同的结果:
$ openstack recordset create --type A --record 192.0.2.1 example.com. www.example.com.
如果要构建超过字符字符串的最大长度的 TXT 记录集(255 个字符),那么在创建记录集时,您必须将字符串分成多个更小的字符串。
在本例中,用户通过指定小于 255 个字符的两个字符串,创建一条 410 字符字符串的 TXT 记录集(
_domainkey.example.com
):
$ openstack recordset create --type TXT --record '"210 characters string" "200 characters string"' example.com. _domainkey
您可以多次提供
--record
参数,以在记录集中创建多个记录。用于多个
--record
参数的典型用途是 round-robin DNS。
$ openstack recordset create --type A --record 192.0.2.1 --record 192.0.2.2 example.com. web
运行 list 命令来验证您创建的记录集是否存在:
$ openstack recordset list -c name -c type -c records example.com.
+------------------+------+----------------------------------------------+
| name | type | records |
+------------------+------+----------------------------------------------+
| example.com. | SOA | ns1.example.net. admin.example.com 162001261 |
| | | 6 3599 600 86400 3600 |
| | | |
| example.com. | NS | ns1.example.net. |
| | | |
| web.example.com. | A | 192.0.2.1 192.0.2.2 |
| | | |
| www.example.com. | A | 192.0.2.1 |
+------------------+------+----------------------------------------------+
命令行界面参考
中的
recordset create
命令行界面参考
中的
recordset list
dig
的 man page
默认情况下,任何用户都可以更新 Red Hat OpenStack Platform DNS 服务(designate)记录集。
您的项目必须拥有一个区域,在其中更新记录集。
提供您的凭据文件。
$ source ~/overcloudrc
您可以使用
openstack recordset set
命令修改记录集。
在本例中,用户正在更新记录集
web.example.com.
使其包含两个记录:
$ openstack recordset set example.com. web.example.com. --record 192.0.2.5 --record 192.0.2.6
更新记录集时,您可以通过其 ID 或名称来识别。如果使用其名称,则必须使用完全限定域名(FQDN)。
运行 list 命令以确认您的修改。
$ openstack recordset list -c name -c type -c records example.com.
+------------------+------+----------------------------------------------+
| name | type | records |
+------------------+------+----------------------------------------------+
| example.com. | SOA | ns1.example.net. admin.example.com 162001261 |
| | | 6 3599 600 86400 3600 |
| | | |
| example.com. | NS | ns1.example.net. |
| | | |
| web.example.com. | A | 192.0.2.5 192.0.2.6 |
| | | |
| www.example.com. | A | 192.0.2.1 |
+------------------+------+----------------------------------------------+
命令行界面参考
中的
recordset create
命令行界面参考
中的
recordset list
默认情况下,任何用户都可以删除 Red Hat OpenStack Platform DNS 服务(designate)记录集。
您的项目必须拥有一个区域,您要在其中删除记录集。
提供您的凭据文件。
$ source ~/overcloudrc
您可以使用
openstack recordset delete
命令删除记录集。
在本例中,用户从 example.
com. 区域中删除记录集 web.
example.com.:
$ openstack recordset delete example.com. web.example.com.
验证
-
运行 list 命令以确认您的删除。
$ openstack recordset list -c name -c type -c records example.com.
+------------------+------+----------------------------------------------+
| name | type | records |
+------------------+------+----------------------------------------------+
| example.com. | SOA | ns1.example.net. admin.example.com 162001261 |
| | | 6 3599 600 86400 3600 |
| | | |
| example.com. | NS | ns1.example.net. |
| | | |
| www.example.com. | A | 192.0.2.1 |
+------------------+------+----------------------------------------------+
命令行界面参考
中的
recordset delete
命令行界面参考
中的
recordset list
配置 Red Hat OpenStack Platform (RHOSP) DNS 服务(designate)的步骤是设置 IP 地址到域-name-lookups,也称为反向查找。DNS 资源指针(PTR)记录包含地址到名称映射数据,并存储在反向查找区中。DNS 服务还允许您管理浮动 IP 地址的反向查找。
本节中包含的主题有:
第 9.1 节 “PTR 记录基础”
第 9.2 节 “创建反向查找区域”
第 9.3 节 “创建 PTR 记录”
第 9.4 节 “创建多个 PTR 记录”
第 9.5 节 “为浮动 IP 地址设置 PTR 记录”
第 9.6 节 “取消设置浮动 IP 地址的 PTR 记录”
在 Red Hat OpenStack Platform (RHOSP) DNS 服务(指定)中,您可以使用指针(PTR)记录从单个 IP 或一组 IP 地址到完全限定域名(FQDN)创建编号到名称映射(反向映射)。因为域名系统(DNS)将地址查找为名称,所以您可以创建一个包含 IP 地址名称的 PTR 记录。您按照特定惯例形成此名称:反向 IP 地址并附加一个特殊字符串:
in-addr.arpa
用于 IPv4 地址,
ip6.arpa
用于 IPv6 地址。
例如,如果
my-server.example.com
的 IP 地址为
198.51.100.42
,则您在反向查找区域中为对应的节点命名
42.100.51.198.in-addr.arpa
。IP 地址的名称向后列出有助于其查找,因为像标准完全限定域名(FQDN)一样,反向 IP 地址会变得不太具体,因为当您从左侧向右边移动时,反向 IP 地址会较低。
DNS 服务将 PTR 记录的内容写入名为反向查找区的特殊区域,其唯一用途是提供地址到名称查找。因为 PTR 记录包含与标准 FQDN 类似的数据,所以您可以像委派其他区一样委托反向查找区域的子区域。在前面的示例中,hosts
198.51.100.42
是在
198.in-addr.arpa
区域中的节点,此区域可以委派给网络的管理员
198.51.100.0/8
。
DNS 服务管理浮动 IP 地址的 PTR 记录与标准 IP 地址不同,因为要求用户的 RHOSP 项目拥有包含 IP 地址的区域。在涉及反向名称查找的大多数用例中,可以轻松地满足此要求。在管理标准 IP 地址的反向查找时,您可以在管理其他 DNS 资源记录类型时使用
openstack recordset
命令。
但是,在使用浮动 IP 地址时,多个项目通常共享浮动 IP 地址池。要解决地址池的项目所有权问题,您必须在管理浮动 IP 的反向查找时使用不同的命令,即
openstack ptr record
命令。
第 9.3 节 “创建 PTR 记录”
第 9.5 节 “为浮动 IP 地址设置 PTR 记录”
要正确配置 Red Hat OpenStack Platform (RHOSP) DNS 服务(指定),您必须有一个反向查找区。反向查找区域包含执行地址到名称查找所需的 PTR 记录。您必须按照以下惯例命名反向查找区域: <
backward_IP_address>.in-addr.arpa
用于 IPv4 地址,<
backward_IP_address>.ip6.arpa
用于 IPv6 地址。
通常,您可以将 RHOSP 部署中的区与子网计划保持一致。例如,如果您有一个外部网络的 /24 子网,您可以创建一个 /24 子网反向查找区域来包含您的 PTR 记录。
提供您的凭据文件。
$ source ~/overcloudrc
使用
openstack zone create
命令并指定这些所需参数,创建反向查找区域:
-
--email <email_address>
-
负责区域(所有者)的人员的有效电子邮件地址。
符合惯例的反向查找区的名称:<
backward_IP_address>.in-addr.arpa
用于 IPv4 地址,<
backward_IP_address>.ip6.arpa
用于 IPv6 地址。
在这个示例中,反向查找区是为 198.51.100.42 地址的一个 PTR 记录设计的:
$ openstack zone create --email [email protected] \
42.100.51.198.in-addr.arpa.
$ openstack zone create --email [email protected] \
100.51.198.in-addr.arpa.
在 Red Hat OpenStack Platform (RHOSP) DNS 服务(指定)中,您可以创建 PTR 记录来启用反向查找(地址到名称映射)。启用反向查找是在 RHOSP 部署中正确配置 DNS 服务的一部分。
您的 RHOSP 项目必须拥有创建 PTR 记录的区域。
用于存储 PTR 记录的反向查找区域。更多信息请参阅
第 9.2 节 “创建反向查找区域”
。
提供您的凭据文件。
$ source ~/overcloudrc
使用
openstack recordset create
命令并指定这些所需参数来创建 PTR 记录:
-
--record <domain_name>
-
在执行反向查找时应返回的目标(域名)。
-
--type PTR
-
您要创建的记录类型
PTR
。
-
<zone_name>
-
区域的名称,即记录的反向查找区域。
-
<record_name>
-
PTR 记录的名称。
记录名称必须与 <zone_name> 匹配,或者是区的成员。例如,对于反向查找区
100.51.198.in-addr.arpa.
,它们是有效的 PTR 记录名称:
1.100.51.198.in-addr.arpa.
,
2.100.51.198.in-addr.arpa.
, 以及任何在
198.51.100.0/24
子网中的其他反向 IP 地址。
openstack recordset create --record www.example.com. --type PTR \
42.100.51.198.in-addr.arpa. 42.100.51.198.in-addr.arpa.
+-------------+--------------------------------------+
| Field | Value |
+-------------+--------------------------------------+
| action | CREATE |
| created_at | 2022-02-02T19:55:50.000000 |
| description | None |
| id | ca604f72-83e6-421f-bf1c-bb4dc1df994a |
| name | 42.100.51.198.in-addr.arpa. |
| project_id | 123d51544df443e790b8e95cce52c285 |
| records | www.example.com. |
| status | PENDING |
| ttl | 3600 |
| type | PTR |
| updated_at | None |
| version | 1 |
| zone_id | f5546034-b27e-4326-bf9d-c53ed879f7fa |
| zone_name | 42.100.51.198.in-addr.arpa. |
+-------------+--------------------------------------+
执行反向查找,以确认 IP 地址(
198.51.100.42
)已映射到域名(
www.example.com)。
在本例中,
203.0.113.5
是部署中的一个 DNS 服务器:
$ dig @203.0.113.5 -x 198.51.100.42 +short
在 Red Hat OpenStack Platform (RHOSP) DNS 服务(指定)中,您可以使用更广泛定义的反向查找区将多个 PTR 记录添加到较大的子网中。
您的 RHOSP 项目必须拥有创建 PTR 记录的区域。
用于存储更广泛定义的 PTR 记录的反向查找区域。例如,
198.51.100.0/24
反向查找区域
100.51.198.in-addr-arpa
。更多信息请参阅
第 9.2 节 “创建反向查找区域”
。
提供您的凭据文件。
$ source ~/overcloudrc
使用
openstack recordset create
命令创建 PTR 记录,并指定这些所需参数:
-
--record <domain_name>
-
查找的域名。
-
--type PTR
-
您要创建的记录类型
PTR
。
-
<zone_name>
-
记录所在的反向查找区域的名称。
-
<record_name>
-
PTR 记录的名称。
记录名称必须与 <zone_name> 匹配,或者是区的成员。例如,对于反向查找区
100.51.198.in-addr.arpa.
,它们是有效的 PTR 记录名称:
1.100.51.198.in-addr.arpa.
,
2.100.51.198.in-addr.arpa.
, 以及任何在
198.51.100.0/24
子网中的其他反向 IP 地址。
在本例中,反向查找区域更为广泛定义,例如
100.51.198.0/24
反向查找区域
100.51.198.in-addr-arpa
:
$ openstack recordset create --record cats.example.com. --type PTR \
--ttl 3600 100.51.198.in-addr.arpa. 3.100.51.198.in-addr.arpa.
$ dig @203.0.113.5 -x 198.51.100.3 +short
$ dig @203.0.113.5 -x 198.51.100.10 +short
在 Red Hat OpenStack Platform (RHOSP) DNS 服务(指定)中,您可以为浮动 IP 地址创建 PTR 记录,以允许反向查找。
定义的一个或多个浮动 IP。
要为您要为其创建 PTR 记录的浮动 IP 的反向查找区域。
提供您的凭据文件。
$ source ~/overcloudrc
确定您要删除 PTR 记录的浮动 IP 地址的 ID。后续步骤中需要此信息。
$ openstack floating ip list -c ID -c "Floating IP Address"
9.6. 取消设置浮动 IP 地址的 PTR 记录
在 Red Hat OpenStack Platform (RHOSP) DNS 服务(指定)中,您可以删除与浮动 IP 地址关联的 PTR 记录。
浮动 IP 的 PTR 记录。
提供您的凭据文件。
$ source ~/overcloudrc
确定您要删除 PTR 记录的浮动 IP 地址的 ID。后续步骤中需要此信息。
$ openstack floating ip list -c ID -c "Floating IP Address"
通过查看 Red Hat OpenStack Platform DNS 服务(指定)日志并使用一些简单命令,您可以验证该服务是否正常运行。这些操作是对 DNS 服务进行故障排除的第一步。
本节中包含的主题有:
第 10.1 节 “DNS 服务和 BIND 日志”
第 10.2 节 “导出 DNS 服务池配置”
第 10.3 节 “列出可用的 DNS 服务端点”
在对问题进行故障排除时,查看 Red Hat OpenStack Platform DNS 服务(指定)日志非常有用。
DNS 服务日志位于
/var/log/containers/designate
中。每个组件服务都有一个日志:
central.log
designate-api.log
mdns.log
producer.log
worker.log
红帽与 RHOSP DNS 服务提供的 BIND 服务器的日志位于
/var/log/containers/designate/designate-bind
中:
central.log
designate-api.log
在对 Red Hat OpenStack Platform (RHOSP) DNS 服务(指定)进行故障排除时,获取 DNS 池配置的副本会很有用。
在 RHOSP 17.1 中,不支持多个池。
提供您的凭据文件。
$ source ~/overcloudrc
向控制台显示当前正在运行的 DNS 服务池配置。
$ designate-manage pool show_config
在对问题进行故障排除时,确定 Red Hat OpenStack Platform DNS 服务(指定)端点及其状态很有用。
提供您的凭据文件。
$ source ~/overcloudrc
列出 RHOSP 服务端点:
$ openstack endpoint list -c "Service Name" -c Enabled -c URL
输出示例
+--------------+---------+-------------------------------------------------+
| Service Name | Enabled | URL |
+--------------+---------+-------------------------------------------------+
| swift | True | http://198.51.100.61:8080 |
| designate | True | http://203.0.113.103:9001 |
| heat-cfn | True | http://192.0.2.137:8000/v1 |
| designate | True | http://192.0.2.137:9001 |
| placement | True | http://203.0.113.103:8778/placement |
| cinderv3 | True | http://203.0.113.103:8776/v3/%(tenant_id)s |
| heat | True | http://203.0.113.103:8004/v1/%(tenant_id)s |
| heat-cfn | True | http://203.0.113.103:8000/v1 |
| nova | True | http://203.0.113.103:8774/v2.1 |
| heat | True | http://192.0.2.137:8004/v1/%(tenant_id)s |
| glance | True | http://203.0.113.103:9292 |
| heat | True | http://203.0.113.103:8004/v1/%(tenant_id)s |
| glance | True | http://203.0.113.103:9292 |
| neutron | True | http://203.0.113.103:9696 |
| nova | True | http://192.0.2.137:8774/v2.1 |
| cinderv3 | True | http://192.0.2.137:8776/v3/%(tenant_id)s |
| placement | True | http://203.0.113.103:8778/placement |
| keystone | True | http://192.168.24.17:35357 |
| neutron | True | http://192.0.2.137:9696 |
| nova | True | http://203.0.113.103:8774/v2.1 |
| heat-cfn | True | http://203.0.113.103:8000/v1 |
| cinderv3 | True | http://203.0.113.103:8776/v3/%(tenant_id)s |
| glance | True | http://192.0.2.137:9292 |
| placement | True | http://192.0.2.137:8778/placement |
| swift | True | http://198.51.100.61:8080/v1/AUTH_%(tenant_id)s |
| swift | True | http://192.0.2.137:8080/v1/AUTH_%(tenant_id)s |
| designate | True | http://203.0.113.103:9001 |
| keystone | True | http://192.0.2.137:5000 |
| neutron | True | http://203.0.113.103:9696 |
| keystone | True | http://203.0.113.103:5000 |
+--------------+---------+-------------------------------------------------+
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at
http://creativecommons.org/licenses/by-sa/3.0/
. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux
® is the registered trademark of Linus Torvalds in the United States and other countries.
Java
® is a registered trademark of Oracle and/or its affiliates.
XFS
® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL
® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js
® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The
OpenStack
® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.