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
signature.asc
Description: Detta är en digitalt signerad meddelandedel
