https连接不能build立在GRE隧道后面

我有一个像这样的networking拓扑图:

Local box GateWay box +---------------+ +--------------------------+ |192.168.1.200 | -> |192.168.1.2 10.2.10.2 | +---------------+ +--------------------------+ | |GRE tunnel over pppoe | v +----------------+ +--------------------------+ | The Internet | <-- |54.179.141.101 10.2.10.1 | +----------------+ +--------------------------+ Remote "proxy" box 

gateway box的ppoe有一个1468的mtu以及tun0隧道(这是一个gre隧道)。 问题是,当它的问候HTTP请求,事情工作得很好。 但是,当涉及到https,一些网站,如https://www.gravatar.com/avatar/8bd68135185d99a58252795422d21bb9?s=24&d=identicon&r=PG 。 https连接无法build立。 和curl的输出卡住了这个:

  curl -v "https://www.gravatar.com/avatar/8bd68135185d99a58252795422d21bb9?s=24&d=identicon&r=PG" * Hostname was NOT found in DNS cache * Trying 68.232.44.121... * Connected to www.gravatar.com (68.232.44.121) port 443 (#0) * successfully set certificate verify locations: * CAfile: none CApath: /etc/ssl/certs * SSLv3, TLS handshake, Client hello (1): 

它卡在那里只等待一个超时。 但是我可以在Remote "proxy" box上成功地执行相同的请求。 所以我假设gre隧道有问题(甚至是我写的iptable规则?)

所以我得到wireshark并在GateWay box捕获包,结果是: 在这里输入图像说明

它显示了ssl握手段丢失。

有关更多其他信息,iptables规则是这样的:

在GateWay框上

 *nat :PREROUTING ACCEPT [61416:4763478] :INPUT ACCEPT [19674:1619565] :OUTPUT ACCEPT [18416:1183854] :POSTROUTING ACCEPT [3:144] -A POSTROUTING -o ppp0 -j MASQUERADE -A POSTROUTING -o tun0 -j MASQUERADE #<- this is a gre tunnel and the route for this request -A POSTROUTING -o tun1 -j MASQUERADE 

在代理服务器上

 *nat :PREROUTING ACCEPT [3997:794751] :INPUT ACCEPT [297:43841] :OUTPUT ACCEPT [612:44944] :POSTROUTING ACCEPT [0:0] -A POSTROUTING -o eth0 -j MASQUERADE 

我search了一下,有些人说可能跟MTU有些关系,但是我怎么能再诊断这个问题?

这是一个MTU问题,这个iptable规则(在网关盒)使其工作:

 iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu