netdev
[Top] [All Lists]

Re: UDP sockets bound to ANY send answers with wrong src ip address

To: Julian Anastasov <ja@xxxxxx>
Subject: Re: UDP sockets bound to ANY send answers with wrong src ip address
From: Denis Vlasenko <vda@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 9 Jun 2004 15:45:23 +0300
Cc: netdev@xxxxxxxxxxx, <linux-net@xxxxxxxxxxxxxxx>, <davem@xxxxxxxxxx>, <yoshfuji@xxxxxxxxxxxxxx>, <pekkas@xxxxxxxxxx>, <jmorris@xxxxxxxxxx>, <linux-kernel@xxxxxxxxxxxxxxx>
In-reply-to: <Pine.LNX.4.44.0406091511350.6279-100000@l>
References: <Pine.LNX.4.44.0406091511350.6279-100000@l>
Sender: netdev-bounce@xxxxxxxxxxx
On Wednesday 09 June 2004 15:18, Julian Anastasov wrote:
> Hello,
>
> On Wed, 9 Jun 2004, Denis Vlasenko wrote:
> > I observe that UDP sockets listening on ANY
> > send response packets with ip addr derived from
> > ip address of interface which is used to send 'em
> > instead of using dst ip address of client's packet.
> >
> > I was bitten by this with DNS and NTP.
>
>       The problem is in the apps. You have some options:
>
> - use sockets listening on ANY and using sendmsg with IP_PKTINFO
> and providing the desired src IP in ipi_spec_dst
>
> - you can also create many listener sockets listening on
> particular src IP and to reply using the socket where the
> request is received, because the kernel does not know any
> association between request and reply packets if the listener
> is bound to ANY.

Aha! That's why ntpd is so eager to bind to everything imaginable!
(Which does not help BTW with non-permanent interfaces like
ppp, tun etc).

/me googling for that IP_PKTINFO thing...
--
vda


<Prev in Thread] Current Thread [Next in Thread>