It is all good on windows, but on linux when I try to retrieve a specific web page, I get a long wait and then a "connection reset by peer"
Pinging destination IP works fine.
I tried to reduce interface MTU to 1476(found using "ping -c1 -M do -s") and even lower values but it did not solve the problem.
On another linux PC near the destination host, there is no problem, so i suspect some router in the path.
These are wireshark and tshark output:
Linux with connection reset: http://pastebin.com/tpjS5qZc
Windows with no problem: http://pastebin.com/iyN1GDxT
It seems that third packet gets lost in the path to destination host and destination sends back several duplicate ack packets, but i can not see any relevant difference in windows and linux packets.
Best Answer
In your capture both servers are setting "Do not fragment bit". This means that both ends are trying to do Path MTU Discovery.
It seems that there is a firewall that blocks
ICMP Fragmentation Needed
form your Linux server towards the remote server. As a workaround enable MSS clamping with:You can also try to disable P MTU Discovery in Linux:
From the
iptables
man page:See: http://lartc.org/howto/lartc.cookbook.mtu-mss.html
Edit: After I've take a closer look on the captures, I've discovered that there is a broken firewall along the path that is filtering all IP packets that use TCP Timestamp option. Just run on the Linux box:
echo 0 | sudo tee /proc/sys/net/ipv4/tcp_timestamps