LDAP
How Devices Are Defined
The heart of LanWarden is based around the 'lanwardenHost' LDAP objectClass which is as follows:
objectclass ( 1.3.6.1.4.1.26371.32768.2.10
NAME 'lanwardenHost'
SUP ( device $ dhcpHost ) STRUCTURAL
MUST ( owner $ ou $ o $ l $
dhcpHWAddress $
lanwardenHostAuthenticateMethod $
lanwardenHostRegisteredTime $
lanwardenHostRegisteredTC $
lanwardenHostState )
MAY ( serialNumber $ description $
dhcpStatements $
userCertificate $
lanwardenHostNotes $
lanwardenHostRegisteredBy ) )
From this we see a LanWarden host object can look like (only the attributes used by LanWarden are shown, you can use the other optional attributes from the object classes 'device' and 'dhcpHost'):
dn: cn=001122334455,ou=Hosts,ou=LanWarden,dc=example,dc=com objectClass: top objectClass: device objectClass: dhcpHost objectClass: lanwardenHost cn: 00122334455 [r|m] owner: dn of user/group who is responsible for the device (typically single-value'd) [r|m] ou: free text field [r|m] o: free text field [r|m] l: free text field [o|m] serialNumber: free text field [o|m] description: free text field [r|s] dhcpHWAddress: ethernet <mac-address matching 'cn' but with ':' seperators> [o|m] dhcpStatements: free text field that aheres to the DHCP configuration syntax [r|s] lanwardenHostAuthenticateMethod: (mac|x509|none) [r|s] lanwardenHostRegisteredTime: YYYYMMDDHHMMSSZ [r|m] lanwardenHostRegisteredTC: list of keywords representing agreed terms and conditions [r|s] lanwardenHostState: (enable|disable) [o|m] lanwardenHostNotes: YYYYMMDDHHMMSSZ - type - free text field [o|s] lanwardenHostRegisteredBy: if the machine was registered on the owner's behalf, dn of the registrar [o|m] userCertificate: if 'x509' authentication, certificate is stored here, for reference only
All fields are human readable (and amendable) with the obvious exception of 'userCertificate'. The prepending of the 'o', 'r', 's' and 'm' indicate if the attribute is optional, required, single-valued or multi-valued respectively. All times are stored in GMT/UTC and returned by the Net::LanWarden module as so, it is up to the application to convert it to localtime.
There is no reason why you cannot manually add your own dhcpStatements and dhcpOption attributes too; they are preserved by the Net::LanWarden perl module.
How Network's Are Defined
The object class for network definitions in LanWarden are is:
objectclass ( 1.3.6.1.4.1.26371.32768.2.20
NAME 'lanwardenNetwork'
SUP top AUXILIARY
MUST ( ou $ o )
MAY description $ member )
An example is:
dn: cn=staff,ou=Networks,ou=LanWarden,dc=example,dc=com objectClass: top objectClass: dhcpService objectClass: lanwardenNetwork cn: staff o: DEFAULT ou: 1234 member: cn=user123,ou=People,dc=example,dc=com member: cn=001122334455,ou=Hosts,ou=LanWarden,dc=example,dc=com [r|s] o: VLAN domain of network (like a VTP domain) - unused [r|s] ou: VLAN number ID of network [o|m] description: just a possibly helpful description for the network [o|m] member: cn of user who is permitted in this network [o|m] member: dn of workstation or user that is permitted in this network
Off this object class you branch off apprioate 'dhcpSharedNetwork', 'dhcpSubnet' and 'dhcpPool' classes for zones, subnets and pools respectively.
