三大云平台反向 DNS(rDNS|FQDN)设置方法

小助手读文章 00:00 / 00:00

概念

rDNS(Reverse DNS,可逆 DNS 或反向 DNS)是域名系统(DNS)的查询技术,用于确定与 IP 地址关联的域名,与通常的 “前向” DNS 查找相反。-- 维基百科

FQDN(Fully Qualified Domain Name)即全限定域名,是指通过符号 “.” 连接的同时带有主机名和域名信息的域名,全限定域名可以从逻辑上准确地表示出主机在什么地方,也可以说全域名是主机名的一种完全表示形式。 -- 百度百科

分析

域名解析是互联网中最基础的设施之一。举个例子,当你访问本站时,并不是直接输入 IP 来访问,而是通过域名 vircloud.net 来访问的,那么浏览器是如何知道域名 vircloud.net 对应的是哪台服务器呢?域名解析这时候就发挥作用了,通过指定 DNS 查询出 vircloud.net 的服务器 IP,然后浏览器再将流量导向该 IP,完成访问流程。若域名解析故障,那么将无法访问所有使用域名的网站。

反向解析大家一般体会不到,目前最主要的用途也是运用于邮件系统,作为服务商判断邮件是否是垃圾邮件的一个标准。举个例子,Sina 给我发了一封邮件,收件地址是 Gmail,当 Gmail 收到 邮件时,会通过反向解析去查询邮件发件 IP 地址(202.108.3.184)的 PTR 记录,查询结果是:184.3.108.202.in-addr.arpa name = mail3-184.sinamail.sina.com.cn. ,说明邮件确实是从 Sina 发出来的,故收进收件箱,假如有伪造 Sina 的发件地址(这是很简单的事情),Gmail 反向查询到的 PTR 记录一般都是类似:Host 65.20.211.58.in-addr.arpa. not found: 3(NXDOMAIN),这时候 Gmail 就会认为这是伪造的邮件,从而收进垃圾箱。

反向解析比较常见的用途还有一个是判断 IP 的来源真实性。比如我们查询网站访问日志时,发现有一个 IP 180.76.15.159 访问量明显大于其他 IP,我们初步判断可能是机器人在扫描,也可能是搜索引擎在爬取,那么怎么确定到底是哪个来源呢?这时候我们就可以通过反向解析来判断,查询到这个 IP 的 rDNS 是 baiduspider-180-76-15-159.crawl.baidu.com.,根据百度官方说法,使用百度搜索蜘蛛的 rDNS 便是这种形式,故我们可以确定是百度搜索在爬取。

设置 FQDN

FQDN 设置比较简单,不论是 CentOS 还是 Ubuntu 或者 Debian 等等系统,都可以通过命令 hostnamectl 来设置,比如:

hostnamectl set-hostname cdn.vircloud.net

设置 rDNS

GCP

位置

Compute Engine -> VM 实例 -> 选定虚拟机,修改 -> 网络接口 -> 公开 DNS PTR 记录

截图

配置没有难度,参照截图设置即可:

GCP.png

注意

必须在 https://www.google.com/webmasters/verification/verification?authuser=0&domain=域名. 先通过验证,方可设置成功,所以域名必须是真实存在且生效的,。

Azure

Azure 有两种方式,一种是域名托管于 Azure,一种是未托管于 Azure,前一种较为简单,且与第二种类似,故下面以第二种为例讲解。

设置 DNS 名称标签

先在 Azure 虚拟机对应的公共 IP 上设置好 DNS,填上名称:

Azure DNS.png

CNAME 验证

在域名对应的供应商,把要用的域名以 CNAME 方式指向上面设置的 DNS 名称标签:

Azure CNAME.png

除 CNAME 外,也可以将域名直接通过 A 记录解析到公共 IP 上。

设置 rDNS

由于 Azure Web 页面没有像 GCP 提供直接的配置页面,所以我们需要通过 az cli 工具来实现。

az cli 安装后,通过下列命令登录:

C:\Users\> az login
Note, we have launched a browser for you to login. For old experience with device code, use "az login --use-device-code"
You have logged in. Now let us find all the subscriptions to which you have access...
[
  {
    "cloudName": "AzureCloud",
    "id": "*-*-*-*-",
    "isDefault": true,
    "name": "*",
    "state": "Enabled",
    "tenantId": "*-*-*-*",
    "user": {
      "name": "*@*.*",
      "type": "user"
    }
  }
]

然后参照下方命令执行即可:

C:\Users\> az network public-ip update --resource-group 资源组的名称 --name 公共IP的名称 --reverse-fqdn 你的域名

注意,resource-group--name 都是填名称,在 web 上可以直接看到,如果提示 az 命令找不到,需要手动将 C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin 添加到系统环境变量中的 path

AWS

AWS 尚不支持自己设置,参照官方文档,填写表格申请。

验证

Linux

# host IP 地址
x.x.x.x.in-addr.arpa domain name pointer cdn.vircloud.net.

Windows

C:\Users\*>nslookup -qt=ptr x.x.x.x
服务器:  *.*
Address:  *.*.*.*

非权威应答:
x.x.x.x.in-addr.arpa        name = cdn.vircloud.net

如果出现上述的响应,说明 rDNS 已经设置成功。


扩展阅读:

1、《三大云平台综合对比体验(如何选择合适的 VPS?)
2、《三大云平台计费标准 - Azure、AWS、GCP
3、《三大云平台网速及延迟在线测试平台 - Azure、AWS、GCP
4、《应该是最全的国内学生机|云主机(VPS)学生优惠汇总


参考文章:

1、《IP反向解析(PTR/RDNS)
2、《Announcing: Reverse DNS for Azure Cloud Services
3、《在Azure上搭建自己的邮件服务器


ArmxMod for Typecho
个性化、自适应、功能强大的响应式主题

推广

 继续浏览关于 google cloud platformgcpazureamazon教程方法rdnsfqdn 的文章

 本文最后更新于 2019/08/20 08:28:14,可能因经年累月而与现状有所差异

 引用转载请注明:VirCloud's Blog > 运维 > 三大云平台反向 DNS(rDNS|FQDN)设置方法