From owner-freebsd-net@FreeBSD.ORG Sun Sep 17 19:07:11 2006 Return-Path: X-Original-To: net@freebsd.org Delivered-To: freebsd-net@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 84FA816A40F; Sun, 17 Sep 2006 19:07:11 +0000 (UTC) (envelope-from brian@Awfulhak.org) Received: from storm.uk.FreeBSD.org (storm.uk.FreeBSD.org [194.242.157.42]) by mx1.FreeBSD.org (Postfix) with ESMTP id E7FF843D55; Sun, 17 Sep 2006 19:07:10 +0000 (GMT) (envelope-from brian@Awfulhak.org) Received: from gw.Awfulhak.org (root@gw.lan.Awfulhak.org [172.16.0.1]) by storm.uk.FreeBSD.org (8.13.8/8.13.8) with ESMTP id k8HJ77ue015312; Sun, 17 Sep 2006 20:07:07 +0100 (BST) (envelope-from brian@Awfulhak.org) Received: from dev.lan.Awfulhak.org (brian@dev.lan.Awfulhak.org [172.16.0.5]) by gw.Awfulhak.org (8.13.6/8.13.6) with ESMTP id k8HJ72PW055457; Sun, 17 Sep 2006 12:07:02 -0700 (PDT) (envelope-from brian@Awfulhak.org) Date: Sun, 17 Sep 2006 12:07:01 -0700 From: Brian Somers To: Hajimu UMEMOTO Message-ID: <20060917120701.4d8eb7ec@dev.lan.Awfulhak.org> In-Reply-To: References: <200609141344.k8EDiI42092840@flat.berklix.org> X-Mailer: Sylpheed-Claws 2.4.0 (GTK+ 2.8.20; i386-portbld-freebsd7.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: Gary Jennejohn , Julian Stacey , net@freebsd.org Subject: Re: ppp command port does not listens on ipv4 unless no INET6 in kernel X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Sep 2006 19:07:11 -0000 On Sun, 17 Sep 2006 20:10:47 +0900 Hajimu UMEMOTO wrote: > Hi, > > >>>>> On Thu, 14 Sep 2006 15:44:18 +0200 (CEST) > >>>>> "Julian Stacey" said: > > jhs> I'm not clear if this is a bug or a config error: > jhs> It seems though my /usr/sbin/ppp was moving traffic > jhs> to & from internet, it was only listening for commands > jhs> (not data) on ipv6, not ipv4, thus I could not type commands > jhs> like dial & drop, unless instead of running ppp -auto > jhs> instead I invoked ppp manually in foreground on localhost. > > As far as I read the source of ppp(8), it only listen on an IPv6, and > expects to listen on an IPv4 through an IPv4-mapped IPv6 address. > However, an IPv4-mapped IPv6 address feature is disabled by default. > ppp(8) should be rewritten to listen on both an IPv4 and an IPv6. > But, it is slightly complex. So, I made a patch to enable an > IPv4-mapped IPv6 address only for the socket that ppp(8) is listening > on. > I have no environment for testing this. Could you try this patch? > > Index: usr.sbin/ppp/server.c > diff -u -p usr.sbin/ppp/server.c.orig usr.sbin/ppp/server.c > --- usr.sbin/ppp/server.c.orig Sun Sep 5 10:46:52 2004 > +++ usr.sbin/ppp/server.c Sun Sep 17 19:54:43 2006 > @@ -346,6 +346,13 @@ server_TcpOpen(struct bundle *bundle, u_ > goto failed; > } > > +#ifndef NOINET6 > + if (probe.ipv6_available) { > + int off = 0; > + setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, (char *)&off, sizeof(off)); > + } > +#endif > + > setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &s, sizeof s); > if (bind(s, (struct sockaddr *)&ss, sz) < 0) { > log_Printf(LogWARN, "Tcp: bind: %s\n", strerror(errno)); > > > Sincerely, AFAIR I had trouble getting that code to work and was advised at the time that I'd just get the mapped port for free. I haven't been using IPv6 on production machines for some time, so I haven't seen the problem :( It'd be great if you'd commit the patch if Julian says it works ok for him. Cheers. -- Brian Somers Don't _EVER_ lose your sense of humour !