Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IPv6 disabled by default #1965

Open
juliaszone opened this issue Aug 31, 2023 · 32 comments
Open

IPv6 disabled by default #1965

juliaszone opened this issue Aug 31, 2023 · 32 comments

Comments

@juliaszone
Copy link

juliaszone commented Aug 31, 2023

Hi,
I've found IPv6 to be disabled by default in I2Pd which is a shame in my eyes. IPv6 is very important for the growth of the internet and I2P network.
We're approaching the point where IPv6 is becoming more and more widespread, so I believe ipv6=true should be the default.

Unfortunately, I don't know how I2Pd will behave on clients that do not have IPv6 connectivity, so this might be a good idea to look into. If it might break connectivity for those legacy clients it might be good to wait for a patch. I might be able to do some testing here later.

https://github.com/PurpleI2P/i2pd/blob/7b6aa41ca8dc3ca2a0c9d01ff9870794ad98e403/contrib/i2pd.conf#L77C13-L77C13
https://i2pd.readthedocs.io/en/latest/user-guide/configuration/#general-options

@r4sas
Copy link
Member

r4sas commented Sep 3, 2023

so I believe ipv6=true should be the default

No. Less than 10% of users still have IPv6 with their ISPs.

@wipedlifepotato
Copy link
Contributor

IPv6 is trash

@juliaszone
Copy link
Author

juliaszone commented Sep 6, 2023

so I believe ipv6=true should be the default

No. Less than 10% of users still have IPv6 with their ISPs.

@r4sas Google reported 45.28% adoption globally on clients about 2 days ago, either way, client adoption should not be a factor.
Clients that already have native connectivity should be able to use it out of the box. Only this really drives use, not many will go through config files.

@juliaszone
Copy link
Author

juliaszone commented Sep 6, 2023

IPv6 is trash

@wipedlifepotato This is not useful in any way. Please consider withholding yourself from this conversation.

@wipedlifepotato
Copy link
Contributor

wipedlifepotato commented Sep 7, 2023 via email

@wipedlifepotato
Copy link
Contributor

wipedlifepotato commented Sep 7, 2023 via email

@wipedlifepotato
Copy link
Contributor

wipedlifepotato commented Sep 7, 2023 via email

@wipedlifepotato
Copy link
Contributor

wipedlifepotato commented Sep 7, 2023 via email

@wipedlifepotato
Copy link
Contributor

wipedlifepotato commented Sep 7, 2023 via email

@wipedlifepotato
Copy link
Contributor

wipedlifepotato commented Sep 7, 2023

Screenshot_2023-09-07-10-09-13-740_com ertelecom agent
Can you see? In my country an internet provider try to sell wifi repeater by 8000 rubles and even dont know that is ipv6 so for my country i even wouldn't enable any technology if not exist practical need

@wipedlifepotato
Copy link
Contributor

wipedlifepotato commented Sep 7, 2023 via email

@wipedlifepotato
Copy link
Contributor

wipedlifepotato commented Sep 7, 2023 via email

@juliaszone
Copy link
Author

juliaszone commented Sep 7, 2023

