MX记录

MX记录的应用

在DNS服务器上除了可以建立主机名与IP地址的映射外,还可以建立其他多种映射,例如,建立某个主机名与其别名的映射;建立某个域名与其SMTP服务器的映射。在DNS服务器上创建的各项映射关系称为记录,一项映射关系就是一条记录,在DNS服务器上创建的主机名与IP地址的映射关系称为A记录,主机名与别名的映射关系称为CNAME记录,域名与其SMTP服务器的映射关系称为MX记录。

在DNS服务器上为什么要建立MX记录呢?即为什么要建立域名与其SMTP服务器的映射关系呢?这与电子邮件地址的表示形式和工作原理有关。邮件地址后缀部分表示的通常都是一个域名,而不是接收邮件的服务器的主机名,例如,邮件地址“[email protected]”中的“it315.org”对应的就是一个域名。域只是一个逻辑组合概念,它并不代表真正的计算机,对于使用某个域名作为后缀的邮件地址,外界发送给它的电子邮件必须由一台专门的SMTP服务器来进行接收和处理,接收和处理某个域的电子邮件的SMTP服务器即为该域的SMTP服务器,外界发送给某个域的电子邮件实际上都是发送给该域的SMTP服务器。外界如何知道一个域的SMTP服务器的地址呢?这就是通过管理该域的DNS服务器上的MX记录来获得的,这也就是在DNS服务器上为什么要建立域名与其SMTP服务器的映射关系的原因。

当某台SMTP服务器要给“[email protected]”发送一封电子邮件时,该SMTP服务器将根据邮件地址的后缀部分而去查询“it315.org”这个域的MX记录,得到这个域的SMTP服务器的主机名为“mail.it315.org”,然后将邮件发送给“mail.it315.org”这个SMTP服务器。

动手实践  根据域名查询SMTP服务器

Windows操作系统自带的nslookup命令可以查询一个域的MX记录。要想知道负责接收某个电子邮箱的邮件的SMTP服务器,可以先根据该邮件地址的后缀部分推断出其域名,然后使用nslookup命令进行查询即可。下面以查找负责接收“[email protected]”这个邮件地址的SMTP服务器的信息为例进行讲解。

 启动Windows下的DOS命令行窗口,执行nslookup命令,“ns2.bjgwbn.net.cn”表示执行nslookup命令的这台计算机当前所使用的DNS查询服务器的主机名,“211.161.46.84”则表示该DNS服务器的IP地址。控制台窗口“>”提示符后面先输入“settype=mx”命令,设置所要查询的记录类型为MX,然后输入域名“sina.com”,结果显示了“sina.com”这个域的SMTP服务器的主机名和IP地址,其中“sinamx.sina.com.cn”为SMTP服务器的主机名,并且该主机名对应了3个IP地址。这说明“sina.com”为了扩充其邮件处理能力,使用了3台SMTP服务器来接收外界发送给该域的邮件,这3台服务器的主机名都为“sinamx.sina.com.cn”,外界的SMTP服务器可以选择其中任何一台进行连接,然后将邮件发送给该服务器。

“>”提示符后面再次输入“sina.com”,nslookup命令将再次查询该域的MX记录,可以看到这两次查询出的“sinamx.sina.com.cn”所对应的3个IP地址的排列顺序并不相同,第一次查询时“202.108.3.187”排列在最前面,而第二次查询时却变成了“202.108.3.188”排列在最前面。如果继续查询“sina.com”域的MX记录,可以看到“sinamx.sina.com.cn”所对应的3个IP地址的排列顺序总是在改变。这是由于sina在管理“sina.com.cn”域的DNS服务器上进行了专门的设置,当外界每次查询“sinamx.sina.com.cn”这个主机名的IP地址时,管理“sina.com.cn”域的DNS服务器都将对该主机名所对应的3个IP地址进行轮循排列后再返回。

对于查询到一个主机名对应多个IP地址的情况,外界的计算机通常都是选择其中的第一个IP地址来进行通信,只要管理“sina.com.cn”域的DNS服务器每次都将“sinamx.sina.com.cn”所对应的3个IP地址进行轮循排列后再返回给外界,外界的SMTP服务器将会分别选择到不同的IP地址来进行通信,sina通过这种简单的方式就在“sinamx.sina.com.cn”所对应的3台SMTP服务器之间实现了负载均衡。

提示:使用nslookup查询“sina.com”域的MX记录时,读者可能会遇到DNS服务器只返回SMTP服务器的主机名,而不返回该主机名所对应的IP地址的情况,这时候可以在原来的nslookup命令窗口中输入“set type=a”命令,即将要查询的记录类型设置为A,然后输入前面查询到的SMTP服务器的主机名就可以得到其IP地址。

你可能感兴趣的:(javamail开发)