Don't allow disabling IPv6 support #584

Open
opened 2026-10-05 04:31:24 +02:00 by adam · 10 comments
Owner

What sense does allowing disabling IPv6 support make? At #znc it was said some time ago that allowing disabling IPv4 would make more sense.

IPv4 addres pools are getting more and more exhausted and it's possible many users have IPv6 without knowing about it. Linux kernel also recently moved into building IPv6 support directly to the kernel instead of building it as a module by default.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/26790588-don-t-allow-disabling-ipv6-support?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github).
What sense does allowing disabling IPv6 support make? At #znc it was said some time ago that allowing disabling IPv4 would make more sense. IPv4 addres pools are getting more and more exhausted and it's possible many users have IPv6 without knowing about it. Linux kernel also recently moved into building IPv6 support directly to the kernel instead of building it as a module by default. ## <bountysource-plugin> --- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/26790588-don-t-allow-disabling-ipv6-support?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github). </bountysource-plugin> <!-- github-sync-id:107253940 -->
Author
Owner

If IPv6 is disabled in kernel, creating a socket will fail. So probably an option in --makeconf should persist (in some form).
For ./configure --disable-ipv6, maybe it's not needed anymore.

If IPv6 is disabled in kernel, creating a socket will fail. So probably an option in --makeconf should persist (in some form). For `./configure --disable-ipv6`, maybe it's not needed anymore. <!-- github-comment-id:141592981 -->
Author
Owner

So probably an option in --makeconf should persist (in some form).

How about port bindhost?

Set * for most situations, 0.0.0.0 if your kernel is compiled without IPv6 and :: if your kernel is compiled without IPv4. *Note: don't set this as 0.0.0.0 just because you think you don't have IPv6 yet.*
  • Compiling kernel without IPv4 isn't possible as far as I know :(, but maybe in the future...
  • With the note: I am trying to help users who in reality have IPv6, but think they don't and people who will get it (IPv4 exhaustion is so bad that ISPs must do something at some point).
    • There are already many of these people judging by news about VPNs leaking because they don't route IPv6 and people thinking they shouldn't even have it.

Suggestion as new string fixed after discussing at IRC with DarthGandalf.

> So probably an option in --makeconf should persist (in some form). How about port bindhost? ``` Set * for most situations, 0.0.0.0 if your kernel is compiled without IPv6 and :: if your kernel is compiled without IPv4. *Note: don't set this as 0.0.0.0 just because you think you don't have IPv6 yet.* ``` - Compiling kernel without IPv4 isn't possible as far as I know :(, but maybe in the future... - With the _note:_ I am trying to help users who in reality have IPv6, but think they don't and people who will get it (IPv4 exhaustion is so bad that ISPs must do something at some point). - There are already many of these people judging by news about VPNs leaking because they don't route IPv6 and people thinking they shouldn't even have it. _Suggestion as new string fixed after discussing at IRC with DarthGandalf._ <!-- github-comment-id:141619212 -->
Author
Owner

What do you mean by 'port bindhost'?
That your quote is from where?

What do you mean by 'port bindhost'? ~~That your quote is from where?~~ <!-- github-comment-id:141634926 -->
Author
Owner

What do you mean by 'port bindhost'?

screenshot

That your quote is from where?

It's my suggestion as question to znc --makeconf as if I understood correctly you are talking about adding port bindhost there.

> What do you mean by 'port bindhost'? ![screenshot](https://i.imgur.com/xK1KIev.png) > That your quote is from where? It's my suggestion as question to `znc --makeconf` as if I understood correctly you are talking about adding port bindhost there. <!-- github-comment-id:141635126 -->
Author
Owner

Hmm, ::1 listens on IPv4 and 127.0.0.1 listens on IPv6? Do we have another issue here :)

Hmm, ::1 listens on IPv4 and 127.0.0.1 listens on IPv6? Do we have another issue here :) <!-- github-comment-id:141635153 -->
Author
Owner

It's my suggestion as question to znc --makeconf

--makeconf is for initial configuration. That suggested text will only confuse people, and during initial configuration they don't really need an ability to set arbitrary host for listening port.

::1 listens on IPv4 and 127.0.0.1 listens on IPv6?

There is some logic on how socket is created based on those flags, but it can easily give confusing results.

> It's my suggestion as question to znc --makeconf --makeconf is for initial configuration. That suggested text will only confuse people, and during _initial_ configuration they don't really need an ability to set arbitrary host for listening port. > ::1 listens on IPv4 and 127.0.0.1 listens on IPv6? There is some logic on how socket is created based on those flags, but it can easily give confusing results. <!-- github-comment-id:141662489 -->
Author
Owner

--makeconf is for initial configuration. That suggested text will only confuse people, and during initial configuration they don't really need an ability to set arbitrary host for listening port.

I don't understand what you mean with this then:

If IPv6 is disabled in kernel, creating a socket will fail. So probably an option in --makeconf should persist (in some form).


There is some logic on how socket is created based on those flags, but it can easily give confusing results.

Should I open an issue about it then, as that is just impossible? :: / ::0 and net.ipv6.bindv6only are a different story, but they don't affect 127.0.0.1 and ::1 as far as I am aware.

> --makeconf is for initial configuration. That suggested text will only confuse people, and during initial configuration they don't really need an ability to set arbitrary host for listening port. I don't understand what you mean with this then: > If IPv6 is disabled in kernel, creating a socket will fail. So probably an option in --makeconf should persist (in some form). --- > There is some logic on how socket is created based on those flags, but it can easily give confusing results. Should I open an issue about it then, as that is just impossible? :: / ::0 and `net.ipv6.bindv6only` are a different story, but they don't affect 127.0.0.1 and ::1 as far as I am aware. <!-- github-comment-id:141663936 -->
Author
Owner

I will open an issue.

I will open an issue. <!-- github-comment-id:141664395 -->
Author
Owner

Don't allow disabling IPv6 support

This could mean 2 separate things: an option to ./configure, and an option in --makeconf.
My first post described these 2 options in more details.

net.ipv6.bindv6only

ZNC ignores that setting, and always requests IPv4 socket or IPv6 socket from kernel explicitly, based on combination of all those parameters.

> Don't allow disabling IPv6 support This could mean 2 separate things: an option to ./configure, and an option in --makeconf. My first post described these 2 options in more details. > net.ipv6.bindv6only ZNC ignores that setting, and always requests IPv4 socket or IPv6 socket from kernel explicitly, based on combination of all those parameters. <!-- github-comment-id:141694117 -->
Author
Owner

znc --makeconf --no-ipvX where X is 4 or 6?

Ignoring that setting is the right thing to do.

`znc --makeconf --no-ipvX` where X is 4 or 6? Ignoring that setting is the right thing to do. <!-- github-comment-id:141747337 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/znc#584