Rackspace 下一代服务器的仪表板没有为云服务器设置反向 DNS 的选项。您必须使用 Rackspace Cloud API。如何使用 API 为我的服务器设置反向 DNS?
答案1
我写这篇文章主要是想以后能有参考,但也可能是因为我想其他人也会寻找这些信息,而我在网上找不到。也许还有更好的方法,所以任何建议都欢迎。
这是为下一代云服务器设置反向 DNS 的方法 - 该服务器位于英国数据中心,但也有美国数据中心的链接。与之前的云产品不同,无法使用 Web 界面执行此操作,因此您必须使用 curl 和 Rackspace Cloud API 以及一些 JSON magic。
开始...
步骤 1:获取身份验证令牌
这与您的 Rackspace API 密钥不同 - 听起来很明显,但我犯了这个错误。它有效期为 24 小时,您需要令牌来验证您的请求以设置反向 DNS。
curl -H "x-auth-key:RACKSPACE_API_KEY" -H "x-auth-user:RACKSPACE_USERNAME" \
https://lon.identity.api.rackspacecloud.com/v1.0 -i
注意:如果你的服务器位于美国,则需要使用其他 URLhttps://identity.api.rackspacecloud.com/v1.0(有关详细信息,请参阅此知识库文章)。
您可以通过登录 Rackspace MyCloud 仪表板来找到您的 API 密钥,单击右上角的用户名(您也需要它)并选择 API 密钥选项。
响应将会像这样:
HTTP/1.1 204 No Content
Server: nginx/0.8.55
Date: Thu, 22 Nov 2012 10:15:37 GMT
Connection: keep-alive
X-Storage-Token: YOUR_STORAGE_TOKEN
X-Auth-Token: YOUR_AUTH_TOKEN
vary: Accept, Accept-Encoding, X-Auth-Token, X-Auth-Key, X-Storage-User, X-Storage-Pass, X-Auth-User
Cache-Control: s-maxage=74459
VIA: 1.0 Repose (Repose/2.3.5)
Front-End-Https: on
还会有一些其他信息,但您想要的是 YOUR_AUTH_TOKEN。
步骤 2:使用反向 DNS 信息创建 JSON 文件
对于那些使用 DNS 的人来说,反向 DNS 记录或 PTR 记录是使用 JSON 指定的,并保存到文件中。使用下面的模板并填写特定于您的服务器的信息,将其保存到文件中,这里我们将使用文件 ptr。
{
"recordsList":{
"records": [ {
"name" : "DOMAIN_NAME",
"type" : "PTR",
"data" : "IP_ADDRESS",
"ttl" : 56000
}
]},
"link" : {
"content" : "",
"href" : "https://lon.servers.api.rackspacecloud.com/v2/RACKSPACE_USERID/servers/NEXTGEN_SERVERID",
"rel" : "cloudServersOpenStack"
}
}
用您的信息替换以下占位符:
- DOMAIN_NAME - 要使用的域名,例如 server1.mycompany.com
- IP_ADDRESS - 用于反向查找
- RACKSPACE_USERID - Rackspace 用户的数字 ID,在 Rackspace 仪表板的 API 密钥页面中找到它,单击右上角的用户名,选择 API 密钥。
- NEXTGEN_SERVERID - 服务器的 ID - 从主服务器列表中获取,将鼠标悬停在服务器名称上,您将看到一个列出服务器 ID 的弹出窗口。
步骤 3:使用 Rackspace Cloud API 设置反向 DNS
最后一项任务是将此信息发送到 Rackspace Cloud 的 API 以创下纪录。快完成了!
使用以下 curl 命令,替换您从前两个步骤中获得的值 YOUR_AUTH_TOKEN 和 RACKSPACE_USERID。
该命令的 @ptr 部分指的是我们上面创建的包含 JSON 信息的文件:
curl -H "x-auth-token: YOUR_AUTH_TOKEN" \
https://lon.dns.api.rackspacecloud.com/v1.0/RACKSPACE_USERID/rdns \
-d @ptr -H "Content-Type: application/json" -i
响应看起来应该是这样的:
HTTP/1.1 202 Accepted
Date: Thu, 22 Nov 2012 10:22:12 GMT
Content-Length: 598
X-API-VERSION: 1.0.20
Content-Type: application/json
Server: Jetty(8.0.y.z-SNAPSHOT)
这是个好消息,意味着信息已被接受。它需要一段时间才能在 DNS 系统中传播。上次我设置记录时,大多数服务器花了大约 30 分钟才获取到信息。
有点麻烦,但一旦你理解了它,一切都会很好。非常感谢 Rackspace 支持部门的 Oliver Gross 对此的出色支持以及 Rackspace 支持文档的提示。一如既往,使用时请自担风险并确保进行了大量测试。
交叉发布自我博客上的这篇文章。