Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
spins:invis:15:testing
dhcp
0099-AD-LDAP.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0099-AD-LDAP.patch of Package dhcp
--- a/server/ldap.c 2018-05-08 14:39:28.180926244 +0200 +++ b/server/ldap.c 2018-05-08 14:39:43.369267248 +0200 @@ -451,7 +451,7 @@ } if ((classdata = ldap_get_values_len (ld, item->ldent, - "dhcpClassData")) == NULL || + "iscDhcpClassData")) == NULL || classdata[0] == NULL) { if (classdata != NULL) @@ -498,7 +498,7 @@ return; } - hwaddr = ldap_get_values_len (ld, item->ldent, "dhcpHWAddress"); + hwaddr = ldap_get_values_len (ld, item->ldent, "iscDhcpHWAddress"); x_parser_strcat (cfile, "host "); x_parser_strcat (cfile, tempbv[0]->bv_val); @@ -579,7 +579,7 @@ } if ((netmaskstr = ldap_get_values_len (ld, item->ldent, - "dhcpNetmask")) == NULL || + "iscDhcpNetmask")) == NULL || netmaskstr[0] == NULL) { if (netmaskstr != NULL) @@ -601,7 +601,7 @@ ldap_value_free_len (tempbv); ldap_value_free_len (netmaskstr); - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpRange")) != NULL) + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpRange")) != NULL) { for (i=0; tempbv[i] != NULL; i++) { @@ -638,7 +638,7 @@ ldap_value_free_len (tempbv); - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpRange6")) != NULL) + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpRange6")) != NULL) { for (i=0; tempbv[i] != NULL; i++) { @@ -650,7 +650,7 @@ ldap_value_free_len (tempbv); } - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpPermitList")) != NULL) + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpPermitList")) != NULL) { for (i=0; tempbv[i] != NULL; i++) { @@ -671,7 +671,7 @@ x_parser_strcat (cfile, "pool {\n"); - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpRange")) != NULL) + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpRange")) != NULL) { x_parser_strcat (cfile, "range"); for (i=0; tempbv[i] != NULL; i++) @@ -683,7 +683,7 @@ ldap_value_free_len (tempbv); } - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpPermitList")) != NULL) + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpPermitList")) != NULL) { for (i=0; tempbv[i] != NULL; i++) { @@ -704,7 +704,7 @@ x_parser_strcat (cfile, "pool6 {\n"); - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpRange6")) != NULL) + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpRange6")) != NULL) { x_parser_strcat (cfile, "range6"); for (i=0; tempbv[i] != NULL; i++) @@ -716,7 +716,7 @@ ldap_value_free_len (tempbv); } - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpPermitList")) != NULL) + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpPermitList")) != NULL) { for (i=0; tempbv[i] != NULL; i++) { @@ -750,7 +750,7 @@ ldap_value_free_len (tempbv); } - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpKeyAlgorithm")) != NULL) + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpKeyAlgorithm")) != NULL) { x_parser_strcat (cfile, "algorithm "); x_parser_strcat (cfile, tempbv[0]->bv_val); @@ -758,7 +758,7 @@ ldap_value_free_len (tempbv); } - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpKeySecret")) != NULL) + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpKeySecret")) != NULL) { x_parser_strcat (cfile, "secret "); x_parser_strcat (cfile, tempbv[0]->bv_val); @@ -786,7 +786,7 @@ ldap_value_free_len (tempbv); } - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpDnsZoneServer")) != NULL) + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpDnsZoneServer")) != NULL) { x_parser_strcat (cfile, "primary "); x_parser_strcat (cfile, tempbv[0]->bv_val); @@ -795,7 +795,7 @@ ldap_value_free_len (tempbv); } - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpKeyDN")) != NULL) + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpKeyDN")) != NULL) { cnFindStart = strchr(tempbv[0]->bv_val,'='); if (cnFindStart != NULL) @@ -856,14 +856,14 @@ getifaddrs(&addrs); /* - ** when dhcpFailOverPrimaryServer or dhcpFailOverSecondaryServer + ** when iscDhcpFailOverPrimaryServer or iscDhcpFailOverSecondaryServer ** matches one of our IP address, the following valiables are set: ** - primary is 1 when we are primary or 0 when we are secondary ** - srvaddr[0] contains ip address of the primary ** - srvaddr[1] contains ip address of the secondary */ primary = -1; - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpFailOverPrimaryServer")) != NULL && + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpFailOverPrimaryServer")) != NULL && tempbv[0] != NULL) { match = get_host_address (tempbv[0]->bv_val, srvaddr[0], sizeof(srvaddr[0]), addrs); @@ -887,7 +887,7 @@ if (tempbv != NULL) ldap_value_free_len (tempbv); - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpFailOverSecondaryServer")) != NULL && + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpFailOverSecondaryServer")) != NULL && tempbv[0] != NULL) { match = get_host_address (tempbv[0]->bv_val, srvaddr[1], sizeof(srvaddr[1]), addrs); @@ -958,7 +958,7 @@ x_parser_strcat (cfile, srvaddr[0]); x_parser_strcat (cfile, ";\n"); - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpFailOverPrimaryPort")) != NULL && + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpFailOverPrimaryPort")) != NULL && tempbv[0] != NULL) { if (primary) @@ -971,7 +971,7 @@ if (tempbv != NULL) ldap_value_free_len (tempbv); - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpFailOverSecondaryPort")) != NULL && + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpFailOverSecondaryPort")) != NULL && tempbv[0] != NULL) { if (primary) @@ -984,7 +984,7 @@ if (tempbv != NULL) ldap_value_free_len (tempbv); - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpFailOverResponseDelay")) != NULL && + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpFailOverResponseDelay")) != NULL && tempbv[0] != NULL) { x_parser_strcat (cfile, "max-response-delay "); @@ -994,7 +994,7 @@ if (tempbv != NULL) ldap_value_free_len (tempbv); - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpFailOverUnackedUpdates")) != NULL && + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpFailOverUnackedUpdates")) != NULL && tempbv[0] != NULL) { x_parser_strcat (cfile, "max-unacked-updates "); @@ -1004,7 +1004,7 @@ if (tempbv != NULL) ldap_value_free_len (tempbv); - if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpFailOverLoadBalanceTime")) != NULL && + if ((tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpFailOverLoadBalanceTime")) != NULL && tempbv[0] != NULL) { x_parser_strcat (cfile, "load balance max seconds "); @@ -1016,7 +1016,7 @@ tempbv = NULL; if (primary && - (tempbv = ldap_get_values_len (ld, item->ldent, "dhcpMaxClientLeadTime")) != NULL && + (tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpMaxClientLeadTime")) != NULL && tempbv[0] != NULL) { x_parser_strcat (cfile, "mclt "); @@ -1028,7 +1028,7 @@ tempbv = NULL; if (primary && - (tempbv = ldap_get_values_len (ld, item->ldent, "dhcpFailOverSplit")) != NULL && + (tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpFailOverSplit")) != NULL && tempbv[0] != NULL) { x_parser_strcat (cfile, "split "); @@ -1041,7 +1041,7 @@ tempbv = NULL; if (primary && !split && - (tempbv = ldap_get_values_len (ld, item->ldent, "dhcpFailOverHashBucketAssignment")) != NULL && + (tempbv = ldap_get_values_len (ld, item->ldent, "iscDhcpFailOverHashBucketAssignment")) != NULL && tempbv[0] != NULL) { x_parser_strcat (cfile, "hba "); @@ -1690,15 +1690,15 @@ static void parse_external_dns (LDAPMessage * ent) { - char *search[] = {"dhcpOptionsDN", "dhcpSharedNetworkDN", "dhcpSubnetDN", - "dhcpGroupDN", "dhcpHostDN", "dhcpClassesDN", - "dhcpPoolDN", "dhcpZoneDN", "dhcpFailOverPeerDN", NULL}; + char *search[] = {"iscDhcpOptionsDN", "iscDhcpSharedNetworkDN", "iscDhcpSubnetDN", + "iscDhcpGroupDN", "iscDhcpHostDN", "iscDhcpClassesDN", + "iscDhcpPoolDN", "iscDhcpZoneDN", "iscDhcpFailOverPeerDN", NULL}; - /* TODO: dhcpKeyDN can't be added. It is referenced in dhcpDnsZone to + /* TODO: iscDhcpKeyDN can't be added. It is referenced in iscDhcpDnsZone to retrive the key name (cn). Adding keyDN will reflect adding a key declaration inside the zone configuration. - dhcpSubClassesDN cant be added. It is also similar to the above. + iscDhcpSubClassesDN cant be added. It is also similar to the above. Needs schema change. */ LDAPMessage * newres, * newent; @@ -1881,7 +1881,7 @@ if (ent == NULL || cfile == NULL) return (ISC_R_FAILURE); - if ((tempbv = ldap_get_values_len (ld, ent, "dhcpStatements")) != NULL) + if ((tempbv = ldap_get_values_len (ld, ent, "iscDhcpStatements")) != NULL) { for (i=0; tempbv[i] != NULL; i++) { @@ -1908,7 +1908,7 @@ ldap_value_free_len (tempbv); } - if ((tempbv = ldap_get_values_len (ld, ent, "dhcpOption")) != NULL) + if ((tempbv = ldap_get_values_len (ld, ent, "iscDhcpOption")) != NULL) { for (i=0; tempbv[i] != NULL; i++) { @@ -1957,29 +1957,29 @@ found = 1; for (i=0; objectClass[i] != NULL; i++) { - if (strcasecmp (objectClass[i]->bv_val, "dhcpSharedNetwork") == 0) + if (strcasecmp (objectClass[i]->bv_val, "iscDhcpSharedNetwork") == 0) ldap_parse_shared_network (entry, cfile); - else if (strcasecmp (objectClass[i]->bv_val, "dhcpClass") == 0) + else if (strcasecmp (objectClass[i]->bv_val, "iscDhcpClass") == 0) ldap_parse_class (entry, cfile); - else if (strcasecmp (objectClass[i]->bv_val, "dhcpSubnet") == 0) + else if (strcasecmp (objectClass[i]->bv_val, "iscDhcpSubnet") == 0) ldap_parse_subnet (entry, cfile); - else if (strcasecmp (objectClass[i]->bv_val, "dhcpSubnet6") == 0) + else if (strcasecmp (objectClass[i]->bv_val, "iscDhcpSubnet6") == 0) ldap_parse_subnet6 (entry, cfile); - else if (strcasecmp (objectClass[i]->bv_val, "dhcpPool") == 0) + else if (strcasecmp (objectClass[i]->bv_val, "iscDhcpPool") == 0) ldap_parse_pool (entry, cfile); - else if (strcasecmp (objectClass[i]->bv_val, "dhcpPool6") == 0) + else if (strcasecmp (objectClass[i]->bv_val, "iscDhcpPool6") == 0) ldap_parse_pool6 (entry, cfile); - else if (strcasecmp (objectClass[i]->bv_val, "dhcpGroup") == 0) + else if (strcasecmp (objectClass[i]->bv_val, "iscDhcpGroup") == 0) ldap_parse_group (entry, cfile); - else if (strcasecmp (objectClass[i]->bv_val, "dhcpTSigKey") == 0) + else if (strcasecmp (objectClass[i]->bv_val, "iscDhcpTSigKey") == 0) ldap_parse_key (entry, cfile); - else if (strcasecmp (objectClass[i]->bv_val, "dhcpDnsZone") == 0) + else if (strcasecmp (objectClass[i]->bv_val, "iscDhcpDnsZone") == 0) ldap_parse_zone (entry, cfile); #if defined(HAVE_IFADDRS_H) - else if (strcasecmp (objectClass[i]->bv_val, "dhcpFailOverPeer") == 0) + else if (strcasecmp (objectClass[i]->bv_val, "iscDhcpFailOverPeer") == 0) ldap_parse_failover (entry, cfile); #endif - else if (strcasecmp (objectClass[i]->bv_val, "dhcpHost") == 0) + else if (strcasecmp (objectClass[i]->bv_val, "iscDhcpHost") == 0) { if (ldap_method == LDAP_METHOD_STATIC) ldap_parse_host (entry, cfile); @@ -1989,7 +1989,7 @@ break; } } - else if (strcasecmp (objectClass[i]->bv_val, "dhcpSubClass") == 0) + else if (strcasecmp (objectClass[i]->bv_val, "iscDhcpSubClass") == 0) { if (ldap_method == LDAP_METHOD_STATIC) ldap_parse_subclass (entry, cfile); @@ -2030,7 +2030,7 @@ #endif if ((ret = ldap_search_ext_s (ld, dn, LDAP_SCOPE_ONELEVEL, - "(!(|(|(objectClass=dhcpTSigKey)(objectClass=dhcpClass)) (objectClass=dhcpFailOverPeer)))", + "(!(|(|(objectClass=iscDhcpTSigKey)(objectClass=iscDhcpClass)) (objectClass=iscDhcpFailOverPeer)))", NULL, 0, NULL, NULL, NULL, 0, &res)) != LDAP_SUCCESS) { @@ -2041,7 +2041,7 @@ } if ((ret = ldap_search_ext_s (ld, dn, LDAP_SCOPE_ONELEVEL, - "(|(|(objectClass=dhcpTSigKey)(objectClass=dhcpClass)) (objectClass=dhcpFailOverPeer))", + "(|(|(objectClass=iscDhcpTSigKey)(objectClass=iscDhcpClass)) (objectClass=iscDhcpFailOverPeer))", NULL, 0, NULL, NULL, NULL, 0, &resfirst)) != LDAP_SUCCESS) { @@ -2212,7 +2212,7 @@ } snprintf (hfilter, sizeof (hfilter), - "(&(objectClass=dhcpServer)(cn=%s))", bv_o[0].bv_val); + "(&(objectClass=iscDhcpServer)(cn=%s))", bv_o[0].bv_val); ber_memfree(bv_o[0].bv_val); } @@ -2241,7 +2241,7 @@ // otherwise just use nodename if ((*fqdn) && (strcmp(unme.nodename, fqdn))) { snprintf (hfilter, sizeof (hfilter), - "(&(objectClass=dhcpServer)(|(cn=%s)(cn=%s)))", + "(&(objectClass=iscDhcpServer)(|(cn=%s)(cn=%s)))", bv_o[0].bv_val, bv_o[1].bv_val); ber_memfree(bv_o[1].bv_val); @@ -2249,7 +2249,7 @@ else { snprintf (hfilter, sizeof (hfilter), - "(&(objectClass=dhcpServer)(cn=%s))", + "(&(objectClass=iscDhcpServer)(cn=%s))", bv_o[0].bv_val); } @@ -2290,11 +2290,11 @@ hostdn = ldap_get_dn (ld, hostent); #if defined(DEBUG_LDAP) if (hostdn != NULL) - log_info ("Found dhcpServer LDAP entry '%s'", hostdn); + log_info ("Found iscDhcpServer LDAP entry '%s'", hostdn); #endif if (hostdn == NULL || - (tempbv = ldap_get_values_len (ld, hostent, "dhcpServiceDN")) == NULL || + (tempbv = ldap_get_values_len (ld, hostent, "iscDhcpServiceDN")) == NULL || tempbv[0] == NULL) { log_error ("Error: No dhcp service is associated with the server %s %s", @@ -2313,7 +2313,7 @@ } #if defined(DEBUG_LDAP) - log_info ("LDAP: Parsing dhcpServer options '%s' ...", hostdn); + log_info ("LDAP: Parsing iscDhcpServer options '%s' ...", hostdn); #endif res = ldap_parse_entry_options(hostent, cfile, NULL); @@ -2334,7 +2334,7 @@ res = conf_file_subparse (cfile, root_group, ROOT_GROUP); if (res != ISC_R_SUCCESS) { - log_error ("LDAP: cannot parse dhcpServer entry '%s'", hostdn); + log_error ("LDAP: cannot parse iscDhcpServer entry '%s'", hostdn); ldap_value_free_len (tempbv); ldap_msgfree (hostres); ldap_memfree (hostdn); @@ -2357,8 +2357,8 @@ break; } - snprintf(sfilter, sizeof(sfilter), "(&(objectClass=dhcpService)" - "(|(|(dhcpPrimaryDN=%s)(dhcpSecondaryDN=%s))(dhcpServerDN=%s)))", + snprintf(sfilter, sizeof(sfilter), "(&(objectClass=iscDhcpService)" + "(|(|(iscDhcpPrimaryDN=%s)(iscDhcpSecondaryDN=%s))(iscDhcpServerDN=%s)))", bv_o[0].bv_val, bv_o[0].bv_val, bv_o[0].bv_val); ber_memfree(bv_o[0].bv_val); @@ -2368,7 +2368,7 @@ sfilter, NULL, 0, NULL, NULL, NULL, 0, &ldres)) != LDAP_SUCCESS) { - log_error ("Error searching for dhcpServiceDN '%s': %s. Please update the LDAP entry '%s'", + log_error ("Error searching for iscDhcpServiceDN '%s': %s. Please update the LDAP entry '%s'", tempbv[cnt]->bv_val, ldap_err2string (ret), hostdn); if(NULL != ldres) ldap_msgfree(ldres); @@ -2378,7 +2378,7 @@ if ((ent = ldap_first_entry (ld, ldres)) == NULL) { - log_error ("Error: Cannot find dhcpService DN '%s' with server reference. Please update the LDAP server entry '%s'", + log_error ("Error: Cannot find iscDhcpService DN '%s' with server reference. Please update the LDAP server entry '%s'", tempbv[cnt]->bv_val, hostdn); ldap_msgfree(ldres); @@ -2422,13 +2422,13 @@ log_fatal ("no memory to remember ldap service dn"); #if defined (DEBUG_LDAP) - log_info ("LDAP: Parsing dhcpService DN '%s' ...", tempbv[cnt]->bv_val); + log_info ("LDAP: Parsing iscDhcpService DN '%s' ...", tempbv[cnt]->bv_val); #endif add_to_config_stack (ldres, ent); res = conf_file_subparse (cfile, root_group, ROOT_GROUP); if (res != ISC_R_SUCCESS) { - log_error ("LDAP: cannot parse dhcpService entry '%s'", tempbv[cnt]->bv_val); + log_error ("LDAP: cannot parse iscDhcpService entry '%s'", tempbv[cnt]->bv_val); break; } } @@ -2469,7 +2469,7 @@ } -/* This function will parse the dhcpOption and dhcpStatements field in the LDAP +/* This function will parse the iscDhcpOption and iscDhcpStatements field in the LDAP entry if it exists. Right now, type will be either HOST_DECL or CLASS_DECL. If we are parsing a HOST_DECL, this always returns 0. If we are parsing a CLASS_DECL, this will return what the current lease limit is in LDAP. If @@ -2525,7 +2525,7 @@ else { snprintf (filter, sizeof(filter), - "(&(cn=%s)(objectClass=dhcpGroup))", + "(&(cn=%s)(objectClass=iscDhcpGroup))", bv_o.bv_val); ber_memfree(bv_o.bv_val); @@ -2630,7 +2630,7 @@ } /* - ** FIXME: It is not guaranteed, that the dhcpHWAddress attribute + ** FIXME: It is not guaranteed, that the iscDhcpHWAddress attribute ** contains _exactly_ "type addr" with one space between! */ snprintf(lo_hwaddr, sizeof(lo_hwaddr), "%s", @@ -2650,7 +2650,7 @@ } snprintf (buf, sizeof (buf), - "(&(objectClass=dhcpHost)(|(dhcpHWAddress=%s %s)(dhcpHWAddress=%s %s)))", + "(&(objectClass=iscDhcpHost)(|(iscDhcpHWAddress=%s %s)(iscDhcpHWAddress=%s %s)))", type_str, bv_o[0].bv_val, type_str, bv_o[1].bv_val); ber_memfree(bv_o[0].bv_val); @@ -2697,7 +2697,7 @@ char *dn = ldap_get_dn (ld, ent); if (dn != NULL) { - log_info ("Found dhcpHWAddress LDAP entry %s", dn); + log_info ("Found iscDhcpHWAddress LDAP entry %s", dn); ldap_memfree(dn); } #endif @@ -2811,7 +2811,7 @@ } snprintf (buf, sizeof (buf), - "(&(objectClass=dhcpSubClass)(cn=%s)(dhcpClassData=%s))", + "(&(objectClass=iscDhcpSubClass)(cn=%s)(iscDhcpClassData=%s))", (hex_1 == NULL ? bv_cdata.bv_val : hex_1), bv_class.bv_val); if (hex_1 == NULL) @@ -2966,7 +2966,7 @@ if (get_client_id(packet, &client_id) != ISC_R_SUCCESS) return (0); snprintf(buf, sizeof(buf), - "(&(objectClass=dhcpHost)(dhcpClientId=%s))", + "(&(objectClass=iscDhcpHost)(iscDhcpClientId=%s))", print_hw_addr(0, client_id.len, client_id.data)); /* log_info ("Searching LDAP for %s (%s)", buf, packet->interface->shared_network->name); */ --- a/contrib/ldap/README.ldap 2018-02-20 17:55:53.000000000 +0100 +++ b/contrib/ldap/README.ldap 2018-05-08 14:39:48.841390100 +0200 @@ -22,13 +22,13 @@ added the following 2 lines to my configuration file: include /etc/ldap/schema/dhcp.schema -index dhcpHWAddress eq -index dhcpClassData eq +index iscDhcpHWAddress eq +index iscDhcpClassData eq The first line tells it to include the dhcp schema file. You will find this file under the contrib directory in this distribution. You will need to copy this file to where your other schema files are (maybe /etc/openldap/schema/). -The second line sets up an index for the dhcpHWAddress parameter. The third +The second line sets up an index for the iscDhcpHWAddress parameter. The third parameter is for reading subclasses from LDAP every time a DHCP request comes in. Make sure you run the slapindex command and restart slapd to have these changes to into effect. @@ -36,9 +36,9 @@ Now that you have LDAP setup, you should be able to use gq (http://biot.com/gq/) to verify that the dhcp schema file is loaded into LDAP. Pull up gq, and click on the Schema tab. Go under objectClasses, and you -should see at least the following object classes listed: dhcpClass, dhcpGroup, -dhcpHost, dhcpOptions, dhcpPool, dhcpServer, dhcpService, dhcpSharedNetwork, -dhcpSubClass, and dhcpSubnet. If you do not see these, you need to check over +should see at least the following object classes listed: iscDhcpClass, iscDhcpGroup, +iscDhcpHost, iscDhcpOptions, iscDhcpPool, iscDhcpServer, iscDhcpService, iscDhcpSharedNetwork, +iscDhcpSubClass, and iscDhcpSubnet. If you do not see these, you need to check over your LDAP configuration before you go any further. You should now be ready to build DHCP. If you would like to enable LDAP in @@ -115,79 +115,79 @@ # config to use dn: cn=brian.ntelos.net, dc=ntelos, dc=net objectClass: top -objectClass: dhcpServer +objectClass: iscDhcpServer cn: brian.ntelos.net -dhcpServiceDN: cn=DHCP Service Config, dc=ntelos, dc=net +iscDhcpServiceDN: cn=DHCP Service Config, dc=ntelos, dc=net # Here is the config tree that brian.ntelos.net points to. dn: cn=DHCP Service Config, dc=ntelos, dc=net cn: DHCP Service Config objectClass: top -objectClass: dhcpService -dhcpPrimaryDN: dc=ntelos, dc=net -dhcpStatements: ddns-update-style none -dhcpStatements: default-lease-time 600 -dhcpStatements: max-lease-time 7200 +objectClass: iscDhcpService +iscDhcpPrimaryDN: dc=ntelos, dc=net +iscDhcpStatements: ddns-update-style none +iscDhcpStatements: default-lease-time 600 +iscDhcpStatements: max-lease-time 7200 # Set up a shared network segment dn: cn=WV Test, cn=DHCP Service Config, dc=ntelos, dc=net cn: WV objectClass: top -objectClass: dhcpSharedNetwork +objectClass: iscDhcpSharedNetwork # Set up a subnet declaration with a pool statement. Also note that we have -# a dhcpOptions object with this entry +# a iscDhcpOptions object with this entry dn: cn=10.100.0.0, cn=WV Test, cn=DHCP Service Config, dc=ntelos, dc=net cn: 10.100.0.0 objectClass: top -objectClass: dhcpSubnet -objectClass: dhcpOptions -dhcpOption: domain-name-servers 10.100.0.2 -dhcpOption: routers 10.100.0.1 -dhcpOption: subnet-mask 255.255.255.0 -dhcpOption: broadcast-address 10.100.0.255 -dhcpNetMask: 24 +objectClass: iscDhcpSubnet +objectClass: iscDhcpOptions +iscDhcpOption: domain-name-servers 10.100.0.2 +iscDhcpOption: routers 10.100.0.1 +iscDhcpOption: subnet-mask 255.255.255.0 +iscDhcpOption: broadcast-address 10.100.0.255 +iscDhcpNetMask: 24 # Set up a pool for this subnet. Only known hosts will get these IPs dn: cn=Known Pool, cn=10.100.0.0, cn=WV Test, cn=DHCP Service Config, dc=ntelos, dc=net cn: Known Pool objectClass: top -objectClass: dhcpPool -dhcpRange: 10.100.0.3 10.100.0.254 -dhcpPermitList: deny unknown-clients +objectClass: iscDhcpPool +iscDhcpRange: 10.100.0.3 10.100.0.254 +iscDhcpPermitList: deny unknown-clients # Set up another subnet declaration with a pool statement dn: cn=10.200.0.0, cn=WV Test, cn=DHCP Service Config, dc=ntelos, dc=net cn: 10.200.0.0 objectClass: top -objectClass: dhcpSubnet -objectClass: dhcpOptions -dhcpOption: domain-name-servers 10.200.0.2 -dhcpOption: routers 10.200.0.1 -dhcpOption: subnet-mask 255.255.255.0 -dhcpOption: broadcast-address 10.200.0.255 -dhcpNetMask: 24 +objectClass: iscDhcpSubnet +objectClass: iscDhcpOptions +iscDhcpOption: domain-name-servers 10.200.0.2 +iscDhcpOption: routers 10.200.0.1 +iscDhcpOption: subnet-mask 255.255.255.0 +iscDhcpOption: broadcast-address 10.200.0.255 +iscDhcpNetMask: 24 # Set up a pool for this subnet. Only unknown hosts will get these IPs dn: cn=Known Pool, cn=10.200.0.0, cn=WV Test, cn=DHCP Service Config, dc=ntelos, dc=net cn: Known Pool objectClass: top -objectClass: dhcpPool -dhcpRange: 10.200.0.3 10.200.0.254 -dhcpPermitList: deny known clients +objectClass: iscDhcpPool +iscDhcpRange: 10.200.0.3 10.200.0.254 +iscDhcpPermitList: deny known clients # Set aside a group for all of our known MAC addresses dn: cn=Customers, cn=DHCP Service Config, dc=ntelos, dc=net objectClass: top -objectClass: dhcpGroup +objectClass: iscDhcpGroup cn: Customers # Host entry for my laptop dn: cn=brianlaptop, cn=Customers, cn=DHCP Service Config, dc=ntelos, dc=net objectClass: top -objectClass: dhcpHost +objectClass: iscDhcpHost cn: brianlaptop -dhcpHWAddress: ethernet 00:00:00:00:00:00 +iscDhcpHWAddress: ethernet 00:00:00:00:00:00 You can use the command ldapadd to load all of these entries into your LDAP server. After you load this, you should be able to start up DHCP. If you run @@ -224,9 +224,9 @@ dn: cn=examplehost,cn=XXXX:XXXX:XXXX:XXXX::/64,cn=Network-eth1,cn=DHCPv6,dc=example,dc=com objectClass: top -objectClass: dhcpHost +objectClass: iscDhcpHost cn: examplehost -dhcpClientId: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX -dhcpStatements: fixed-address6 XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX +iscDhcpClientId: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX +iscDhcpStatements: fixed-address6 XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX option host-name "examplehost.ipv6.example.com" option domain-name "ipv6.example.com" --- a/contrib/ldap/dhcpd-conf-to-ldap 2018-02-20 17:55:53.000000000 +0100 +++ b/contrib/ldap/dhcpd-conf-to-ldap 2018-05-08 14:39:57.245578770 +0200 @@ -16,8 +16,8 @@ # You can try the '--use=failover' option to see what happens :-) # # If enabled, the failover pool references will be written to LDIF output. -# The failover configs itself will be added to the dhcpServer statements -# and not to the dhcpService object (since this script uses only one and +# The failover configs itself will be added to the iscDhcpServer statements +# and not to the iscDhcpService object (since this script uses only one and # it may be usefull to have multiple service containers in failover mode). # Further, this script does not check if primary or secondary makes sense, # it simply converts what it gets... @@ -187,14 +187,14 @@ print "dn: $hostdn\n"; print "cn: $server\n"; print "objectClass: top\n"; - print "objectClass: dhcpServer\n"; - print "dhcpServiceDN: $curentry{'current_dn'}\n"; + print "objectClass: iscDhcpServer\n"; + print "iscDhcpServiceDN: $curentry{'current_dn'}\n"; if(grep(/FaIlOvEr/i, @use)) { foreach my $fo_peer (keys %failover) { next if(scalar(@{$failover{$fo_peer}}) <= 1); - print "dhcpStatements: failover peer $fo_peer { ", + print "iscDhcpStatements: failover peer $fo_peer { ", join('; ', @{$failover{$fo_peer}}), "; }\n"; } } @@ -203,15 +203,15 @@ print "dn: $curentry{'current_dn'}\n"; print "cn: $dhcpcn\n"; print "objectClass: top\n"; - print "objectClass: dhcpService\n"; + print "objectClass: iscDhcpService\n"; if (defined ($curentry{'options'})) { - print "objectClass: dhcpOptions\n"; + print "objectClass: iscDhcpOptions\n"; } - print "dhcpPrimaryDN: $hostdn\n"; + print "iscDhcpPrimaryDN: $hostdn\n"; if(grep(/FaIlOvEr/i, @use) and ($second ne '')) { - print "dhcpSecondaryDN: $second\n"; + print "iscDhcpSecondaryDN: $second\n"; } } elsif ($curentry{'type'} eq 'subnet') @@ -219,18 +219,18 @@ print "dn: $curentry{'current_dn'}\n"; print "cn: " . $curentry{'ip'} . "\n"; print "objectClass: top\n"; - print "objectClass: dhcpSubnet\n"; + print "objectClass: iscDhcpSubnet\n"; if (defined ($curentry{'options'})) { - print "objectClass: dhcpOptions\n"; + print "objectClass: iscDhcpOptions\n"; } - print "dhcpNetMask: " . $curentry{'netmask'} . "\n"; + print "iscDhcpNetMask: " . $curentry{'netmask'} . "\n"; if (defined ($curentry{'ranges'})) { foreach $statement (@{$curentry{'ranges'}}) { - print "dhcpRange: $statement\n"; + print "iscDhcpRange: $statement\n"; } } } @@ -239,10 +239,10 @@ print "dn: $curentry{'current_dn'}\n"; print "cn: " . $curentry{'descr'} . "\n"; print "objectClass: top\n"; - print "objectClass: dhcpSharedNetwork\n"; + print "objectClass: iscDhcpSharedNetwork\n"; if (defined ($curentry{'options'})) { - print "objectClass: dhcpOptions\n"; + print "objectClass: iscDhcpOptions\n"; } } elsif ($curentry{'type'} eq 'group') @@ -250,10 +250,10 @@ print "dn: $curentry{'current_dn'}\n"; print "cn: group", $curentry{'idx'}, "\n"; print "objectClass: top\n"; - print "objectClass: dhcpGroup\n"; + print "objectClass: iscDhcpGroup\n"; if (defined ($curentry{'options'})) { - print "objectClass: dhcpOptions\n"; + print "objectClass: iscDhcpOptions\n"; } } elsif ($curentry{'type'} eq 'host') @@ -261,16 +261,16 @@ print "dn: $curentry{'current_dn'}\n"; print "cn: " . $curentry{'host'} . "\n"; print "objectClass: top\n"; - print "objectClass: dhcpHost\n"; + print "objectClass: iscDhcpHost\n"; if (defined ($curentry{'options'})) { - print "objectClass: dhcpOptions\n"; + print "objectClass: iscDhcpOptions\n"; } if (defined ($curentry{'hwaddress'})) { $curentry{'hwaddress'} =~ y/[A-Z]/[a-z]/; - print "dhcpHWAddress: " . $curentry{'hwaddress'} . "\n"; + print "iscDhcpHWAddress: " . $curentry{'hwaddress'} . "\n"; } } elsif ($curentry{'type'} eq 'pool') @@ -278,17 +278,17 @@ print "dn: $curentry{'current_dn'}\n"; print "cn: pool", $curentry{'idx'}, "\n"; print "objectClass: top\n"; - print "objectClass: dhcpPool\n"; + print "objectClass: iscDhcpPool\n"; if (defined ($curentry{'options'})) { - print "objectClass: dhcpOptions\n"; + print "objectClass: iscDhcpOptions\n"; } if (defined ($curentry{'ranges'})) { foreach $statement (@{$curentry{'ranges'}}) { - print "dhcpRange: $statement\n"; + print "iscDhcpRange: $statement\n"; } } } @@ -297,10 +297,10 @@ print "dn: $curentry{'current_dn'}\n"; print "cn: " . $curentry{'class'} . "\n"; print "objectClass: top\n"; - print "objectClass: dhcpClass\n"; + print "objectClass: iscDhcpClass\n"; if (defined ($curentry{'options'})) { - print "objectClass: dhcpOptions\n"; + print "objectClass: iscDhcpOptions\n"; } } elsif ($curentry{'type'} eq 'subclass') @@ -308,19 +308,19 @@ print "dn: $curentry{'current_dn'}\n"; print "cn: " . $curentry{'subclass'} . "\n"; print "objectClass: top\n"; - print "objectClass: dhcpSubClass\n"; + print "objectClass: iscDhcpSubClass\n"; if (defined ($curentry{'options'})) { - print "objectClass: dhcpOptions\n"; + print "objectClass: iscDhcpOptions\n"; } - print "dhcpClassData: " . $curentry{'class'} . "\n"; + print "iscDhcpClassData: " . $curentry{'class'} . "\n"; } if (defined ($curentry{'statements'})) { foreach $statement (@{$curentry{'statements'}}) { - print "dhcpStatements: $statement\n"; + print "iscDhcpStatements: $statement\n"; } } @@ -328,7 +328,7 @@ { foreach $statement (@{$curentry{'options'}}) { - print "dhcpOption: $statement\n"; + print "iscDhcpOption: $statement\n"; } } --- a/contrib/ldap/dhcp.schema 2018-02-20 17:55:53.000000000 +0100 +++ b/contrib/ldap/dhcp.schema 2018-05-08 14:40:18.366052876 +0200 @@ -1,347 +1,347 @@ attributetype ( 2.16.840.1.113719.1.203.4.1 - NAME 'dhcpPrimaryDN' + NAME 'iscDhcpPrimaryDN' EQUALITY distinguishedNameMatch - DESC 'The DN of the dhcpServer which is the primary server for the configuration.' + DESC 'The DN of the iscDhcpServer which is the primary server for the configuration.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.2 - NAME 'dhcpSecondaryDN' + NAME 'iscDhcpSecondaryDN' EQUALITY distinguishedNameMatch - DESC 'The DN of dhcpServer(s) which provide backup service for the configuration.' + DESC 'The DN of iscDhcpServer(s) which provide backup service for the configuration.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) attributetype ( 2.16.840.1.113719.1.203.4.3 - NAME 'dhcpStatements' + NAME 'iscDhcpStatements' EQUALITY caseIgnoreIA5Match DESC 'Flexible storage for specific data depending on what object this exists in. Like conditional statements, server parameters, etc. This allows the standard to evolve without needing to adjust the schema.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) attributetype ( 2.16.840.1.113719.1.203.4.4 - NAME 'dhcpRange' + NAME 'iscDhcpRange' EQUALITY caseIgnoreIA5Match DESC 'The starting & ending IP Addresses in the range (inclusive), separated by a hyphen; if the range only contains one address, then just the address can be specified with no hyphen. Each range is defined as a separate value.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) attributetype ( 2.16.840.1.113719.1.203.4.5 - NAME 'dhcpPermitList' + NAME 'iscDhcpPermitList' EQUALITY caseIgnoreIA5Match DESC 'This attribute contains the permit lists associated with a pool. Each permit list is defined as a separate value.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) attributetype ( 2.16.840.1.113719.1.203.4.6 - NAME 'dhcpNetMask' + NAME 'iscDhcpNetMask' EQUALITY integerMatch DESC 'The subnet mask length for the subnet. The mask can be easily computed from this length.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.7 - NAME 'dhcpOption' + NAME 'iscDhcpOption' EQUALITY caseIgnoreIA5Match DESC 'Encoded option values to be sent to clients. Each value represents a single option and contains (OptionTag, Length, OptionValue) encoded in the format used by DHCP.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) attributetype ( 2.16.840.1.113719.1.203.4.8 - NAME 'dhcpClassData' + NAME 'iscDhcpClassData' EQUALITY caseIgnoreIA5Match DESC 'Encoded text string or list of bytes expressed in hexadecimal, separated by colons. Clients match subclasses based on matching the class data with the results of match or spawn with statements in the class name declarations.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.9 - NAME 'dhcpOptionsDN' + NAME 'iscDhcpOptionsDN' EQUALITY distinguishedNameMatch - DESC 'The distinguished name(s) of the dhcpOption objects containing the configuration options provided by the server.' + DESC 'The distinguished name(s) of the iscDhcpOption objects containing the configuration options provided by the server.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) attributetype ( 2.16.840.1.113719.1.203.4.10 - NAME 'dhcpHostDN' + NAME 'iscDhcpHostDN' EQUALITY distinguishedNameMatch - DESC 'the distinguished name(s) of the dhcpHost objects.' + DESC 'the distinguished name(s) of the iscDhcpHost objects.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) attributetype ( 2.16.840.1.113719.1.203.4.11 - NAME 'dhcpPoolDN' + NAME 'iscDhcpPoolDN' EQUALITY distinguishedNameMatch DESC 'The distinguished name(s) of pools.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) attributetype ( 2.16.840.1.113719.1.203.4.12 - NAME 'dhcpGroupDN' + NAME 'iscDhcpGroupDN' EQUALITY distinguishedNameMatch DESC 'The distinguished name(s) of the groups.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) attributetype ( 2.16.840.1.113719.1.203.4.13 - NAME 'dhcpSubnetDN' + NAME 'iscDhcpSubnetDN' EQUALITY distinguishedNameMatch DESC 'The distinguished name(s) of the subnets.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) attributetype ( 2.16.840.1.113719.1.203.4.14 - NAME 'dhcpLeaseDN' + NAME 'iscDhcpLeaseDN' EQUALITY distinguishedNameMatch DESC 'The distinguished name of a client address.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE) attributetype ( 2.16.840.1.113719.1.203.4.15 - NAME 'dhcpLeasesDN' + NAME 'iscDhcpLeasesDN' DESC 'The distinguished name(s) client addresses.' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) attributetype ( 2.16.840.1.113719.1.203.4.16 - NAME 'dhcpClassesDN' + NAME 'iscDhcpClassesDN' EQUALITY distinguishedNameMatch DESC 'The distinguished name(s) of a class(es) in a subclass.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) attributetype ( 2.16.840.1.113719.1.203.4.17 - NAME 'dhcpSubclassesDN' + NAME 'iscDhcpSubclassesDN' EQUALITY distinguishedNameMatch DESC 'The distinguished name(s) of subclass(es).' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) attributetype ( 2.16.840.1.113719.1.203.4.18 - NAME 'dhcpSharedNetworkDN' + NAME 'iscDhcpSharedNetworkDN' EQUALITY distinguishedNameMatch DESC 'The distinguished name(s) of sharedNetworks.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) attributetype ( 2.16.840.1.113719.1.203.4.19 - NAME 'dhcpServiceDN' + NAME 'iscDhcpServiceDN' EQUALITY distinguishedNameMatch - DESC 'The DN of dhcpService object(s)which contain the configuration information. Each dhcpServer object has this attribute identifying the DHCP configuration(s) that the server is associated with.' + DESC 'The DN of iscDhcpService object(s)which contain the configuration information. Each iscDhcpServer object has this attribute identifying the DHCP configuration(s) that the server is associated with.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) attributetype ( 2.16.840.1.113719.1.203.4.20 - NAME 'dhcpVersion' + NAME 'iscDhcpVersion' DESC 'The version attribute of this object.' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.21 - NAME 'dhcpImplementation' + NAME 'iscDhcpImplementation' EQUALITY caseIgnoreIA5Match DESC 'Description of the DHCP Server implementation e.g. DHCP Servers vendor.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.22 - NAME 'dhcpAddressState' + NAME 'iscDhcpAddressState' EQUALITY caseIgnoreIA5Match DESC 'This stores information about the current binding-status of an address. For dynamic addresses managed by DHCP, the values should be restricted to the following: "FREE", "ACTIVE", "EXPIRED", "RELEASED", "RESET", "ABANDONED", "BACKUP". For other addresses, it SHOULD be one of the following: "UNKNOWN", "RESERVED" (an address that is managed by DHCP that is reserved for a specific client), "RESERVED-ACTIVE" (same as reserved, but address is currently in use), "ASSIGNED" (assigned manually or by some other mechanism), "UNASSIGNED", "NOTASSIGNABLE".' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.23 - NAME 'dhcpExpirationTime' + NAME 'iscDhcpExpirationTime' EQUALITY generalizedTimeMatch DESC 'This is the time the current lease for an address expires.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.24 - NAME 'dhcpStartTimeOfState' + NAME 'iscDhcpStartTimeOfState' EQUALITY generalizedTimeMatch DESC 'This is the time of the last state change for a leased address.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.25 - NAME 'dhcpLastTransactionTime' + NAME 'iscDhcpLastTransactionTime' EQUALITY generalizedTimeMatch DESC 'This is the last time a valid DHCP packet was received from the client.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.26 - NAME 'dhcpBootpFlag' + NAME 'iscDhcpBootpFlag' EQUALITY booleanMatch DESC 'This indicates whether the address was assigned via BOOTP.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.27 - NAME 'dhcpDomainName' + NAME 'iscDhcpDomainName' EQUALITY caseIgnoreIA5Match - DESC 'This is the name of the domain sent to the client by the server. It is essentially the same as the value for DHCP option 15 sent to the client, and represents only the domain - not the full FQDN. To obtain the full FQDN assigned to the client you must prepend the "dhcpAssignedHostName" to this value with a ".".' + DESC 'This is the name of the domain sent to the client by the server. It is essentially the same as the value for DHCP option 15 sent to the client, and represents only the domain - not the full FQDN. To obtain the full FQDN assigned to the client you must prepend the "iscDhcpAssignedHostName" to this value with a ".".' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.28 - NAME 'dhcpDnsStatus' + NAME 'iscDhcpDnsStatus' EQUALITY integerMatch DESC 'This indicates the status of updating DNS resource records on behalf of the client by the DHCP server for this address. The value is a 16-bit bitmask.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.29 - NAME 'dhcpRequestedHostName' + NAME 'iscDhcpRequestedHostName' EQUALITY caseIgnoreIA5Match DESC 'This is the hostname that was requested by the client.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.30 - NAME 'dhcpAssignedHostName' + NAME 'iscDhcpAssignedHostName' EQUALITY caseIgnoreIA5Match - DESC 'This is the actual hostname that was assigned to a client. It may not be the name that was requested by the client. The fully qualified domain name can be determined by appending the value of "dhcpDomainName" (with a dot separator) to this name.' + DESC 'This is the actual hostname that was assigned to a client. It may not be the name that was requested by the client. The fully qualified domain name can be determined by appending the value of "iscDhcpDomainName" (with a dot separator) to this name.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.31 - NAME 'dhcpReservedForClient' + NAME 'iscDhcpReservedForClient' EQUALITY distinguishedNameMatch - DESC 'The distinguished name of a "dhcpClient" that an address is reserved for. This may not be the same as the "dhcpAssignedToClient" attribute if the address is being reassigned but the current lease has not yet expired.' + DESC 'The distinguished name of a "iscDhcpClient" that an address is reserved for. This may not be the same as the "iscDhcpAssignedToClient" attribute if the address is being reassigned but the current lease has not yet expired.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.32 - NAME 'dhcpAssignedToClient' + NAME 'iscDhcpAssignedToClient' EQUALITY distinguishedNameMatch - DESC 'This is the distinguished name of a "dhcpClient" that an address is currently assigned to. This attribute is only present in the class when the address is leased.' + DESC 'This is the distinguished name of a "iscDhcpClient" that an address is currently assigned to. This attribute is only present in the class when the address is leased.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.33 - NAME 'dhcpRelayAgentInfo' + NAME 'iscDhcpRelayAgentInfo' EQUALITY octetStringMatch DESC 'If the client request was received via a relay agent, this contains information about the relay agent that was available from the DHCP request. This is a hex-encoded option value.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.34 - NAME 'dhcpHWAddress' + NAME 'iscDhcpHWAddress' EQUALITY caseIgnoreIA5Match DESC 'The clients hardware address that requested this IP address.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.35 - NAME 'dhcpHashBucketAssignment' + NAME 'iscDhcpHashBucketAssignment' EQUALITY octetStringMatch DESC 'HashBucketAssignment bit map for the DHCP Server, as defined in DHC Load Balancing Algorithm [RFC 3074].' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.36 - NAME 'dhcpDelayedServiceParameter' + NAME 'iscDhcpDelayedServiceParameter' EQUALITY integerMatch DESC 'Delay in seconds corresponding to Delayed Service Parameter configuration, as defined in DHC Load Balancing Algorithm [RFC 3074]. ' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.37 - NAME 'dhcpMaxClientLeadTime' + NAME 'iscDhcpMaxClientLeadTime' EQUALITY integerMatch DESC 'Maximum Client Lead Time configuration in seconds, as defined in DHCP Failover Protocol [FAILOVR]' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.38 - NAME 'dhcpFailOverEndpointState' + NAME 'iscDhcpFailOverEndpointState' EQUALITY caseIgnoreIA5Match DESC 'Server (Failover Endpoint) state, as defined in DHCP Failover Protocol [FAILOVR]' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.39 - NAME 'dhcpErrorLog' + NAME 'iscDhcpErrorLog' EQUALITY caseIgnoreIA5Match - DESC 'Generic error log attribute that allows logging error conditions within a dhcpService or a dhcpSubnet, like no IP addresses available for lease.' + DESC 'Generic error log attribute that allows logging error conditions within a iscDhcpService or a iscDhcpSubnet, like no IP addresses available for lease.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.40 - NAME 'dhcpLocatorDN' + NAME 'iscDhcpLocatorDN' EQUALITY distinguishedNameMatch - DESC 'The DN of dhcpLocator object which contain the DNs of all DHCP configuration objects. There will be a single dhcpLocator object in the tree with links to all the DHCP objects in the tree' + DESC 'The DN of iscDhcpLocator object which contain the DNs of all DHCP configuration objects. There will be a single iscDhcpLocator object in the tree with links to all the DHCP objects in the tree' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) attributetype ( 2.16.840.1.113719.1.203.4.41 - NAME 'dhcpKeyAlgorithm' + NAME 'iscDhcpKeyAlgorithm' EQUALITY caseIgnoreIA5Match DESC 'Algorithm to generate TSIG Key' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.42 - NAME 'dhcpKeySecret' + NAME 'iscDhcpKeySecret' EQUALITY octetStringMatch DESC 'Secret to generate TSIG Key' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.43 - NAME 'dhcpDnsZoneServer' + NAME 'iscDhcpDnsZoneServer' EQUALITY caseIgnoreIA5Match DESC 'Master server of the DNS Zone' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.44 - NAME 'dhcpKeyDN' + NAME 'iscDhcpKeyDN' EQUALITY distinguishedNameMatch DESC 'The DNs of TSIG Key to use in secure dynamic updates. In case of locator object, this will be list of TSIG keys. In case of DHCP Service, Shared Network, Subnet and DNS Zone, it will be a single key.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12) attributetype ( 2.16.840.1.113719.1.203.4.45 - NAME 'dhcpZoneDN' + NAME 'iscDhcpZoneDN' EQUALITY distinguishedNameMatch DESC 'The DNs of DNS Zone. In case of locator object, this will be list of DNS Zones in the tree. In case of DHCP Service, Shared Network and Subnet, it will be a single DNS Zone.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12) attributetype ( 2.16.840.1.113719.1.203.4.46 - NAME 'dhcpFailOverPrimaryServer' + NAME 'iscDhcpFailOverPrimaryServer' EQUALITY caseIgnoreIA5Match DESC 'IP address or DNS name of the server playing primary role in DHC Load Balancing and Fail over.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) attributetype ( 2.16.840.1.113719.1.203.4.47 - NAME 'dhcpFailOverSecondaryServer' + NAME 'iscDhcpFailOverSecondaryServer' EQUALITY caseIgnoreIA5Match DESC 'IP address or DNS name of the server playing secondary role in DHC Load Balancing and Fail over.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) attributetype ( 2.16.840.1.113719.1.203.4.48 - NAME 'dhcpFailOverPrimaryPort' + NAME 'iscDhcpFailOverPrimaryPort' EQUALITY integerMatch DESC 'Port on which primary server listens for connections from its fail over peer (secondary server)' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) attributetype ( 2.16.840.1.113719.1.203.4.49 - NAME 'dhcpFailOverSecondaryPort' + NAME 'iscDhcpFailOverSecondaryPort' EQUALITY integerMatch DESC 'Port on which secondary server listens for connections from its fail over peer (primary server)' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) attributetype ( 2.16.840.1.113719.1.203.4.50 - NAME 'dhcpFailOverResponseDelay' + NAME 'iscDhcpFailOverResponseDelay' EQUALITY integerMatch DESC 'Maximum response time in seconds, before Server assumes that connection to fail over peer has failed' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) attributetype ( 2.16.840.1.113719.1.203.4.51 - NAME 'dhcpFailOverUnackedUpdates' + NAME 'iscDhcpFailOverUnackedUpdates' EQUALITY integerMatch DESC 'Number of BNDUPD messages that server can send before it receives BNDACK from its fail over peer' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) attributetype ( 2.16.840.1.113719.1.203.4.52 - NAME 'dhcpFailOverSplit' + NAME 'iscDhcpFailOverSplit' EQUALITY integerMatch DESC 'Split between the primary and secondary servers for fail over purpose' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) attributetype ( 2.16.840.1.113719.1.203.4.53 - NAME 'dhcpFailOverLoadBalanceTime' + NAME 'iscDhcpFailOverLoadBalanceTime' EQUALITY integerMatch DESC 'Cutoff time in seconds, after which load balance is disabled' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) attributetype ( 2.16.840.1.113719.1.203.4.54 - NAME 'dhcpFailOverPeerDN' + NAME 'iscDhcpFailOverPeerDN' EQUALITY distinguishedNameMatch DESC 'The DNs of Fail over peers. In case of locator object, this will be list of fail over peers in the tree. In case of Subnet and pool, it will be a single Fail Over Peer' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) #List of all servers in the tree attributetype ( 2.16.840.1.113719.1.203.4.55 - NAME 'dhcpServerDN' + NAME 'iscDhcpServerDN' EQUALITY distinguishedNameMatch - DESC 'List of all DHCP Servers in the tree. Used by dhcpLocatorObject' + DESC 'List of all DHCP Servers in the tree. Used by iscDhcpLocatorObject' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) attributetype ( 2.16.840.1.113719.1.203.4.56 - NAME 'dhcpComments' + NAME 'iscDhcpComments' EQUALITY caseIgnoreIA5Match DESC 'Generic attribute that allows coments within any DHCP object' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( 2.16.840.1.113719.1.203.4.57 - NAME 'dhcpClientId' + NAME 'iscDhcpClientId' EQUALITY caseIgnoreIA5Match DESC 'client Identifier.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) attributetype ( 2.16.840.1.113719.1.203.4.58 - NAME 'dhcpRange6' + NAME 'iscDhcpRange6' EQUALITY caseIgnoreIA5Match DESC 'The starting & ending IP Addresses in the range (inclusive), separated by a hyphen; if the range only contains one address, then just the address can be specified with no hyphen. Each range is defined as a separate value.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) @@ -349,140 +349,140 @@ # Classes objectclass ( 2.16.840.1.113719.1.203.6.1 - NAME 'dhcpService' + NAME 'iscDhcpService' DESC 'Service object that represents the actual DHCP Service configuration. This is a container object.' SUP top MUST (cn) - MAY ( dhcpPrimaryDN $ dhcpSecondaryDN $ dhcpServerDN $ dhcpSharedNetworkDN $ dhcpSubnetDN $ dhcpGroupDN $ dhcpHostDN $ dhcpClassesDN $ dhcpOptionsDN $ dhcpZoneDN $ dhcpKeyDN $ dhcpFailOverPeerDN $ dhcpStatements $dhcpComments $ dhcpOption) ) + MAY ( iscDhcpPrimaryDN $ iscDhcpSecondaryDN $ iscDhcpServerDN $ iscDhcpSharedNetworkDN $ iscDhcpSubnetDN $ iscDhcpGroupDN $ iscDhcpHostDN $ iscDhcpClassesDN $ iscDhcpOptionsDN $ iscDhcpZoneDN $ iscDhcpKeyDN $ iscDhcpFailOverPeerDN $ iscDhcpStatements $iscDhcpComments $ iscDhcpOption) ) objectclass ( 2.16.840.1.113719.1.203.6.2 - NAME 'dhcpSharedNetwork' + NAME 'iscDhcpSharedNetwork' DESC 'This stores configuration information for a shared network.' SUP top MUST cn - MAY ( dhcpSubnetDN $ dhcpPoolDN $ dhcpOptionsDN $ dhcpZoneDN $ dhcpStatements $dhcpComments $ dhcpOption) X-NDS_CONTAINMENT ('dhcpService' ) ) + MAY ( iscDhcpSubnetDN $ iscDhcpPoolDN $ iscDhcpOptionsDN $ iscDhcpZoneDN $ iscDhcpStatements $iscDhcpComments $ iscDhcpOption) X-NDS_CONTAINMENT ('iscDhcpService' ) ) objectclass ( 2.16.840.1.113719.1.203.6.3 - NAME 'dhcpSubnet' + NAME 'iscDhcpSubnet' DESC 'This class defines a subnet. This is a container object.' SUP top - MUST ( cn $ dhcpNetMask ) - MAY ( dhcpRange $ dhcpPoolDN $ dhcpGroupDN $ dhcpHostDN $ dhcpClassesDN $ dhcpLeasesDN $ dhcpOptionsDN $ dhcpZoneDN $ dhcpKeyDN $ dhcpFailOverPeerDN $ dhcpStatements $ dhcpComments $ dhcpOption ) X-NDS_CONTAINMENT ('dhcpService' 'dhcpSharedNetwork') ) + MUST ( cn $ iscDhcpNetMask ) + MAY ( iscDhcpRange $ iscDhcpPoolDN $ iscDhcpGroupDN $ iscDhcpHostDN $ iscDhcpClassesDN $ iscDhcpLeasesDN $ iscDhcpOptionsDN $ iscDhcpZoneDN $ iscDhcpKeyDN $ iscDhcpFailOverPeerDN $ iscDhcpStatements $ iscDhcpComments $ iscDhcpOption ) X-NDS_CONTAINMENT ('iscDhcpService' 'iscDhcpSharedNetwork') ) objectclass ( 2.16.840.1.113719.1.203.6.4 - NAME 'dhcpPool' + NAME 'iscDhcpPool' DESC 'This stores configuration information about a pool.' SUP top - MUST ( cn $ dhcpRange ) - MAY ( dhcpClassesDN $ dhcpPermitList $ dhcpLeasesDN $ dhcpOptionsDN $ dhcpZoneDN $dhcpKeyDN $ dhcpStatements $ dhcpComments $ dhcpOption ) - X-NDS_CONTAINMENT ('dhcpSubnet' 'dhcpSharedNetwork') ) + MUST ( cn $ iscDhcpRange ) + MAY ( iscDhcpClassesDN $ iscDhcpPermitList $ iscDhcpLeasesDN $ iscDhcpOptionsDN $ iscDhcpZoneDN $iscDhcpKeyDN $ iscDhcpStatements $ iscDhcpComments $ iscDhcpOption ) + X-NDS_CONTAINMENT ('iscDhcpSubnet' 'iscDhcpSharedNetwork') ) objectclass ( 2.16.840.1.113719.1.203.6.5 - NAME 'dhcpGroup' + NAME 'iscDhcpGroup' DESC 'Group object that lists host DNs and parameters. This is a container object.' SUP top MUST cn - MAY ( dhcpHostDN $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption ) - X-NDS_CONTAINMENT ('dhcpSubnet' 'dhcpService' ) ) + MAY ( iscDhcpHostDN $ iscDhcpOptionsDN $ iscDhcpStatements $ iscDhcpComments $ iscDhcpOption ) + X-NDS_CONTAINMENT ('iscDhcpSubnet' 'iscDhcpService' ) ) objectclass ( 2.16.840.1.113719.1.203.6.6 - NAME 'dhcpHost' + NAME 'iscDhcpHost' DESC 'This represents information about a particular client' SUP top MUST cn - MAY (dhcpLeaseDN $ dhcpHWAddress $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption $ dhcpClientId) - X-NDS_CONTAINMENT ('dhcpService' 'dhcpSubnet' 'dhcpGroup') ) + MAY (iscDhcpLeaseDN $ iscDhcpHWAddress $ iscDhcpOptionsDN $ iscDhcpStatements $ iscDhcpComments $ iscDhcpOption $ iscDhcpClientId) + X-NDS_CONTAINMENT ('iscDhcpService' 'iscDhcpSubnet' 'iscDhcpGroup') ) objectclass ( 2.16.840.1.113719.1.203.6.7 - NAME 'dhcpClass' + NAME 'iscDhcpClass' DESC 'Represents information about a collection of related clients.' SUP top MUST cn - MAY (dhcpSubClassesDN $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption) - X-NDS_CONTAINMENT ('dhcpService' 'dhcpSubnet' ) ) + MAY (iscDhcpSubClassesDN $ iscDhcpOptionsDN $ iscDhcpStatements $ iscDhcpComments $ iscDhcpOption) + X-NDS_CONTAINMENT ('iscDhcpService' 'iscDhcpSubnet' ) ) objectclass ( 2.16.840.1.113719.1.203.6.8 - NAME 'dhcpSubClass' + NAME 'iscDhcpSubClass' DESC 'Represents information about a collection of related classes.' SUP top MUST cn - MAY (dhcpClassData $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption) X-NDS_CONTAINMENT 'dhcpClass' ) + MAY (iscDhcpClassData $ iscDhcpOptionsDN $ iscDhcpStatements $ iscDhcpComments $ iscDhcpOption) X-NDS_CONTAINMENT 'iscDhcpClass' ) objectclass ( 2.16.840.1.113719.1.203.6.9 - NAME 'dhcpOptions' + NAME 'iscDhcpOptions' DESC 'Represents information about a collection of options defined.' SUP top AUXILIARY MUST cn - MAY ( dhcpOption $ dhcpComments ) - X-NDS_CONTAINMENT ('dhcpService' 'dhcpSharedNetwork' 'dhcpSubnet' 'dhcpPool' 'dhcpGroup' 'dhcpHost' 'dhcpClass' ) ) + MAY ( iscDhcpOption $ iscDhcpComments ) + X-NDS_CONTAINMENT ('iscDhcpService' 'iscDhcpSharedNetwork' 'iscDhcpSubnet' 'iscDhcpPool' 'iscDhcpGroup' 'iscDhcpHost' 'iscDhcpClass' ) ) objectclass ( 2.16.840.1.113719.1.203.6.10 - NAME 'dhcpLeases' + NAME 'iscDhcpLeases' DESC 'This class represents an IP Address, which may or may not have been leased.' SUP top - MUST ( cn $ dhcpAddressState ) - MAY ( dhcpExpirationTime $ dhcpStartTimeOfState $ dhcpLastTransactionTime $ dhcpBootpFlag $ dhcpDomainName $ dhcpDnsStatus $ dhcpRequestedHostName $ dhcpAssignedHostName $ dhcpReservedForClient $ dhcpAssignedToClient $ dhcpRelayAgentInfo $ dhcpHWAddress ) - X-NDS_CONTAINMENT ( 'dhcpService' 'dhcpSubnet' 'dhcpPool') ) + MUST ( cn $ iscDhcpAddressState ) + MAY ( iscDhcpExpirationTime $ iscDhcpStartTimeOfState $ iscDhcpLastTransactionTime $ iscDhcpBootpFlag $ iscDhcpDomainName $ iscDhcpDnsStatus $ iscDhcpRequestedHostName $ iscDhcpAssignedHostName $ iscDhcpReservedForClient $ iscDhcpAssignedToClient $ iscDhcpRelayAgentInfo $ iscDhcpHWAddress ) + X-NDS_CONTAINMENT ( 'iscDhcpService' 'iscDhcpSubnet' 'iscDhcpPool') ) objectclass ( 2.16.840.1.113719.1.203.6.11 - NAME 'dhcpLog' + NAME 'iscDhcpLog' DESC 'This is the object that holds past information about the IP address. The cn is the time/date stamp when the address was assigned or released, the address state at the time, if the address was assigned or released.' SUP top MUST ( cn ) - MAY ( dhcpAddressState $ dhcpExpirationTime $ dhcpStartTimeOfState $ dhcpLastTransactionTime $ dhcpBootpFlag $ dhcpDomainName $ dhcpDnsStatus $ dhcpRequestedHostName $ dhcpAssignedHostName $ dhcpReservedForClient $ dhcpAssignedToClient $ dhcpRelayAgentInfo $ dhcpHWAddress $ dhcpErrorLog) - X-NDS_CONTAINMENT ('dhcpLeases' 'dhcpPool' 'dhcpSubnet' 'dhcpSharedNetwork' 'dhcpService' ) ) + MAY ( iscDhcpAddressState $ iscDhcpExpirationTime $ iscDhcpStartTimeOfState $ iscDhcpLastTransactionTime $ iscDhcpBootpFlag $ iscDhcpDomainName $ iscDhcpDnsStatus $ iscDhcpRequestedHostName $ iscDhcpAssignedHostName $ iscDhcpReservedForClient $ iscDhcpAssignedToClient $ iscDhcpRelayAgentInfo $ iscDhcpHWAddress $ iscDhcpErrorLog) + X-NDS_CONTAINMENT ('iscDhcpLeases' 'iscDhcpPool' 'iscDhcpSubnet' 'iscDhcpSharedNetwork' 'iscDhcpService' ) ) objectclass ( 2.16.840.1.113719.1.203.6.12 - NAME 'dhcpServer' + NAME 'iscDhcpServer' DESC 'DHCP Server Object' SUP top MUST ( cn ) - MAY (dhcpServiceDN $ dhcpLocatorDN $ dhcpVersion $ dhcpImplementation $ dhcpHashBucketAssignment $ dhcpDelayedServiceParameter $ dhcpMaxClientLeadTime $ dhcpFailOverEndpointState $ dhcpStatements $ dhcpComments $ dhcpOption) + MAY (iscDhcpServiceDN $ iscDhcpLocatorDN $ iscDhcpVersion $ iscDhcpImplementation $ iscDhcpHashBucketAssignment $ iscDhcpDelayedServiceParameter $ iscDhcpMaxClientLeadTime $ iscDhcpFailOverEndpointState $ iscDhcpStatements $ iscDhcpComments $ iscDhcpOption) X-NDS_CONTAINMENT ('organization' 'organizationalunit' 'domain') ) objectclass ( 2.16.840.1.113719.1.203.6.13 - NAME 'dhcpTSigKey' + NAME 'iscDhcpTSigKey' DESC 'TSIG key for secure dynamic updates' SUP top - MUST (cn $ dhcpKeyAlgorithm $ dhcpKeySecret ) - MAY ( dhcpComments ) - X-NDS_CONTAINMENT ('dhcpService' 'dhcpSharedNetwork' 'dhcpSubnet') ) + MUST (cn $ iscDhcpKeyAlgorithm $ iscDhcpKeySecret ) + MAY ( iscDhcpComments ) + X-NDS_CONTAINMENT ('iscDhcpService' 'iscDhcpSharedNetwork' 'iscDhcpSubnet') ) objectclass ( 2.16.840.1.113719.1.203.6.14 - NAME 'dhcpDnsZone' + NAME 'iscDhcpDnsZone' DESC 'DNS Zone for updating leases' SUP top - MUST (cn $ dhcpDnsZoneServer ) - MAY (dhcpKeyDN $ dhcpComments) - X-NDS_CONTAINMENT ('dhcpService' 'dhcpSharedNetwork' 'dhcpSubnet') ) + MUST (cn $ iscDhcpDnsZoneServer ) + MAY (iscDhcpKeyDN $ iscDhcpComments) + X-NDS_CONTAINMENT ('iscDhcpService' 'iscDhcpSharedNetwork' 'iscDhcpSubnet') ) objectclass ( 2.16.840.1.113719.1.203.6.15 - NAME 'dhcpFailOverPeer' + NAME 'iscDhcpFailOverPeer' DESC 'This class defines the Fail over peer' SUP top - MUST ( cn $ dhcpFailOverPrimaryServer $ dhcpFailOverSecondaryServer $ dhcpFailoverPrimaryPort $ dhcpFailOverSecondaryPort) MAY (dhcpFailOverResponseDelay $ dhcpFailOverUnackedUpdates $ dhcpMaxClientLeadTime $ dhcpFailOverSplit $ dhcpHashBucketAssignment $ dhcpFailOverLoadBalanceTime $ dhcpComments ) - X-NDS_CONTAINMENT ('dhcpService' 'dhcpSharedNetwork' 'dhcpSubnet') ) + MUST ( cn $ iscDhcpFailOverPrimaryServer $ iscDhcpFailOverSecondaryServer $ iscDhcpFailoverPrimaryPort $ iscDhcpFailOverSecondaryPort) MAY (iscDhcpFailOverResponseDelay $ iscDhcpFailOverUnackedUpdates $ iscDhcpMaxClientLeadTime $ iscDhcpFailOverSplit $ iscDhcpHashBucketAssignment $ iscDhcpFailOverLoadBalanceTime $ iscDhcpComments ) + X-NDS_CONTAINMENT ('iscDhcpService' 'iscDhcpSharedNetwork' 'iscDhcpSubnet') ) objectclass ( 2.16.840.1.113719.1.203.6.16 - NAME 'dhcpLocator' - DESC 'Locator object for DHCP configuration in the tree. There will be a single dhcpLocator object in the tree with links to all the DHCP objects in the tree' + NAME 'iscDhcpLocator' + DESC 'Locator object for DHCP configuration in the tree. There will be a single iscDhcpLocator object in the tree with links to all the DHCP objects in the tree' SUP top MUST ( cn ) - MAY ( dhcpServiceDN $dhcpServerDN $ dhcpSharedNetworkDN $ dhcpSubnetDN $ dhcpPoolDN $ dhcpGroupDN $ dhcpHostDN $ dhcpClassesDN $ dhcpKeyDN $ dhcpZoneDN $ dhcpFailOverPeerDN $ dhcpOption $ dhcpComments) + MAY ( iscDhcpServiceDN $iscDhcpServerDN $ iscDhcpSharedNetworkDN $ iscDhcpSubnetDN $ iscDhcpPoolDN $ iscDhcpGroupDN $ iscDhcpHostDN $ iscDhcpClassesDN $ iscDhcpKeyDN $ iscDhcpZoneDN $ iscDhcpFailOverPeerDN $ iscDhcpOption $ iscDhcpComments) X-NDS_CONTAINMENT ('organization' 'organizationalunit' 'domain') ) objectclass ( 2.16.840.1.113719.1.203.6.17 - NAME 'dhcpSubnet6' + NAME 'iscDhcpSubnet6' DESC 'This class defines an IPv6 subnet. This is a container object.' SUP top MUST ( cn ) - MAY ( dhcpRange6 $ dhcpPoolDN $ dhcpGroupDN $ dhcpHostDN $ dhcpClassesDN $ dhcpLeasesDN $ dhcpOptionsDN $ dhcpZoneDN $ dhcpKeyDN $ dhcpFailOverPeerDN $ dhcpStatements $ dhcpComments $ dhcpOption $ dhcpPermitList ) X-NDS_CONTAINMENT ('dhcpService' 'dhcpSharedNetwork') ) + MAY ( iscDhcpRange6 $ iscDhcpPoolDN $ iscDhcpGroupDN $ iscDhcpHostDN $ iscDhcpClassesDN $ iscDhcpLeasesDN $ iscDhcpOptionsDN $ iscDhcpZoneDN $ iscDhcpKeyDN $ iscDhcpFailOverPeerDN $ iscDhcpStatements $ iscDhcpComments $ iscDhcpOption $ iscDhcpPermitList ) X-NDS_CONTAINMENT ('iscDhcpService' 'iscDhcpSharedNetwork') ) objectclass ( 2.16.840.1.113719.1.203.6.18 - NAME 'dhcpPool6' + NAME 'iscDhcpPool6' DESC 'This stores configuration information about an IPv6 pool.' SUP top - MUST ( cn $ dhcpRange6 ) - MAY ( dhcpClassesDN $ dhcpPermitList $ dhcpLeasesDN $ dhcpOptionsDN $ dhcpZoneDN $dhcpKeyDN $ dhcpStatements $ dhcpComments $ dhcpOption ) - X-NDS_CONTAINMENT ('dhcpSubnet6' 'dhcpSharedNetwork') ) + MUST ( cn $ iscDhcpRange6 ) + MAY ( iscDhcpClassesDN $ iscDhcpPermitList $ iscDhcpLeasesDN $ iscDhcpOptionsDN $ iscDhcpZoneDN $iscDhcpKeyDN $ iscDhcpStatements $ iscDhcpComments $ iscDhcpOption ) + X-NDS_CONTAINMENT ('iscDhcpSubnet6' 'iscDhcpSharedNetwork') )
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor