{"id":13547131,"url":"https://github.com/openwrt/odhcpd","last_synced_at":"2025-04-02T19:32:30.370Z","repository":{"id":11177545,"uuid":"13554128","full_name":"openwrt/odhcpd","owner":"openwrt","description":"This repository is a mirror of https://git.openwrt.org/?p=project/odhcpd.git. Pull requests will be accepted which will be merged in odhcpd.git","archived":false,"fork":false,"pushed_at":"2025-01-19T17:35:36.000Z","size":895,"stargazers_count":167,"open_issues_count":80,"forks_count":104,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-01-19T18:35:32.616Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openwrt.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-10-14T06:36:33.000Z","updated_at":"2025-01-19T17:35:38.000Z","dependencies_parsed_at":"2023-02-10T06:30:49.873Z","dependency_job_id":"3c44deea-46f4-46d6-923e-9d11567077a8","html_url":"https://github.com/openwrt/odhcpd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openwrt%2Fodhcpd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openwrt%2Fodhcpd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openwrt%2Fodhcpd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openwrt%2Fodhcpd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openwrt","download_url":"https://codeload.github.com/openwrt/odhcpd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246880234,"owners_count":20848828,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T12:00:51.368Z","updated_at":"2025-04-02T19:32:30.357Z","avatar_url":"https://github.com/openwrt.png","language":"C","funding_links":[],"categories":["C","others"],"sub_categories":[],"readme":"odhcpd - Embedded DHCP/DHCPv6/RA Server \u0026 Relay\n\n** Abstract **\n\nodhcpd is a daemon for serving and relaying IP management protocols to\nconfigure clients and downstream routers. It tries to follow the RFC 6204\nrequirements for IPv6 home routers.\n\nodhcpd provides server services for DHCP, RA, stateless and stateful DHCPv6,\nprefix delegation and can be used to relay RA, DHCPv6 and NDP between routed\n(non-bridged) interfaces in case no delegated prefixes are available.\n\n\n** Features **\n\n1. Router Discovery support (solicitations and advertisements) with 2 modes\n   server:\tRD server for slave interfaces\n   a) automatic detection of prefixes, delegated prefix and default routes, MTU\n   b) automatic reannouncement when changes to prefixes or routes occur\n\n   relay:\tRD relay between master and slave interfaces\n   a) support for rewriting announced DNS-server addresses in relay mode\n   \n2. DHCPv6-support with 2 modes of operation\n   server: stateless, stateful and PD-server mode\n   a) stateless and stateful address assignment\n   b) prefix delegation support\n   c) dynamic reconfiguration in case prefixes change\n   d) hostname detection and hosts-file creation\n\n   relay: \tmostly standards-compliant DHCPv6-relay\n   a) support for rewriting announced DNS-server addresses\n   \n3. DHCPv4-support\n   server: stateless and stateful mode\n\n4. Proxy for Neighbor Discovery messages (solicitations and advertisements)\n   a) support for auto-learning routes to the local routing table\n   b) support for marking interfaces \"external\" not proxying NDP for them\n      and only serving NDP for DAD and for traffic to the router itself\n      [Warning: you should provide additional firewall rules for security]\n\n5. IPv6 PxE Support.\n\n** Compiling **\n\nodhcpd uses cmake:\n* To prepare a Makefile use:  \"cmake .\" \n* To build / install use: \"make\" / \"make install\" afterwards.\n* To build DEB or RPM packages use: \"make package\" afterwards.\n\n\n** Configuration **\n\nodhcpd uses a UCI configuration file in /etc/config/dhcp for configuration\nand may also receive information from ubus\n\n\nSection of type odhcpd\n\nOption\t\tType\tDefault\t\t\tDescription\nlegacy\t\tbool\t0\t\t\tEnable DHCPv4 if start but\n\t\t\t\t\t\tno dhcpv4 option set\nmaindhcp\tbool\t0\t\t\tUse odhcpd as the main DHCPv4\n\t\t\t\t\t\tservice\nleasefile\tstring\t\t\t\tDHCP/v6 lease/hostfile\nleasetrigger\tstring\t\t\t\tLease trigger script\nhostsfile\tstring\t\t\t\tDHCP/v6 hostfile\nloglevel\tinteger 6\t\t\tSyslog level priority (0-7)\n\n\nSections of type dhcp (configure DHCP / DHCPv6 / RA / NDP service)\n\nOption\t\t\tType\tDefault\t\t\tDescription\ninterface\t\tstring\t\u003cname of UCI section\u003e\tlogical OpenWrt interface\nifname\t\t\tstring\t\u003cresolved from logical\u003e\tphysical network interface\nnetworkid\t\tstring\tsame as ifname\t\tcompat. alias for ifname\nmaster\t\t\tbool\t0\t\t\tis a master interface\n\t\t\t\t\t\t\tfor relaying\n\nra\t\t\tstring\tdisabled\t\tRouter Advert service\n\t\t\t[disabled|server|relay|hybrid]\ndhcpv6\t\t\tstring\tdisabled\t\tDHCPv6 service\n\t\t\t[disabled|server|relay|hybrid]\ndhcpv4\t\t\tstring\tdisabled\t\tDHCPv4 service\n\t\t\t[disabled|server]\nndp\t\t\tstring\tdisabled\t\tNeighbor Discovery Proxy\n\t\t\t[disabled|relay|hybrid]\n\ndynamicdhcp\t\tbool\t1\t\t\tDynamically create leases\n\t\t\t\t\t\t\tfor DHCPv4 and DHCPv6\ndhcpv4_forcereconf\tbool\t0\t\t\tForce reconfiguration by sending\n\t\t\t\t\t\t\tforce renew message even if the client\n\t\t\t\t\t\t\tdid not include the force renew nonce\n\t\t\t\t\t\t\tcapability option (RFC6704)\ndhcpv6_assignall\tbool\t1\t\t\tAssign all viable DHCPv6 addresses\n\t\t\t\t\t\t\tin statefull mode; if disabled\n\t\t\t\t\t\t\tonly the DHCPv6 address having the\n\t\t\t\t\t\t\tlongest preferred lifetime is assigned\ndhcpv6_hostidlength\tinteger 12\t\t\tHost ID length of dynamically created leases,\n\t\t\t\t\t\t\tallowed values: 12 - 64 (bits).\ndhcpv6_na\t\tbool\t1\t\t\tDHCPv6 stateful addressing hands out IA_NA -\n\t\t\t\t\t\t\t\tInternet Address - Network Address\ndhcpv6_pd\t\tbool\t1\t\t\tDHCPv6 stateful addressing hands out IA_PD -\n\t\t\t\t\t\t\t\tInternet Address - Prefix Delegation\ndhcpv6_pd_min_len\tinteger\t-\t\t\tMinimum prefix length to delegate with IA_PD\n\t\t\t\t\t\t\t(value is adjusted if needed to be greater\n\t\t\t\t\t\t\tthan the interface prefix length).  Range [1,62]\nrouter\t\t\tlist    \u003clocal address\u003e\t\tRouters to announce\n\t\t\t\t\t\t\taccepts IPv4 only\ndns\t\t\tlist\t\u003clocal address\u003e\t\tDNS servers to announce\n\t\t\t\t\t\t\taccepts IPv4 and IPv6\ndnr\t\t\tlist\tdisabled\t\tEncrypted DNS servers to announce\n\t\t\t\u003cpriority\u003e \u003cdomain name\u003e [\u003ccomma separated IP addresses\u003e \u003cSvcParams (key=value)\u003e...]\ndns_service\t\tbool\t1\t\t\tAnnounce the address of interface as DNS service\n\t\t\t\t\t\t\tif the list of dns is empty\ndomain\t\t\tlist\t\u003clocal search domain\u003e\tSearch domains to announce\n\nleasetime\t\tstring\t12h\t\t\tDHCPv4 address leasetime\nstart\t\t\tinteger\t100\t\t\tDHCPv4 pool start\nlimit\t\t\tinteger\t150\t\t\tDHCPv4 pool size\npreferred_lifetime\tstring\t7d\t\t\tValue for the preferred lifetime\n\t\t\t\t\t\t\tfor a prefix\nra_default\t\tinteger\t0\t\t\tOverride default route\n\t\t\t0: default, 1: ignore no public address, 2: ignore all\nra_flags\t\tlist\tother-config\t\tList of RA flags to be\n\t\t\t\t\t\t\tadvertised in RA messages\n\t\t\t[managed-config other-config home-agent none]\nra_slaac\t\tbool\t1\t\t\tAnnounce slaac for a prefix\nra_offlink\t\tbool\t0\t\t\tAnnounce prefixes off-link\nra_preference\t\tstring\tmedium\t\t\tRoute(r) preference\n\t\t\t[medium|high|low]\nra_maxinterval\t\tinteger\t600\t\t\tMaximum time allowed between\n\t\t\t\t\t\t\tsending unsolicited RA\nra_mininterval\t\tinteger\t200\t\t\tMinimum time allowed between\n\t\t\t\t\t\t\tsending unsolicited RA\nra_lifetime\t\tinteger\t1800\t\t\tValue to be placed in Router\n\t\t\t\t\t\t\tLifetime field of RA\nra_useleasetime\t\tbool\t0\t\t\tUse configured leasetime as\n\t\t\t\t\t\t\tlimit for the preferred and\n\t\t\t\t\t\t\tvalid lifetime of a prefix\nra_reachabletime\tinteger\t0\t\t\tReachable Time in milliseconds to be\n\t\t\t\t\t\t\tadvertised in RA messages\nra_retranstime\t\tinteger\t0\t\t\tRetransmit Time in milliseconds to be\n\t\t\t\t\t\t\tadvertised in RA messages\nra_hoplimit\t\tinteger\t0\t\t\tCurrent hoplimit to be advertised\n\t\t\t\t\t\t\tin RA messages\nra_mtu\t\t\tinteger -\t\t\tMTU to be advertised in\n\t\t\t\t\t\t\tRA messages\nra_dns\t\t\tbool\t1\t\t\tAnnounce DNS configuration in\n\t\t\t\t\t\t\tRA messages (RFC8106)\nra_pref64\t\tstring\t\t\t\tAnnounce PREF64 option\n\t\t\t[IPv6 prefix]\t\t\tfor NAT64 prefix (RFC8781)\nndproxy_routing\t\tbool\t1\t\t\tLearn routes from NDP\nndproxy_slave\t\tbool\t0\t\t\tNDProxy external slave\nprefix_filter\t\tstring\t::/0\t\t\tOnly advertise on-link prefixes within\n\t\t\t[IPv6 prefix]\t\t\tthe provided IPv6 prefix; others are\n\t\t\t\t\t\t\tfiltered out.\nntp\t\t\tlist\t\u003clocal address\u003e\t\tNTP servers to announce\n\t\t\t\t\t\t\taccepts IPv4 and IPv6\n\n\nSections of type host (static leases)\nOption\t\tType\tDefault\t\t\tDescription\nip\t\tstring\t\t\t\tIP-Address to lease\nmac\t\tstring\t\t\t\tMAC-address\nduid\t\tstring\t\t\t\tDUID in base16\nhostid\t\tstring\t\t\t\tIPv6 host identifier\nname\t\tstring\t\t\t\tHostname\nleasetime\tstring\t\t\t\tDHCPv4/v6 leasetime\n\nSections of type boot6\nOption\t\tType\tRequired\t\tDescription\nurl\t\tstring\tyes\t\te.g. tftp://[fd11::1]/pxe.efi\narch\t\tinteger\tno\t\tthe arch code. 07 is EFI.\n\t\t\t\t\t\tIf not present, this boot6 will be the default.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenwrt%2Fodhcpd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenwrt%2Fodhcpd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenwrt%2Fodhcpd/lists"}