dhcpctl and omapi

jgomez at infoweapons.com jgomez at infoweapons.com
Tue Mar 27 09:12:34 UTC 2007


There are what we call Local and Remote objects. Local objects are ones
created in omshell with the "new" command. Remote objects are ones on the
server: leases, hosts, and groups the DHCP server knows about.Objects
created via OMAPI are saved into the dhcpd.leases file and not in the
dhcpd.conf. Your dhcpd.leases file would then have an entry like this in
it:

       host my-host {
         dynamic;
         hardware ethernet 00:80:c7:84:b1:94;
         fixed-address 10.0.0.25;
       }

       The  dynamic;  line is use to denote that this host entry did not
come from dhcpd.conf, but was created dynamically via OMAPI.


> it seems that the omshell can update the dhcp.lease interactively.
> but , how can we update the dhcpd.conf  in the same way as omshell ?
>
>
> -----Original Message-----
> From: dhcp-users-bounce at isc.org [mailto:dhcp-users-bounce at isc.org]On
> Behalf Of jgomez at infoweapons.com
> Sent: Monday, March 26, 2007 11:54 AM
> To: dhcp-users at isc.org
> Subject: dhcpctl and omapi
>
>
>>Anyone knows how to use  dhcpctl or omapi   to add or remove the hardware
>>list at dhcpd.conf  ?
>
> The OMAPI Command Shell, omshell, provides an interactive way to connect
> to, query, and possibly change, the ISC DHCP Server's state via OMAPI, the
> Object Management API. By using OMAPI and omshell, you do not have to
> stop, make changes, and then restart the DHCP server, but can make the
> changes while the server is running. Omshell provides a way of accessing
> OMAPI.
>
> Omshell deals with local and remote objects. Local objects are ones
> created in omshell with the new command. Remote objects are ones on the
> server: leases, hosts, and groups that the DHCP server knows about. Local
> and remote objects are associated together to enable viewing and
> modification of object attributes. Also, new remote objects can be created
> to match local objects.
>
> omshell  is  started  from  the command line.  Once omshell is started,
> there are several commands that can be issued:
>
>        server address
>             where address is the IP address of the DHCP server to connect
> to.
>             If  this is not specified, the default server is 127.0.0.1
> (local host).
>        port number
>             where number is the port that OMAPI listens on.  By default,
> this is 7911.
>
>        key name secret
> This  specifies  the  TSIG  key  to  use to authenticate the OMAPI
> transactions.  name is the name of a  key  defined  in  dhcpd.conf with
> the omapi-key statement.  The secret is the secret generated from
> dnssec-keygen or another key generation program.
>
>        connect
> This starts the OMAPI connection to the server as specified by the server
> statement.
>
> Note: The four commands mentioned above namely, server address, port
> number, key name secret, and connect is use in opening a connection
>
>
>  Creating local objects
> Any object defined in OMAPI can be created, queried, and/or modified. The
> object types available to OMAPI are defined in dhcpd(8) and dhclient(8).
> When using omshell, objects are first defined locally, manipulated as
> desired, and then associated with an object on the server. Only one object
> can be manipulated at a time. To create a local object, use
>        new object-type
>             object-type is one of group, host, or lease.
>
>        At this point, you now have an object that you can set  properties
> on.
>        For example, if a new lease object was created with new lease, any
> of a
>        Lease's attributes can be set as follows:
>
>        set attribute-name = value
>             Attribute names are defined in dhcpd(8) and  dhclient(8).
> Values
>             should  be  quoted  if  they are strings.  So, to set a
> lease's IP
>             address, you would do the following:
>
> 	set ip-address = 192.168.4.50
>
> Associating Local and Remote Objects
> The information about this lease can be queried from the server by
> open
> Now, the local lease object being created and set the IP address for is
> associated with the corresponding lease object on the DHCP server. All of
> the lease attributes from the DHCP server are now also the attributes on
> the local object, and will be shown in omshell.
>
> Viewing a Remote Object
>
>        To query a lease of address 128.1.2.164, and find out its
> attributes,
>        after connecting to the server, take the following steps:
>
>        new lease
>
>        This creates a new local lease object.
>
>        set ip-address = 128.1.2.164
>
>        This sets the local object's IP address to be 128.1.2.164
>
>        open
>
>        Now,  if  a  lease  with  that  IP address exists, you will see all
> the
>        information the DHCP server has about that particular lease.  Any
> data
>        that  isn't readily printable text will show up in colon-separated
> hexa-
>        decimal values.  In this example, output back from the server for
> the
>        entire transaction might look like this:
>
>        > new "lease"
>        obj: lease
>        > set ip-address = 128.1.2.164
>        obj: lease
>        ip-address = c0:a8:04:32
>        > open
>        obj: lease
>        ip-address = c0:a8:04:32
>        state = 00:00:00:02
>        dhcp-client-identifier = 01:00:10:a4:b2:36:2c
>        client-hostname = "client1"
>        As  you  can see here, the IP address is represented in
> hexadecimal, as
>        are the starting and ending times of the lease.
>
>
> Creating a Remote Object
>
>        Attributes of remote objects are updated by using the  set  command
>  as
>        before,  and  then issuing an update command.  The set command sets
> the
>        attributes on the current local object, and the update  command
> pushes
>        those changes out to the server.
>
>        Continuing with the previous example, if a set client-hostname = "
>        Jonna" was issued, followed by an update command, the output would
>        look about like this:
>
>        > set client-hostname ="Jonna"
>        obj: lease
>        ip-address = c0:a8:04:32
>        state = 00:00:00:02
>        dhcp-client-identifier = a4:b2:36:2c:01:00:10
>        client-hostname = "Jonna"
>        subnet = 00:00:00:06
>        pool = 00:00:00:07
>        hardware-address = 00:10:a4:b2:36:2c
>        hardware-type = 00:00:00:01
>        ends = dc:d9:0d:3b
>        starts = 5c:9f:04:3b
>        tstp = 00:00:00:00
>        tsfp = 00:00:00:00
>        cltt = 00:00:00:00
>        > update
>        obj: lease
>        ip-address = c0:a8:04:32
>        state = 00:00:00:02
>        dhcp-client-identifier = a4:b2:36:2c:01:00:10
>        client-hostname = "Jonna"
>        subnet = 00:00:00:06
>        pool = 00:00:00:07
>        hardware-address = 00:10:a4:b2:36:2c
>        hardware-type = 00:00:00:01
>        ends = dc:d9:0d:3b
>        starts = 5c:9f:04:3b
>        tstp = 00:00:00:00
>        tsfp = 00:00:00:00
>        cltt = 00:00:00:00
>
>
> New Remote Objects
>
>        New  remote  objects  are  created  much  in the same way that
> existing
>        server objects are modified.  Create a local object using new, set
> the
>        attributes  as you'd wish them to be, and then create the remote
> object
>        with the same properties by using  create.
>
>        Now a new object exists on the DHCP server which matches the
> properties
>        that  you  gave your local object.  Objects created via OMAPI are
> saved
>        into the dhcpd.leases file.
>
>        name = "client"
>        hardware-address = 00:80:c7:84:b1:94
>        > set hardware-type = 1
>        obj: host
>        name = "client"
>        hardware-address = 00:80:c7:84:b1:94
>        hardware-type = 1
>        > set ip-address = 128.1.2.20
>        obj: host
>        name = "client"
>        hardware-address = 00:80:c7:84:b1:94
>        hardware-type = 1
>        ip-address = c0:a8:04:28
>        > create
>        obj: host
>        name = "client"
>        hardware-address = 00:80:c7:84:b1:94
>        hardware-type = 00:00:00:01
>        ip-address = c0:a8:04:28
>        >
>
>        Your dhcpd.leases file would then have an entry like this in it:
>
>        host client {
>          dynamic;
>          hardware ethernet 00:80:c7:84:b1:94;
>          fixed-address 128.1.2.20;
>        }
>
>        The  dynamic;  line is to denote that this host entry did not come
> from
>        dhcpd.conf, but was created dynamically via OMAPI.
>
>
>
>
> Resetting Attributes
>
>        If you want to remove an attribute from an object, you can do this
> with
>        the unset command.   Once you have unset an attribute, you must use
> the
>        update command to update the remote object.  So,  if  the  host
> "some-
>        host"  from the previous example will not have a static IP address
> any-
>        more, the commands in omshell would look like this:
>
>        obj: host
>        name = "client"
>        hardware-address = 00:80:c7:84:b1:94
>        hardware-type = 00:00:00:01
>        ip-address = c0:a8:04:28
>        > unset ip-address
>        obj: host
>        name = "client"
>        hardware-address = 00:80:c7:84:b1:94
>        hardware-type = 00:00:00:01
>        ip-address = <null>
>        >
>
>
> Refreshing Objects
>
>        A local object may be refreshed with the current remote object
> proper-
>        ties using the refresh command.  This is useful for object that
> change
>        periodically, like leases, to see if  they  have  been  updated.
> This
>
>        name = "client"
>        hardware-address = 00:80:c7:84:b1:94
>        hardware-type = 00:00:00:01
>        ip-address = c0:a8:04:28
>        > remove
>        obj: <null>
>        >
>
>
>
>
>
> --------
> This email and/or attachments are confidential and may also be
> legally privileged. If you are not the intended recipient, you are
> hereby notified, that any review, dissemination, distribution or
> copying of this email and/or attachments is strictly prohibited.
> Please notify security at infoweapons.com immediately by email and
> delete this message and all its attachments. Thank you.
>
>
>
>
>



--------
This email and/or attachments are confidential and may also be
legally privileged. If you are not the intended recipient, you are
hereby notified, that any review, dissemination, distribution or
copying of this email and/or attachments is strictly prohibited.
Please notify security at infoweapons.com immediately by email and
delete this message and all its attachments. Thank you.



More information about the dhcp-users mailing list