欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

nslookup命令的使用和MX知识点

程序员文章站 2022-05-23 22:26:54
...

以前一直不知道还有DNS里还有MX 这东西的,有点孤陋寡闻哈.本来是在研究NetworkInterface和InetAddress的,在网上就搜了以下,看了几篇文章.然后就看到了ip地址和域名的对应关系.

 

cocory写道
Ip地址和主机名之间不一定是1对1的映射关系,还可以是:
a) 一个ip地址对应到多个主机名.
这其实很自然的,本质上是多个网络服务对应到一个ip地址(一台真正的计算机)。主机名和ip的对应关系可以改变,这样即使把服务迁移到其他机器上,只要客户是使用主机名(服务名),那就不会到受影响。

b) 一个主机名对应多个ip地址(即多个主机)
这也很常见,如www.microsoft.com就对应了多个ip地址(多台真正的计算机)。这种用法一般用于负载均衡。

知道一个ip地址可以对应于多个主机名,可以具体配置的,比如Apache就支持这样的功能,可以在它的httpd.conf文件中做相应配置,暂时忘了,以后查到再添上.

 

 

但是一个主机名对应多个ip地址就不是很清楚了,不知道它是怎样实现的.马上使用google查资料.

大家知道三五个ip地址还可以记忆,但是如今的互联网日新月异,各个网站如雨后春笋般被架设了起来.无论是大型企业还是个人用户都可以去架设自己的网站.IPv4地址的分配都不够用了.那么多的IP地址肯定记不住啊.所以就采取了DNS(域名解析服务)来帮助我们解决这一问题.我们只需记住一些形象的字符串,相对而言是容易很多了.我们输入一个域名,都要先到DNS服务器去查询获得该域名对应的ip地址后,才根据ip地址来访问具体的目标.由于一个域名对应多个ip地址,可知该域名应该是有很多台服务器进行处理大量的请求的.当一个域名指向了多个IP时,我们输入的域名后究竟访问了哪个IP呢?

 

可以通过系统自带的nslookup命令来查看:

 

>nslookup google.com
 

 返回的内容为Address:

Server: google.com
Addresses: 74.125.45.100, 209,85,171,100, 72.14.205.100
DNS request timed out.
timeout was 2 seconds.
*** Request to google.com timed-out

 由此可见google使用了三个A记录(通俗来说A记录就是服务器的IP).

 

其实大家可以猜想,这个工作可以有DNS服务器来做.但是我怀疑实际上真正的负载均衡还是需要单独拿出服务器来做处理吧.

但DNS可以实现简易的功能,对于多个ip的,可以统计每个ip访问的数量,实现几个服务器的访问量大致相当."循环使用不同的ip"大致与以上工作方式类似.也可以在域名解析请求到来时,随机的选择一个ip返回给客户端浏览器即可,这样也能够实现大体上的控制.

 

nslookup命令的使用:

 

Nslookup 是一个监测网络中DNS服务器是否能正确实现域名解析的命令行工具。它在 Windows NT/2000/XP 中均可使用,但在Windows 98中却没有集成这一个工具。

 

Nslookup 必须要安装了TCP/IP 协议的网络环境之后才能使用。

 

查询IP地址

  nslookup最简单的用法就是查询域名对应的IP地址,包括A记录和CNAME记录,如果查到的是CNAME记录还会返回别名记录的设置情况。

 

查询其他类型的域名

  前面两个命令我们没有加任何参数,所以默认情况下nslookup查询的是A类型的记录。如果我们配置了其他类型 的记录希望看到解释是否正常。这时候ping就无能为力了。比如我们配置了MX记录,但是邮件服务器只能发信不能收信,到底是域名解释问题还是其他的问题 Ping命令的检查只能让你误入歧途。nslookup 这时候可以模拟你的其他遇见服务器进行域名解释的情况。我们需要在nslookup上加上适当的参数。指定查询记录类型的指令格式如下:

hyxcggm写道