My point is not to disable IPv4, but to enable IPv6 so that clients can use it if they have it. I was referring to a Reddit post because it is not that easy to go to historical dates on the graph. (The graph tends to fluctuate a lot from day to day)
While some countries do unfortunately lack in IPv6 (which I am also totally aware of and which honestly sucks), it's important to consider global trends and how quickly this is shifting.
IPv4 is starting to become less necessary for daily use (in some countries at least - for example, in many countries you can play Minecraft with your friends simply using IPv6). China aims to go single stack IPv6 by 2030 and the US Government has a mandate for 2025 (but only for it's own organs IIRC).
The current best plan is to go dual stack (meaning IPv4 parallel to IPv6) until IPv6 penetration is high enough to phase out IPv4 on a wide scale.
The following check might be a good solution: if ipv4 and ipv6 config options are set to auto, it would be possible for the node to try connecting to an IPv4 node and an IPv6 node every few minutes and the node would set its preferences accordingly.

@wipedlifepotato
Copy link
Contributor

wipedlifepotato commented Sep 7, 2023

IC (Information Culture) is a term that describes various organizations, groups or systems that are driven by ideologies and goals other than those they claim to be. In this case, the religious mask of IK is considered. Here are a few key differences between religion and IC:

  1. Purpose: Religion offers salvation from the mundane and calls for service and faith in God, while IC offers salvation through techniques and mastery of the teachings of the leader.

  2. Faith: Religion calls to believe in the supernatural and unearthly, while IC calls to believe in a leader and obey his laws.

  3. Judge: In religion, the judge is God within each person, represented by conscience, while in IC, the leader is the judge, and conscience is considered delusion.

  4. Miracles: Miracles in religion are aimed at approaching salvation and are not connected with the satisfaction of earthly desires. In IC, miracles are ordered and performed to confirm the power of the leader and satisfy simple needs.

  5. Attitude towards others: Religion calls for love for people and tolerance for their delusions. In IC, people's differences are seen as a challenge, and non-Christians may be squeezed out of life or treated as "underdeveloped".

  6. Family: Religion deifies the family and calls for its preservation. In IC, the family is seen as a competitor in the struggle for prosperity and life, and can be discredited as a source of negative influence.

I hope this helps you better understand the differences between a religious mask and IR. If you have any more questions, I'll be happy to help!

^^^ by gpt
so i just want to say that i think that your mind is occupied by sect because unconsciously you are looking for the association of people to feel safe and yet this idea about ipv6 not a bad or not a good ... i thnk that have not be main focus like another things

Yet I think that ipv6 is just information-trash like tiktok/youtube/another things for a now this is just a thing that allow not think about that we are all going to dead... And on your street some people need a help maybe even evtanasia

@Vort
Copy link
Contributor

Vort commented Sep 7, 2023

I think main question here is how hard to implement autodetection for ipv4 and ipv6.
Enabling ipv6 when user have no IPv6 available is bad decision I think.

@juliaszone
Copy link
Author

I think main question here is how hard to implement autodetection for ipv4 and ipv6. Enabling ipv6 when user have no IPv6 available is bad decision I think.

I'm going to do some tests on figuring out whether ipv6=true causes issues on an IPv4 only network and vice versa.

@juliaszone
Copy link
Author

juliaszone commented Sep 7, 2023

@wipedlifepotato What does this have to do with anything?
This is not some cult or ideology, it is a technical necessity. IPv6 is a response to the limitations of IPv4.
And how is it "information-trash"? You're comparing an internet protocol to social media platforms and religion?

wipedlifepotato added a commit to wipedlifepotato/i2pd that referenced this issue Sep 7, 2023
@wipedlifepotato
Copy link
Contributor

wipedlifepotato commented Sep 7, 2023

wipedlifepotato@0c3d444
Some can do a test? I dont have ipv6 or a tunnel. Add to code where is ipv6 is true or false debug msg

@wipedlifepotato
Copy link
Contributor

And there is not enough test of ipv6 supports, maybe I did run thing like yggdrasil or ... Need just a connect to some server of ipv6 maybe peer and check if this works. so there is ^^^ preusodocode that can to help
i dont have ipv6 and dont have a tunnel

@wipedlifepotato
Copy link
Contributor

wipedlifepotato commented Sep 7, 2023

there is exists i2p::context.GetTestingV6() so my code is a trqash

If we do connection of ipv6 to google as example then is give to provider information or idea that some use i2pd
but yes reseed... but resseed can be got by a file

@wipedlifepotato
Copy link
Contributor

wipedlifepotato commented Sep 7, 2023

And there is a trouble with add_options if more correctly there is will be some any_type for value

@wipedlifepotato
Copy link
Contributor

So, do your idea of populisation of ipv6 need to change realization of ipv6 or set TRUE for all nodes what a for? Which for a now there is meaning? Why is this action better than running a squirrel in a wheel
There asks can to help understand why " And how is it "information-trash"? You're comparing an internet protocol to social media platforms and religion?"

@wipedlifepotato
Copy link
Contributor

@wipedlifepotato
Copy link
Contributor

wipedlifepotato commented Sep 7, 2023

If just enable true to ipv6 when ipv6 is not works in system all works fine but in logs will be much of warns about not establish connection

17:32:59@905/error - SSU2: Send exception: Network is unreachable to [X:5a84:X:800:X:adcf:X:X]:29294
17:32:59@376/warn - NetDb: Destination foBqznqgMaQBnG2tcxznCBwrvl-5zxbQ1OPDRUfmkaQ= is requested already
17:33:00@968/warn - NTCP2: SessionCreated read error: End of file
17:33:00@376/warn - Profiling: No profile yet for fsEbz16WZfml3b54uTr7LCLytOBwNIaZ~yRTyQOJlNQ=
17:33:04@905/warn - SSU2: Session with [X:X:X:X:X:X:X:X]:29294 was not established after 5 seconds
17:33:05@905/error - SSU2: Send exception: Network is unreachable to [X:X:X:8d::1]:2551
17:33:05@905/error - SSU2: Send exception: Network is unreachable to [X:X:28c:2b0b:X:7c1d:848f:X]:38320
17:33:05@905/error - SSU2: Send exception: Network is unreachable to [X:X:d180:X:10b5:4da4:X:X]:24825
17:33:05@905/error - SSU2: Send exception: Network is unreachable to [X:f3:X:4400:c21f:X:X:X]:17380
17:33:05@905/error - SSU2: Send exception: Network is unreachable to [X:4000:X:X::1]:45533

@wipedlifepotato
Copy link
Contributor

wipedlifepotato commented Sep 7, 2023

wipedlifepotato@0c3d444
If we going to a way simmilar to that I wrote in my code then need to change a much of documentation where is was before true/false params
If we going to a way with boost::any we will to write a more code
If we going to a way with enable ipv6 by default we get much of errors in logs if not exists ipv6 in system
If we going to a way with check ipv6 works or no then we can to give internet provider idea that we use ipv6 (or no, need a think)
If we going to a way don't change anything and say that who is want then enable ipv6 in config then not need to change anything and i2pd is continue works fine. For a now we will change our focus to speed of i2p network and maybe search a some vuln or etc but why we will change a focus to ipv6? Why is not just a trash [... .. .. ... . .. cafebaba:baba:dead:cafe], yes is looks to cool but where is practical use for a now china where is will be popular i2pd or north kora.... not exists even ipv6 there is not a need need a invisible protocol not cafebaba this is my idea and why i wrote that is a just trash

@wipedlifepotato
Copy link
Contributor

wipedlifepotato commented Sep 7, 2023

I have a idea! We can to create a tool in i2pd-tools that to generate config file for i2pd. And runs this tool in first launch or when we do reseed check if ipv6 works and just change in config file false to true for ipv6 by default. This is a really easy way. Why not. So, need to idea how to better check if ipv6 is works. Connect to a ipv6 server can be but maybe an another idea?

There is a problem... Some people maybe really don't want to use ipv6 address and when someone be restart the i2pd by this a way someone will rewrite option that false. So a tool maybe is a better way
or an auto option

@wipedlifepotato
Copy link
Contributor

@juliaszone can you test this changes - #1966 please

@wipedlifepotato
Copy link
Contributor

wipedlifepotato commented Sep 7, 2023

#1965 (comment)

So, my bad there is not need boost::any

wipedlifepotato added a commit to wipedlifepotato/i2pd that referenced this issue Sep 8, 2023
@juliaszone
Copy link
Author

juliaszone commented Sep 8, 2023

So, do your idea of populisation of ipv6 need to change realization of ipv6 or set TRUE for all nodes what a for? Which for a now there is meaning? Why is this action better than running a squirrel in a wheel

IPv6 will become more popular in I2P network, so the network will be more resilient and redundant on the modern protocol.

If we going to a way don't change anything and say that who is want then enable ipv6 in config then not need to change anything and i2pd is continue works fine. For a now we will change our focus to speed of i2p network and maybe search a some vuln or etc but why we will change a focus to ipv6? Why is not just a trash [... .. .. ... . .. cafebaba:baba:dead:cafe], yes is looks to cool but where is practical use for a now china where is will be popular i2pd or north kora.... not exists even ipv6 there is not a need need a invisible protocol not cafebaba this is my idea and why i wrote that is a just trash

Sure, maybe IPv6 isn't super important. You can give issues higher or lower priorities. I just thought of bringing this issue up rather than leaving it sit undiscovered. The raising of this issue shouldn't (and doesn't) prevent the discovery of security vulnerabilities (which are often found on accident) or speed improvements (ISP data caps and bandwidth limits greatly limit this anyways).
Fun fact, as IPv6 doesn't necessarily need NAT it might actually be faster for people in many countries. In china many use IPv6 too and well, I don't think anyone's gonna use I2P in North Korea, let's be real.
The point of IPv6 is not to look cool either, those addresses are just possible thanks to hexadecimal (hexspeak). As said before, it's point is to address limitations of the legacy IPv4 protocol, which even Vint Cerf (often seen as Father of the Internet) describes as experimental.

I have a idea! We can to create a tool in i2pd-tools that to generate config file for i2pd. And runs this tool in first launch or when we do reseed check if ipv6 works and just change in config file false to true for ipv6 by default. This is a really easy way. Why not. So, need to idea how to better check if ipv6 is works. Connect to a ipv6 server can be but maybe an another idea?

Well, I don't know how many people use the tool, but it might be better to have options like "auto", "false", "true" and have the default "auto".

There is a problem... Some people maybe really don't want to use ipv6 address and when someone be restart the i2pd by this a way someone will rewrite option that false. So a tool maybe is a better way
or an auto option

Yeah, this is why I feel like both defaulting to "auto" with a "false" if you really don't want to use it or if there is a problem with your ISP and a "true" if you want to force it and the auto check has some trouble detecting it properly.

@juliaszone can you test this changes - #1966 please

Alright, give me some time and I will get back to you

@agowa
Copy link

agowa commented Feb 20, 2024

Any update on this? This ticket has been dormant for almost half a year now. I couldn't see any problems with having ipv6 = true, esp because almost everywhere in the code ipv4 and ipv6 are already independent of each other. This can also be seen when either of them fails e.g. because of firewalling or NAT reasons. The other may succeed independently and as long as at least one of them is successful we've connectivity to the swarm.

The only issue I can see is in regards to having multiple IPv6 addresses on the interface and address selection, but that technically also applies to IPv4. Also the worst case would be a non working ipv6 circuit. I.E. the same as right now with ipv6 = false. So enabling it by default shouldn't have a significant impact.

@juliaszone
Copy link
Author

Any update on this? This ticket has been dormant for almost half a year now. I couldn't see any problems with having ipv6 = true, [...]

The issue is that IPv6 is disabled by default and IPv4 enabled by default, there is no detection mechanism on what connectivity the host has. Is it dualstack or IPv6 only then you need to enable IPv6 and or disable IPv4. Making IPv6 enabled by default will increase the amount of IPv6 capable nodes and make the network more future proof. I currently cannot work on this, as I do not have a Laptop as of today.

@agowa
Copy link

agowa commented Feb 27, 2024

@juliaszone I think you misunderstood my last post. I was also advocating for enabling IPv6 by default. And my argument was that when you right now enable IPv6 even though there is none it won't suddenly impact IPv4. Therefore there is nothing speaking against changing the default to enabling IPv6 as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants