不要从你自己的邮件服务器发信

用自己的服务器接受邮件是可以的,但是为了少点头疼的事,不要用自己的服务器发送邮件。这事一篇关于不要相信互联网上的你读到的内容的警示,也是一篇关于一种被全世界广泛采用的通信协议被一家大型广告技术公司捂死的内容,但首先这事一篇关于我给我妈妈发邮件的内容。

2016年的某个寒冷的早上。在像一个普通人一样使用了20年电子邮件以后我终于受不了了。我打算搭建自己的电子邮件服务器且打算把这件事做好,这样我就不必仍受使用别人的邮件服务器遇到的这些破事。啥事呢?垃圾邮件过滤!

有次我给我妈妈的一个 Gmail 邮箱回复邮件,一周后她打过来问我是否还活着因为她从来没有收到过我的邮件。然后我给我的邮件服务商同时也是我的网络服务商打电话说这事,他们告诉我说 Gmail 把他们的列入了几天黑名单因为有人用他们的服务器发送垃圾邮件。但是别担心现在已经解除拉黑了。当然了,也许只是今天解除了,或许明天我妈妈又不得不有一次担心了因为没人设置邮件退回通知。(有趣的是:随后网络服务商关闭了我的电子邮件账号由于他们期待收购而终止了 B2C 服务。)

你是否曾经注册某个网络服务并且好奇为啥要等两小时的验证邮件呢?这事以前对我来说是个普遍问题但是现在我知道了这是由一项叫做灰名单(graylisting)的反垃圾邮件技术导致的。灰名单的意思是来自未知服务器的邮件会被带上一个“请稍后再试”的注释被退回,然后发送服务器重试了一次一次又一次。几个小时以后接受服务器说:“试了这么多次,我猜你可能不是垃圾邮件发送者。”最终邮件进入了收件箱。好吧,所以,首先我们把光纤布满整个地球这样我们就可以在全世界发送几乎即时的消息了。然后就有人看着这个系统说:“我知道我们如何可以做的更好:让我们来创建一个可以把消息几小时的协议吧!”

个人邮件服务器

关于建立邮件服务器你首先要知道它不是一个邮件协议的事而是一个完整的系统的事。如果你想玩得高级一些的话大概有包括 DNS,DKIM,SFP,HELO等在内的12个其他我试图忘记也不想一一列举的协议。之后你又要经历一些莫名其妙的事情。如果你的邮件还没到达对方收件箱的话你得祈祷了,因为高冷的家伙(Gmail 和 Outlook)是不会告诉你哪儿有问题的。

所以我搞定了整个系统,然后用了一系列工具比如 DKIMValidator, mail-tester 和 Glockapps 来验证我的系统是否运行正常。我搞定了这些工具告诉我的每个可能影响系统的小问题,一直到不再有问题提示。尽管我这么努力了,但是我的邮件仍然被视为垃圾邮件过滤器拦截了。这让我觉得有点不可思议:我是独立域名和IP地址的唯一发件人,我只发送个人邮件,但是不知为什么这仍然被视为垃圾邮件了。

也许有人获得了访问我的服务器的权限,并在我不知情的情况下将其用于垃圾邮件? 我知道情况并非如此,因为我已经配置了DMARC,并且Gmail向我发送了DMARC报告,该报告显示了在我给妈妈发送电子邮件的那一天从我的服务器到Gmail的一封外发电子邮件。 我还定期检查我的域和IP是否不在垃圾邮件发送者黑名单中。

雨神,你听到我的祈祷了吗?

Outlook和Gmail都提供反馈邮件投递问题的地方,Gmail没有回应我。 Outlook回答我说“不关我的事”。 他们不会说为什么,但是他们很友好地提供了一些有用的提示,例如“确保您的电子邮件列表是最新的”。 我再次尝试向他们解释,我主要是给妈妈发送电子邮件,并且因为我不是垃圾邮件发送者而没有任何电子邮件列表。 他们“核实我的问题后”回答说,我应“确保取消订阅的过程可见”,以及他们认为对试图向亲人发送个人电子邮件的人有用的其他技巧。

邮件服务商们还提供了一些交互式工具来监视电子邮件的可传递性并帮助解决问题。 Gmail提供的服务称为Postmaster工具,而Outlook提供的垃圾邮件报告程序和智能网络数据服务程序。这些我都试了但是它们都没有什么数据反馈给我,因为我不是垃圾邮件发送者。

Gmail为那些有兴趣改善其Gmail邮件投递能力的人提供了一篇标题是《Spammer Bulk Sender Guidelines》的文章,这也表明了Gmail希望提高他们的邮件投递成功率。

这是一个小的电子邮件服务商叫做 Migadu 的引述:

某些情况下收件服务器只是因为我们的发件人数量少而故意拒绝了合规的电子邮件。 讽刺的是,合规的发送者确实就是这样。

等等,为什么有人这样做呢? AWS对此有一些说明:

如果您使用专用IP地址,则有责任通过发送一致且可预测的电子邮件量来保持发件人的声誉[…]您必须通过发送每天逐渐增加的电子邮件量来预热这些地址[…] IP地址已预热,您必须保持一致的发送模式[…]大多数Internet服务提供商(ISP)仅在给定IP地址从该地址接收大量邮件的情况下跟踪其信誉。

我敢肯定,您已经注意到了这种模式,但是无论如何,我都会加以说明:Gmail和Outlook并未从低流量发件人处发送明显合法的电子邮件。 可传递性工具,缓解措施和准则仅适用于垃圾邮件发送者大批量发送者。 在最大的电子邮件提供商是大型广告技术公司的反乌托邦中,这几乎是您所期望的。

放弃

在过去两年的时间里,我一直在积极使用自己的服务器从相同的域和IP发送电子邮件,但一段时间以来,我的电子邮件仍在Gmail的收件箱中发送。 然后有一段时间,我的电子邮件被放入垃圾邮件中,有时被彻底反弹,有时甚至在没有降落到垃圾邮件文件夹的情况下被接收和丢弃。 您永远无法知道Gmail将如何处理您的电子邮件。 前景更糟。 在过去的两年中,我再也无法将电子邮件发送到Outlook的收件箱。 甚至没有送给我的女友,后者经常从同一个地址给我发电子邮件。 是的,Outlook的垃圾邮件过滤在某种程度上甚至比Gmail还要差。

但是你做这件事吗?
是的,我确实做了。 是的,我确实加入了DNSWL。 是的,我确实配置了return-path标头以匹配回复标头。 是的,我确实告诉我的服务器,当它告诉其他服务器来自127.0.0.1时,这很顽皮。 是的,我确实配置了SPF 3.0,这甚至不是真实的东西,您甚至都不会注意到我刚刚完成了配置,因为电子邮件的可传递性是反乌托邦式的。

由于某些原因,当我讲这个故事时,许多人都难以置信。 常见的回答是“您是在喊大雨神的名字的同时做逆时针旋转这件事吗……”是的,我也尝试过顺时针旋转,以防万一可行,为什么呢? 这件事吗? 只是为了争辩,让我们假设我做错了什么。 假设可以从您的个人电子邮件服务器向Outlook和Gmail发送电子邮件。 如果这很难实现,那似乎是值得的努力吗?

我不是唯一遇到此问题的人。黑客新闻定期发布有关电子邮件可传递性的话题,很多人都在抱怨同一问题。这是一个这些线索似乎也使个人电子邮件传播者脱颖而出,说诸如“很容易发送电子邮件。只需做一件事……”即使有许多知名人士重复说,也不要相信您在互联网上看到的所有内容。这些人的意思很好,但是他们没有提供任何证据,这使我得出一个明显的结论,即他们实际上并未衡量其可交付性。他们只是觉得自己的电子邮件已送达。当偶发邮件丢失时,很容易假定目标收件人只是选择不回信。而且您知道吗,也许其中一个实际上拥有秘密的秘诀,可以通过圣少女IP块(幸运的兔子脚碰到的域)发送电子邮件,IP。我再次问:这似乎是值得的吗?

免责声明:反乌托邦地狱的笑话被约翰·奥利弗(John Oliver)偷走了。
Gmail的垃圾邮件过滤功能几乎总是让我通过电子邮件向妈妈发送电子邮件,真正的麻烦是通过电子邮件发送了新联系人。

Cloudflare 推出域名注册服务 Cloudflare Registrar 并且开放早期申请支持免费 DNSSEC

更新:2018年12月27日

  • 大约在 2018年12月5日 开放域名转移了,当前只能转入不能注册;
  • 现在已经修复了 DNSSEC 生效的问题了,直接启用即可不用对 DNS 做任何设置会自动设置并生效;
  • 只能使用 Cloudfalre DNS,如果需求使用其他 DNS 不建议转入;
  • 官网帮助页面写着可以转出,但是当前可能由于功能不够完善,还没有找到相关的按钮;
  • 12月7日有 tg 网友说他昨天刚注册的账号也可以转入域名,所以没有必要为了“提前”而去捐款;

是谁?

主角地表知名 CDN 服务商 Cloudflare 有新动作了!

哪儿?

访问测试控制面板 https://dash.cloudflare.com/

产品页面 https://www.cloudflare.com/products/registrar/

介绍页面 https://dash.cloudflare.com/domains

做啥?

Cloudflare 推出域名注册服务 Cloudflare Registrar 打算走起域名注册的蛋糕了!

何时?

Estimate: Mid November

特点?

价格低廉,数百后缀,免费支持 DNSSEC,二次认证,批量转移,API,集成其他 Cloudflare 服务。

价格?

价格超级低廉,有多便宜呢?一般的注册商给用于的价格是 注册价格=批发价+利润。而胆儿肥的 Cloudflare 直接承诺不会高于批发价,也就是说以批发价卖给最终用户,没错这的确会改变全球域名注册的格局(估计 GoDaddy 老板暗杀 Cloudflare 老板的心都有了~)。最终价格是什么呢?请看上图。所以,做好把域名转入的准备了么?

其他?

如果你是用 Cloudflare 年限越久,加入测试后的时间越早比如我比较晚现在是 Wave 7。当然,如果你想略微提前一些时间当然也是可以的。参加一个 【Girls Who Code】最低 $1.00 的捐款活动就可以了。地址在【这里】页面中部,捐款之前需要添加一个支付方式如果你之前没有添加过的话,当然,支持信用卡也支持你爱的 PayPal。

更多?

官方博客介绍 https://blog.cloudflare.com/using-cloudflare-registrar/

You’re in Wave 7

Estimate: Mid November

Thank you! You’re now signed up for early access to Cloudflare Registrar. We’ll let you know when it’s time to transfer your domains to Cloudflare Registrar.

推荐 FastMail :优秀邮箱服务

网上介绍/推荐 FastMail 的大佬和文章已经比较多了,最近我的 FastMail 一年付费周期快到了要续费了,想了想这个服务简直6到起飞所以我再来推一波。之前的帖子可能无法说清楚 FastMail 的方方面面,我说点(可能)其他大佬(可能)没有提到的东西。

我自己使用 FastMail 截至目前接近两年。

起源

网上有一小撮人说使用个人域名的邮箱是增加逼格,好的!

我想问问如果这波人如果之前使用的是【雅虎中国】的邮箱 @yahoo.cn @yahoo.com.cn 的话这玩意儿被阿里巴巴关闭之后他们是挨个修改邮箱了么?

还有,假设你使用的是某个服务商的邮箱,比如网易邮箱,你每次登陆都要看烦人的广告这个你看了很多很多年。如果有一天网易出现了安全事故(又不是没出现过)你想搬家,你不再用网易了,你能么?过去很多年的数据导出就是个很大的问题,更不用说放弃网易邮箱后缀了,一旦放弃意味着你要修改所有你使用这个邮箱地址的其他服务,你想一下现在让你更换一个手机号你的第一反应是什么?同理。

使用域名邮箱的话,服务商服务不爽?搬家走人!服务商看着奄奄一息了?搬家走人!广告?抱歉一般都没有!用了多年想换换口味?搬家走人!开始收费/涨价了接受不了了?搬家走人!。。。?搬家走人!


概要

Gmail 千好万好中的大多数都适用于 FastMail 。而且!自从 1999年 以来专门做邮箱业务至今没有倒闭而且被众多大佬发帖推荐的邮箱服务商,地表一只手都数的过来(如果还有其他的请告诉我一下。)!

所有你对邮箱的期望,什么稳定,安全,快速,无广告,绑定域名,各种导入导出数据,别名,大容量,日历,通讯录,同步,推送,IMAP,二次认证,支持 Yubikey ,转发,过滤。。。只要你能想到的,基本上,都支持了。SPF,DKIM,DMARC 支持 。同时,十分注重安全和隐私,十分注重邮件相关标准。

SPF DMARC DKIM 这种一看名字就高端到不行的东西。(SFP 很多国内大厂都支持了,但是后面两个别人都已经支持了很多年了,有些还只是表象上支持而已(腾讯邮箱帮助页面是写上了,可是真的支持了么?))但是,SPF 已经不推荐设置了。你等国内邮箱支持 Yubikey ?恐怕你还得至少再活 500 年!


详细介绍

价格

官网页面很清楚了。可以免费试用一个月,国内手机如果无法注册请直接联系客服邮箱帮你注册一个账号。试用账号限制了可潜在造成滥用的功能,比如限制了邮件发送数量无法创建静态网站无法使用转发规则。年付有优惠具体请看价格页面。另外,使用个人邀请 (https://www.fastmail.com/?STKI=16759801) 首年可以打九折!就是标准版首年 $45 。

容量额度

25GB,如果邮箱容量用完了,购买容量等于购买了一次当前套餐。单个用户最大容量 300GB。

安全

用户数据,访问权限,加密收发,图片载入等等等等,他们写了一篇文章《How FastMail provides a secure service》来介绍。FastMail 至今没有出现过安全事故。

速度

用过都说快,移动端客户端,邮箱页面和你打开官网一样都很快。中国大陆访问没有障碍。

客户端

支持 iOS iPad 安卓 客户端。速度没的说。

主题

主题不是和QQ邮箱一样一身华丽的衣服,而是基于颜色的,总体来看界面有点高端大气(科幻片镜头里的黑客使用的电脑屏幕那种调调。)

语言

多国语言默认英语,简体中文?有,但是翻译似乎不全面,而且翻译也不是很地道。不推荐使用!

支付方式

支持 Visa MasterCard American Express PayPal 和 比特币。但是!没有说只接受信用卡,如果你有 Visa MasterCard 借记卡(中国银行长城跨境通国际借记卡了解一下?)理论上也是可以的但是我没有试,又但是!没说不接受虚拟卡,我也没试过。支持 PayPal 中国版(绑定银联卡是可以的)。有过 Gift Card 叫做 Gift Certificate 但是现在不支持了!

续费策略

对于个人,我推荐使用 Standard Plan 否则的话不能绑定域名。注意这个续费策略有点不同于我们接触的大多数:你元旦买了一年服务,过了半年你想再续费一年,那么你仍然需要支付一年的费用你的使用期限延长一年,没错吧?这是我们接触到的绝大多数的订阅服务(什么 QQ会员啊 爱奇艺会员啊 等等等等的)策略。但是!!! FastMail 不是这样的,如果你过半年后要续费一年,那么你续费的一年从你续费的当天开始计算,时间上时间只延长了半年而你的费用也只需要支付半年即可。即:续费时长从今天开始计算!

域名

可以绑定多个域名,也可以用系统给你的多达 120+ 域名创建别名邮箱,你无论使用什么域名,你在任何时候都只有一个收件箱。当然你可以建立文件夹使用 rules 把内容分开。是不是有 Gmail 熟悉的感觉?

导入导出

支持各种,邮箱,联系人,日历的导入和导出。邮件导入服务是我见过最靠谱最6的没有之一。邮箱搬家无忧零障碍。

DNS

支持托管你的域名的 DNS,当然相比专业的 DNS 服务商来说就有点欠缺了但是对个人使用足够没有问题。

邮件路由

支持设置子域名策略和邮件路由策略。比如如何处理 [email protected] 这种邮件。详细内容 帮助页面

账户恢复

密保邮箱,密保手机,还有 Recovery Code 备用!

二次验证

支持各种你想得到的软件,硬件,短信验证。支持 Yubikey !!! 足见专业!他们自己也说安全是他们的重中之重。帮助页面

App Passwords

使用任何客户端都必须创建一个临时密码而不是用自己的邮箱密码。什么时候,谁用,给什么权限(仅邮件?给联系人?只有 IMAP?等等)都可控!

邮件读写

支持从自带网盘和 Dropbox 上传文件,本地上传当然也支持了。

文件夹

支持层次组织,支持拖放排序。什么重命名之类的~不在话下!

规则

支持收件规则,支持转发规则,支持邮件组织规则。无与伦比强大,你想得到的基本都有!你想不到的也有~你还可以自己编辑过滤脚本!!!

垃圾邮件保护

这还用说,当然!什么“Forwarding hosts”什么“Backscatter”的都支持啦~你常见的贝叶斯分类器?当然!什么设置自定义阈值当然也支持!

自动回复

自动回复必须和垃圾邮件保护一起配合使用!是不是很酷炫?就这点就秒杀别人几条街了。为什么呢?可以自己思考下。

联系人

分组,共享,导入导出你知道的想得到的都支持。

日历

支持添加订阅,支持一切 CalDAV 日历,可以和 Google Calendar 同步。

Notes

附带一个记事本功能,类似 Google Keep 这种。默认纯文本,支持富文本。当然没有 Evernote 和 Dropbox Paper 强大。

Files

网盘!叫做 FastMail Files ,有点强大!但是没有 Dropbox 强大了。除了基本的保存上传下载文件这种以外,还支持各种域名映射,可以做静态网站使用,有个自带的相册模板可以嗖一下生成一个简单的相册。而且!静态网站还支持自动管理续期使用 Let’s Encrypt 签发证书的 HTTPS 呢!这部分后来可能会专门写个帖子介绍一下。

帮助文档

相当全面,相当专业,English Only.

博客

https://fastmail.blog/ 是他们的官方博客,专业!English Only. 我偶尔会翻译一些有意思的文章(能力学识有限,有错误也不要喷我。)

客服

专业不废话响应速度快。可以直接用你的邮箱给 [email protected]mail.com 发邮件就等于快速开了个工单!而且,支持推特上对话帮助~


最后

缺点

有没有发现不支持 PGP 呢?他们又专门写了一篇文章《Why we don’t offer PGP》 来解释。

FastMail Files 不支持 IPv6

写信不支持 MarkDown (有谁支持麻烦告诉我一下)

对比

了解完了是不是觉得简直强大专业了一脸?回头一想我们的网易邮箱腾讯邮箱简直……注册一个月免费试试吧~别忘了使用我的个人邀请 (https://www.fastmail.com/?STKI=16759801) 在你付费的时候打九折~

那么问题来了,你觉得是 Gmail 强大呢还是 FastMail 更酷呢?

改进

发送给QQ邮箱的问题有大佬说已经没有了,我自己也没遇到;

使用科学上网和中国手机注册的问题有大佬说也没有了,这个我自己没有试。

其他中文资源

Amazon Route 53 使用指南

Amazon Route 53 是什么?


Amazon Route 53“ 看名字就知道是 亚马逊 Amazon 提供的一项服务,它属于 Amazon AWS(Amazon Web Services) 众多服务中的一个,它是一个高可用的弹性 DNS 服务,这项服务主要包括三大功能:

  • 域名注册
  • 域名解析
  • 检查资源运行状况

Route 53 为什么要叫 Route 53 呢?网上有答案了:Quora 【这个帖子】表明了原因:It refers to the TCP/UDP port 53, where DNS server requests are addressed.

这篇帖子针对普通用户,只说域名注册和域名解析。学识有限,如果有错误烦劳指出。

域名注册


作为云计算全球头把交椅服务商,亚马逊当然也有域名注册服务。但是亚马逊自己只提供三个后缀的域名注册即最常见的 .com .net .org 其他后缀都是和 Gandi.net 合作,任何除了这三个之外的其他后缀的注册商都会在 whois 信息里显示 “Registrar: Gandi SAS” 。

注册特性

转移锁定(Transfer lock):当然支持,保护域名不会被所以转出当前注册商;打开之后域名状态里面会多一条 “Status: clientTransferProhibited” 这个大家都清楚;

转移密码(Authorization code):自助获取,如果域名要转出必须;历史上,国内的域名注册奸商就是在这个环节各种限制以此限制域名转出,当年我就是写了各种纸质材料送去了北京万网总部才得以转出域名(继续在此差评并且鄙视之);

隐私保护:免费,所有域名免费提供隐私保护;但是!我记得如果是除了 .com .net .org 以外的注册在 Gandi.net 的域名是不能隐藏所有人名称的,详细看【这里】 。

DNSSEC status:DNSSEC 启用需要 DNS 服务本身支持和域名注册商支持,注册在 Amazon Route 53 的域名解析服务截止当前(2018-09-23)不提供 DNSSEC 相关功能但是如果你使用的是支持 DNSSEC 的解析服务(比如 ns1.com)那么是可以在这里设置相关信息以启用 DNSSEC 的。

域名价格

后缀注册和续费转移恢复转入
.com$12.00$0.00$66.00$12.00
.net$11.00$0.00$67.00$11.00
.org$12.00$0.00$69.00$12.00

其他域名价格请参考【这个文档】。

域名注册不能用任何代金券抵扣注册费用,其他的 Route 53 服务费用是可以抵扣。

题外:对于老牌域名注册商 Gandi.net 网络上有两大派别,一大派别极力支持,另一大派别极力反对说各种坑。我个人建议是否要使用这个注册商还需要每个人自己去琢磨它的长处和短处。

域名转入

域名从其他注册商转入 Route 53 流程是自动的,一般情况下如果是国外的注册商转入会当天完成,有的自动处理的甚至半小时就可以完事就是收发几封邮件的事情。同其他注册商一样,转入域名需要支付一年域名费用并且会延期一年,转入以后两个月内不可以转出。

域名解析


Amazon Route 53 域名解析包括两部分:

公共域名解析(Public Hosted Zone):大家理解的传统的域名解析,域名到 IP 地址转换。作用于整个互联网的查询;

私有 Amazon VPN 解析(Private Hosted Zone for Amazon VPN):也是解析,但是仅限于 AWS VPC 内的资源响应,公网无法访问。

先前文章《2017年 DNS 解析服务商列表》当中粗略介绍过 Amazon Route 53 这个优秀的互联网 DNS 解析服务。

品质

高可用,AWS SLA 服务承诺中说明了 Route 53 提供 100% 可用。

根据 Datanyze 统计,Alexa top 1K 中有 21.10% 使用了 Route 53,第二名 Cloudflare 占有 18.87%,而第三名 Dyn 则占了 12.48%。而第二名则是由于优秀的 CDN 服务带动了 DNS 占有率,而第三名的互联网老牌服务商如今被 Oracle 收购了的 Dyn 也没有这么高的占有率。市场足见品质。

特性

优点

Route 53 是当前地表数一数二的优秀的域名解析服务商,基本上一般所有的用户诉求都能满足。常规的域名解析服务商只是做一个域名到 IP 地址的映射,稳定速度快的就已经很难得了。而 Route 不但如此,而且:

  • 可编程,提供各种语言支持的 API 可以编程动态改变路由;
  • 是弹性的,可扩展的提供海量查询服务的 DNS 解析服务;
  • SOA 可以编辑,一般的大多数的 DNS 服务商 SOA 是不可编辑的;
  • 提供流量控制,你的流量怎么路由完全可控;
  • 提供基于基于延迟的路由;
  • 提供基于地理位置的 GEO 解析;
  • 提供 Failover 故障转移确保解析服务高可用;
  • 如果您使用 AWS CloudFront CDN 服务时支持裸域;
  • 如果你使用 AWS S3 支撑网站部分资源,那么支持裸域;
  • 支持 Amazon ELB(Elastic Load Balancing) 集成;
  • 提供加权轮询(WRR)路由功能;
  • Route 53 还是截至目前为止(2018年09月25日)地表屈指可数的提供 DNS 查询日志的服务商(Google Cloud DNS 目前还不提供)而且日志提供导出到 S3 可做各种深度分析;
  • 当然也支持 Anycast 任播;
  • 当然 CAA 也是支持的;

缺点

不支持 DNSSEC 相关,这点比不上 Google Cloud DNS 了,参看上文相关部分介绍。

定价

Route 53 解析的价格由多个因素组合而成:

  1. 托管的域名数量
  2. Traffic Flow 记录数
  3. 标准查询数
  4. 基于延迟的路由查询数
  5. Geo DNS 和临近地理位置查询
  6. 运行状况检查

价格计算还有一些细节的规则,具体请查看 Amazon Route 53 定价 页面。

这里举几个例子:

  • 个人博主,只有一个域名一台主机也没有特别针对的用户,每个月查询50万次,那么每月 0.5 + 0.4 * (50/100) = 0.7
  • 个人开发者,有多个域名假设手里有10个设置各种乱七八糟的只是自己知道的指向几乎没有人访问,有上面同款博客一个,那么每月大约 0.5 10 + 0.4 (50/100) = 5.2
  • 米农,手里持有100个域名但是都只做了指向,有几个爆款指向每月大概加起来有25万次查询,那么每月 0.5 25 + 0.1 (100 – 25) + 0.4 * (25/100) = 20.1

以上计算还要注意区分资源的指向是谁,建立了多长时间等等价格页面的细则。大概的套路就是每项资源使用量*单价-符合免费或折扣策略的价格=总价,除了第一个托管以外其他的都是按比例收取,托管则有一个 12 小时的免费时间窗口。

设置

公共域名解析(Public Hosted Zone)

公共解析和其他的常规 DNS 解析没有什么区别,选择合适的类型在文本区域内会有格式例子给出照着写就可以了,解释一下有别于其他常规 DNS 解析的名词:

Alias(别名):可以理解为一类特殊的 cname 类型,但是指向的对象只能为 aws 资源或者是同类型的同域的其他资源才可以。 aws 资源可以是 CloudFront,Elastic Beanstalk 环境,ELB 负载均衡器,S3 资源。比如给一个 A 记录 hosta 创建一个 alias 叫做 hostb

TTL:如果是别名并且指向的是 aws 资源,则无法指定 TTL 值,一切由 aws 帮你搞定。如果别名指向的是同域的其他相同类型记录,则使用目标记录的 TTL 值。如果不是 alias 的话 TTL 可以设置为你想要的值,默认 300

Routing Policy(路由策略):

  • Simple:一般策略。Route 53 只根据记录值相应查询;这更像是普通的其他常规 DNS 解析,一般用于将流量路由到单个资源;
  • Weighted:加权路由,权重路由,基于权重的流量路由策略。资源的权值是一个 0 到 255 的整型值。思路:把多个资源关联到同一个域名上(可以是单域名或者是子域名),可以认为是一个资源组,然后根据权重(占该组中所有记录总权重的比例)指定向每个资源路由多少流量。如果某个资源的权重为0则不向这个资源路由流量这个特性可以用作测试或者临时停机之类的用途。如果将所有资源的权重都设置为0则会以相同的概率向所有资源路由流量。比如你有3个资源权重费别为 5 10 15,那么分到第一个的流量则为 5/(5+10+15)= 5/30 = 1/6 ,第二个则为 10/(5+10+15)= 10/30 = 1/3,第三则为 15/(5+10+15) = 15/30 = 1/2. Set ID 是一个在加权记录组中唯一标识当前记录的值,可以认为是当前资源名称的一个描述或者备注之类。
  • Latency:Latency-based- Routing(LBR) 基于延迟的路由策略。简单来说就是谁延迟低把流量给谁处理;创建多个同名记录的同时指定响应区域,当 DNS 查询被路由到 Route 53 以后 Route 53 会以一段时间内执行的延迟测量给出路由响应。值得注意的是,网络延迟是动态的,不是一定不变的,也可能和地理位置没有太大关系,例如:不一定香港连接台湾就比香港连接新加坡块。
  • Failover:故障转移路由。这个必须和 Health checks 配合使用,就是 Health checks 发现你的第一个资源如果挂了就把请求路由到第二个资源上。系统推荐为了更高的可用性而把此类记录的 TTL 设置为 60 或更低。
  • Geolocation:传说中的 GEO 路由,地理位置路由。根据用户的地理位置来选择提供流量的资源。位置可以精确到大陆、按国家/地区或者按美国各州指定地理位置。如果您为重叠的地理区域创建了单独的记录 (例如,北美一个记录,加拿大一个记录),则最小的地理区域具有更高的优先级。系统推荐为了更高的可用性而把此类记录的 TTL 设置为 60 或更低。地理位置的路由不仅有利于提高响应速度,而且可以根据地理位置提供本地化内容,还可以控制应用权限,还可以以可预测可控的方式在终端节点进行负载均衡。地理位置路由还可以配合 Traffic Flow 使用达到更加较为精确的流量控制的目的,这部分内容参看【官方文档】。
  • Multivalue Answer:多值应答路由。多值应答记录的值只能设置一个。大部分记录类型都可以设置多个值,比如 A 记录可以指定多个 IP 地址,那为什么还要使用多值应答?为了配合使用状态检查 Health checks 来提高可用性和负载均衡性。如果您没有为多值应答记录关联运行状况检查,则 Route 53 始终认为记录正常。

提示:

如果要设置裸域/顶级域,则不要输入“@”符号,保持空白即可;

三流的邮箱服务商还没上 SPF 的时候二流的服务商还在拿 SFP DKIM 和 DMARC 为骄傲的时候一流的服务商现在已经不推荐设置 SPF 记录了,文档表达的理由是:

RFC 7208 中的 Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1 (在电子邮件中授权使用域的发件人策略框架 (SPF),版本 1) 已更新为:“…[I]ts existence and mechanism defined in [RFC4408] have led to some interoperability issues. Accordingly, its use is no longer appropriate for SPF version 1; implementations are not to use it.“(…在 [RFC4408] 中定义的其存在和机制已导致一些互操作性问题。因此,它已不再适合 SPF 版本 1;实施方案中不应再使用它。) 在 RFC 7208 中,请参阅第 14.1 节 The SPF DNS Record Type

一般情况下创建了一条 DNS 记录以后这条记录大概 60秒 内传播到所有 Route 53 服务器。

私有 Amazon VPN 解析(Private Hosted Zone for Amazon VPN)

如要使用 Route 53 解析 aws VPC 资源,请参考【官方文档】

记录检查(Test Record Set)

要知道某条记录的生效情况可以选中该条记录以后单击菜单栏上的“Test Record Set”来测试,还可以指定特定的其他 DNS 服务器或者客户端 IP 地址来判断 Route 53 给他们返回了什么。

这里的检查只适用于公共域而不能用于私网。

DNS response code 状态可以参考【这个文档

DNS 查询日志(DNS query logging)

前面说了 Route 53 是当前地表屈指可数的提供查询日志的服务商,大厂里面更是几乎唯一的一个。如何配置查看 DNS 查询日志呢?

访问【这个页面】,也就是点击 Route 53 页面左侧的 “Hosted zones”这里会看到你的已经创建了解析记录的域名列表,点击你要配置查询日志的域名前面的单选框(小圆点)(不是点击域名),右侧弹出一个面板叫做“Hosted Zone Details”。页面最下方点击“Configure query logging”按钮。

查询日志只能放在 US East(N. Virginia) 不能放在其他地方。

建议为每一个域名建立一个 log group。那么选择 “New log group in US East(N. Virginia) “即可,下面的”New log group name”为了方便管理建议写成 /aws/route53/example.com 这种。

下一步,配置权限,根据需要配置完成后测试,测试成功创建即可。

查看日志:如同上面一样点击域名前面的小圆点右侧弹出面板里面点击前面写的日志组名称就可以查看了。会跳转到 CloudWatch 页面的“日志”标签。

处理日志:选中日志组名称,上面菜单按钮“操作”里面选择。


Guide to use Google Cloud DNS

介绍

Google Cloud DNS 是运行在 Google 基础架构上的可扩展、可靠、托管式的权威域名系统 (DNS) 服务。它延迟低、可用性高,是将您的应用和服务提供给用户的一种经济实惠的方式。Cloud DNS 是可编程的。您可以使用我们简单的界面、命令行界面或 API 轻松地发布和管理数百万个 DNS 地区和记录。由于谷歌试用了 Anycast(任播)技术并且云平台是弹性的,所以可以提供给用户 生产级质量的高流量权威 DNS 服务 而且可在全球任何地方以高可靠低延迟访问。100% SLA 保证。同时,所有的访问都是支持 DNSSEC 的,这保证了一定的安全性。

价格

Google Cloud DNS 根据网文介绍之前是有 5K 每天的免费查询额度的,但是现在已经取消了免费额度。所有的服务都是收费的,其实收费机制也很简单,只有两部分组成:托管的域名数量和域名查询数量。而且,无论是域名数量还是查询数量,都是越多越便宜。对于最低配置而言,总量 25个 域名以内的 1个 域名按照每月最低套餐的 100万 查询以内的话,则是 域名托管费用 $0.20 + $0.40 = $0.60 ,价格是相当的经济实惠。价格细节

规模

当前(2018年1月3日),Google Cloud DNS 有 ns-cloud-a1.googledomains.com 到 ns-cloud-h1.googledomains.com 这么 8 大组解析服务器,每组又有 ns-cloud-a1.googledomains.com ns-cloud-a2.googledomains.com ns-cloud-a3.googledomains.com ns-cloud-a4.googledomains.com 这么 4 小组解析服务器。
不幸:每一大组的第一个 ns-cloud-*1.googledomains.com 中国大陆均无法 ping 通。虽然你可以删除第一个,但是无法保证获得 100% SLA。

特性

  1. 前面已经提过支持 Anycast 和 DNSSEC 并且 100% SLA 保证。
  2. 除了常规的记录类型以外,当前还支持 CAA IPSECKEY NAPTR NS PTR SOA SSHFP 和 TLSA 记录。虽然支持 SPF 类型,但我还是强烈建议把 SPF 按照 TXT 类型来写。支持记录类型细节
  3. 最低 1秒 TTL。
  4. SOA 可以编辑
  5. 支持多级域名,不限于顶级域名。

先决条件

使用 Google Cloud DNS 之前,需要满足这两个条件:

  1. 启用账单,就是添加了信用卡而且你当前的项目链接到了某个账单账户。对于中国大陆用户而言,Google 接受 Visa MasterCard 借记卡和 Visa MasterCard AmericanExpress 大莱卡(Diners Card)和 JCB 实体信用卡。不接受虚拟卡和预付卡。国内发卡行发行的信用卡(62 开头银联不行)基本都是可以接受。支付细节
  2. 安装 gcloud 。(这个主要是为了导入和进行大量操作而准备,如果你的域名和域名记录数不多的话或者你可以接受手工操作的话则不必安装(仅仅针对 Google Cloud DNS 而言,对于其他 Google Cloud Platf 产品而言是否需要安装取决于你自己的需求))。我比较推荐在国外的 VPS 上安装 gcloud 客户端,如果你在试用国内的 VPS 的国内节点或者是国外 VPS 的国内节点等不能从 VPS 内访问谷歌的话则不要安装在此类 VPS 上。要安装在可以访问谷歌的 VPS 上。安装细节

日志记录

当前(2018年1月4日)不支持查询日志记录,但是支持你的操作的审计日志(audit logs)将会被保存 400 天。这部分内容可以到 https://console.cloud.google.com/logs/ 查看。

基本使用

大部分的操作都可以在网页提供的图形界面中操作,除了导入和导出和事务还有变更等高级操作。当然,如果你有大规模操作的需求或者事务的操作需求,则必须试用命令行。

gcloud dns 工具提供了三类操作对象:managed-zones project-inforecord-sets

managed-zones: 管理域名基本操作。提供的操作有 添加域名 删除域名 列举域名 和 描述域名细节

project-info: 项目信息细节描述,这个需要项目 ID 。就是创建 Google Cloud 项目的时候你指定的那个 ID ,一般是字母和数字的一个组合而且是全局唯一。

record-sets:记录管理基本操作。提供的操作除了有 导出 导入 列举当前记录 这三个显而易见的以外,还提供有 事务(transaction)和 变更(changes)的操作。

假设我们要操作如下任务:

  1. 添加一个叫做 “staff-mail” 的 staff.mail.eg.zone 域名到一个叫做 “project-demo-20180104” 的项目下;
  2. 给这个域名添加 1 个 A 记录 和 1 个 AAAA 记录;
  3. 给这个域名添加 1 个 DKIM 和 1 个 DMARC 的 TXT 类型记录;(关于 SPF DKIM 和 DMARC 参考本文
  4. 给这个域名添加 2 个 MX 记录;
  5. 把 MX 和 DKIM 和 DMARC 放到一个叫做 “exmail” 的事务中;
  6. 控制 “exmail” 事务的行为;
  7. 查看记录变更细节;

添加域名

gcloud dns managed-zones create "staff-mail" --dns-name="staff.mail.eg.zone." --description="A zone for staff mail"

注意:Google Cloud DNS 每次操作的时候都根据 Zone name 来标示域名而不是根据域名来标示。也就是上面的例子中的 “staff-mail”。

同时,Google Cloud DNS 支持全局 flag 来控制命令行工具的一些行为和属性。细节 页面中的 “GLOBAL FLAGS”部分

列举域名

gcloud dns managed-zones list

描述域名细节

gcloud dns managed-zones describe "staff-mail"

删除域名

gcloud dns managed-zones delete "staff-mail"

描述项目信息

gcloud dns project-info describe "project-demo-20180104"

这个操作可以获取当前项目下的资源试用限额,如果你的资源使用量大,就用这个查看,查询结果大致如下:

id: project-demo-20180104
kind: dns#project
number: '964123456789'
quota:
    kind: dns#quota
    managedZones: 10000
    resourceRecordsPerRrset: 100
    rrsetAdditionsPerChange: 1000
    rrsetDeletionsPerChange: 1000
    rrsetsPerManagedZone: 10000
    totalRrdataSizePerChange: 100000

导入记录

假设我们有一个 “staff-mail.zone” 文件是从其他地方导出获得的,注释掉 SOA 和 NS 记录,大致内容如下:

staff.mail.eg.zone. 300 IN A 10.134.12.34
staff.mail.eg.zone. 300 IN AAAA 2604:a880:1a:2c::6b:1

staff.mail.eg.zone. 300 IN MX 10 alt1.aspmx.l.google.com.
staff.mail.eg.zone. 300 IN MX 20 alt2.aspmx.l.google.com.

;staff.mail.eg.zone. 21600 IN NS ns1.he.net.
;staff.mail.eg.zone. 21600 IN NS ns2.he.net.
;staff.mail.eg.zone. 21600 IN NS ns3.he.net.
;staff.mail.eg.zone. 21600 IN NS ns4.he.net.
;staff.mail.eg.zone. 21600 IN SOA ns1.he.net. dnsmaster.he.net. 2 21600 3600 259200 300

_dmarc.staff.mail.eg.zone. 300 IN TXT "v=DMARC1; p=none; sp=none; fo=1; aspf=s; adkim=s; rua=mailto:[email protected]; ruf=mailto:[email protected]"

exmail._domainkey.staff.mail.eg.zone. 300 IN TXT "v=DKIM1; k=rsa; p=H23456789039digNp7HWM3+FK9xfWR4vFAX7Xpdy1Q78eR7MsysdGK0i9Wn8OzHFNZsicBuDU8PFtq39TLVq1ahlNHhgMIGfMA0GCSqGSIb3DQEBAQUAAaassB0EZueo2GCtZE5dmbrwIDAQAB"

使用命令导入:

gcloud dns record-sets import ./staff-mail.zone --zone-file-format -z "staff-mail"

然后你会看到大致如下:

Imported record-sets from [./staff-mail.zone] into managed-zone [staff-mail].
Created [https://www.googleapis.com/dns/v1/projects/project-demo-20180104/managedZones/staff-mail/changes/1].
ID  START_TIME                STATUS
1   2018-01-03T17:49:26.367Z  pending

关于导入的小提示:

  1. 注释掉 ns 和 soa 记录,因为你的 zone 文件来自于先前的 dns 服务商,很明显这里要使用 Google Cloud DNS 的新内容了,如果你对 SOA 记录的部分内容有修改需求,可以等导入以后再图形界面修改即可。
  2. 部分 txt 字段过长可能会导致导入失败,当前已知如果你的 Gsuite 的 dkim 使用了 2048 位的话会因为记录过长而导入失败,所以需要改成 1024 位。

导出记录

gcloud dns record-sets export staff-mail.zone --zone "staff-mail" --zone-file-format

列举当前变更

gcloud dns record-sets changes list -z "staff-mail"

然后你会看到大致如下:

ID  START_TIME                STATUS
1   2018-01-03T17:49:26.367Z  done
0   2018-01-03T17:10:13.956Z  done

可以看到 ID 为 1 的 changes 已经从 pending 变为 done 了。

描述当前变更细节:

此处我们查看上面我们导入操作这个 changes 的细节内容,所以 ID 指定的是 1:

gcloud dns record-sets changes describe 1 -z "staff-mail"

得到回馈大致如下:

additions:
- kind: dns#resourceRecordSet
  name: _dmarc.staff.mail.eg.zone.
  rrdatas:
  - '"v=DMARC1; p=none; sp=none; fo=1; aspf=s; adkim=s; rua=mailto:[email protected];
ruf=mailto:[email protected]"'
  ttl: 300
  type: TXT
- kind: dns#resourceRecordSet
  name: exmail._domainkey.staff.mail.eg.zone.
  rrdatas:
  - '"v=DKIM1; k=rsa; p=H23456789039digNp7HWM3+FK9xfWR4vFAX7Xpdy1Q78eR7MsysdGK0i9Wn8OzHFNZsicBuDU8PFtq39TLVq1ahlNHhgMIGfMA0GCSqGSIb3DQEBAQUAAaassB0EZueo2GCtZE5dmbrwIDAQAB"'
  ttl: 300
  type: TXT
- kind: dns#resourceRecordSet
  name: staff.mail.eg.zone.
  rrdatas:
  - 10.134.12.34
  ttl: 300
  type: A
- kind: dns#resourceRecordSet
  name: staff.mail.eg.zone.
  rrdatas:
  - 2604:a880:1a:2c::6b:1
  ttl: 300
  type: AAAA
- kind: dns#resourceRecordSet
  name: staff.mail.eg.zone.
  rrdatas:
  - 10 alt1.aspmx.l.google.com.
  - 20 alt2.aspmx.l.google.com.
  ttl: 300
  type: MX
- kind: dns#resourceRecordSet
  name: staff.mail.eg.zone.
  rrdatas:
  - ns-cloud-c1.googledomains.com. cloud-dns-hostmaster.google.com. 2 21600 3600 259200
300
  ttl: 21600
  type: SOA
deletions:
- kind: dns#resourceRecordSet
  name: staff.mail.eg.zone.
  rrdatas:
  - ns-cloud-c1.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200
300
  ttl: 21600
  type: SOA
id: '1'
kind: dns#change
startTime: '2018-01-03T17:49:26.367Z'
status: done

列举记录集

gcloud dns record-sets list -z "staff-mail"

得到回馈差不多和我们导入的 zone 文件内容一致,就是当前的记录集。

导出

gcloud dns record-sets export staff-mail.zone --zone "staff-mail" --zone-file-format

添加事务

这里我们添加两个事务,不使用 –transaction-file 表示使用了默认的事务文件名即”transaction.yaml”。

gcloud dns record-sets transaction start --zone="staff-mail"
gcloud dns record-sets transaction start --zone="staff-mail" --transaction-file="exmail.yaml"

添加记录到事务

这里我们把上面提到的 A 和 AAAA 添加到默认事务,把 MX 和 DKIM 和 DMARC 添加到 “exmail.yaml” 事务中。

gcloud dns record-sets transaction add --name "staff.mail.eg.zone." --ttl 300 --type "MX"  "10 alt1.aspmx.l.google.com." --zone "staff-mail" --transaction-file="exmail.yaml"
gcloud dns record-sets transaction add --name "staff.mail.eg.zone." --ttl 300 --type "MX"  "20 alt2.aspmx.l.google.com." --zone "staff-mail" --transaction-file="exmail.yaml"
gcloud dns record-sets transaction add --name "_dmarc.staff.mail.eg.zone." --ttl 300 --type "TXT"  "v=DMARC1; p=none; sp=none; fo=1; aspf=s; adkim=s; rua=mailto:[email protected]; ruf=mailto:[email protected]" --zone "staff-mail" --transaction-file="exmail.yaml"
gcloud dns record-sets transaction add --name "exmail._domainkey.staff.mail.eg.zone." --ttl 300 --type "TXT"  "v=DKIM1; k=rsa; p=H23456789039digNp7HWM3+FK9xfWR4vFAX7Xpdy1Q78eR7MsysdGK0i9Wn8OzHFNZsicBuDU8PFtq39TLVq1ahlNHhgMIGfMA0GCSqGSIb3DQEBAQUAAaassB0EZueo2GCtZE5dmbrwIDAQAB" --zone "staff-mail" --transaction-file="exmail.yaml"

描述事务细节

gcloud dns record-sets transaction describe --zone="staff-mail"
gcloud dns record-sets transaction describe --zone="staff-mail" --transaction-file="exmail.yaml"

我们会发现 SOA 属于默认事务。

从事务里删除记录

gcloud dns record-sets transaction remove --name "_dmarc.staff.mail.eg.zone." --ttl 300 --type "TXT"  "v=DMARC1; p=none; sp=none; fo=1; aspf=s; adkim=s; rua=mailto:[email protected]; ruf=mailto:[email protected]" --zone "staff-mail" --transaction-file="exmail.yaml"

中断事务并且删除事务文件

gcloud dns record-sets transaction abort --zone="staff-mail"

启用 DNSSEC 支持

gcloud beta dns managed-zones update "staff-mail" --dnssec-state on

禁用 DNSSEC 支持

gcloud beta dns managed-zones update "staff-mail" --dnssec-state off

如果启用了 DNSSSEC 的话,在域名注册商那里填写相关的 DS 记录或者其他信息即可。

DNSSEC 状态验证

其他使用 Google Cloud DNS 办法

其实是没有办法的,但是,发现 Google Domains 默认提供的 DNS 服务使用的 NS 和 Google Cloud DNS 是一样的。作为个人和小流量没有苛刻需求的情况下,可以把域名转入 Google Domains 来几乎免费使用和 Google Cloud DNS 品质一样的 DNS 解析服务。

Google Domains 自带 DNS 解析大致特性

  1. 内建支持 DNSSEC 而且方便使用只需要启用即可,手动添加 DS 的步骤都省了;
  2. 支持动态 DNS 解析;
  3. 支持一键设置 Gsuite 各种相关的 DNS 记录;
  4. 支持设置跳转;
  5. 可以设置胶水记录(glue records);
  6. 支持 CAA DS SSHFP TLSA 记录;
  7. 但是当前已知 Google Domains 自带 DNS 限制每个域名只有 100 条记录(对一般需求绝对够用);

Google Domains 官方页面

  1. Google Domains 价格列表和支持的域名类型
  2. Google Domains 帮助页面
  3. Google Domains 官方特性介绍

2017年 DNS 解析服务商列表

  1. 提到的服务或/和价格可能在你查看本贴的时候改变了;
  2. 如果你还知道靠谱的服务可以反馈给我;
  3. 转载不需要获得授权但需要链接到本文;
  4. 最后更新2019年1月31日;

DNSPod 中国版

方案:免费版,个人专业版,企业基础版,企业标准版,企业旗舰版

没有被腾讯收购前尤其是没有编入腾讯云之前,大红大紫是个人都喜欢,限制小功能强大。后来被腾讯收购以后现在变成了 腾讯云解析 ,官网基本上就是个空壳了感觉,限制也特别大,曾经追捧 DNSPod 免费版的个人站长和一些博客博主很多人都觉得 DNSPod 免费版的服务质量在下降。

腾讯云解析价格总览:这里 。而且貌似 发生过多次让大家不爽的事情 事件1 事件2

它的优势在于对于国内刚需(忽略备案)和域名实名制问题以后的企业而言,运营商线路细分和省份线路细分会有一定的优势,对于死不回国(不接受实名制和备案)的个人用户而言,意义不大。同时,免费版不提供 SLA,而个人收费版 99% SLA 和企业版 最低 99.9% SLA。

DNSPod 国际版

出了国门的 DNSPod 就什么都不是了,没有那么强的竞争力了,毕竟,能撑起半个互联网的 DNS 解析服务商也是有的,超长历史的 DNS 解析服务商也是有的。如果国内版 DNSPod 面向中国大陆,那无疑国际版就面向海外用户了,主要是加快了海外用户的解析速度,据说解析服务器全部在美国。当然,不用把域名实名制和备案。

国际版网站给出了一个成功案例,里面有星巴克中国,星巴克中国作为腾讯的战略合作伙伴选择的不是国内版 DNSPod 而是国际版,囧,这当然不是考虑到备案和域名实名制问题(星巴克中国在上海)。当前(2017年12月27日)DNSPod 国际版首页顶部出现提示文字:

DNSPod 国际版解析业务暂停维护,不影响您继续使用。如操作过程中给您带来不便,敬请谅解!国内用户请访问 www.dnspod.cn

Cloudflare DNS

方案:免费版,专业版,商业版,企业版

全球知名的 CDN 服务商,世界级 DNS 服务商,属于这个行业的第一梯队的企业。

特点:低延迟,超低延迟而且全域名提供 DNSSEC 支持,但是免费版只有两组解析服务器,收费版最便宜的价格是20美元,但是提供四组服务器,提供 DDOS 保护服务,流量统计,SSL加密,加速,缓存,流量控制等等众多强大功能,支持 Anycast 技术,支持 IPv6,但是只支持顶级域名。当前(2017年12月27日)他家的 CAA 记录正在测试?我没有申请参加测试但是我新添加的域名里面已经可以添加 CAA 记录了,但是 CAA 添加的界面这几天经常变化;而且,他家的 CAA 记录,会额外添加几个 CA,比如你只授权了:

issue: letsencrypt.org flags:0

那么额外的几个将是:

issue: comodoca.com flags:0
issue: digicert.com flags:0
issue: globalsign.com flags:0
issuewild: comodoca.com flags:0
issuewild: digicert.com flags:0
issuewild: globalsign.com flags:0

方案比较:https://www.cloudflare.com/plans/#compare-features

网络节点地图https://www.cloudflare.com/network/

提示:免费版只支持顶级域添加;

DigitalOcean DNS

方案:免费

这个网站中国大陆网民特别熟悉了,他家的“Networking”里面又个“Domains”的子功能就是 DNS 了。DigitalOcean DNS 是免费服务,无论你是否使用了他家的 VPS 都可以免费使用,有三组免费的解析服务器。

特点:提供 A,AAAA,CNAME,MX,TXT,NS,SRV 和 CAA 记录解析而且界面美观生效速度快?

This provider uses CloudFlare Virtual DNS to proxy-cache DNS request through CloudFlare

可见,基本可以理解为 DO 的 DNS 是 Cloudflare 的一个代理或者是一个前端。暂时没有发现有什么官方说明的限制。

官网指导:https://www.digitalocean.com/community/tutorials/how-to-point-to-digitalocean-nameservers-from-common-domain-registrars

DigitalOcean DNS 算不上专业的 DNS,官网的介绍页面也很少,但是可以 DO 的定位是 Developer VPS,所以参考这一条可以理解一下他的 DNS 满足 Developers 应该是没有什么问题的。大的亮点没有,大的问题也貌似没有。

NSone

方案:入门版(STARTER),基础版(BASIC),高级版(ADVANCED)

世界级 DNS 服务商,后起之秀,专门做 DNS,CDN 的厂商,从解析速度,专业程度,知名客户程度判断的话可以列入 DNS 服务商第一梯队,也支持很多高级的特性,也有很多大厂知名客户。
有免费套餐,注册必须使用信用卡而且我注册的时候被要求发了真实信用卡的照片到邮箱通过了人工审核。

各种方案:https://ns1.com/pricing#managed

特性:支持流量控制,有专门针对中国大陆的 Managed DNS for China 服务,支持 Anycasted 任播,高频监控,支持 GEO 路由,支持 Linked Zones,支持导入,支持部分修改 SOA 记录,支持超全记录类型包括 AFSDB,CAA,CERT,DS,HINFO,NAPTR,PTR,RP这些,根据我前段时间(2017年12月)的邮件咨询,DNSSEC 支持将在 2018年第一季度上线,同时支持当作 Secondary Zone/从属 DNS/slave dns 使用,同时支持 DNS 记录在线迁移 zone transfers 功能(AXFR),可以把 DNS 同步到另一个 DNS 那里比如 he.net 使它作为从 DNS 使用。当然 也支持 API 编程。而且可以统计 24 小时内某条记录的被查询数,几乎实时统计。

免费限制:每月 50 万次查询,这个规模不适合大规模应用,小站长博主,小型企业没有任何问题;虽然 DNS 记录数没有限制,但是所有的域名加起来只支持 50 条 DNS 记录,包含一个监控器。

Linode DNS

方案:有条件免费

如同 DigitalOcean 一样,
This provider uses CloudFlare Virtual DNS to proxy-cache DNS request through CloudFlare。但是不同的在于 Linode DNS 只有你在使用它家的 VPS 的时候(至少有一台 VPS 在计费)才可以使用,否则不能使用,如果你没有开通 VPS,则会被告知:

Your zones will not be served by Linode’s nameservers unless you have at least one active Linode on your account.

特点:五组服务器,支持常规记录以外还支持 CAA 记录,也支持当作 Slave DNS /从属 DNS 使用。

官方介绍:https://linode.com/docs/networking/dns/dns-manager-overview/

对 DNS 有高要求的个人和企业不建议使用,作为普通解析用用小流量还是可以的,也是一款 Developers DNS。支持 DNS 记录导入。

Dyn

方案:付费 / 开发者版,商业版,企业版

世界级 DNS 服务商,DNS 服务领域全球老大哥,扛着着半个互联网,后来被 Oracle 甲骨文收购了。以前有免费服务,现在没有免费服务了,最低是 $7/月 的 developer plan。

价格详细:https://dyn.com/dns/pricing/

特性:毋庸置疑能想到的都支持,比如支持全球范围 Anycast 技术,支持日志,支持 API,DDOS 保护,GEO 路由,Failover,DNSSEC(貌似只支持有限的域名后缀种类),同时有 Secondary DNS 服务,也有 动态 DNS/Dynamic DNS 服务。是不差钱的土豪企业和个人的最佳选择。看个新闻就懂了这家老大哥在互联网领域的地位 《DNS服务遭攻击 欧美大半个互联网沦陷了

提示:

  1. 官方时不时在一个专门的页面有优惠券送;
  2. 如果你的账号一段时间内没有激活的服务则账号会被关闭;
  3. (第三方搜到的优惠券可能比官方的优惠力度大);

Constellix

方案:付费 / 开发者版,企业版

计费模式很复杂,具体请看 https://constellix.com/pricing/dns/ ,当然官方也提供了一个计算器 https://constellix.com/pricing/pricing-calculator/ 帮你搞定费用问题。

DNS 领域的全球老大哥 DNS Made Easy 团队设计开发的 DNS 产品,没有查到历史有多久远,但是域名 https://www.whois.com/whois/constellix.com 是 2009年11月23日 注册的。由于 DNS Made Easy 良好的口碑和业界的认可程度,应该不会有很大问题。

支持特性:企业级 100% SLA 支持,GEO 路由支持,对于企业级支持 Secondary DNS,对于开发者 支持 CND,支持 API,支持流量优化/控制,流量分析,支持 CAA,支持 DNSSEC,支持 Vanity DNS,支持日志。

Zilore

方案:付费 / 个人版,专业版,商业版

专业 DNS 服务商,个人版差不多在 $5/月左右徘徊,没有免费服务。个人版支持 5 个域名,但是记录数无限制,查询数也没有限制,每多一个域名 $0.5 。年付的价格是 $50/年,但是如果年付的话每多一个域名则价格为 $5/月/个

特性:支持 GEO 路由,支持 Failover,支持 Failover Website(包括 SSl),支持 Anycast DNS(任播技术),DDOS 保护,IPv4/IPv6支持,支持 ALIAS 记录,支持新域名后缀,个人版最低 TTL 300秒,专业版最低 TTL 60秒,企业版最低 TTL 30秒。支持域名快照,支持预设,支持解析记录模板,支持统计,支持邮件转发,最少 99.90% SLA 保证。支持 Aname记录。

DNSimple

方案:付费 / 开发者版,专业版,企业版

新兴 DNS 服务商,知道它是从 Github Education Student Developer Pack 里面送过大额的代金券,貌似是 $100(现在已经没有了),从整个网站来看 DNSimple 是一家很热爱 DNS 的公司(废话),而且他们的 logo 比较萌。

价格方面:开发者服务 $5/月 or $50/年;专业版 $25/月 or $250/年,企业版 $250/月 or $2500/年,价格还是相当可以的。各个版本的差异可以到 https://dnsimple.com/pricing 查看包括价格在内。

特性:相当的都支持,包括个人乞丐版支持 Anycast 技术,API 支持,Secondary DNS,DNSSEC 也支持,解析速度也比较快。

特色中的特色:可能整个公司的员工是文艺青年的缘故,他们会根据你的 DNS records 来给你作曲一个,最下面有一个播放按钮。这个叫做 DNSound,Hear your domains 是他们的介绍和整个功能的界面预览。

提示:

This provider uses CloudFlare Virtual DNS to proxy-cache DNS request through CloudFlare*

DNS Made Easy

方案:付费 / Small Business,Business,Corporate / No Obligation Free Trial

世界级 DNS 服务商,DNS 服务领域全球老大哥,DNS 行业领域的零大哥级别。都是年付,没有月付价格,没有试用。

不同的特性支持依赖于不同的付费方案,具体可以参看 https://dnsmadeeasy.com/pricing/ ,支持的域名和查询次数也是有限的。值得一提的是在 DNS 解析整个领域,DNSMadeEasy 是有话语权和一席之地的鼻祖级企业。

还值得一提的是,国外的企业,有一部分会在自己的网站上列举一些竞争对手和自己的产品的特性或者价格比较等等,这点 DNSMadeEasy 也不例外,在这里 https://dnsmadeeasy.com/pricing/pricecomparison/ 。这个行为貌似通常在国内的行业内不会?还有比如 Namecheap 啊 Namesile 啊 GoDaddy 啊等等都有过这种做法,把自己和别的竞争对手比较,还有一些主机商,域名注册商也都是如此。

特性:100% SLA,Failover,API,实时统计,支持 ANAME 记录,支持 GEO 路由,支持 Vanity DNS,支持 Record Templates。

UltraDNS

方案:付费

据称是企业 Managed DNS 领域具有一定历史和地位的服务N多高端客户的 DNS 专业服务商,据说 Amazon 就试用他家的服务,价格奇贵,而且是根据查询数来购买的,对于低级的套餐支持的特性比较少,高级的则比较良好,属于贵族 DNS,个人基本没有办法使用。

具体请看 https://www.security.neustar/dns-services/managed-dns-packages请用 Google Chrome 打开,否则可能不能正常显示!

ClouDNS

方案:免费 专业版 创业版 商业版

专业 DNS 服务商,他们包含有只支持 3个 域名而且有限特性的免费版功能。收费方案包括三个大类,第一类 Premium DNS hosting 有 free,Personal $2.00/month ,StartUP $5.00/month 和 Business $15.00/month 。然后还有 DDOS Protected DNS 和 GEODNS 两大类方案。整体而言,虽然价格很灵活,但是价格是比较合理的,而且官网常年有活动,价格非常低廉。要说唯一的缺点,就是网站不够酷炫不够现代(可能是另一种我欣赏不了的美吧!)

如果不区分付费方案的话,支持的特性包括几乎听过的全部特性,包括:DNSSEC,甚至包括 DNSSEC for Secondary DNS(这是非常少见的),Zone transfers(AXFR),动态 DNS,反向 DNS,SOA 可编辑,还可以针对每个记录设置 TTL,100% SLA,支持 NAPTR,支持 GEO 路由,当然也支持 DDOS 保护。支持 Anycast 技术。

GoDaddy Premium DNS

方案:付费 / starting at $2.39/月

由于 GoDaddy 业内域名数量第一的缘故,所以 GoDaddy 的 DNS 市场占有率超高,无法知道到底是 免费+收费 市场占有率高,还是免费市场占有率高,还是收费市场占有率高。只说收费 DNS 的问题吧,价格不贵,而且 GoDaddy 常年海量的优惠券和满额优惠的活动,价格确实不贵,但是国内使用的话就要考虑连通率的问题了(这不是 GoDaddy 的错)。

支持特性:最多支持 5个 域名启用 DNSSEC,支持 Secondary DNS,支持 5个9 的 99.999% SLA,支持 records Templates,内置错误检查。支持无限多个域名,支持无限多个记录,支持 Anycast 任播技术。

由于 GoDaddy 比较适合大宗购买域名,所以他们的 DNS 适合大量囤积域名的时候使用而不启用 DNSSEC,对于主要使用的非停靠域名,还是使用 DNSSEC 比较好。

RcodeZero

方案:付费 €19/月起步

价格详细:https://www.rcodezero.at/en/home/#pricing

欧洲一家专业的 DNS 服务商,价格比较贵,该支持的都支持,但是价格低廉的套餐就不一定支持。

不考虑套餐的情况下支持的特性:统计,DDOS保护,DNSSEC支持,AXRF支持并且支持TSIG(这个很少见),API,无限制查询数,当然也支持 IPv6。每个域名支持 100条 记录。

EasyDNS

方案:付费 $35/年起步

专业 DNS 服务商,有三类三产品:

DNS Standard:$35/年

特性:API,3 Anycast,3 easyMail Mailboxes(难道是送3个邮箱?)

DNS Pro:$55/年

特性:100% SLA,API,Failover,修改 SOA记录,动态DNS,每条记录分别设置 TTL值,500万查询数每月,4 Anycast,10 easyMail Mailboxes。

Enterprise DNS:$153/年

特性:相比 DNS Pro 多了客服支持,100% SLA,电话支持等等。

HE.net DNS

方案:免费

免费,稳定,强大,古老的 HE DNS 几乎无人不知。

最近的添加是支持了 CAA记录,优点就不说了,总之都是优点,只说缺点吧。HE DNS 是很多人想起“免费DNS”的第一反应,支持五组 DNS 服务器,同时,支持 AXFR 域名迁移(但是不支持 TSIG),还支持查看当前 Zone 文件;

缺点:别人支持的强大的功能它不支持的都是缺点,生效速度比较慢,不能修改 SOA,不支持 API,现在支持 50个 域名(包括从DNS(slave dns)和反向DNS(reverse dns))。

提示:

  1. 因为生效速度慢的问题,所以先把你要解析的域名的 ns 修改成 he 的(ns1.he.net ns2.he.ent ns3.he.net ns4.he.net ns5.he.net),然后再去添加域名;如果你的 NS 只能添加四条的话,随便选择四条即可,建议写除了 ns1 以外的四条;
  2. 官方提示建议把资料改成你真实的,以便在需要的时候证明你的身份和你的拥有关系;
  3. 修改个人资料的地方是 页面左侧“Quick Links”中的“Certification”页面,登陆以后点击左上角的“Update Info”即可修改个人资料;
  4. 由于 HE.net 账号是可删除的,而且支持二次验证登陆,所以当你有重要的域名在上面的时候建议启用二次验证。

CloudfloorDNS

方案:付费 / 企业版 $50/月起,Secondary DNS $40/月起

专业 DNS 服务商,只有企业版和 Secondary DNS 两种方案。

特性支持:无限个域名,无限查询数,免费负载均衡,DDOS保护,DNSSEC,可选的 GEO 支持(Starting at $100/month)100%SLA,可选的 Failover支持(Starting at $85/month)。

Vultr DNS

方案:免费

如同 DigitalOcean 和 Linode 一样,Vultr 也有自己的 DNS 服务,首先看官方介绍 https://www.vultr.com/docs/introduction-to-vultr-dns 。同时,Vultr 是无条件免费使用的,限制暂时没有发现,官方介绍也很少(和其他两个 VPS 服务商一样)。

特性:支持CAA记录,最近支持了 DNSSEC,SOA部分可编辑比如电子邮件地址,支持SSHFP记录。关于特性的官方介绍 https://www.vultr.com/news/Get-More-With-Vultr-DNS/ 。如果你想很方便地使用以下 DNSSEC 的话,大部分都可以从这里开始因为很简单。

DNSPark

更新:2019年1月31日

DNSPark 已经在2018年8月1日永久关停了

外部链接一:
DNS Park Permanent Shutdown August 1, 2018

外部链接二:
Are you shutting down your business?

方案:免费版,基础版,标准版

专业 DNS 服务商,免费版几乎什么特性都不支持而且只支持 10条 记录。

不考虑收费方案的情况下,特性支持包括:Anycast支持,动态DNS,API,Secondary DNS,AXRF 支持,支持 TSIG,支持 DNSSEC(support DNSSEC via our secondary DNS service)。

EntryDNS

方案:有条件免费版,专业版

先说说收费的事儿,收费很有意思。不论你选择那种服务方案,你注册账户都必须付费注册费 $10,然后你使用免费版的话就可以随便用了,如果使用收费版的话 $10/年。

免费版特性:最多支持 25个 域名,支持 25个 子域名,API,记录类型免费版收费版没有区别,TTL 设置免费版收费版美区别。

收费版特性:域名和子域名数量无限制,DNSSEC 支持,IPv6 支持动态 DNS,Vanity DNS。

Verisign Managed DNS

方案:付费

Verisign 有一些人可能不太了解,一句话介绍就知道它在互联网上的地位了:它运营着 .com .net .gov .name .edu .tv 等一大堆。还有你听过的传输中的 13组(注意是13组,不是13太,关于为什么是13组,请参考知乎 https://www.zhihu.com/question/22587247) 顶级 DNS 服务器中的 2组 。Verisign 称得上是真正的“互联网基础运营商”。那么问题来了,他家的 DNS解析服务,如果说不上数一数二,那肯定也不差。

特性:监控,Failover,GEO,Weighted Load Balancing 加权负载均衡,动态流量控制,DDOS 保护,支持主从DNS,DNSSEC 支持,API。

购买:当前 Verisign 只能通过代理商购买,当前官网给出要给供应商叫做 analyze 页面:https://vsr-reseller.analyzecorp.com/vsr/quote.html

Namecheap DNS

方案:免费的 BasicDNS 和 付费的 PremiumDNS

Namecheap 作为 eNom 的代理商,是价格合理,活动多,服务比较不错的,尤其是随时在线的 Live Chat 客服更是基本是行业里最好的了,有什么不清楚,只要有登陆账号不管是不是他们的产品付费用户都可以问,态度也都很不错。 Namecheap 提供有域名自带的免费的 BasicDNS 和 付费的 PremiumDNS 两种服务。这里重点说下付费的 PremiumDNS 服务,该服务由前面提到的 Verisign Managed DNS 提供,可靠性自然不用说。

特点:100% SLA,DDOS 保护,DNSSEC 支持,Anycast 技术,月查询限制200万次。价格是 $4.88/年/域名

几条友好提示:

  1. 付费 PremiumDNS 可以给任何注册商的任意域名使用,不管域名是不是注册在 Namecheap;
  2. 一个付费 PremiumDNS 只能使用一个域名,以后不能切换到其他域名;
  3. 如果你要使用 DNSSEC 功能的话,则域名必须注册在 Namecheap;
  4. 当前只支持14中后缀的域名使用 DNSSEC,具体参看 https://www.namecheap.com/support/knowledgebase/article.aspx/9718/2232/nameservers-and-tlds-supportedunsupported-by-dnssec

特别注意:.org 不支持 DNSSEC

Google Cloud DNS

方案:付费 / 按量付费

看到名字就知道个大概了,没错,它是 Google 出品,是 Google Cloud Platform 中网络相关产品中的一个。Google Cloud DNS 是 Google 推出的一款可靠的,弹性的高可用低延迟价格低廉的权威域名解析服务。由于 Google 的作风重视开发者,重视底层服务,我们肯定猜得到必然是可编程的 DNS 服务,而且一定是提供了比较先进的特别遵循 RFC 标准的解析服务。

价格方面:按量付费,此服务不包含在 Google Cloud Platform 的免费套餐 https://cloud.google.com/free/ 里,也不包含在永久免费套餐 https://cloud.google.com/free/docs/always-free-usage-limits里。价格由两部分组成,一个是托管的域名数量,一个是域名被查询的数量,二者结合实行阶梯计价的,对于第一阶梯来说,对于 0-25 个域名内,$0.20/月/个 域名,对于 0-1百万查询内,$0.40/月/域名。比如你有5个域名,一共加起来月查询数是1000万次,那么价格是 域名 0.25=1 ,查询 100.4=4,则一共是 1+4=5美元/月。而所有域名在功能方面都是一样的,都可以使用全部的功能和享受全部的特性。

特性支持:毋庸置疑首先支持的必然是 Anycast 任播技术,高可用 100% SLA,API,最低 1秒 TTL,超全记录类型支持比如 CAA DNSKEY DS NS IPSECKEY NAPTR SSHFP TLSA,当然支持 IPv6,SOA可编辑,以前不支持 DNSSEC 最近刚刚支持 DNSSEC 了(2017年12月)而且是所有后缀类型域名都支持,除了支持 API 是可编程的 DNS 以外还提供命令行工具来控制,命令行提供了 Zone 文件的导入功能可导出功能(导入导出在 WEB 界面是不提供的)。

友好提示:根据网友 提示1 提示2 Google Cloud DNS 中国大陆使用可能会有连通率问题。

Amazon Route53

方案:付费 / 按量付费

当然,是 Amazon AWS 众多服务中的一个,高可用,可扩展,可编程强大 DNS 中的一个, Route53 在众多知名网站中使用率很高,这和亚马逊云计算强大稳定是分不开的。

Route 53 支持两种服务,一种是公网解析,就是我们平常所说的域名解析;还有一种是私网解析,如果你有多台亚马逊的云主机,可以组合一个私网,用 Route53 来解析他们。

除此之外, Route53 还支持很多高级的特性。当然,可编程是一定的。除此之外,Route53 是 DNS 解析服务中少见的支持查询日志记录的服务商,不但记录日志,而且日志可以导出到 Amazon S3,还可以和其他亚马逊的服务集成,对日志做深度分析。查询日志是按照一定的规则组织的,当然基本上包括了日志需要记录的常规数据。

费用方面:费用由这么几个方面组成:

  1. 托管的域名数量
  2. Traffic Flow 记录数
  3. 标准查询数
  4. 基于延迟的路由查询数
  5. Geo DNS 和临近地理位置查询
  6. 运行状况检查

如果不是大流量的企业客户,只需要关注托管的域名数量和标准查询的数量即可,基本上标准查询大多数普通用户也都再第一阶梯内,值得注意的是,Route53 设置域名以后不会立马收费,如果你在12小时内删除(比如仅体验或者做测试)则是不收费的,如果是超过12小时,则按照完整一个月的费用收取。于定价的详细信息 https://aws.amazon.com/cn/route53/pricing/

特性支持:除了和已有地 AWS 深度集成这个特有功能比如 Amazon VPN 和 私有 DNS,支持 CloudFront 和 S3 的裸域,同时和 ELB 深度集成,还支持流量控制,基于延迟的路由,Geo DNS,故障转储,运行状态检查,支持加权轮循(WRR),Failover 当然也是支持的,Anycast 当然也不例外也支持。

目前唯一的缺点:不支持 DNSSEC 。

Zoneedit

方案:免费 付费增值服务

互联网上非常老牌的免费 DNS 服务商,和 EasyDNS 是同一家;如果他自称爸爸就没有敢自称爷爷的了。几年前改版了一次,貌似发生了一次并购,以前的账户几乎不能用了,反正我试了官方提供的各种方法都没有找回自己的老账号,然后就迫不得已重新注册了一个。

限制:免费账户最多3个域名;非商业使用;25万查询/月;没有 SLA;只支持顶级域添加;

费用:默认的免费账户只有2个域名可以添加,如果你注册了账户收到一个问卷调查的话会多增加一个域名使用资格,一共就可以添加3个域名。

他们家的收费和别人不太一样,别人直接收货币而且一般都是美元,他家是按照点数计算的,一个点购买价格是 $1.4 ,如果购买 5点 的话是 $5,购买多则优惠多。Managed DNS 增值服务需要1个点数服务包包括 4组 NS 服务器,免费的只有两组;Dynamic DNS 动态DNS,WebForward 和 MailForward。Tertiary DNS 需要1个点数;Failover 需要1个点数;Backup MX需要1个点数;费用的具体可以参考 https://www.zoneedit.com/pricing/

特点:老牌大致的意思就是稳定,SOA 只支持修改时间相关;动态DNS;支持隐式转发(stealth forwarding);支持CAA;支持一个查询数量的统计,不是实时的,只是一个数字,每天有多少多少;支持图形化导出和导入,支持查看当前 Zone 文件;和其他不太一样的是它提供一个查看当前添加的域名过期信息的小功能,虽然用处不是特别大但是感觉也算贴心吧;同时支持 DNS 记录在线迁移 zone transfers 功能(AXFR),这个可以配合把比如 HE.NET 或者 NS1 这种当作一个 slave DNS 使用,但是这个传输目前没有发现支持加密 TSIG

1984hosting

方案:免费

自我介绍里面说是冰岛一家2006起步的公司,主要是卖主机的但是也提供免费的 DNS ,他们说自己已经成为了冰岛最大的主机商,作为小厂(对于其他竞争对手来说)本来是不会单独提出来的,主要是,他家的免费 DNS 在 2017年末这个大部分商家都不提供 DNSSEC 的情况下它提供针对全部域名支持的 DNSSEC 服务。

免费DNS提供主要DNS(Master DNS),从DNS(Slave DNS)和动态DNS(Dynamic DNS)。根据查询 NS 服务器得知他家的 DNS 架构在 Vultr 的机器上。

特点:最大的亮点支持 DNSSEC,支持 AXFR zone transfers 功能,支持记录模板可以快速添加常见的服务的解析比如 Office 365 需要的记录,支持 CAA,支持 SSHFP 记录,最小 TTl 900秒,支持二级域使用 DNS 服务,有个”Zone History”功能。

微林vxDNS

方案:免费

微林一般人知道都是从网络加速,服务中转知道的。他家也提供DNS解析服务,并且免费。官方页面一贯地简洁,介绍不多,已知的限制是只能添加顶级域。

特点:内置支持主要国家的地理信息解析,高度可配置的地理信息,比如你设置可以直接给北京联通的一个网段配置一个解析;支持24小时内的查询数以图标方式展示统计;自带 A记录宕机切换 功能,默认关闭的,打开就可以了。有三组服务器。支持 API 可编程 DNS。支持裸域设置 CNAME 记录。最大最大的特点是高度可配置的区域信息,如果你需要高粒度的GEO解析,请用微林vxDNS。

SPF, DKIM & DMARC email anti-spoofing technology history and future

这篇文章翻译自 FastMail 官方博客
原文:https://blog.fastmail.com/2016/12/24/spf-dkim-dmarc/
这是第二十四篇也是 2016 FastMail Advent Calendar 系列的最后一篇文章。谢谢大家阅读也一如既往地感谢大家使用 FastMail

看看这封邮件是从谁发给谁的呢?

From: PayPal <[email protected]>
To: Rob Mueller <[email protected]>
Subject: Receipt for your donation to Wikimedia Foundation, Inc.

事实上,这些邮件头根本没有告诉你这封邮件真正地是从哪儿发到哪儿的。主要有两个彼此分开的电子邮件标准。RFC5322(旧版RFC822/RFC2822)规定了电子邮件格式,包括邮件头比如 发件人/收件人/邮件标题 和电子邮件正文。然而,它并没有规定电子邮件如何在不同的电子邮件系统之间传递。RFC5321(旧版RFC821/RFC2821)中规定了 简单邮件传输协议(SMTP),它详细地规定了电子邮件在不同系统之间的传递方式。
这种标准分开设计的结果是:邮件消息的格式不需要和邮件的发件人或收件人有任何关系。意思是,你在电子邮件中看到的 发件人/收件人/抄送 这些邮件头也许和这封邮件在 SMTP 传递过程中使用的真正的发件人或者真正的收件人没有关系。
当电子邮件标准制定的时候,互联网是一些人们互相之间认识的一些大学的计算机组成的网络。标准制定的假定情况是邮件用户和其他发送者是互信的。
所以,发件人 字段应该就是这个电子邮件地址的主人。当你要指定收件人的时候,收件人地址应该写在收件人字段并且以 SMTP 为协议发送给收件人(通过 SMTP 的 RCPT TO 命令)。这种分离邮件格式和传递也允许类似秘送(Bcc, blind carbon copy)。任何秘送字段中的地址将不会出现在邮件头中,但是SMTP可以用来把邮件发送到正确地目的地。
随着时间的推移,这种互信的友善的网络环境变得越来越不那么可信了。我们现在的网络环境更多的是恶意和不可信的。我们现在迫切需要保护我们的系统远离垃圾邮件和钓鱼邮件的侵害,因为他们大多数都是为了欺诈用户。
从使用 实时黑名单 (RBLs Realtime Blackhole Lists)判断已知的垃圾邮件发送服务器到邮件内容分析确定是否为垃圾邮件,已有多种层次的垃圾邮件控制手段。在这里,我们将讨论主流的反垃圾邮件技术。

SPF

反欺诈邮件最早期的一个成果是 SPF(Sender Policy Framework 发送方策略框架),SPF 的主导思想是指定通过域名的邮件发送方,通过 DNS 记录来指明特定的域名允许发送邮件的服务器。比如,只允许服务器 x,y和z 发送 @fastmail.com 的邮件。
不幸的是,SPF存在许多问题。起初,SPF只能用于 SMTP 发送协议的域名,也就是 MAIL FROM 这样的信封地址。甚至没有电子邮件软件显示这个地址。(它的主要用途是当邮件发送失败的时候发送错误/退回邮件而使用。)如今,没有必要非得 MAIL FROM 地址匹配发件人字段。所以实际上,邮件反欺诈的对象其实是一个跟本没有人看到过的地址(the only thing youʼre protecting against is the spoofing of an email address no one ever sees)
在这种理论之下,它却是有效地防范了大量的垃圾邮件。它减少了退信(backscatter email),退信就是当你不能收到仿冒邮件的时候看到的邮件。
实际的情况是,只有在如果人们确实挡住了 SMTP 阶段的 SPF 检查的邮件时才有效。很少由于 SPF 有许多问提而有效。它完全打破了传统的邮件转发。当系统转发一封邮件的时候,系统假定 MAIL FROM 被保存用来当邮件转发失败的时候退回给发送者。不幸的是,这意味着某人从 Hotmail 发送了一封邮件给 FastMail,然后你从 FastMail 转发到了 Gmail,在从 FastMail 转发到 Gmail 这个过程中就有了问提。其中 MAIL FROM 地址是一个 @hotmail.com 的域名,但是 SPF 将表明的是 FastMail 是不能被允许用来发送以 @hotmail.com 为域的邮件的。
有种方法 发送者重写策略(SRS, Sender Rewriting Scheme)试图完善这个问提,但是它过于复杂。它让 SFP 提供的保护被相对地降低了,并没有太多地方选择使用 SRS。这种方案以本着对发送方对邮件的签名的尊重就这样终止了。如果 SPF 检查通过,那么或许这封邮件是 MAIL FROM 中的域的合法的邮件。如果 SPF 检查失败,好吧,也不能说明很多问提。有可能这是一封被转发的邮件,也可能是 SPF 记录没有配置,或者许多其他的可能。

DKIM

DKIM(DomainKeys Identified Mail 域名密钥识别邮件标准)是一个明显相比 SPF 符合和有意思的标准。它允许域所有者(同样的,通过 DNS 记录的方式)加密地签名邮件的部分内容以便收件人验证它们是否被修改了。
DKIM is a bit fiddly at the edges and took a while to get traction,但是现在它已经被广泛使用了。发送到 FastMail 的邮件大约有 80% 都是经过 DKIM 签名的。
让我们来看看开始的时候那封邮件中添加的 DKIM 签名:

DKIM-Signature: v=1; a=rsa-sha256; d=paypal.com.au; s=pp-dkim1; c=relaxed/relaxed;
    q=dns/txt; [email protected]; t=1480474251;
    h=From:From:Subject:Date:To:MIME-Version:Content-Type;
    bh=Vn79RZZBrNIu4HFwGMOOAezyw/2Ag+w+avW1yscPcUw=;
    b=...
From: PayPal <[email protected]>
To: Rob Mueller <[email protected]>
Subject: Receipt for your donation to Wikimedia Foundation, Inc.

使用公钥加密和 DNS 查询,邮件接收者可以判断域“paypal.com.au”签名了邮件正文和一些邮件头(这个例子中有 发件人,标题,日期,收件人 等等)。如果签名有效,则认为这封邮件的邮件头和正文在传输过程中没有被修改过。
虽然这很有效,但是仍然有一个很大的问题。
那些以 @paypal.com.au 结尾的没有经过签名的邮件呢?或许不是 PayPal 的每个部门的邮件都正确设置了 DKIM 签名。那我们是否觉得这些没有签名的邮件就是不可信的呢?
并且,我如何知道我能信任这封经过签名的邮件?在这个例子中,paypal.com.au 很可能是属于 Australian division of PayPal Holdings 公司,但是,paypal-admin.com 呢?这并没有明确我应该信任哪个域不信任哪个域。在这个例子中,发件人字段匹配域的 DKIM 签名,但事实情况不一定如此。你可以给任何域都签名 DKIM 信息。这并不能阻止骗子使用签署了 paypal-admin.com 的 DKIM 签名的 @paypal.com.au 发件人地址。
尽管如此,DKIM 提供了正确的信息。它可以使邮件接收方去 associate 域名(或者多个,由于同一封邮件拥有多个 DKIM 签名是可以的并且很多情况下是有用的)和它签名的邮件。随着时间的推移,邮件接收者可以为域和/或和它关联的 IPs 建立一个可信的衡量,发件人地址,和其他邮件特性。这对区别“可信的”邮件和“不可信”的邮件是有帮助的。

DMARC

DMARC (Domain-based Message Authentication, Reporting & Conformance) 试图解决 SPF 和 DKIM 二者遗留的可信问提。仍然,通过 DNS 记录,域所有者可以定义邮件接收者接受到邮件后的行为。就 DMARC 来说,我们通过查看发件人字段认为邮件来自一个特定的域:–当你收到邮件的时候看到的地址。
基本上,在你设置一个 DMARC 记录后邮件接收者应该:

  1. 检查发件人字段的域是否匹配 DKIM 签名的域(这个过程叫做 校验(alignment))以及 DKIM 签名是否有效;
  2. 检查发件人域头字段是否匹配 SMTP 的 MAIL FROM 域以及发件人的 IP 地址是否被 SPF 所允许;

如果有其一(either)检查通过,则这封邮件的 DMARC 则通过检查。如果都检查失败, DMARC 的 DNS 记录规定了接收方应该采取的行为,包括隔离邮件(发送到你的垃圾邮件箱)或者拒收。此外, DMARC 记录可以指定一个电子邮件地址来接受 DMARC 报告。 DMARC 还允许发送方指定 DMARC 记录生效的邮件百分比,所以可以以一种逐渐地可控地方式进行 DMARC 的配置。
回到我们的例子邮件中:

DKIM-Signature: v=1; a=rsa-sha256; d=paypal.com.au; s=pp-dkim1; c=relaxed/relaxed;
    q=dns/txt; [email protected]; t=1480474251;
    h=From:From:Subject:Date:To:MIME-Version:Content-Type;
    bh=Vn79RZZBrNIu4HFwGMOOAezyw/2Ag+w+avW1yscPcUw=;
    b=...
From: PayPal <[email protected]>
To: Rob Mueller <[email protected]>
Subject: Receipt for your donation to Wikimedia Foundation, Inc.

在这个例子中,发件人域是 paypal.com.au 我们来看看是否被配置了 DMARC 规则。

$ dig +short _dmarc.paypal.com.au TXT
"v=DMARC1; p=reject; rua=mailto:[email protected]; ruf=mailto:[email protected],mailto:[email protected]"

是的,得到了 DMARC 配置信息。我们来进行分析!发件人域是否匹配 DKIM 签名域 paypal.com.au?匹配,我们完成了校验。如果这封邮件没有被 DKIM 签名,或者如果它被签名了但是被签名的是 paypal-admin.com(假设被不法之徒签名了),这样的话将不会完成校验,因此 DMARC 校验将会失败。在这点上,我们已经了解过 DMARC 规则了,它指定了 p=reject 我们应该拒收这封仿冒邮件。
在这个例子中(我没有写出完整的 DKIM 签名,但我可以告诉你签名是有效的),这封电子邮件通过了 DMARC 验证。所以我们可以接受它。通过校验,我们清楚了发件人地址的域也和 DKIM 签名中的域是匹配的。这一点可以让用户确信当他们看到一个发件人:@paypal.com.au 地址的时候,他们知道这确实是一封来自 paypal.com.au 的邮件而不是仿冒邮件。
这就是为何 DMARC 被认为是反仿冒邮件的未来。意思就是发件人的域不能被仿冒(至少域有 DKIM 签名并且发布了 DMARC 规则)。所有的这一切,某种程度上仅仅是保证了发件人地址的域不会被仿冒。(All that, just to ensure the domain in the From address canʼt be forged, in some cases.)
不幸的是,按照套路来说,这个特性当然也会带来一些问提。
DMARC 允许你使用 SPF 或 DKIM 来验证一封邮件。如果你没有 DKIM 签名但是仅仅 依赖 SPF 的话,如果一封邮件从一个邮件服务商转发到另一个邮件服务商,DMARC 校验将会失败。如果你设置了 p=reject 规则的话,这个转发将会失败。不像 SPF 中那样校验失败更像是一种“弱签名”, DMARC 规则是假定告知接收者更严格的规则,使退信是一种更大的可能性。
解决方案:如果你有 DMARC 规则则确保总是用 DKIM 签名了邮件。如果你的邮件被转发,SPF 规则将被破坏,但是 DKIM 签名应该仍是可用的(should survive)。SRS 对 DMARC 没有帮助,因为用你自己的域替换 MAIL FROM 意味着 MAIL FROM 的域将不匹配发件人头标签中的域。这会导致校验失败,会导致 DMARC 校验失败。
我说仍是可用的(should survive),因为,再次地,并不是所有地电子邮件服务商都完美支持。这个理论之下,转发保证了你地邮件地完整结构。不幸的是,并不总是如此。甚至大的电子邮件服务商也会不经意间略微地改变电子邮件的内容/结构(基于微软 Exchange 的邮件系统(包括 outlook.com)和苹果 iCloud 在这方面做的更差一些)。甚至一个微小的修改都会导致 DKIM 签名失败,而且,结合 DMARC 的 p=reject 规则的话,会导致这封转发邮件被目标服务商拒收。
解决方案如下:

  1. 给这些邮件服务商反馈 bug 让他们完善他们的转发系统以便在传输过程中邮件保持完整性。DKIM 目前已经是一个标准了,电子邮件服务商应该确保他们的转发不破坏邮件签名。
  2. 转而使用 POP 协议从远端获取邮件。我们不对通过 POP 方式获取的远端邮件做 SPF/DKIM/DMARC 检查。
  3. 不要使用邮件转发。不管邮件从哪里来,改变你的邮件服务商所在的邮件地址让它直接指向 FastMail 的邮件地址,避免转发。

DMARC 还有个大问题:邮件列表。邮件列表被认为是个邮件转发的特例:你发了一封邮件,这封邮件被转发给了其他地址(邮件列表中的地址)。然而,邮件列表转发邮件的时候普遍都会修改邮件,在每一封邮件的底部加入一些取消订阅邮件的链接或者标准标准签名和/或在标题加入[list-id]标签。
DKIM 签名标题和正文是非常普遍的。改变它们就会破坏 DKIM 签名。所以,那么当邮件列表软件尝试转发邮件给所有的列表用户的时候,收取邮件的系统将会破坏 DKIM 签名从而导致邮件被拒收。(有件具有代表性的事情是 许多年前雅虎和AOL邮件系统都启用 p=reject (Yahoo and AOL both enabled p=reject on their user webmail service domains a few years ago!
幸亏,有个相对直接的解决方案。邮件列表软件可以重写邮件的发件人,并且重新对这个域进行 DKIM 签名。这一点和其他解决方案( couple of other solutions )可以在 DMARC 网站上有说明。目前,大多数邮件列表软件系统已经实现了对这些解决方案的兼容,那些还没有解决这个问题的邮件列表系统将不得不面对类似 Gmail明年的某个时候将启用 p=reject 规则。(Gmail enables p=reject on gmail.com sometime early next year )这样的问题。不能从世界上最大的邮件系统转发邮件将明显对你的邮件列表造成影响。
这些认证体系对 FastMail 来说影响个我们收邮件和我们发邮件方面的工作。

SPF, DKIM & DMARC for email received at FastMail

当前,FastMail 对通过 SMTP 协议收取的远端服务器的邮件进行 SPF, DKIM 和 DMARC 检查(但不影响 POP 协议收取的邮件)。
SPF 和/或 DKIM 验证通过或失败仅仅会影响这封邮件的垃圾邮件指数(spam score).我们不想对来自一个重要的域的邮件因为 DKIM 签名验证失败而歧视,我们也不会因为垃圾邮件黑名单中的域通过的 DKIM 签名而把它移除黑名单加入白名单。 DKIM 签名只是当作邮件上下文信息对待,并不是对它进行白名单/黑名单判定的重要依据。
DMARC呢,是域的所有者对来自于他自己的域的邮件的处理方式的一个表述。对于使用了 p=quarantine 规则的域,我们对失败的邮件一个比较高的垃圾邮件指数(spam score)来确保它能到达用户的垃圾邮件文件夹。对于使用了 p=reject 规则的域,我们当前不在 SMTP 阶段拒收但是仍然给它一个比较高的指数然后隔离。未来我们希望加入一些已知的会导致问题的服务条款来改变这一点。
我们给所有收到的邮件加入了一个标准的 Authentication-Results 邮件头标签用来说明 SPF, DKIM 和 DMARC 规则的生效情况。不可思议的是现有的软件在这方面并没有做到很好的优化(not well maintained )或者存在 bug,所以我们发起了一个开源项目希望别人使用( open source solution we hope others will use
再次回到我们的例子当中。下面是那个 PayPal 邮件相应的 Authentication-Results 头标签。

Authentication-Results: mx2.messagingengine.com;
    dkim=pass (2048-bit rsa key) header.d=paypal.com.au [email protected] header.b=PVkLotf/;
    dmarc=pass header.from=paypal.com.au;
    spf=pass [email protected] smtp.helo=mx2.slc.paypal.com
DKIM-Signature: v=1; a=rsa-sha256; d=paypal.com.au; s=pp-dkim1; c=relaxed/relaxed;
    q=dns/txt; [email protected]; t=1480474251;
    h=From:From:Subject:Date:To:MIME-Version:Content-Type;
    bh=Vn79RZZBrNIu4HFwGMOOAezyw/2Ag+w+avW1yscPcUw=;
    b=...
From: PayPal <[email protected]>
To: Rob Mueller <[email protected]>
Subject: Receipt for your donation to Wikimedia Foundation, Inc.

大家可以看到 SPF,DKIM 和 DMARC 都通过了验证。
邮件头信息被 FastMail 系统的其他部分使用。举个例子,如果你把地址 [email protected] 加入了通讯录以便使它进入白名单。如果这类邮件的 DMARC 验证失败的话我们将忽略它的白名单属性。这保证了坏人不能用创建一个以 [email protected] 为发件人的诈骗邮件,因为你已经将它加入白名单了。

SPF, DKIM & DMARC for FastMail and user domains

所有的 FastMail 域名当前都有较为宽泛的 SPF 规则(如此设计是为了兼顾老的系统,看下文的 DMARC)并且我们对所有发出的邮件都采用 DKIM 签名。事实上我们签名两个域名,一个是发件人地址的域还有就是众所周知的 messagingengine.com。这和那些用 DKIM 签名来判断邮件来源的系统的反馈环路设计( Feedback Loops )有关。
对于使用自定义域,如果你在我们这里托管 DNS 的话(host the DNS for your domain ),我们仍然有较为宽泛的 SPF 规则和 DKIM 签名。如果你使用了其他 DNS 服务商解析的话,你需要确保在你的 DNS 解析李设置了正确的 DKIM 签名(DKIM record at your DNS provider ) 。一旦我们检测到 DKIM 记录,我们就会使用它来签署你通过我们发出的邮件。
当前,FastMail 自己的域没有 DMARC 规则,也没有对自定义域发布默认的规则。这意味着用户可以用 @fastmail.com 从任何地方发送邮件。这种做法是有点过时了。当 FastMail 16年前刚创立的时候,这些身份认证标准还都不存在。人们使用各种复杂的他们想发送邮件的各种发件人信息来发送邮件。(老的联网传真/扫描仪是这种做法的典型代表。)
随着时间的推移,这种情况变得越来越少,并且越来越多的人们期望电子邮件是通过了 DKIM 签名并且/或者通过了 SPF 验证并且/或者有 DMARC 规则。未来的某个时候,很可能我们的域名也会启用 p=reject 规则。要发送以 @fastmail.com/@sent.com/等等为发件人的邮件,你必须通过我们的系统发送。这种方式可以通过 SMTP 可以完美认证,如今一些基础的东西都已经完美支持了。

Ongoing problems

虽然通过 DMARC 我们可以验证发件人域名是否被允许发送邮件还可以验证邮件内容,是个很有效的方法欺诈邮件的特性,但反欺诈仍然有很长的路。虽然我们在这方面很有经验但是用户一般不会持怀疑态度去检查邮件。我们经常看到这样的欺诈邮件:

From: No Reply <[email protected]> 
To:[email protected] 
Subject: Urgent! Your account is going to be closed!

Click [here](http://example.com) right now or your account will be closed

很多用户就点开了链接,在一个伪造的页面上输入了登陆信息(甚至包括那些看起来都不是 FastMail 的页面的页面),我们每天都能遇到各种各样的账号被盗。不幸的是,试图教用户(educate users )貌似并不奏效。
电子邮件的一个主要的有点是它是一个真正的开放的消息系统。世界上的任何人都可以创建一个电子邮件账号和其他的邮件系统开始通讯。它不是一个受制于某个个体公司或者网站的围城。这种开放也是最大的弱点,这意味着合法的发件人和仿冒邮件发送者是同等的。这意味着未来电子邮件的发展将继续它在合法收件人和仿冒邮件发送者之间的这种竞争,试图判定每一封邮件是合法的有很多很多种因素。不幸的是,这意味着误判是在所难免而且一直会有的(仿冒邮件合法地进入了收件箱或者合法的邮件被标记为仿冒邮件)。世界上没有一个“完美的”邮件系统,无论系统里被投递进来了什么,我们都将努力变得更好。

Email authentication in the future

虽然邮件列表和 p=reject 规则不兼容这个主要的问题已经被大部分解决了,它产生了一个新的问题那就是收件方对邮件列表的域名的信任问题。这刺激了垃圾邮件发送者把目标转向邮件列表,希望更宽松的垃圾邮件判定规则以便把垃圾邮件发送到信任邮件列表域名的那些邮件系统中。一个新的叫做 (ARC,Authenticated Received Chain)的标准让邮件接收者以同等的情况去返回去信任他们能看到信任结果的前置的接受系统并且把先前多个阶段的投递路径的域名相关联。
我们愿意看到的是域名和一些现实世界相关联。其中一个重任被 SSL 扩展验证证书(SSL Extended Validation (EV) Certificate )系统担任了。申请 EV 证书需要提供实际的合法的身份证明。当你在访问一些使用了 EV 证书的网站时你可以在浏览器中看到。比如我们的网站使用了 EV 证书https://www.fastmail.com),浏览器在地址栏会现实“FastMail Pty Ltd”。清楚地在合法地发件人旁边显示 PayPal 的“PayPal, Inc”或其他财务类网站对用户来说看起来是个 significant win(modulo the slightly sad results we already found regarding users falling for phishing emails 。
不幸的是,这方面没有标准并且也没有其他关于这方面的起色的事情,and it’s not entirely obvious how to do this without support from the senders.一个不需要发件人参与的方法是从发件人地址中提取域名并且试图使用 https:// 去连接。但是这样会有其他一些副作用,比如 PayPal 用国别域名签名 DKIM 信息(比如 paypal.com.au),但是如果你在浏览器中访问 http://paypal.com.au ,将会跳转到 https://www.paypal.com 。我们不能简单地仅仅跟网站跳转因为不法分子可以建立一个 paypal-scam.com 的网站并且指向 https://paypal.com .Working out what redirects should actually be followed is entirely non-trivial.

Coda

这篇文章比我计划的内容要多了许多,它指出了如何在现代的电子邮件系统上下文中完成电子邮件认证这个主题。FastMail 努力试图让这些不但能让其他系统的发件人而且也能让自定义域的发件人“just work”。如果你把 DNS 托管在我们这里的话,我们为你自动配置 SPF 和 DKIM 签名规则。我们当前没有设置 DMARC 记录(还有其他不同的邮件发送方式),but we hope in the future to allow easier construction and rollout of DMARC records for user domains.