Re: DHCP server command and control
Erikas Aras Napjus <erikas+@cmu.edu> Wed, 07 August 1996 22:50 UTC
Received: from ietf.org by ietf.org id aa24177; 7 Aug 96 18:50 EDT
Received: from cnri by ietf.org id aa24172; 7 Aug 96 18:50 EDT
Received: from reef.bucknell.edu by CNRI.Reston.VA.US id aa17114;
7 Aug 96 18:50 EDT
Received: from localhost by reef.bucknell.edu with SMTP
(5.65/IDA-1.2.8) id AA20284; Wed, 7 Aug 1996 18:42:33 -0400
Date: Wed, 7 Aug 1996 18:42:33 -0400
Message-Id: <Im2FFju00UM1JJnZZ3@andrew.cmu.edu>
Errors-To: droms@bucknell.edu
Reply-To: dhcp-v4@bucknell.edu
Originator: dhcp-v4@bucknell.edu
X-Orig-Sender: dhcp-v4@bucknell.edu
Precedence: bulk
Sender: ietf-archive-request@ietf.org
From: Erikas Aras Napjus <erikas+@cmu.edu>
To: Multiple recipients of list <dhcp-v4@bucknell.edu>
Subject: Re: DHCP server command and control
X-Listprocessor-Version: 6.0c -- ListProcessor by Anastasios Kotsikonas
X-Comment: Discussion of DHCP for IPv4
I don't know exactly why my address isn't appearing on postings. It's erikas@cmu.edu. You might also want to send more general mail to bootp@andrew.cmu.edu since it gets archived and read by my (limited) development group. The DHCP MIB implemented for our DHCP server currently uses space in the enterprises/cmu part of the tree for lack of any place better. I helped Chris Davis with some of the initial planning, but most of this is his work. He has now gone off to (evil) industry, so I'm covering basics until we can get a new systems programmer up to speed on the issues. This MIB is by no means comprehensive, but it's the basic stuff that we wanted to see available for debugging and monitoring. We also gave some thought to eventually proposing this as a means of server-to-server communications for DHCP, but never specifically headed in that direction. About the only real localized hack I know of is the "unknown" table. We have a working implementation of this with a few remaining bugs. Here's the most recent version of the MIB with limited comments: cmu OBJECT IDENTIFIER ::= { enterprises 3 } systems OBJECT IDENTIFIER ::= { cmu 1 } mibs OBJECT IDENTIFIER ::= { cmu 2 } cmuDHCPserverMib OBJECT IDENTIFIER ::= { mibs 3 } stats OBJECT IDENTIFIER ::= { cmuDHCPserverMib 1 } configure OBJECT IDENTIFIER ::= { cmuDHCPserverMib 2 } bindTable OBJECT IDENTIFIER ::= { cmuDHCPserverMib 3 } lastbindTable OBJECT IDENTIFIER ::= { cmuDHCPserverMib 4 } dynamic OBJECT IDENTIFIER ::= { cmuDHCPserverMib 5 } network OBJECT IDENTIFIER ::= { dynamic 1 } gateway OBJECT IDENTIFIER ::= { dynamic 2 } unknownTable OBJECT IDENTIFIER ::= { cmuDHCPserverMib 12 } uptime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory ::= { stats 1 } verison OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory ::= { stats 2} -- Last time the bootptab file was read lasttabread OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { stats 3 } -- Last time the configuration file was read lastconfigread OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { stats 4 } -- Time scheduled to recollect expired bindings nextgarbagecollect OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { stats 5 } -- The folling are messages sent and received by the DHCP server discovers OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { stats 6 } offers OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { stats 7 } requests OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { stats 8 } declines OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { stats 9 } acks OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { stats 10 } nacks OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { stats 11 } releases OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { stats 12 } informs OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { stats 13 } bootprequests OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { stats 14 } bootpreplys OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { stats 15 } activeleases OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { stats 16 } expired OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { stats 17 } reclaimeddynamic OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { stats 18 } command OBJECT-TYPE SYNTAX INTEGER { readtab(1), readconf(2), flush(3) garbagecollect(4) } ACCESS write-only STATUS mandatory ::= { configure 1 } tabfile OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write STATUS mandatory ::= { configure 2 } conffile OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write STATUS mandatory ::= { configure 3 } gcinterval OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory ::= { configure 4 } flushinterval OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory ::= { configure 5 } flushitems OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory ::= { configure 6 } -- Table of non-expired non-infinite bindings bindTable OBJECT-TYPE SYNTAX SEQUENCE OF bindEntry ACCESS read-only STATUS mandatory ::= { cmuDHCPserverMib 3 } bindEntry OBJECT-TYPE SYNTAX bindEntry ACCESS read-only STATUS mandatory ::= { bindTable 1} bindEntry ::= SEQUENCE { clientid OCTECT STRING, bindaddress IpAddress, bindexpire INTEGER, bindcode INTEGER } clientid OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory ::= { bindEntry 1 } bindaddress OBJECT-TYPE SYNTAX IpAddress ACCESS read-only STATUS mandatory ::= { bindEntry 2 } bindexpire OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { bindEntry 3 } bindcode OBJECT-TYPE SYNTAX INTEGER { reserverd(1), -- Address is reserved for client dhcp(2), -- Dynamically assigned via DHCP bootp(3), -- Dynamically assigned via BOOTP roaming(3), -- Dynamically assigned via BOOTP synch (4) -- Binding obtained via synchronization } ACCESS read-only STATUS mandatory ::= { bindEntry 4 } -- Bindings which may or may not have expired lastbindTable OBJECT-TYPE SYNTAX SEQUENCE OF lastbindEntry ACCESS read-only STATUS mandatory ::= { cmuDHCPserverMib 4 } lastbindEntry OBJECT-TYPE SYNTAX lastbindEntry ACCESS read-only STATUS mandatory ::= { lastbindTable 1} lastbindEntry ::= SEQUENCE { clientid OCTECT STRING, bindaddress IpAddress, hwaddress OCTECT STRING, vendorid OCTECT STRING, class OCTECT STRING, replys INTEGER, lasttouched INTEGER, bindexpire INTEGER, misc OCTET STRING } clientid OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory ::= { lastbindEntry 1 } bindaddress OBJECT-TYPE SYNTAX IpAddress ACCESS read-only STATUS mandatory ::= { lastbindEntry 2 } hwaddress OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory ::= { lastbindEntry 3 } vendorid OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory ::= { lastbindEntry 4 } class OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory ::= { lastbindEntry 5 } replys OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { lastbindEntry 6 } lasttouched OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { lastbindEntry 7 } bindexpire OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { lastbindEntry 8 } misc OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-only STATUS mandatory ::= { lastbindEntry 9 } networkTable OBJECT-TYPE SYNTAX SEQUENCE OF networkEntry ACCESS read-only STATUS mandatory ::= { dynamic 1 } networkEntry OBJECT-TYPE SYNTAX networkEntry ACCESS read-only STATUS mandatory ::= { networkTable 1} networkEntry ::= SEQUENCE { name OCTECT STRING, network IpAddress, mask OCTECT STRING, code INTEGER, free INTEGER, total INTEGER } name OBJECT-TYPE SYNTAX OCTET-STRING ACCESS read-write STATUS mandatory ::= { networkEntry 1 } network OBJECT-TYPE SYNTAX IpAddress ACCESS read-write STATUS mandatory ::= { networkEntry 2 } mask OBJECT-TYPE SYNTAX IpAddress ACCESS read-write STATUS mandatory ::= { networkEntry 3 } code OBJECT-TYPE SYNTAX INTEGER { dhcp(1), bootp(2), roaming(3), any(127) } ACCESS read-write STATUS mandatory ::= { networkEntry 4 } free OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory ::= { networkEntry 5 } total OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory ::= { networkEntry 6 } -- Table of unknown hardware addresses unknownTable OBJECT-TYPE SYNTAX SEQUENCE OF unknownEntry ACCESS read-only STATUS mandatory ::= { cmuDHCPserverMib 12 } unknownEntry OBJECT-TYPE SYNTAX bindEntry ACCESS read-only STATUS mandatory ::= { unknownTable 1} unknownEntry ::= SEQUENCE { hwaddress OCTECT STRING, htype INTEGER, hlen INTEGER, lastseen INTEGER, relayagent IpAddress, fromip INTEGER, } hwaddress OBJECT-TYPE SYNTAX OCTECT-STRING ACCESS read-only STATUS mandatory ::= { unknownEntry 1} htype OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { unknownEntry 2} hlen OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { unknownEntry 3} lastseen OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory ::= { unknownEntry 4} relayagent OBJECT-TYPE SYNTAX IpAddress ACCESS read-only STATUS mandatory ::= { unknownEntry 5} fromip OBJECT-TYPE SYNTAX IpAddress ACCESS read-only STATUS mandatory ::= { unknownEntry 6}
- DHCP server command and control Hibbs, R Barr (rbhibbs)
- Re: DHCP server command and control Erikas Aras Napjus
- Re: DHCP server command and control Stephen Heilbronner
- Re: DHCP server command and control Hibbs, R Barr (rbhibbs)
- Re: DHCP server command and control Erikas Aras Napjus