unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Greg Troxel <gdt@lexort.com>
To: "Dr. Arne Babenhauserheide" <arne_bab@web.de>
Cc: Maxime Devos <maximedevos@telenet.be>, guile-devel@gnu.org
Subject: Re: (web server) serving on both ipv6 and ipv4?
Date: Thu, 20 Jan 2022 08:38:42 -0500	[thread overview]
Message-ID: <rmi1r128r31.fsf@s1.lexort.com> (raw)
In-Reply-To: <877dauj23t.fsf@web.de> (Arne Babenhauserheide's message of "Thu,  20 Jan 2022 08:24:10 +0100")

[-- Attachment #1: Type: text/plain, Size: 2431 bytes --]


"Dr. Arne Babenhauserheide" <arne_bab@web.de> writes:

> Greg Troxel <gdt@lexort.com> writes:
>
>> [[PGP Signed Part:Signature made by expired key 1FDA7AE8098ED60E Gregory D. Troxel (low security, at work) <gdt@work.lexort.com>]]
>>
>> Maxime Devos <maximedevos@telenet.be> writes:
>>
>>> Maybe the IPV6_V6ONLY (see the ipv6(7) man page) is relevant here.
>>> Alternatively, you could run two servers in parallel: one bound to an
>>> IPv4 address and another bound to an IPv6 address.
>>
>> My feeling is that IPV6_ONLY is best avoided, for portability, and
>> because mapped addresses (an IPv6 address with the v4 address embedded)
>> are awkward.    So I think it's best to listen on v4 and v6 separately.
>
> I see portability, but for simplicity and having the same codebase, I
> think that IPV6_V6ONLY=0 is the right choice.

Make sure you add to your example pulling out the IPv4 address of
connections and logging it reasonably (as a v4 address).  I think it
won't be so simple.

> It is possible to listen both on v6 and v4 for the same port, but you’ll
> then have more complexity — I’m mainly thinking about tutorials here:
> You’ll have to explain a lot more if you have to take care of v6 vs. v4
> instead of having a library that does both.

It's creating two sockets instead of one.  A program that really works
as to be able to do that anyway, because the user should be able to
configure listen addresses to listen on some interfaces and not others.

I also don't follow "library that does both".  If a library has an
option to create one socket, it should be extendable to do both in some
straightforward way.

My experience is that programs that are structured to allow multiple
sockets are easy to make work, and those that don't end up awkward in
various ways,  so I'm encouraging you to address that root cause early.

> An alternative could be a server using the fiberized web server to be
> able to tie efficiently into the rest of the code via a plain fibers
> channel.

That sounds like what should really be addressed; the frameworks should
allow "add this socket, add this other socket" and that should all be
natural.   Whether it's two interface addresses v4 only, or v4/v6, or
v4, v6 and some future protocol.   (BSD kernels used to have ISO and IPX
at some point, and there's no V6ONLY type hack for those.)

Thanks for listening...
Greg

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 194 bytes --]

  reply	other threads:[~2022-01-20 13:38 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-19  7:57 (web server) serving on both ipv6 and ipv4? Dr. Arne Babenhauserheide
2022-01-19  8:51 ` Maxime Devos
2022-01-19 18:27   ` Greg Troxel
2022-01-20  7:24     ` Dr. Arne Babenhauserheide
2022-01-20 13:38       ` Greg Troxel [this message]
2022-01-19 13:07 ` Chris Vine
2022-01-19 13:44   ` Chris Vine
2022-01-19 13:53     ` Chris Vine
2022-01-19 21:12     ` Chris Vine
2022-01-19 21:42       ` Dr. Arne Babenhauserheide

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=rmi1r128r31.fsf@s1.lexort.com \
    --to=gdt@lexort.com \
    --cc=arne_bab@web.de \
    --cc=guile-devel@gnu.org \
    --cc=maximedevos@telenet.be \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).