ISC DHCP ISC Kea

Total Page:16

File Type:pdf, Size:1020Kb

ISC DHCP ISC Kea Kea and DHCPv6 ISC’s take on DHCP Tomek Mrugalski Sep 2019, APNIC’48 © 2019 - Internet Systems Consortium !1 About presenter • MSc (2003), PhD (2010), both about DHCPv6 • 7 years at Intel • IETF (since 2009) • DHC WG co-chair at IETF • 11 RFCs published, the latest is RFC8415 • ISC (since 2011) • Engineer started Kea project • Currently Director of DHCP engineering • Managing ISC DHCP, Kea and Stork projects • Several RIPE, UKNOF, PLNOG presentations • Open source enthusiast © 2019 - Internet Systems Consortium !2 What is ISC? History • Silicon Valley • founded in 1994 Philosophy • Non-profit • Open source • But our engineers need to eat… People • 30+ world wide • 4 continents • Poland, Europe (RIPE NCC) © 2018 ISC What we do? ▪ We do DNS – BIND – F root servers, 200+ instances ▪ We do IETF standards (86 RFCs so far) ▪ We do DHCP – ISC DHCP – Kea © 2018 ISC If you never heard about Kea… ▪ DHCPv4 and DHCPv6 server ▪ Performance (1000s leases/sec) ▪ Scalable (millions of devices) ▪ Databases (CSV, MySQL, PostgreSQL, Cassandra) ▪ Hooks (C++ libraries) ▪ REST management API ▪ Linux, BSDs, MacOS, … ▪ Open source (MPL2) © 2018 ISC Let’s compare! ISC DHCP ISC Kea Started Prehistory (1995) Recent (2011) Code Not adding anything big Active development with tons of new features Code repository gitlab, github, tarball github, gitlab, tarball, packages Testing ~30 unit-tests 6000+ unit-tests Memory leak tests (valgrind) 700+ system tests Fuzz testing Docs Man pages User’s Guide (500+ pages) Developer’s Guide Logs Fixed log message Every possible log entry is documented and described IPv6 readiness IPv4 originally, IPv6 added later IPv4 optional © 2019 - Internet Systems Consortium !6 Kea vs ISC DHCP ISC DHCP ISC Kea Performance OK (with ramdisk tricks) Great (many 1000s leases/sec) Management OMAPI (custom C interface) JSON over REST API/http, JSON over Unix socket HA DHCPv4 failover HA for DHCPv4 and DHCPv6, multiple options for DB clustering Extensibility Shell scripts (out only), JSON everywhere, configuration language Hooks (C++), stable API Configuration Custom complex syntax (almost JSON with optional DB storage for programming language) most elements (more to come) Leases information Custom CSV, MySQL, PgSQL, Cassandra Hosts information Custom config JSON, MySQL, PgSQL, Cassandra Configuration Custom config JSON, or MySQL (1.6) To translate an existing ISC DHCP configuration See Kea Migration Assistant presentation at isc.org/presentations © 2019 - Internet Systems Consortium !7 Client classification and flexible identifier How to identify hosts: Open source • Identifiers: MAC, duid, circuit-id, client-id • Client classification Premium identifier (flex-id) • Almost anything could be used (35 different expressions) • Options (client, relay, vendor) • Fixed fields • Concat, substring • Meta-data (interface name, src/dst IP, …) concat(pkt4.mac, relay4[2].hex) Tomek Mrugalski, 2018-03-05 The backend concept MySQL DHCPv4, DHCPv6 server • Leases (addresses, prefixes) Lease backend • Host reservations (per host details) Hosts backend • Options • Pools Changing • Subnets Configuration backend • Shared networks v1.6.0 Rarely Often Often Rarely • Option definitions • Global parameters © 2019 - Internet Systems Consortium !9 Server tags Subnet Subnet Subnet Subnet Subnet id: 100, id: 101, id: 102, id: 103, id: 104, server-tags: server-tags: server-tags: server-tags: server-tags: [ ] [“all”] [“bkk”] [“bkk, “cnx”] [“cnx”] bkk bkk Kea servers retrieve cnx IPv6 subnets from CB Different servers ‘subscribe’ to different subnets © 2019 - Internet Systems Consortium !10 CB applications • Sharing configuration between HA partners • Frequently changing configuration (options, pools, subnets, shared networks) • Automated configuration deployment • Large configuration (1000+ subnets) • Large scale deployments (many DHCP servers) • Scaling up or down (add new or delete not needed VM servers) © 2019 - Internet Systems Consortium !11 Kea API JSON over unix socket JSON over unix socket kea-dhcp4 JSON over http(s) JSON over unix socket JSON over unix socket kea-shell JSON over unix socket socat kea-ctrl-agent kea-dhcp6 JSON over unix socket { “command”: “list-commands”, “service”: [ “dhcp6” ] } Command kea-dhcp-ddns { • JSON in, JSON out "arguments": [ "build-report", Over 140 commands supported "config-get", • . ], • New commands every release "result": 0 Some provided by hooks (optional libs) }© 2019 - Internet Systems Consortium Response • !12 API :: Basics 1. Send list-commands command: # kea-shell --host ::1 --port 8080 --service dhcp6 list-commands ^D 2. Get list of currently supported commands in return: { { “command”: “list-commands”, "arguments": [ "build-report", “service”: [ “dhcp6” ] "config-get", } "config-set", "config-test", "remote-global-parameter4-del", "remote-global-parameter4-get", "remote-global-parameter4-get-all”, . “remote-subnet6-list”, "server-tag-get", "shutdown", “statistic-{get,remove,reset}“, “statistic-{get,remove,reset}-all”, "version-get" ], "result": 0 © 2019 - Internet Systems Consortium } !13 API :: List IPv6 subnets • Send list-commands command: # echo ' "server-tags": [ "all" ] ' | \ kea-shell --host ::1 --port 8000 --service dhcp6 remote-subnet6-list • Get list of currently supported commands in return: [ { "arguments": { "count": 0, "subnets": [ ] }, "result": 3, "text": "0 IPv6 subnet(s) found." } ] © 2019 - Internet Systems Consortium !14 API :: Add new IPv6 subnet • Send remote—subnet6-set command: echo ' "subnets": [ { "id": 100, "subnet": "2001:db8:1::/48", "shared-network-name": "", "pools": [ { "pool": "2001:db8:1::/64" } ] } ], "server-tags": [ "all" ] ' | kea-shell --host ::1 --port 8000 --service dhcp6 remote-subnet6-set • Get list of currently supported commands in return: { { “command”: “remote-subnet6-set”, "arguments": { “arguments”: { "subnets": [ "subnets": [ { { "id": 100, "id": 100, "subnet": “2001:db8:1::/48", "subnet": "2001:db8:1::/64" "shared-network-name": “”, } “pools”: [ { ] “pool”: “2001:db8:1::/64” }, } ] "result": 0, } ], "text": "IPv6 subnet successfully set." "server-tags": [ "all" ] } } © 2019 - Internet Systems Consortium !15 Getting in touch • Software is open source, free • There are some premium (paid) add-ons • ISC provides support with various levels • gitlab, github • kea-users, kea-dev mailing lists © 2019 - Internet Systems Consortium https://gitlab.isc.org/isc-projects/kea !16 DHCPv6 quirks © 2019 - Internet Systems Consortium !17 No routing configuration Not possible to configure default route using DHCPv6 • Why? • Long argument in IETF • RA exists to do that (don’t duplicate mechanisms) • Fate sharing • Multi-homing © 2019 - Internet Systems Consortium !18 Relayed DHCPv6 traffic Relay-Forward Server Client Solicit Relay Agent Solicit https://www.cloudshark.org/captures/ed586947ac56 (single relay) https://www.cloudshark.org/captures/a93239e296bc (two relays) • Up to 8 relays • Usually 1 • CMTS • Each relay adds extra encapsulation layer © 2019 - Internet Systems Consortium !19 MAC vs DUID • DUID - unique identifier, one of 4 types: • LLT (MAC + time) • EN (Enterprise-id) • LL (MAC) • UUID • Solved late 1990s problem - unreliable NICs • Brought a lot of new ones • Don’t know device’s DUID until its first boot • Not printed on the box • When you clone VM, you may get the same DUID • Dual boot device (win/linux or PXE) has different DUIDs • Kea has a solution to that problem: • RFC6939 (client-link-layer address option) • Extract MAC address from 5 different sources, configurable • See https://kea.readthedocs.io/en/v1_6_0/arm/dhcp6- srv.html#mac-hardware-addresses-in-dhcpv6 for details © 2019 - Internet Systems Consortium !20 IAs, TAs, PDs • Three different containers: • IA_NA - non-temporary (“normal”) addresses • IA_TA - temporary addresses, obsolete • IA_PD - Prefix delegation • Each container can have multiple addresses/prefixes • e.g. old address with 0 lifetimes, new address • There may be multiple containers per message • Frequent to request address and prefix in one go • May be multiple containers of the same type (“give me 3 prefixes”) © 2019 - Internet Systems Consortium !21 Questions? isc.org/kea kea.readthedocs.io gitlab.isc.org/isc-projects/kea © 2019 - Internet Systems Consortium !22.
Recommended publications
  • KEA DHCP Server"
    Kea Webinar Installation and Configuration Carsten Strotmann 30th September 2020 https://www.isc.org All content © 2020 Internet Systems Consortium, Inc. 1 Welcome •Welcome to part two of our webinar series "the KEA DHCP Server" All content © 2020 Internet Systems Consortium, Inc. 2 About this Webinar •What is Kea DHCP •Installation, Platform and Requirements •Kea Hooks •Kea basic configuration •Testing the Kea DHCP server function •Operating the Kea server •Kea DHCPv6 All content © 2020 Internet Systems Consortium, Inc. 3 What is Kea DHCP? All content © 2020 Internet Systems Consortium, Inc. 4 Kea DHCP (1/2) •a modern DHCPv4 and DHCPv6 Server •Open Source (MPL License) •JSON/REST API •modular design •high performance ( > 1000 leases/seconds with SQL database backend) •failover via SQL DB or High-Availability-Hook •Host reservation support All content © 2020 Internet Systems Consortium, Inc. 5 Kea DHCP (2/2) •support for DHCPv6 prefix delegation •dynamic reconfiguration •dynamic DNS updates •SQL database backend (MySQL / PostgreSQL / Cassandra …) •Statistics module •PXE Boot support All content © 2020 Internet Systems Consortium, Inc. 6 Platforms and Requirements All content © 2020 Internet Systems Consortium, Inc. 7 Kea Platforms (1/2) •Kea is officially supported on •CentOS Linux •Fedora Linux •Ubuntu Linux •Debian Linux •FreeBSD Unix All content © 2020 Internet Systems Consortium, Inc. 8 Kea Platforms (2/2) •Kea is also know to work on •MacOS X •Alpine Linux •OpenBSD Unix •Kea currently does not work on Windows operating systems All content © 2020 Internet Systems Consortium, Inc. 9 Kea DHCP requirements •Kea requires to run •a cryptographic library: Botan or OpenSSL •log4cplus C++ logging library •the Boost C++ system library •optional components •a database such as MySQL, PostgreSQL or Cassandra (CQL) •FreeRadius-client library for Radius support •Sysrepo for NETCONF support •see the Kea DHCP documentation for detailed information on software dependencies All content © 2020 Internet Systems Consortium, Inc.
    [Show full text]
  • Kea – Modern DHCP Server Open Source and Sustainability
    Kea – modern DHCP server! Open Source and Sustainability" Tomek Mrugalski, ISC [email protected] Tomek Mrugalski, 2017-05-11 What is Kea? And why you may want to use it Tomek Mrugalski, 2017-05-11 2 If you never heard about Kea… • Modern DHCPv4 and DHCPv6 server (1.0 in Dec 2015) • Performance (1000s leases/sec) • Scalable (millions of devices) • No restarts after config changes • Databases (CSV, MySQL, PostgreSQL, Cassandra) • Hooks (3rd party libraries) • REST management API • Linux, BSDs, MacOS, … • Open source (MPL2) • 1.2.0 just released (28 April 2017) Tomek Mrugalski, 2017-05-11 3 Let’s compare! ISC DHCP ISC Kea Started Prehistory (1995) Recent (2011) Code Not adding anything big Active development with tons of new features Code repository Internal, tarball published github Bug database Internal, mail external Public trac Testing ~30 unit-tests 4000+ unit-tests Memory leak tests (valgrind) 700+ system tests Fuzz testing Docs Man pages User’s Guide (100+ pages) Developer’s Guide Logs Fixed log message Every possible log entry is documented and described IPv6 readiness IPv4 originally, IPv6 added later IPv4 optional Tomek Mrugalski, 2017-05-11 4 Why migrate from ISC DHCP? ISC DHCP ISC Kea Performance OK (with ramdisk tricks) Great (many 1000s leases/sec) Management OMAPI (custom C interface) JSON over REST API/http, JSON over Unix socket Extensibility Shell scripts (out only), JSON everywhere, configuration language Hooks (C++), stable API Configuration Custom complex syntax JSON with optional DB storage (almost programming for some elements
    [Show full text]
  • Options Configuration Host Reservations Kea 1.0 Quick Start
    Interfaces Options configuration You can specify an interface (all traffic including Options can be configured either at the global broadcast), a specific address (unicast traffic) or level (will apply to clients in all subnets) or on use “*” to denote all traffic on all interfaces. subnet-level (will be sent only to clients in that subnet). Kea supports standard, custom, vendor specific and nested options. Subnets Change the subnet definition to match your network by adding and removing subnets. Host Reservations Directly connected subnets require the "interface" Kea 1.0 supports host reservations based on object, as shown in the example. MAC address (v4) or DUID (v6), with IPv4 address and hostname reservations. Kea 1.1 will also support reservations for IPv6 addresses, IPv6 Lease Database prefixes and host specific options. If you are using Kea can store leases in memfile (a flat CSV file) or Host Reservation, you may want to download the SQL databases (MySQL or PostgreSQL). The latest source. example configuration uses flat file lease storage If you have few reservations, defining them in the (memfile), which is the highest performance configuration file is convenient. Kea can also option. store host reservations in MySQL, with Postgres Kea 1.0 support coming soon. Quick Start Guide In order to configure MySql or PosgreSQL use "hosts-database": { Kea is a modern open-source DHCP server for the following guide: "type": "mysql", Linux and Unix variants. This guide will help “host”: “mysql- you get a server up and running quickly. To configure MySQL: server.example.com”, "name": "keadatabase", "lease-database": { "user": “kea”, Kea is licensed under the Mozilla Public License "type": "mysql", “password”: “secret1” version 2 (MPL 2.0).
    [Show full text]
  • Kea Administrator Reference Manual I
    Kea Administrator Reference Manual i Kea Administrator Reference Manual Copyright © 2010-2016 Internet Systems Consortium, Inc. Kea Administrator Reference Manual ii Kea Administrator Reference Manual iii Contents 1 Introduction 1 1.1 Supported Platforms . .1 1.2 Required Software at Run-time . .1 1.3 Kea Software . .2 2 Quick start 3 2.1 Quick start guide for DHCPv4 and DHCPv6 services . .3 2.2 Running Kea servers directly . .4 3 Installation 5 3.1 Packages . .5 3.2 Install Hierarchy . .5 3.3 Building Requirements . .5 3.4 Installation from Source . .6 3.4.1 Download Tar File . .6 3.4.2 Retrieve from Git . .6 3.4.3 Configure before the build . .7 3.4.4 Build . .8 3.4.5 Install . .8 3.5 Selecting the Configuration Backend . .8 3.6 DHCP Database Installation and Configuration . .8 3.6.1 Building with MySQL Support . .9 3.6.2 Building with PostgreSQL support . .9 3.6.3 Building with CQL (Cassandra) support . .9 4 Kea Database Administration 10 4.1 Databases and Database Version Numbers . 10 4.2 The kea-admin Tool . 10 4.3 Supported Databases . 11 4.3.1 memfile . 11 4.3.1.1 Upgrading Memfile Lease Files from an Earlier Version of Kea . 11 4.3.2 MySQL . 11 Kea Administrator4.3.2.1 Reference First Manual Time Creation of Kea Database . 12iv 4.3.2.2 Upgrading a MySQL Database from an Earlier Version of Kea . 12 4.3.3 PostgreSQL . 13 4.3.3.1 Manually Create the PostgreSQL Database and the Kea User .
    [Show full text]
  • Kea Administrator Reference Manual I
    Kea Administrator Reference Manual i Kea Administrator Reference Manual Kea Administrator Reference Manual ii Copyright © 2010-2014 Internet Systems Consortium, Inc. Kea Administrator Reference Manual iii Contents 1 Introduction 1 1.1 Supported Platforms . .1 1.2 Required Software at Run-time . .1 1.3 Kea Software . .2 2 Quick start 3 2.1 Quick start guide for DHCPv4 and DHCPv6 services . .3 2.2 Running Kea servers directly . .4 3 Installation 5 3.1 Packages . .5 3.2 Install Hierarchy . .5 3.3 Building Requirements . .5 3.4 Installation from Source . .6 3.4.1 Download Tar File . .6 3.4.2 Retrieve from Git . .6 3.4.3 Configure before the build . .7 3.4.4 Build . .7 3.4.5 Install . .7 3.5 Selecting the Configuration Backend . .8 3.6 DHCP Database Installation and Configuration . .8 3.6.1 Building with MySQL Support . .8 3.6.2 Create the MySQL Database and the Kea User . .9 3.6.3 Building with PostgreSQL support . .9 3.6.4 Create PostgreSQL Database and Kea User . .9 4 Kea configuration 11 4.1 BUNDY configuration backend . 11 4.2 JSON configuration backend . 11 4.2.1 JSON syntax . 11 4.2.2 Simplified Notation . 12 Kea Administrator Reference Manual iv 5 Managing Kea with keactrl 13 5.1 Overview . 13 5.2 Command Line Options . 13 5.3 The keactrl Configuration File . 13 5.4 Commands . 14 5.5 Overriding the Server Selection . 15 6 The DHCPv4 Server 16 6.1 Starting and Stopping the DHCPv4 Server . 16 6.2 DHCPv4 Server Configuration .
    [Show full text]
  • Carsten Strotmann 2Nd December 2020
    Kea Webinar Migrating to Kea from ISC DHCP Carsten Strotmann 2nd December 2020 https://www.isc.org All content © 2020 Internet Systems Consortium, Inc. 1 Welcome •Welcome to part six of our webinar series "the KEA DHCP Server" All content © 2020 Internet Systems Consortium, Inc. 2 About this Webinar •Software Migrations •Kea Migration Assistant (KeaMA) •Differences between Kea and ISC DHCP •Manual Migration •ISC DHCP to Kea DHCP Migration Plan All content © 2020 Internet Systems Consortium, Inc. 3 Software Migrations All content © 2020 Internet Systems Consortium, Inc. 4 About migrations •Migrations from old to new software products are required from time to time •Not all software can be upgraded to new functionality •Sometimes a clean start is needed to update the underlying implementation •Such new implementations often cannot provide 100% compatibility •Examples: •BIND 8 ➜ BIND 9 •Python2 ➜ Python3 •ISC DHCP ➜ Kea DHCP All content © 2020 Internet Systems Consortium, Inc. 5 Migration strategies •Possible migration strategies •Upgrade of the existing infrastructure •Re-design of the existing infrastructure All content © 2020 Internet Systems Consortium, Inc. 6 Re-Design of an existing infrastructure •A re-design can be used to remove shortcomings of the old design •A migration is a good time to review the current design •A new design can make use of modern features that were not available at the time of the original design •Maybe it is time to introduce IPv6? All content © 2020 Internet Systems Consortium, Inc. 7 Re-Design of an existing infrastructure •Implement new features •Automatic configuration management •Monitoring •Better documentation All content © 2020 Internet Systems Consortium, Inc.
    [Show full text]
  • Kea – Modern DHCP Engine
    Kea – Modern DHCP Engine Open Source WG RIPE68, Warsaw, Poland 14 May 2014 Tomek Mrugalski <[email protected]> Who is Tomek? l M.Sc., Ph.D from Gdansk University of Technology l Primary author of Dibbler l Portable DHCPv6 implementation (srv, cli, relay) l Supports Win 2k-Win8, Linux, BSD, Solaris l Confirmed use in 34 countries l 7 years at Intel (Network Quality Labs, chipsets group) l 3 years at ISC l Lead Developer of Kea (formerly BIND10 DHCP) l Occasional contributor to ISC-DHCP l Active IETF participant since 2009 l DHC WG co-chair l 4 RFCs, 18+ drafts (all DHCP-related) ISC DHCP • Open-Source • Managed open source model (closed repository, semi-closed bug system) • First version released in 1997 • Default DHCP software in many distributions • Server/relay/client for IPv4 & IPv6 • Feature-rich Why new DHCP implementation? • Existing code is 18 years old • Networks have changed • Hardware has changed • Use cases have changed • Drawbacks with ISC DHCP • Complex code, difficult to extend • Documentation lacking • Performance not always sufficient • Partial dynamic configuration (OMAPI) Kea and BIND10 history • ISC has been developing BIND10 since late 2009 • DHCP components started in mid-2011 • ISC stopped BIND10 development in April 2014 • => Bundy (non-ISC, http://bundy-dns.de) • => Kea (ISC, http://kea.isc.org) Kea :: Overview DHCPv4 DHCPv6 DNS perfdhcp Server Server Updates libdhcp++ • general purpose DHCP library • IPv4/IPv6 packet parsing/assembly • IPv4/IPv6 options parsing/assembly • interface detection (Linux, partial BSD/Mac
    [Show full text]
  • Getting Started with Kea
    Getting Started with Kea Webinar: 08 June 2016 © 2015 ISC Logistics § Webinar is scheduled for 1 hour § This session will be recorded and posted at http://www.isc.org/webinars § Participants are muted to improve audio quality for everyone. § We want questions! Please enter into the WebEx Q&A tab – The presenter may defer some questions until the end of the presentation © 2015 ISC Presenters Eddy Winstead ISC Senior Sales Engineer © 2015 ISC Why Kea? § ISC DHCP is now 21 years old § Stable, effective, but… – Slow by modern standards – Flat file lease storage – Restarts likely required for config mods – Failover only in peer arrangements – Oh, those man pages! © 2015 ISC Kea § DHCP server § C++ § modern alternative to ISC DHCP § standards-compliant § open-source § DHCPv4 & DHCPv6 § easily extensible (via Hooks) © 2015 ISC Kea § Better performance § Ability to store lease information in a database § No restart required unless physical interfaces change § Well-documented © 2015 ISC Kea Hooks § Dynamically Loadable Libraries § Written in C++ § Functions given control at points in packet processing § Can access all parts of Kea © 2015 ISC Hooks :: Extending the Server Kea Process User Library 1 User Library 2 Kea server Custom library1 Custom library2 Step A F1() Step B Step C G1() Step D DHCP packet processing packet DHCP Step E F2() G2() 8 © 2015 ISC For more about kea hooks 29 June 2016 Webinar: Extending Kea with Hooks with Marcin Siodelski, Kea Software Engineer https://www.isc.org/events/webinar-extending-kea-with- hooks/ © 2015 ISC stateless / anycast DHCP!? § Kea can store lease info in a database (MySQL, PostGreSQL, more to come) § Multiple Kea servers can speak to the same DB § DHCP Failover may no longer be painful!!! Instead of failover pairs, we can have many servers.
    [Show full text]
  • Kea Administrator Reference Manual I
    Kea Administrator Reference Manual i Kea Administrator Reference Manual Kea Administrator Reference Manual ii Copyright © 2010-2015 Internet Systems Consortium, Inc. Kea Administrator Reference Manual iii Contents 1 Introduction 1 1.1 Supported Platforms . .1 1.2 Required Software at Run-time . .1 1.3 Kea Software . .2 2 Quick start 3 2.1 Quick start guide for DHCPv4 and DHCPv6 services . .3 2.2 Running Kea servers directly . .4 3 Installation 5 3.1 Packages . .5 3.2 Install Hierarchy . .5 3.3 Building Requirements . .5 3.4 Installation from Source . .6 3.4.1 Download Tar File . .6 3.4.2 Retrieve from Git . .6 3.4.3 Configure before the build . .7 3.4.4 Build . .7 3.4.5 Install . .8 3.5 Selecting the Configuration Backend . .8 3.6 DHCP Database Installation and Configuration . .8 3.6.1 Building with MySQL Support . .8 3.6.2 Building with PostgreSQL support . .9 4 Kea Database Administration 10 4.1 Databases and Database Version Numbers . 10 4.2 The kea-admin Tool . 10 4.3 Supported Databases . 11 4.3.1 memfile . 11 4.3.2 MySQL . 11 4.3.2.1 First Time Creation of Kea Database . 11 Kea Administrator Reference Manual iv 4.3.2.2 Upgrading a MySQL Database from an Earlier Version of Kea . 12 4.3.3 PostgreSQL . 12 4.3.3.1 Manually Create the PostgreSQL Database and the Kea User . 12 4.3.3.2 Initialize the PostgreSQL Database Using kea-admin . 14 4.3.3.3 Upgrading a PostgreSQL Database from an Earlier Version of Kea .
    [Show full text]
  • Kea Administrator Reference Manual I
    Kea Administrator Reference Manual i Kea Administrator Reference Manual Kea Administrator Reference Manual ii Copyright © 2010-2018 Internet Systems Consortium, Inc. ("ISC") Kea Administrator Reference Manual iii Contents 1 Introduction 1 1.1 Supported Platforms . .1 1.2 Required Software at Run-time . .1 1.3 Kea Software . .2 2 Quick Start 3 2.1 Quick Start Guide for DHCPv4 and DHCPv6 Services . .3 2.2 Running the Kea Servers Directly . .4 3 Installation 5 3.1 Packages . .5 3.2 Installation Hierarchy . .5 3.3 Building Requirements . .5 3.4 Installation from Source . .6 3.4.1 Download Tar File . .6 3.4.2 Retrieve from Git . .6 3.4.3 Configure Before the Build . .7 3.4.4 Build . .8 3.4.5 Install . .8 3.5 Selecting the Configuration Backend . .9 3.6 DHCP Database Installation and Configuration . .9 3.6.1 Building with MySQL Support . .9 3.6.2 Building with PostgreSQL support . .9 3.6.3 Building with CQL (Cassandra) support . 10 4 Kea Database Administration 11 4.1 Databases and Database Version Numbers . 11 4.2 The kea-admin Tool . 11 4.3 Supported Databases . 12 4.3.1 memfile . 12 4.3.1.1 Upgrading Memfile Lease Files from an Earlier Version of Kea . 12 Kea Administrator Reference Manual iv 4.3.2 MySQL . 12 4.3.2.1 First Time Creation of the MySQL Database . 13 4.3.2.2 Upgrading a MySQL Database from an Earlier Version of Kea . 13 4.3.3 PostgreSQL . 14 4.3.3.1 First Time Creation of the PostgreSQL Database .
    [Show full text]
  • Kea – Modern DHCP Server Open Source and Sustainability
    Kea – modern DHCP server! Open Source and Sustainability" Tomek Mrugalski [email protected] Tomek Mrugalski, 2017-05-11 What is Kea? And why you may want to use it Tomek Mrugalski, 2017-05-11 2 If you never heard about Kea… • Modern DHCPv4 and DHCPv6 server (1.0 in Dec 2015) • Performance (1000s leases/sec) • Scalable (millions of devices) • No restarts after config changes • Databases (CSV, MySQL, PostgreSQL, Cassandra) • Hooks (3rd party libraries) • REST management API • Linux, BSDs, MacOS, … • Open source (MPL2) • 1.2.0 just released (28 April 2017) Tomek Mrugalski, 2017-05-11 3 Let’s compare! ISC DHCP ISC Kea Started prehistory (1995) Recent (2011) Code Not adding anything big Active development with tons of new features Code repository Internal, tarball published github Bug database Internal, mail external public trac Testing ~30 unit-tests 4000+ unit-tests Memory leak tests (valgrind) 700+ system tests Fuzz testing Docs Man pages User’s Guide (100+ pages) Developer’s Guide Logs Fixed log message Every possible log entry is documented and described IPv6 readiness IPv4 originally, IPv6 added later IPv4 optional Tomek Mrugalski, 2017-05-11 4 Why migrate from ISC DHCP? ISC DHCP ISC Kea Performance Ok (with ramdisk tricks) Great (many 1000s leases/sec) Management OMAPI (custom C interface) JSON over REST API/http, JSON over Unix socket Extensibility Shell scripts (out only), JSON everywhere, configuration language Hooks (C++), stable API Configuration Custom complex syntax JSON with optional DB storage (almost programming for some elements
    [Show full text]
  • Kea DHCP for Ipv4 and Ipv6
    Intro to Kea DHCP For IPv4 and IPv6 Tomek Mrugalski Mar 2020, APNIC Webinar © 2020 - Internet Systems Consortium 1 About presenter • MSc (2003), PhD (2010), both about DHCPv6 • 7 years at Intel • IETF (since 2009) • DHC WG co-chair at IETF • 11 RFCs published • ISC (since 2011) • As an engineer started the Kea project • Currently Director of DHCP engineering • Managing ISC DHCP, Kea and Stork projects • Several RIPE, UKNOF, PLNOG presentations • Open source enthusiast © 2020 - Internet Systems Consortium 2 A bit of history :: ISC DHCP • In development since 1995 • A very different era after 25 years • Limited documentation, confusing code, hard to maintain and extend • Large parts of the code really should be rewritten • Decided to rewrite everything © 2020 - Internet Systems Consortium 3 ISC DHCP Future • There’s no EOL date defined • Currently in maintenance mode • 4.4.2 released in Jan 2020 • Futures releases not planned, but will release when needed (serious security problems, critical bugfixes for customers) • No new development • On GitHub now: https://github.com/isc-projects/dhcp/ • Will be handed over to the community on github © 2020 - Internet Systems Consortium 4 If you never heard about Kea… • Modern DHCPv4 and DHCPv6 server (1.6 in Aug 2019) • Features: High Availability, DDNS, NETCONF, RADIUS • Database support (CSV, MySQL, PostgreSQL, Cassandra) • Flexible (leases, host reservations, configuration) • Hooks (optional libraries, including many from ISC) • REST API (140+ commands and counting) • Linux, BSDs, MacOS, … • Open
    [Show full text]