Re: WCCP2 "duplicate message" reports

From: Henrik Nordstrom <henrik@dont-contact.us>
Date: Thu, 25 May 2006 00:18:15 +0200

tor 2006-05-25 klockan 00:02 +0400 skrev Paul P Komkoff Jr:

> Be advised, that you can encounter unexpected difficulties with wccp
> protocol starting from linux kernel 2.6.16. In this kernel code path
> which assings IP ID to UDP packets was changed; IP ID on packets
> leaving from unconnected datagram socket with DF set is always 0.

Which in itself is fine.. and not something WCCP2 should care about..

The IP ID field is only supposed to be used in fragment reassembly, and
with DF there can not be any fragments, only complete packets.

> Cisco ios 12.4.7 and 12.4.8 (and I assume that all previous versions
> too) threating these packets as duplicates, and ingnores all except
> the first HIA.

Argh! Well, that may explain Bug #1584...

> And it you do connect() on socket, the IP ID will be nonzero but you
> will lose incoming packets from hosts other than connected.
>
> I've implemented a workaround here. For the first time, I thought I
> can use n+1 sockets - one for each router in the view for sending, and
> another one bound to local port 2048 - for receiving. But after some
> initial testing I've discovered Cisco IOS violating not only
> ancient RFCs (RFC791) but it violates Cisco's own draft.

In what way is this a violation of RFC791?

> I_See_you (and removal_query) packets are going to sending side of
> individual sockets - instead of port 2048 on my ost, as I expected.

Well, this is the normal thing in TCP/IP networking. Always return to
the source port the query came from. In fact most consider anything else
broken by default.

> So, my current implementation which works with 2.6.16 kernel creates
> individual socket for each router in the view and using these for both
> sending and receiving.

Looks like we may have to do something similar.

Regards
Henrik

Received on Wed May 24 2006 - 16:18:20 MDT

This archive was generated by hypermail pre-2.1.9 : Thu Jun 01 2006 - 12:00:04 MDT