5

这个问题的存在是因为它具有历史意义,但它不被认为是本网站的一个好的、主题性的问题,所以请不要将它作为你可以在这里提出类似问题的证据。

更多信息:https ://stackoverflow.com/faq

我遇到了一个完全没有意义的奇怪 TCP 问题。我在扯头发。

当从Amazon S3下载文件时(并且只有 Amazon S3-每个其他站点都可以正常工作),连接断开的时间有一定百分比。这只发生在我们位于西雅图的服务器上,网络服务器位于NAT路由器后面。直接从路由器连接工作正常。从我们在维多利亚的服务器上,一切正常,我们根本无法复制。

  • 西雅图的 Web 服务器(尝试了 10 台不同的服务器)-> SNAT路由器(2 台不同的路由器;旧内核和新内核)-> Amazon S3 = 大约 10% 的时间不起作用
  • 西雅图的 Web 服务器 -> SNAT 路由器 -> 任何其他网站 = 有效
  • 路由器盒 -> Amazon S3 = 有效
  • 维多利亚的 Web 服务器 -> 维多利亚的 SNAT 路由器 -> Amazon S3 = 工作

我尝试过的事情:

  • 禁用窗口缩放
  • 降低窗口大小
  • 将路由器升级到最新内核
  • 完全禁用防火墙

在失败的情况下,亚马逊(或其他东西)向我们发送了一个 868 长度的数据包,而不是预期的 1500 字节数据包。服务器在看到数据包后回复一个 RST 数据包(发生错误)并且连接被断开。

任何帮助将不胜感激!

下面是两个 TCP 转储 -

------------ Begin Error Case TCP Dump -------------
tcpdump -r /tmp/s3doesntwork-died 
reading from file /tmp/s3doesntwork-died, link-type EN10MB (Ethernet)
19:58:42.542189 IP locum.sparklit.com.39491 > 189-81.amazon.com.www: S 193799772:193799772(0) win 5840 <mss 1460,sackOK,timestamp 760821159 0,nop,wscale 5>
19:58:42.544115 IP 189-81.amazon.com.www > locum.sparklit.com.39491: S 3148664267:3148664267(0) ack 193799773 win 8190 <mss 1460,nop,wscale 6,nop,nop,sackOK>
19:58:42.545176 IP locum.sparklit.com.39491 > 189-81.amazon.com.www: . ack 1 win 183
19:58:42.545184 IP locum.sparklit.com.39491 > 189-81.amazon.com.www: P 1:212(211) ack 1 win 183
19:58:42.548113 IP 189-81.amazon.com.www > locum.sparklit.com.39491: . ack 212 win 916
19:58:42.558108 IP 189-81.amazon.com.www > locum.sparklit.com.39491: . 1:1461(1460) ack 212 win 916
19:58:42.558117 IP 189-81.amazon.com.www > locum.sparklit.com.39491: . 1461:2921(1460) ack 212 win 916
19:58:42.558123 IP 189-81.amazon.com.www > locum.sparklit.com.39491: . 2921:4381(1460) ack 212 win 916
19:58:42.558128 IP 189-81.amazon.com.www > locum.sparklit.com.39491: . 4381:5841(1460) ack 212 win 916
19:58:42.559108 IP 189-81.amazon.com.www > locum.sparklit.com.39491: . 5841:7301(1460) ack 212 win 916
19:58:42.559118 IP 189-81.amazon.com.www > locum.sparklit.com.39491: . 7301:8129(828) ack 212 win 916
19:58:42.559138 IP locum.sparklit.com.39491 > 189-81.amazon.com.www: R 193799984:193799984(0) win 0
19:58:42.559169 IP locum.sparklit.com.39491 > 189-81.amazon.com.www: . ack 1461 win 274
19:58:42.559176 IP locum.sparklit.com.39491 > 189-81.amazon.com.www: . ack 2921 win 365
19:58:42.559180 IP locum.sparklit.com.39491 > 189-81.amazon.com.www: . ack 4381 win 457
19:58:42.559188 IP locum.sparklit.com.39491 > 189-81.amazon.com.www: . ack 5841 win 548
19:58:42.560167 IP locum.sparklit.com.39491 > 189-81.amazon.com.www: . ack 7301 win 639
19:58:45.308618 IP locum.sparklit.com.39491 > 189-81.amazon.com.www: F 212:212(0) ack 7301 win 639
19:58:45.310512 IP 189-81.amazon.com.www > locum.sparklit.com.39491: R 3148671568:3148671568(0) win 8201

