NAT doesn't forward TCP ACKs with sack option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

In our Mobile phone, android(android 8, Linux 4.4.23+ aarch64) runs in a separate net namespace, and NAT runs in the root domain:

  android(veth0) ---- veth1/NAT/rmnet0 ---- internet

The symptom is we are not able to send mms from android. After run tcpdump we found that some tcp ACKs with sack option can be captured in rmnet0, but not in veth1. And:

1. Not all such ACKs are lost, but once there's one lost then all
   following such ACKs will be lost;
2. We've disabled the TCP segment offload but this doesn't help;
3. It works if tcp sack is disabled by
     "echo 0 >/proc/sys/net/ipv4/tcp_sack";

The NAT rules in root domain are simple (there's no filter rules):
  ...
  Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)  pkts bytes
  target     prot opt in     out     source               destination
  2   120 MASQUERADE  all  --  any    rmnet0  anywhere      anywhere
  ...

I've also posted a question here:

https://stackoverflow.com/questions/49064250/nat-doesnt-forward-tcp-acks-with-sack-option

Any suggestion? Thank you very much.

--
To unsubscribe from this list: send the line "unsubscribe netfilter" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux