netbird/management/server
Hugo Hakim Damer 8b0398c0db
Add support for IPv6 networks (on Linux clients) (#1459)
* Feat add basic support for IPv6 networks

Newly generated networks automatically generate an IPv6 prefix of size
64 within the ULA address range, devices obtain a randomly generated
address within this prefix.

Currently, this is Linux only and does not yet support all features
(routes currently cause an error).

* Fix firewall configuration for IPv6 networks

* Fix routing configuration for IPv6 networks

* Feat provide info on IPv6 support for specific client to mgmt server

* Feat allow configuration of IPv6 support through API, improve stability

* Feat add IPv6 support to new firewall implementation

* Fix peer list item response not containing IPv6 address

* Fix nftables breaking on IPv6 address change

* Fix build issues for non-linux systems

* Fix intermittent disconnections when IPv6 is enabled

* Fix test issues and make some minor revisions

* Fix some more testing issues

* Fix more CI issues due to IPv6

* Fix more testing issues

* Add inheritance of IPv6 enablement status from groups

* Fix IPv6 events not having associated messages

* Address first review comments regarding IPv6 support

* Fix IPv6 table being created even when IPv6 is disabled

Also improved stability of IPv6 route and firewall handling on client side

* Fix IPv6 routes not being removed

* Fix DNS IPv6 issues, limit IPv6 nameservers to IPv6 peers

* Improve code for IPv6 DNS server selection, add AAAA custom records

* Ensure IPv6 routes can only exist for IPv6 routing peers

* Fix IPv6 network generation randomness

* Fix a bunch of compilation issues and test failures

* Replace method calls that are unavailable in Go 1.21

* Fix nil dereference in cleanUpDefaultForwardRules6

* Fix nil pointer dereference when persisting IPv6 network in sqlite

* Clean up of client-side code changes for IPv6

* Fix nil dereference in rule mangling and compilation issues

* Add a bunch of client-side test cases for IPv6

* Fix IPv6 tests running on unsupported environments

* Fix import cycle in tests

* Add missing method SupportsIPv6() for windows

* Require IPv6 default route for IPv6 tests

* Fix panics in routemanager tests on non-linux

* Fix some more route manager tests concerning IPv6

* Add some final client-side tests

* Add IPv6 tests for management code, small fixes

* Fix linting issues

* Fix small test suite issues

* Fix linter issues and builds on macOS and Windows again

* fix builds for iOS because of IPv6 breakage
2024-08-13 17:26:27 +02:00
..
account Feature/peer validator (#1553) 2024-03-27 18:48:48 +01:00
activity Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
geolocation Update the check interval for new geo db and change log level (#1908) 2024-04-30 17:54:29 +02:00
group Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
http Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
idp Add missing openid scope when requesting JWT token (#2089) 2024-06-04 10:46:24 +02:00
integrated_validator Extend integrated validator with error handling (#2044) 2024-05-24 13:29:25 +02:00
integration_reference Feature/peer validator (#1553) 2024-03-27 18:48:48 +01:00
jwtclaims Redeem invite only when incoming user was invited (#1861) 2024-04-22 11:10:27 +02:00
metrics Prevent using expired ctx when sending metrics (#2088) 2024-06-03 12:41:15 +02:00
migration Migrate blob net ip fields to json serializer (#1906) 2024-05-07 14:01:45 +03:00
mock_server Add FindExistingPostureCheck (#2075) 2024-05-30 15:22:42 +02:00
peer Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
posture Add FindExistingPostureCheck (#2075) 2024-05-30 15:22:42 +02:00
status Improve login performance (#2061) 2024-05-31 16:41:12 +02:00
telemetry Upgrade gRPC and OpenTelemetry packages for compatibility (#2003) 2024-05-27 08:39:18 +02:00
testdata Remove usage stats (#1665) 2024-03-05 09:45:32 +01:00
testutil Upgrade gRPC and OpenTelemetry packages for compatibility (#2003) 2024-05-27 08:39:18 +02:00
account_test.go Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
account.go Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
config.go Expose trusted proxy list and counter configuration for realip middleware (#1535) 2024-02-08 14:40:40 +01:00
dns_test.go Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
dns.go Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
ephemeral_test.go extract peer into seperate package 2023-11-28 13:45:26 +01:00
ephemeral.go Feature/peer validator (#1553) 2024-03-27 18:48:48 +01:00
event_test.go Extend linter rules (#1300) 2023-11-10 16:33:13 +01:00
event.go Improve Sync performance (#1901) 2024-05-07 14:30:03 +02:00
file_store_test.go Implement experimental PostgreSQL store (#1939) 2024-05-16 19:28:37 +03:00
file_store.go Improve login performance (#2061) 2024-05-31 16:41:12 +02:00
group_test.go Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
group.go Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
grpcserver.go Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
integrated_validator.go Improve Sync performance (#1901) 2024-05-07 14:30:03 +02:00
management_proto_test.go Implement experimental PostgreSQL store (#1939) 2024-05-16 19:28:37 +03:00
management_suite_test.go Move management server to a separate directory (#67) 2021-07-24 16:14:29 +02:00
management_test.go Extend integrated validator with error handling (#2044) 2024-05-24 13:29:25 +02:00
nameserver_test.go Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
nameserver.go Improve Sync performance (#1901) 2024-05-07 14:30:03 +02:00
network_test.go Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
network.go Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
peer_test.go Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
peer.go Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
personal_access_token_test.go move into separate package 2023-05-16 12:57:56 +02:00
personal_access_token.go Implement SQLite Store using gorm and relational approach (#1065) 2023-10-12 15:42:36 +02:00
policy_test.go Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
policy.go Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
posture_checks_test.go Implement experimental PostgreSQL store (#1939) 2024-05-16 19:28:37 +03:00
posture_checks.go Improve Sync performance (#1901) 2024-05-07 14:30:03 +02:00
route_test.go Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
route.go Add support for IPv6 networks (on Linux clients) (#1459) 2024-08-13 17:26:27 +02:00
scheduler_test.go Validate authentik issuer url (#1723) 2024-03-18 10:12:46 +01:00
scheduler.go Handle canceling schedule and avoid recursive call (#1636) 2024-03-03 10:35:01 +01:00
setupkey_test.go Feature/peer validator (#1553) 2024-03-27 18:48:48 +01:00
setupkey.go Improve Sync performance (#1901) 2024-05-07 14:30:03 +02:00
sql_store_test.go Upgrade gRPC and OpenTelemetry packages for compatibility (#2003) 2024-05-27 08:39:18 +02:00
sql_store.go Improve login performance (#2061) 2024-05-31 16:41:12 +02:00
store_test.go Extend linter rules (#1300) 2023-11-10 16:33:13 +01:00
store.go Improve login performance (#2061) 2024-05-31 16:41:12 +02:00
turncredentials_test.go Add metrics for PeersUpdateManager (#1310) 2023-11-16 18:21:52 +01:00
turncredentials.go Reorder peer deletion when deleteing a user (#1191) 2023-10-03 16:46:58 +02:00
updatechannel_test.go Add metrics for PeersUpdateManager (#1310) 2023-11-16 18:21:52 +01:00
updatechannel.go Implement lightweight method to check is peer has update channel (#1351) 2023-12-05 14:17:56 +01:00
user_test.go Implement experimental PostgreSQL store (#1939) 2024-05-16 19:28:37 +03:00
user.go Log global lock acquisition per user (#2039) 2024-05-23 17:09:58 +02:00