QQ域名邮箱原来只是个别名

前几天从 cnBeta 上看到 QQ 发布域名邮箱的消息,于是去试用了一下。

域名邮箱页面是 domain.mail.qq.com,首先需要在 QQ 邮箱的体验室里启用,然后按要求设置域名、验证 CNAME 记录,添加管理员账号以后,便完成设置。这些步骤腾讯一直有提示,对于不熟悉的人来说也能很快依照提示来完成。

登录以后才发现,这个邮箱其实就是给你原有的 QQ 邮箱加了一个别名。它们的邮箱存储是完全共享的,对方发一封邮件给你,无论从哪个邮箱登录,都能看到。而且在页面上方显示邮件地址的区域更有一个明显的切换菜单,可以在不同的别名之间切换。

利用管理员账号可以向 QQ 域名邮箱中添加成员,但有一个明显的障碍就是:你必须提供此人的 QQ 号,还得保证此人的QQ 邮箱是开通状态。不清楚这是技术上的原因还是产品策略导致的,我觉得这种别名策略会让相当多的人失望而归。

我满心以为 QQ 的域名邮箱能够像 Google Apps 中的 GMail 那样提供完全独立的邮箱功能。看来这次必然是失望了。腾讯只是玩个了花样,给原来的 QQ 邮箱加个别名,换一套 LOGO 和皮肤便“诞生”了 QQ 域名邮箱。做为一个企业,腾讯还远远做不到 Google 那样的大气和长远,这种浮躁和短浅似乎也是中国很多企业的通病。但愿能在日后慢慢改观。

给域名解析添加备份

5月19日,国内的免费智能域名解析服务商 DNSPod 遭到大规模的恶意攻击,意外中断服务若干小时。我的博客域名当时也托管在 DNSPod 处,被攻击的时候无法解析域名,幸好自己记得虚拟主机的 IP 地址。当时只好自己在系统中编辑 hosts 文件来手动完成解析服务。

意外发生以后,再考虑到 DNSPod 之前数次被攻击的历史,我决定把域名转移到其它的服务商,更重要的,是给域名添加备份解析服务器。

DNS 作为互联网基础设施,其稳定性是很值得关注的。传统的做法是域名解析服务商(无论是免费解析还是域名注册商提供的解析)提供至少两台服务器用作域名解析服务。比如 DNSPod 就有六台服务器用作免费解析,EveryDNS 有四台服务器。这种设计是为了提高冗余度以增加域名系统的稳定性。对于意外的服务器当机、网络出现故障等问题,这样做是比较保险的。DNSPod 偶尔就有某台服务器要停机维护的情况,但这并不会给正常解析带来什么麻烦,因为有其它的五台服务器正常工作。可是对于恶意攻击,多台服务器的冗余就没有意义了。攻击者在能力足够的情况下(直白的说就是肉机足够多),完全可以利用大流量把所有的服务器同时攻击一遍。而且大部分时候他们都会这么做,要不然只攻击一部分其实没有效果。DNSPod 就这样被大流量攻击打倒,无数的域名便受到牵连。

在台湾网友的博客上看到《如何用xname搭配zoneedit做备援DNS》这篇文章,于是照着做了一下,把自己的域名解析转移到了 ZoneEditEveryDNS。设置上都是大同小异的,简单说一下。

  1. 注册 ZoneEdit 和 EveryDNS 账号,并登录。
  2. 在 ZoneEdit 中添加自己的域名,比如我的就是 xiaoding.org ,然后添加自己的解析记录,包括 A 记录(IP地址)、CNAME 记录(别名)、MX 记录(邮件服务)等等。Nameserver 这个地方,ZoneEdit 会给出自己的两台服务器地址,稍微记一下数字较小的那个服务器的地址。
  3. 域名解析记录添加完之后,选择 ZoneEdit 的 Advanced 页面,打开最下面的“Edit Security Settings”,然后在“Restrict zone transfers to these IP’s”这个编辑框中填入“0.0.0.0/1;128.0.0.0/1;”(不含此处的引号)。注意这个填法将允许所有的区域传送请求,直白的说就是你的域名记录将对所有人公开。这么做是为了方便,因为 EveryDNS 或者 XName 对于他们的区域传送服务器的 IP 说法十分不清楚,而且时间长了也有可能变动。只好图个方便在这里允许所有的人来抓取 DNS 记录。相信一般人在这里也不会藏什么秘密。 😛
  4. 来到 EveryDNS 的设置页面。左边是添加记录的地方,basic 框中填入你的域名,比如 xiaoding.org ,选中下面的“Make domain secondary using”,然后输入刚才 ZoneEdit 的那个服务器的地址,点击“Advanced”按钮,添加就完成了。
  5. 在 ZoneEdit 的 Nameserver 选项中,把 EveryDNS 的四台服务器地址添加进去。分别是 ns1.everydns.net ns2.everydns.net ns3.everydns.net ns4.everydns.net
  6. 设置到此结束。EveryDNS 的服务器会自动地向 ZoneEdit 的 Master nameserver 同步。等几个小时以后可以查询自己的 DNS 记录以便确认是否同步成功。

