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

dhcp: T3316: Migrate dhcp/dhcpv6 server to Kea #1960

Merged
merged 3 commits into from
Dec 9, 2023
Merged

Conversation

sarthurdev
Copy link
Member

Change Summary

This PR refactors the DHCP and DHCPv6 servers and migrates to use the newly available ISC Kea replacing EOL ISC DHCP Server.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes)
  • Migration from an old Vyatta component to vyos-1x, please link to related PR inside obsoleted component
  • Other (please describe):

Related Task(s)

Related PRs:

Component(s) name

dhcp-server, dhcpv6-server

Proposed changes

DHCPv4:

  • All section parameters (global-parameters, subnet-parameters, ...) are now invalid and removed on migration.
  • host-decl-name node removed, always enabled in Kea.
  • ping-check is no longer available (https://kb.isc.org/docs/why-doesnt-kea-support-ping-check).
  • per-subnet failover with enable-failover is not supported, New high availability supports all subnets defined on all peers.
  • Added CA/certificate nodes to failover to support Kea TLS secured failover (untested)

DHCPv6:

  • Subnet PD node changed to use defined prefix-length and delegated-length, range not supported in Kea. Migration script tries to convert existing ranges to a prefix length, where possible.
  • Temporary addresses are removed as no longer supported in Kea (https://kea.readthedocs.io/en/kea-2.2.0/arm/dhcp6-srv.html#dhcpv6-server-limitations)
  • Add shared-network-name <name> interface <ifname> to bind the shared network and subnets to a specific interface

How to test

DEBUG - Running Testcase: /usr/libexec/vyos/tests/smoke/cli/test_service_dhcp-server.py
DEBUG - test_dhcp_exclude_in_range (__main__.TestServiceDHCPServer.test_dhcp_exclude_in_range) ... ok
DEBUG - test_dhcp_exclude_not_in_range (__main__.TestServiceDHCPServer.test_dhcp_exclude_not_in_range) ... ok
DEBUG - test_dhcp_failover (__main__.TestServiceDHCPServer.test_dhcp_failover) ... ok
DEBUG - test_dhcp_multiple_pools (__main__.TestServiceDHCPServer.test_dhcp_multiple_pools) ... ok
DEBUG - test_dhcp_relay_server (__main__.TestServiceDHCPServer.test_dhcp_relay_server) ... ok
DEBUG - test_dhcp_single_pool_options (__main__.TestServiceDHCPServer.test_dhcp_single_pool_options) ... ok
DEBUG - test_dhcp_single_pool_range (__main__.TestServiceDHCPServer.test_dhcp_single_pool_range) ... ok
DEBUG - test_dhcp_single_pool_static_mapping (__main__.TestServiceDHCPServer.test_dhcp_single_pool_static_mapping) ... ok
DEBUG -
DEBUG - ----------------------------------------------------------------------
DEBUG - Ran 8 tests in 46.197s
DEBUG -
DEBUG - OK

...

DEBUG - Running Testcase: /usr/libexec/vyos/tests/smoke/cli/test_service_dhcpv6-server.py
DEBUG - test_global_nameserver (__main__.TestServiceDHCPv6Server.test_global_nameserver) ... ok
DEBUG - test_prefix_delegation (__main__.TestServiceDHCPv6Server.test_prefix_delegation) ... ok
DEBUG - test_single_pool (__main__.TestServiceDHCPv6Server.test_single_pool) ... ok
DEBUG -
DEBUG - ----------------------------------------------------------------------
DEBUG - Ran 3 tests in 15.921s
DEBUG -
DEBUG - OK

Checklist:

  • I have read the CONTRIBUTING document
  • I have linked this PR to one or more Phabricator Task(s)
  • I have run the components SMOKETESTS if applicable
  • My commit headlines contain a valid Task id
  • My change requires a change to the documentation
  • I have updated the documentation accordingly

@vyosbot vyosbot requested review from a team, dmbaturin, zdc, jestabro, sever-sever and c-po and removed request for a team April 17, 2023 13:20
@sarthurdev sarthurdev marked this pull request as ready for review May 8, 2023 21:12
@vyosbot vyosbot requested a review from a team May 8, 2023 21:13
@sarthurdev sarthurdev marked this pull request as draft May 8, 2023 22:00
@sarthurdev
Copy link
Member Author

Drafted to fix op mode

@github-actions
Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions
Copy link

Conflicts have been resolved. A maintainer will review the pull request shortly.

@github-actions
Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions
Copy link

Conflicts have been resolved. A maintainer will review the pull request shortly.

@github-actions
Copy link

github-actions bot commented Aug 9, 2023

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions
Copy link

github-actions bot commented Oct 9, 2023

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions
Copy link

github-actions bot commented Oct 9, 2023

Conflicts have been resolved. A maintainer will review the pull request shortly.

Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

Copy link

Conflicts have been resolved. A maintainer will review the pull request shortly.

Copy link

github-actions bot commented Dec 7, 2023

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@c-po
Copy link
Member

c-po commented Dec 7, 2023

@sarthurdev can you fix the conflicts please?

Copy link

github-actions bot commented Dec 7, 2023

Conflicts have been resolved. A maintainer will review the pull request shortly.

@c-po
Copy link
Member

c-po commented Dec 9, 2023

I think this is a good development candidate for VyOS 1.5

@sever-sever
Copy link
Member

I think this is a good development candidate for VyOS 1.5

@c-po I agree! If it doesn't suit us, we will know about it.

@c-po c-po merged commit 2778f53 into vyos:current Dec 9, 2023
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

Successfully merging this pull request may close these issues.

4 participants