sön 2006-12-03 klockan 02:15 +0800 skrev Adrian Chadd:
> I've been staring at bug 1584 today to try and understand what the problem is.
> Henrik, could you quickly explain what you remember from the bug and why
> having one socket for each WCCPv2 router would fix things? What would be different?
The answer to that question is in the squid-dev archives.
Cisco IOS apparently has a bug/misfeature in that it looks at the IP ID
field of the WCCP UDP packets, and if two packets is received with the
same IP ID number it discards them as duplicates even if the WCCP
received ID is completely different.
Linux has behaves slightly different from many other OS:es in that it
doesn't send IP ID on unconnected sockets and instead flags these
packets with the "Don't fragment" bit. Under those conditions the IP ID
always set to 0. This is a completely valid optimization.
But it does however send unique IP ID values on traffic on connected
sockets. So by making the UDP socket connected to the router address the
Cisco IOS bug/misfeature is avoided.
I guess that if you run Squid on FreeBSD or Windows this won't be a
problem.
Hmm... maybe it also works disabling PMTU-discovery when I think of it..
Testing. Yes, that seems to work fine. "Don't fragment" no longer set
and there is reasonable IP ID values set. So I think it should work now.
(change committed).
Regards
Henrik
This archive was generated by hypermail pre-2.1.9 : Sat Dec 30 2006 - 12:00:04 MST