odhcp6c icon indicating copy to clipboard operation
odhcp6c copied to clipboard

This repository is a mirror of https://git.openwrt.org/?p=project/odhcp6c.git. It is for reference only and is not active for checks-ins or reporting issues; issues should be reported at: https://bugs...

odhcp6c - Embedded DHCPv6 Client

** Abstract **

odhcp6c is a minimal DHCPv6 and RA-client for use in embedded Linux systems especially routers. It compiles to only about 35 KB (-Os -s).

** Features **

  1. IPv6 bootstrap from different environments with autodetection a) RA only b) RA + stateless DHCPv6 c) RA + stateful DHCPv6 (either IA_NA or IA_PD or both)

  2. Handling of non-temporary addresses (IA_NA) a) handling of valid and preferred lifetimes b) automatic fallback to stateless or PD-only mode

  3. Support for DHCPv6 extension a) Reconfigure-Messages b) Prefix Delegation (including handling of valid and preferred lifetimes) c) Prefix Exclusion d) DNS Configuration Options e) NTP Options f) SIP Options g) Information-Refresh Options h) Configurable SOL_MAX_RT i) DS-Lite AFTR-Name Option j) Softwire address and port mapped clients (MAP, LW4over6) j) CER-ID (experimental) k) Server unicast Option

  4. Support for requesting and parsing Router Advertisements a) parsing of prefixes, routes, MTU and RDNSS options

** Compiling **

odhcp6c uses cmake:

  • To prepare a Makefile use: "cmake ."
  • To build / install use: "make" / "make install" afterwards.
  • To build DEB or RPM packages use: "make package" afterwards.

** State Script **

The state script is called whenever the DHCPv6 state changes. The script is called with the following parameters:

States:

  • started The DHCPv6 client has been started
  • bound A suitable server was found and addresses or prefixes acquired
  • informed A stateless information request returned updated information
  • updated Updated information was received from the DHCPv6 server
  • ra-updated Updated information was received from via Router Advertisement
  • rebound The DHCPv6 client switched to another server
  • unbound The DHCPv6 client lost all DHCPv6 servers and will restart
  • stopped The DHCPv6 client has been stopped

Environment:

  • RDNSS A space-separated list of recursive DNS servers
  • DOMAINS A space-separated list of DNS search domains
  • SNTP_IP A space-separated list of SNTP server IP addresses
  • SNTP_FQDN A space-separated list of SNTP server FQDNs
  • SIP_IP A space-separated list of SIP servers
  • SIP_DOMAIN A space-separated list of SIP domains
  • OPTION_ Custom option received as base-16
  • PREFIXES A space-separated list of prefixes currently assigned Format: /,preferred,valid[,excluded=/][,class=<prefix class #>]
  • ADDRESSES A space-separated list of addresses currently assigned Format:
    /,preferred,valid
  • RA_ADDRESSES A space-separated list of addresses from RA-prefixes Format:
    /,preferred,valid
  • RA_ROUTES A space-separated list of routes from the RA Format:
    /,gateway,valid,metric
  • RA_DNS A space-separated list of recursive DNS servers from the RA
  • RA_DOMAINS A space-separated list of DNS search domains from the RA
  • RA_HOPLIMIT Highest hop-limit received in RAs
  • RA_MTU MTU-value received in RA
  • RA_REACHABLE ND Reachability time
  • RA_RETRANSMIT ND Retransmit time
  • AFTR The DS-Lite AFTR domain name
  • MAPE / MAPT / LW4O6 Softwire rules for MAPE, MAPT and LW4O6