使用如下命令查询 DNS 的 SOA 记录:

nslookup -q=soa xiaoding.org ns3.zoneedit.com

查询结果示例:

xiaoding.org
        primary name server = ns3.zoneedit.com
        responsible mail addr = soacontact.zoneedit.com
        serial  = 1242714018
        refresh = 14400 (4 hours)
        retry   = 7200 (2 hours)
        expire  = 950400 (11 days)
        default TTL = 3600 (1 hour)

注意把 xiaoding.org 换成自己的域名, ns3.zoneedit.com 换成自己的域名解析服务器(每个人可能不同)。针对每个服务器都查询一次,在返回的 SOA 记录中比较一下记录的序列号是否相同,如果相同即表明备份 DNS 设置成功。这样无论 ZoneEdit 或者 EveryDNS 哪一家有问题,自己受的影响都会小很多。

DNSPod 遭受攻击,博客域名再次转移

国内著名的免费 DNS 解析服务商 DNSPod 在今天凌晨再次遭到攻击。攻击手法是 DDoS,以极高的流量冲击域名服务器和机房网络,使之无法正常提供服务。

我凌晨熬夜的时候试图打开自己的博客,但地址解析失败导致无法打开。今天下午再度尝试,发现在教育网内尝试了几个服务器,还是无法解析我的域名。公网的解析现在应该已经恢复了,我用其它网站提供的DNS测试工具测试结果正常。

这次被攻击给域名托管在 DNSPod 的所有用户带来了极其不良的影响。DNS 域名系统作为互联网基础设施,在整个网络的运行中起到了重要的作用,所以 DNS 失效对于网站来说是灭顶之灾,因为网站与用户就这样生生地隔离开了。这次攻击连著名的 IT 资讯站点 cnBeta.COM 也被波及。从 whois 查询结果可以看到

Domain Name:cnbeta.com
Record last updated at 2009-05-12 05:37:27
Record created on 2003/6/22
Record expired on 2011/6/22

cnbeta 站点也在今天调整了自己的域名解析,以避开 DNSPod 被攻击带来的问题。

经历此事,再加上之前 DNSPod 各种原因遭到攻击的记录,综合考虑我还是决定把域名解析从 DNSPod 那儿转移到国外的 ZoneEdit 和 EveryDNS 上。这么做并非觉得国外的服务就一定能够稳定,事实上 EveryDNS 也有过被大规模 DDoS 攻击的历史。只是我决定了在域名上采用 Master/Slave 体系,由 ZoneEdit 充当 Master Server,EveryDNS 充当 Slave,这样我的域名解析就分布在六台不同地区的主机上,而且这六台主机分属两个不同的服务商。无疑这么做会大大提高域名的稳定性。

对于 DNSPod ,我还是心存感激并且大力支持的。毕竟 DNSPod 在中国这样险恶的环境中坚持着智能解析的免费服务,并且提供了“多线路智能解析”和“URL转发”这样的优秀功能,已经实属不易。这种外部攻击导致的服务故障算得上是意外情况,于情于理都应该宽容一些。至少不能像某些心安理得的人一样,稍有不顺意的地方开口就骂。

一直以来我都在找机会建议站长吴洪声提供 Zone Transfer 功能,这样就直接支持 DNS Backup 了,无论是 DNSPod 充当 Master 或者是 Slave ,共对于稳定性的提升都是有巨大帮助的。迫于网络环境的险恶,我选择了暂时搬到国外的两家免费解析服务。当然,在合适的时候,我会回来的。