免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 15853 | 回复: 39
打印 上一主题 下一主题

[Mail] MX记录的优先级问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-30 18:12 |只看该作者 |倒序浏览
邮件服务器发送邮件时依靠DNS的MX记录,如果一个域名对应多个优先级不同的MX记录,有没人测过邮件服务器发送邮件前查找MX记录时, DNS是一次返回所有MX记录,还是只返回优先级高的记录,失败后邮件服务器发送一条子令让DNS返回下个优先级的记录?
还有就是这个失败的判断标准是什么?是两台邮件服务器通讯物理上可达(仅保证链路是 通的),还是服务成功建立,并通讯成功(邮件发送成功)?
打个比方:A.com域服务器发送邮件到B.com服务器,B.com有多个MX记录 一条mail1.b.com 优先级10; 一条mail2.b.com 优先级20. A.com发送邮件到b.com时,mail.a.com和mail1.b.com建立了会话,但由于某种原因,在发送过程中通讯失败,a.com是重试发往mail1.b.com还是mail2.b.com?
这方面的资料哪里可以查到?

论坛徽章:
0
2 [报告]
发表于 2005-12-30 20:26 |只看该作者

回复 1楼 arone 的帖子

我觉得是一次返回所有的MX记录,
因为反正是一次DNS查询,返回优先级最高的邮件服务器和返回所有的邮件服务器在开销上没有区别。
而且还可以避免重复查询。

失败的判断标准这个应该是smtp协议的问题,你可以去看看

如果仅仅物理上通,那我一台邮件服务器的邮件服务down了,
机器还活着,岂不是有多少备用的邮件服务器都完了。。。

邮件服务器半死不活的状态,还是要根据smtp协议来看
协议应该规定了哪种情况叫邮件发送成功。哪种情况叫邮件发送失败
比如连接了多少次,没连上。建立了会话,但是通讯失败

这里只有两种状态,要么成功,要么失败。
即使是邮件服务器负载很高,快死的状态。

在失败的情况下就应该发往优先级低一点儿的邮件服务器。

[ 本帖最后由 tanyear 于 2005-12-30 20:28 编辑 ]

论坛徽章:
1
寅虎
日期:2015-01-23 02:35:47
3 [报告]
发表于 2005-12-31 00:11 |只看该作者
先连接优先级高的mx,失败后才去寻找优先级低的

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-12-31 15:34 |只看该作者
mx 記錄是一次返回的,實際狀況樓主只要用 dig/nslookup 就可以知道,
不然如何得知次之或更次之值呢 !
唯一有問題的是像 hotmail (4mx, 每個 mx 4ip , mx 值皆相同) , 這種狀況下到底如何傳送,
有什麼依據我看本版大概也沒有人知道 !
而像 yahoo.com 情況也類似,但它有一個 mx  不同,這種情況下有如何傳送 !?
為什麼他們兩家最大的都只有 16 個 target ? 我想大概也沒有人想過為什麼 ...

只要是連接的 Server 不能連接, MTA 就要改選下一級的 mx,
若是連接的 Server 有回應,並在協議的過程中即使用回的值不是  250
(smtp return code 250視為成功,220為 extentsion訊息 ,4xx,5xx 各有意義...)
連算是連接成功了,即使此時回應 4xx 暫時性的問題(try later,temp fail,rate limits,load average issue...),
都不會改選下一個 mx ,而 5xx 的失敗,更是直接說明失敗,這封發信端就不會
再試了(4xx 會再試)

即使有 N 個不同級別,原理也都像上面那樣 !
所以思考一個狀況就是有人用 iptables 或其他的方法來封 smtp in 時,
此時若對方是一個 MTA , 那根據對方的 MTA retry 定義,它肯定在時限內
會一直 retry, 對雙方恐怕都不是一件好事 !

论坛徽章:
0
5 [报告]
发表于 2005-12-31 20:10 |只看该作者
关键是5xx错误是不是在尝试了所有MX记录主机后返回的?还是只尝试优先级最高的,只要开始建立了连接,就不管会话是否成功结束,如果失败就直接回应5xx了?

[ 本帖最后由 arone 于 2005-12-31 20:15 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2005-12-31 20:21 |只看该作者
查看了一下日志,一天的日志够大的,好像只和一台服务器建立了连接就返回了5xx,那这个MX记录就只能避免邮件服务不正常,不能避免邮件服务器不健壮了。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
7 [报告]
发表于 2006-01-02 09:24 |只看该作者
原帖由 arone 于 2005-12-31 20:10 发表
关键是5xx错误是不是在尝试了所有MX记录主机后返回的?还是只尝试优先级最高的,只要开始建立了连接,就不管会话是否成功结束,如果失败就直接回应5xx了?

您有這個想法代表您對 smtp + mx 的概念還不夠,
mx 嘗試主要由高優先向低優先選擇連接,若不能連接才試次高的,至於有任何帶值的回應,基本上就不會試次之的了

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
8 [报告]
发表于 2006-01-02 11:53 |只看该作者
原帖由 abel 于 2005-12-31 15:34 发表
為什麼他們兩家最大的都只有 16 個 target ? 我想大概也沒有人想過為什麼 ...

UDP有512字节的限制,是不是这个原因?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
9 [报告]
发表于 2006-01-02 12:13 |只看该作者
原帖由 r2007 于 2006-1-2 11:53 发表

UDP有512字节的限制,是不是这个原因?

這句話有點正確又不大正確,
那一份標準說 udp 有 512 bytes 限制 ?
udp 理論上最大 size 應該是 64K 才對 (65535 - 2
不過您的答案是很接近了,只是證明在哪 ? 或文件在哪呢 ?

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
10 [报告]
发表于 2006-01-02 12:30 |只看该作者
UDP的是不是有512字节的限制,我是外行,没有发言权。我之所以猜测是这个原因,是根据下面的测试

默认的查询
  1. ; <<>> DiG 9.2.2 <<>> hotmail.com mx
  2. ;; global options:  printcmd
  3. ;; Got answer:
  4. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6543
  5. ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 5, ADDITIONAL: 19

  6. ;; QUESTION SECTION:
  7. ;hotmail.com.                   IN      MX

  8. ;; ANSWER SECTION:
  9. hotmail.com.            2023    IN      MX      5 mx2.hotmail.com.
  10. hotmail.com.            2023    IN      MX      5 mx3.hotmail.com.
  11. hotmail.com.            2023    IN      MX      5 mx4.hotmail.com.
  12. hotmail.com.            2023    IN      MX      5 mx1.hotmail.com.

  13. ;; AUTHORITY SECTION:
  14. hotmail.com.            20093   IN      NS      ns1.msft.net.
  15. hotmail.com.            20093   IN      NS      ns2.msft.net.
  16. hotmail.com.            20093   IN      NS      ns3.msft.net.
  17. hotmail.com.            20093   IN      NS      ns4.msft.net.
  18. hotmail.com.            20093   IN      NS      ns5.msft.net.

  19. ;; ADDITIONAL SECTION:
  20. mx1.hotmail.com.        2023    IN      A       64.4.50.50
  21. mx1.hotmail.com.        2023    IN      A       65.54.244.8
  22. mx1.hotmail.com.        2023    IN      A       65.54.244.136
  23. mx1.hotmail.com.        2023    IN      A       65.54.245.8
  24. mx2.hotmail.com.        2023    IN      A       65.54.244.40
  25. mx2.hotmail.com.        2023    IN      A       65.54.244.168
  26. mx2.hotmail.com.        2023    IN      A       65.54.245.40
  27. mx2.hotmail.com.        2023    IN      A       65.54.190.50
  28. mx3.hotmail.com.        2023    IN      A       64.4.50.179
  29. mx3.hotmail.com.        2023    IN      A       65.54.244.72
  30. mx3.hotmail.com.        2023    IN      A       65.54.244.200
  31. mx3.hotmail.com.        2023    IN      A       65.54.245.72
  32. mx4.hotmail.com.        2023    IN      A       65.54.244.104
  33. mx4.hotmail.com.        2023    IN      A       65.54.244.232
  34. mx4.hotmail.com.        2023    IN      A       65.54.245.104
  35. mx4.hotmail.com.        2023    IN      A       65.54.190.179
  36. ns1.msft.net.           60875   IN      A       207.46.245.230
  37. ns2.msft.net.           60875   IN      A       64.4.25.30
  38. ns3.msft.net.           60875   IN      A       213.199.144.151

  39. ;; Query time: 57 msec
  40. ;; SERVER: 127.0.0.1#53(127.0.0.1)
  41. ;; WHEN: Mon Jan  2 11:56:09 2006
  42. ;; MSG SIZE  rcvd: 511
复制代码


强制使用TCP协议的查询
  1. ; <<>> DiG 9.2.2 <<>> hotmail.com mx +tcp
  2. ;; global options:  printcmd
  3. ;; Got answer:
  4. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18461
  5. ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 5, ADDITIONAL: 21

  6. ;; QUESTION SECTION:
  7. ;hotmail.com.                   IN      MX

  8. ;; ANSWER SECTION:
  9. hotmail.com.            1965    IN      MX      5 mx3.hotmail.com.
  10. hotmail.com.            1965    IN      MX      5 mx4.hotmail.com.
  11. hotmail.com.            1965    IN      MX      5 mx1.hotmail.com.
  12. hotmail.com.            1965    IN      MX      5 mx2.hotmail.com.

  13. ;; AUTHORITY SECTION:
  14. hotmail.com.            20035   IN      NS      ns2.msft.net.
  15. hotmail.com.            20035   IN      NS      ns3.msft.net.
  16. hotmail.com.            20035   IN      NS      ns4.msft.net.
  17. hotmail.com.            20035   IN      NS      ns5.msft.net.
  18. hotmail.com.            20035   IN      NS      ns1.msft.net.

  19. ;; ADDITIONAL SECTION:
  20. mx1.hotmail.com.        1965    IN      A       65.54.244.8
  21. mx1.hotmail.com.        1965    IN      A       65.54.244.136
  22. mx1.hotmail.com.        1965    IN      A       65.54.245.8
  23. mx1.hotmail.com.        1965    IN      A       64.4.50.50
  24. mx2.hotmail.com.        1965    IN      A       65.54.190.50
  25. mx2.hotmail.com.        1965    IN      A       65.54.244.40
  26. mx2.hotmail.com.        1965    IN      A       65.54.244.168
  27. mx2.hotmail.com.        1965    IN      A       65.54.245.40
  28. mx3.hotmail.com.        1965    IN      A       65.54.245.72
  29. mx3.hotmail.com.        1965    IN      A       64.4.50.179
  30. mx3.hotmail.com.        1965    IN      A       65.54.244.72
  31. mx3.hotmail.com.        1965    IN      A       65.54.244.200
  32. mx4.hotmail.com.        1965    IN      A       65.54.190.179
  33. mx4.hotmail.com.        1965    IN      A       65.54.244.104
  34. mx4.hotmail.com.        1965    IN      A       65.54.244.232
  35. mx4.hotmail.com.        1965    IN      A       65.54.245.104
  36. ns1.msft.net.           60817   IN      A       207.46.245.230
  37. ns2.msft.net.           60817   IN      A       64.4.25.30
  38. ns3.msft.net.           60817   IN      A       213.199.144.151
  39. ns4.msft.net.           60817   IN      A       207.46.66.75
  40. ns5.msft.net.           60817   IN      A       207.46.138.20

  41. ;; Query time: 18 msec
  42. ;; SERVER: 127.0.0.1#53(127.0.0.1)
  43. ;; WHEN: Mon Jan  2 11:57:07 2006
  44. ;; MSG SIZE  rcvd: 543
复制代码


从上面看第一次查询,MSG SIZE  rcvd: 511,而第二次查询则是MSG SIZE  rcvd: 543,从表面现象上看,似乎DNS在使用UDP协议时仅仅用了512字节。
一时找不到UDP的权威资料,但我相信abel的说法是正确的,但为什么dns查询会截取到512呢?这正是导致我错误地判断udp包的大小为512字节的原由。还请明白的人解释一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP