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

Enable dual stack IPv6 #7114

Open
barnabasbusa opened this issue Mar 12, 2024 · 9 comments
Open

Enable dual stack IPv6 #7114

barnabasbusa opened this issue Mar 12, 2024 · 9 comments
Labels
A-networking Related to networking in general C-enhancement New feature or request M-prevent-stale Prevents old inactive issues/PRs from being closed due to inactivity

Comments

@barnabasbusa
Copy link

Describe the feature

Currently dual stack setups are not supported:

"node",
"--datadir=/data",
"--log.file.directory=/data/logs",
"--port=30303",
"--http",
...
"--nat=extip:147.182.168.104",
"--nat=extip:2604:a880:400:d0::2445:a001"                

It would be great if reth could advertise v4 and v6 addresses at the same time.

error: the argument '--nat <NAT>' cannot be used multiple times

Usage: reth node [OPTIONS]

For more information, try '--help'.

Additional context

No response

@barnabasbusa barnabasbusa added C-enhancement New feature or request S-needs-triage This issue needs to be labelled labels Mar 12, 2024
@mattsse mattsse added A-networking Related to networking in general and removed S-needs-triage This issue needs to be labelled labels Mar 12, 2024
@int88
Copy link
Contributor

int88 commented Mar 13, 2024

@mattsse I'd like to take it

@onbjerg
Copy link
Member

onbjerg commented Mar 13, 2024

Can you expand a bit on how you intend to solve it? And are there any unknowns for you/things you need clarified?

@int88
Copy link
Contributor

int88 commented Mar 13, 2024

It seems like a cumbersome job.

I should find all the places that IPv4 address is used, most of them are in net pkg I guess, including inbound and outbound direction, and add IPv6 support in all these places.

Maybe I should make a todo list after I browse the relevant code.

@onbjerg WDYT?

@int88
Copy link
Contributor

int88 commented Mar 14, 2024

I found most of the code in reth use IpAddr which support IPV4 & IPV6 by default.

Only DiscoveryArgs.addr and NetworkArgs.addr explicitly use Ipv4Addr.

Also most of the test cases only use IPV4 addresses to initialize.

After all above things are adapted, doc and command flag description should be updated as well.

@onbjerg @mattsse WDYT?

@onbjerg
Copy link
Member

onbjerg commented Mar 27, 2024

@int88 sorry for the delayed response,

I think what OP wants is not just ipv6 support like that, it's also the ability to specify --nat multiple times, once with an ipv4 addr and once with an ipv6 addr for example. currently we only accept 1 nat flag

@int88
Copy link
Contributor

int88 commented Mar 27, 2024

@onbjerg Yes, I found it as well, but seems geth also don't support multiple --nat?

@onbjerg
Copy link
Member

onbjerg commented Mar 27, 2024

Unfamiliar with how extip is supposed to work in the ENR, I don't know if we can advertise an ipv4 and an ipv6 address at the same time, cc @mattsse

Copy link
Contributor

This issue is stale because it has been open for 21 days with no activity.

@github-actions github-actions bot added the S-stale This issue/PR is stale and will close with no further activity label Apr 18, 2024
@onbjerg onbjerg removed the S-stale This issue/PR is stale and will close with no further activity label Apr 18, 2024
Copy link
Contributor

This issue is stale because it has been open for 21 days with no activity.

@github-actions github-actions bot added the S-stale This issue/PR is stale and will close with no further activity label May 10, 2024
@mattsse mattsse added M-prevent-stale Prevents old inactive issues/PRs from being closed due to inactivity and removed S-stale This issue/PR is stale and will close with no further activity labels May 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-networking Related to networking in general C-enhancement New feature or request M-prevent-stale Prevents old inactive issues/PRs from being closed due to inactivity
Projects
Status: Todo
Development

No branches or pull requests

4 participants