-
Notifications
You must be signed in to change notification settings - Fork 5
Closed
Labels
developmentStandard developmentStandard developmentr&d:polykey:core activity 4End to End Networking behind Consumer NAT DevicesEnd to End Networking behind Consumer NAT Devices
Description
Specification
IPv4 is being exhausted, and much of the new internet will be ipv6 only.
The PK agent should support binding, listening and connecting to IPv6 addresses.
Currently we're limited in several ways:
- The
utp-nativehas no IPv6 support - NAT busting hasn't been tested with IPv6 (what kind of NAT architectures would exist for IPv6)
- DHT hasn't been tested with IPv6
- CLI option parsing hasn't been tested with IPv6
- Our AWS NLB which runs the testnet and mainnet does not yet support IPv6 with UDP protocol
- AWS VPC/subnets hasn't been tested with IPv6 or configured with IPv6 assignments
- Our GRPC server (and perhaps client service in general) hasn't been tested with dual stack assignments, supporting IPv6 means we should still listen on IPv4 at the same time (but this requires documentation of the options)
All of the above has to be solved to support IPv6.
Additional context
- Using QUIC/HTTP3 to replace utp-native for the Data Transfer Layer in the networking domain #234 - replacing utp-native with quic would allow IPv6
- Testnet Node Deployment (testnet.polykey.io) #194 - notes on IPv6 work in AWS and the relevant PR Testnet Deployment via CI/CD #396
- https://github.com/MatrixAI/js-polykey/issues/153 - IPv6 also has their own multicast domains
- https://stackoverflow.com/questions/47797322/node-js-server-only-listening-on-ipv6
- https://www.grouparoo.com/blog/node-js-and-ipv6
Tasks
- Add tests to Node Connection to test local IPv6 usage
- Enable IPv6 on the testnet
- Apply integration tests to the testnet infrastructure
- IPv6 supported by quic layer.
- IPv6 supported by websocket layer.
- IPv6 discovery with MDNS.
- IPv6 supported by nodeGraph.
Metadata
Metadata
Assignees
Labels
developmentStandard developmentStandard developmentr&d:polykey:core activity 4End to End Networking behind Consumer NAT DevicesEnd to End Networking behind Consumer NAT Devices