更新:追踪路由到亚马逊

1  64.34.33.195 (64.34.33.195)  0.795 ms  0.775 ms  0.762 ms
2  six01-sea4.amazon.com (206.81.80.147)  0.746 ms  0.732 ms  0.715 ms
3  72.21.222.183 (72.21.222.183)  2.657 ms  2.651 ms  2.638 ms
4  72.21.222.179 (72.21.222.179)  2.618 ms  2.604 ms  2.591 ms
5  * * *
6  * * *
7  * * *

更新:导致发送 RST 的违规传入数据包

19:58:42.559118 IP (tos 0x0, ttl 57, id 18905, offset 0, flags [DF], proto TCP (6), length 868) 189-81.amazon.com.www >     locum.sparklit.com.39491: ., cksum 0x9f6e (correct), 7301:8129(828) ack 212 win 916
0x0000:  4500 0364 49d9 4000 3906 05d7 cfab bd51  E..dI.@.9......Q
    0x0010:  4022 21c5 0050 9a43 bbac ea50 0b8d 2730  @"!..P.C...P..'0
    0x0020:  5010 0394 9f6e 0000 7c75 a901 cd57 0718  P....n..|u...W..
    0x0030:  a786 e954 4160 3734 f563 5029 e7ad 48a7  ...TA`74.cP)..H.
    0x0040:  34c0 b11b 75a2 a341 c1e6 8aab a03c 31ee  4...u..A.....<1.
    0x0050:  1496 c9ef df22 aadc b87e 8431 fc2a dcd6  ....."...~.1.*..
    0x0060:  e72d 8cf7 aa92 5b12 4923 3f51 50cd 5195  .-....[.I#?QP.Q.
    0x0070:  7910 6ce4 0fc0 d63c f115 276b b7e7 5bf7  y.l....<..'k..[.
    0x0080:  508e d8fa d655 c5b3 1638 3cd6 6cd1 198c  P....U...8<.l...
    0x0090:  1c7f 1b7e 59a4 4370 9c87 523d 0ae2 adb4  ...~Y.Cp..R=....
    0x00a0:  4d8e 7ad5 7954 c6ac 79e3 9e05 4148 6c97  M.z.yT..y...AHl.
    0x00b0:  b711 f262 47fa 363f 9d52 bcd4 a58e 177f  ...bG.6?.R......
    0x00c0:  b33b 1033 b530 7351 d8eb 29a9 dbcf 2c6b  .;.3.0sQ..)...,k
    0x00d0:  b161 99e0 3e67 192b 8c9f a735 89ad f886  .a..>g.+...5....
    0x00e0:  4d3a ff00 462e b0ad 8dec 8f04 9bdb 9121  M:..F..........!
    0x00f0:  4263 0ac4 81c9 18e7 ae6a 1a65 d8db d3ee  Bc.......j.e....
    0x0100:  3722 b608 cf24 1182 2ba1 b39b 728a f29b  7"...$..+...r...
    0x0110:  df1e db68 9af5 b69a e51e 5923 2ed0 29fd  ...h......Y#..).
    0x0120:  f0e4 6303 f8bb f4ae ef44 d5e3 bc67 8f70  ..c......D...g.p
    0x0130:  5b88 8299 a30d 931e e1c0 38fc 6bca a917  [.........8.k...
    0x0140:  7b9d 8a2d 2bb3 5ef7 9e0d 625e c59c d6dc  {..-+.^...b^....
    0x0150:  e778 cd67 5c26 ecd2 a64b 6737 345b 643d  .x.g\&...Kg74[d=
    0x0160:  6a3d b57e f22f 98d5 455e b5da b546 0c60  j=.~./..E^...F.`
    0x0170:  5c51 5281 8a69 4e69 888c af15 0b0a b240  \QR..iNi.......@
    0x0180:  c540 c334 0101 1935 04b5 6996 a091 7ad0  .@.4...5..i...z.
    0x0190:  2676 ba0d 8bbc 30cc 3385 c7f2 a835 ab19  &v....0.3....5..
    0x01a0:  2e0b 003a d75b e17b 453a 03b6 070a a7f4  ...:.[.{E:......
    0x01b0:  a6cf 671e 7270 6b59 ae5e 5f43 28eb 73cd  ..g.rpkY.^_C(.s.
    0x01c0:  53c2 8f34 9c8e 3e95 d268 fe0f 4864 4661  S..4..>..h..HdFa
    0x01d0:  9008 2702 b75e 782d 81e0 0fc2 b3ae bc51  ..'..^x-.......Q
    0x01e0:  0c00 e080 477a 9bb6 3b1f 08fc 7efd 943e  ....Gz..;...~..>
    0x01f0:  26eb ff00 163c 4bad 695e 1b97 51d2 2f6e  &....<K.i^..Q./n
    0x0200:  4cb6 f35b dca3 7c98 1d46 ec8f a62b c675  L..[..|..F...+.u
    0x0210:  4fd9 dfc7 1a4b b2df e812 da63 fe7e 0b2f  O....K.....c.~./
    0x0220:  eb8a fd38 bff1 d055 386f c735 cf5f f8fa  ...8...U8o.5._..
    0x0230:  7705 44ac 54f6 2723 f2ae d862 2a25 6b1c  w.D.T.'#...b*%k.
    0x0240:  f2a5 06ee 7e6b a7c1 bd79 f2a2 2b1d c3b1  ....~k...y..+...
    0x0250:  ba5c d759 e03f 849a e787 3564 d6af 2d6d  .\.Y.?....5d..-m
    0x0260:  db4e b7fd d48f 0ca1 8866 1c0e dcd7 db37  .N.......f.....7
    0x0270:  b2d9 eb2e 4dd6 9767 704f 5692 d949 fcf1  ....M..gpOV..I..
    0x0280:  53da 7c3c d0fc 45a3 ea3a 4cf6 3f67 b379  S.|<..E..:L.?g.y
    0x0290:  a197 cbb5 7311 0dcf 20d6 8f11 2d99 2a94  ....s.......-.*.
    0x02a0:  7a1e 69e1 9fda 77c5 7e0d d3ad 74f8 eeac  z.i...w.~...t...
    0x02b0:  e6b3 b641 1c71 df5b 6085 1db7 a907 f3cd  ...A.q.[`.......
    0x02c0:  7a3e 81fb 6b4c 42ff 0069 6831 4ebd dec6  z>..kLB..ih1N...
    0x02d0:  e837 fe3a c335 3d9f ec75 e01d 576b 5c47  .7.:.5=..u..Wk\G
    0x02e0:  ab12 c3a7 f683 8fe9 5a29 fb07 7c31 3f32  ........Z)..|1?2
    0x02f0:  dbea 81fd 4ea7 2e7f 98ae 37ec 99aa 53e8  ....N.....7...S.
    0x0300:  cb5a 97ed cfe0 ad1f 4d6b 99f4 bd56 79c1  .Z......Mk...Vy.
    0x0310:  ff00 8f48 d151 c8ef 8627 15f4 1681 acc5  ...H.Q...'......
    0x0320:  e21d 0b4e d56d e378 adef add2 e238 e5c6  ...N.m.x.....8..
    0x0330:  f556 1900 e38c d781 d97e c3bf 0ce0 71f6  .V.......~....q.
    0x0340:  9b1d 42ea 31fc 0fa9 cf8f fd0a be80 d2b4  ..B.1...........
    0x0350:  f834 8d3a d2c2 d13c ab4b 5896 1850 9270  .4.:...<.KX..P.p
    0x0360:  8a30 073e                                .0.>
4

3 回答 3

2

所以我们终于想通了——

事实证明,我们的路由器正在注入 RST 数据包,因为 Netfilter 声明数据包无效。有一个设置让 netfitler 更加自由,所以我尝试启用它(inet.ipv4.netfilter.ip_conntrack_tcp_be_liberal=1)并且连接不再断开。

但是,我仍然没有弄清楚为什么 netfilter 声明该数据包无效。启用“ip_conntrack_log_invalid”不会导致在日志中打印任何内容。

于 2011-02-18T23:35:10.857 回答
-1

发件人有权在 1 到 1460 之间发送它喜欢的任何长度的数据包(在这种情况下,是您的明显 MTU)。问题是您的服务器为什么要发送 RST?

于 2011-02-18T05:43:31.757 回答
-1

这是一个猜测。也许对目标目标运行一些跟踪路由并收集跃点。然后使用配置为 100 计数的 1500 字节数据包 ping 每个跃点将有助于识别问题链接。

于 2011-02-18T01:42:09.807 回答