nslookup –qt=类型 目标域名

  注意qt必须小写。

  类型可以是一下字符,不区分大小写:

  A 地址记录(Ipv4)
  AAAA 地址记录(Ipv6)
  AFSDB Andrew文件系统数据库服务器记录(不懂)
  ATMA ATM地址记录(不是自动提款机)
  CNAME 别名记录
  HINFO 硬件配置记录,包括CPU、操作系统信息
  ISDN 域名对应的ISDN号码
  MB 存放指定邮箱的服务器
  MG 邮件组记录
  MINFO 邮件组和邮箱的信息记录
  MR 改名的邮箱记录
  MX 邮件服务器记录
  NS 名字服务器记录
  PTR 反向记录(从IP地址解释域名)
  RP 负责人记录
  RT 路由穿透记录(不懂)
  SRV TCP服务器信息记录(将有大用处)
  TXT 域名对应的文本信息
  X25 域名对应的X.25地址记录

 

写道
 域名解释过程的模拟

  我们现在来模拟一下一台DNS服务器接到一个不是自己管理的域的域名解释过程。回忆一下第一篇文章的过程:

  首先我们会询问根服务器,然后根服务器会让我们去找对应的*服务器。如果查询的是oray.net,就会要求我们去找net的服务器。

  看看下面的范例:

  这里我们让21cn.com的服务器解释www.oicp.net的域名,很显然这台服务器不用有这个域,需要询问根服务器。一般情况下DNS服务器会帮我们完成全部的过程。这种解释方式我们称之为递归解析,为了让大家看到这个过程我家了一个参数让21cn.com的服务器不要这样做。这个参数是 -norecurse。这样理论上21cn.com会让我们去问根服务器,不过由于它已经缓存了*服务器的记录,所以直接返回了管理net的*服务器记录。实际上大部分的查询都不需要从根服务器开始。大家看到了所有的*域名服务器的地址都被返回。

  我们随便选择一个在进行查询。


这次*服务器就返回了oicp.net的服务器地址记录的。然后我们就向这些记录之一进行查询,一定能够得到答案。可能是一个地址、一个CNAME记录或者告诉你不存在。

 

MX的作用:
   MX(Mail Exchanger)记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据 收信人的地址后缀来定位邮件服务器。例如,当Internet上的某用户要发一封信给 user@mydomain.com 时,该用户的邮件系统通过DNS查找mydomain.com这个域名的MX记录,如果MX记录存在, 用户计算机就将邮件发送到MX记录所指定的邮件服务器上。

 

对于mx记录,是通过其优先级preference标志的,对于A记录,是随机分配的.

 

使用nslookup命令查看MX:

写道
C:\Documents and Settings\Administrator>nslookup
>set type=mx
>sina.com
Server: 68.128.128.61.cq.cq.cta.net.cn
Address: 61.128.128.68

Non-authoritative answer:
sina.com MX preference = 10,mail exchanger = freemx2.sinamail.sina.com.cn
sina.com MX preference = 10,mail exchanger = freemx3.sinamail.sina.com.cn
sina.com MX preference = 10,mail exchanger = freemx1.sinamail.sina.com.cn

 可以看到sina的MX的优先级都为10.(MX优先级最小是1,最大是30.)

 


MX 记录的结果比上面两个稍微复杂一些,它包含一个邮件服务器的域名和一个邮件服务器的优先级,如果你的域名使用多个 SMTP 服务器接受邮件的话,你可以使用多条 MX 记录指出所有的邮件的服务器,通过优先级参数配置那一台服务作为首选服务器。一般情况下邮件会发给优先级最高的服务器(数值最小的),如果该服务器不能连通,则转到下一个优先级的服务器。想通优先级的服务器的顺序可以由 “ 轮换 ” 机制决定。

mx  number的值越小,优先级越高。同一个域名的有两条不同优先级的mx的纪录,通常是用优先级高的。当优先级高的机器不能使用时,优先级低的就可以起到临时备份作用,代收邮件和转发。当优先级高的机器正常时,低级别的会尝试把信件转发给优先级高的服务器。