draft-ietf-dhc-userclass-03.txt | draft-ietf-dhc-userclass-04.txt | |||
---|---|---|---|---|
Internet Engineering Task Force Glenn Stump, IBM | ||||
Network Working Group Glenn Stump, IBM | ||||
INTERNET DRAFT Ralph Droms, Bucknell University | INTERNET DRAFT Ralph Droms, Bucknell University | |||
Obsoletes: draft-ietf-dhc-userclass-02.txt November 1998 | Date: October 1999 Ye Gu, Ramesh Vyaghrapuri, | |||
Expires May 1999 | Expires: April 2000 Ann Demirtjis, Microsoft | |||
Burcak Beser, 3Com | ||||
Jerome Privat, BT | ||||
The User Class Option for DHCP | The User Class Option for DHCP | |||
<draft-ietf-dhc-userclass-03.txt> | <draft-ietf-dhc-userclass-04.txt> | |||
Status of this Memo | Status of this Memo | |||
This document is an Internet-Draft. Internet-Drafts are working | The document is an Internet-Draft and is in full conformance with all | |||
documents of the Internet Engineering Task Force (IETF), its areas, | of the provisions of Section 10 of RFC 2026. | |||
and its working groups. Note that other groups may also distribute | ||||
working documents as Internet-Drafts. | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that | ||||
other groups may also distribute working documents as | ||||
Internet-Drafts. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Intenet-Drafts as reference | |||
material or to cite them other than as ``work in progress.'' | material or to cite them other than as "work in progress." | |||
To view the entire list of current Internet-Drafts, please check the | The list of current Internet-Drafts can be accessed at | |||
"1id-abstracts.txt" listing contained in the Internet-Drafts Shadow | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern | ||||
Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific | The list of Internet-Draft Shadow Directories can be accessed at | |||
Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast). | http://www.ietf.org/shadow.html. | |||
Abstract | Abstract | |||
This option is used by a DHCP client to optionally identify the type | This option is used by a DHCP client to optionally identify the | |||
or category of user or applications it represents. The information | type or category of user or applications it represents. The | |||
contained in this option is an NVT ASCII text object that represents | information contained in this option is an NVT ASCII text object | |||
the user class of which the client is a member. | that represents the user class of which the client is a member. | |||
Based on this class, a DHCP server selects the appropriate address | ||||
pool to assign an address to the client and the appropriate | ||||
configuration parameters. | ||||
This document attempts to merge draft-ietf-dhc-userclass-03.txt | ||||
and draft-ietf-dhc-useraddr-00.txt. | ||||
1. Requirements Terminology | 1. Introduction | |||
It is often desirable to provide different levels of service | ||||
to different users of an IP network. | ||||
In order for an IP network to implement this service | ||||
differentiation, it needs a way to classify users. A simple | ||||
solution to this is to use source IP addresses for classification. | ||||
Under this scheme, network administrators first configure network | ||||
devices such as routers to recognize traffic from a particular | ||||
source IP address (or address range) and handle it specially to | ||||
meet the desired level of service. Next, they assign the IP | ||||
addresses to the hosts of the intended users so that the user will | ||||
receive the appropriate level of service. They can configure the | ||||
hosts manually with these addresses. However, they cannot use DHCP | ||||
for address assignment, even if they are already running a DHCP | ||||
server in their network. A current RFC-compliant DHCP server assigns | ||||
IP addresses based on the location of the DHCP Client in the network | ||||
topology, not the type of user it supports. | ||||
This document describes a simple extension of the DHCP protocol | ||||
that enables a DHCP server to assign IP addresses from different | ||||
address pools depending on the types of client from which it receives | ||||
DHCP requests. With this new extension, network administrators will | ||||
be able to use DHCP to hand out the appropriate addresses to clients. | ||||
An example intended usage is a corporate network subnet consisting | ||||
of different departments of users, such as Accounting, Legal, Staff, | ||||
etc. It may be desirable to allocate logical address pools to each | ||||
of the departments so that network policies may be implemented easily | ||||
on IP address ranges; and this would facilitate providing differential | ||||
services, such as network reachibility. | ||||
A DHCP server can also use the information contained in the User Class | ||||
to allocate other configuration parameters than the IP address. For | ||||
example, a DHCP server receiving a request from a client with the User | ||||
Class set to "accounting auditors" may return an option with the | ||||
address of a particular database server. | ||||
Indeed a DHCP server may have a single pool of addresses and only use | ||||
the user class to select parameters other than IP addresses. | ||||
2. Requirements Terminology | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC 2119 [3]. | document are to be interpreted as described in RFC 2119 [3]. | |||
2. DHCP Terminology | 3. DHCP Terminology | |||
o "DHCP client" | o "DHCP client" | |||
A DHCP client or "client" is an Internet host using DHCP to obtain | A DHCP client or "client" is an Internet host using DHCP to obtain | |||
configuration parameters such as a network address. | configuration parameters such as a network address. | |||
DRAFT The User Class Option for DHCP November 1998 | ||||
o "DHCP server" | o "DHCP server" | |||
A DHCP server of "server"is an Internet host that returns | A DHCP server of "server"is an Internet host that returns | |||
configuration parameters to DHCP clients. | configuration parameters to DHCP clients. | |||
o "binding" | o "binding" | |||
A binding is a collection of configuration parameters, including | A binding is a collection of configuration parameters, including | |||
at least an IP address, associated with or "bound to" a DHCP | at least an IP address, associated with or "bound to" a DHCP | |||
client. Bindings are managed by DHCP servers. | client. Bindings are managed by DHCP servers. | |||
3. User Class Information | 4. User Class Information | |||
This option is used by a DHCP client to optionally identify the type | This option is used by a DHCP client to optionally identify the | |||
or category of user or applications it represents. The information | type or category of user or applications it represents. | |||
contained in this option is an NVT ASCII text object that represents | The information contained in this option is an NVT ASCII text | |||
the user class of which the client is a member. | object that represents the user class of which the client is a | |||
member. | ||||
This option is a DHCP option [1, 2]. | This option is a DHCP option [1, 2]. | |||
DHCP administrators may define specific user class identifiers to | DHCP administrators may define specific user class identifiers to | |||
convey information about a client's software configuration or about | convey information about a client's software configuration or about | |||
its user's preferences. For example, an identifier may specify that | its user's preferences. | |||
a particular DHCP client is a member of the class "accounting | ||||
auditors", which have special service needs such as a particular | ||||
database server. | ||||
Servers not equipped to interpret the user class specified by a | ||||
client MUST ignore it (although it may be reported). Otherwise, | ||||
servers SHOULD respond with the set of options corresponding to the | ||||
user class specified by the client. Further, if the server responds | ||||
with the set of options corresponding to the given user class, it | ||||
MUST return this option (with the given user class value) to the | ||||
client. | ||||
Clients which do not receive information for the user class requested | ||||
SHOULD make an attempt to operate without it, although they may do so | ||||
(and may announce they are doing so) in a degraded mode. | ||||
The code for this option is TBD. The minimum length for this option | The code for this option is TBD. The minimum length for this | |||
is two. | option is two. | |||
Code Len text1 | Code Len text1 | |||
+-----+-----+-----+-----+----- | +-----+-----+-----+-----+----- | |||
| TBD | N | c1 | c2 | ... | | TBD | N | c1 | c2 | ... | |||
+-----+-----+-----+-----+----- | +-----+-----+-----+-----+----- | |||
DRAFT The User Class Option for DHCP November 1998 | 5. Server behaviour | |||
DISCUSSION: Simulating Multiple User Classes | Each address pool on the DHCP Server MAY be configured with a | |||
set of ALLOWED USER CLASSES, specifying the category of clients | ||||
that can be offered addresses from the address pool; and with a | ||||
set of DISALLOWED USER CLASSES, specifying the category of | ||||
clients that must NOT be offered addresses from the address pool. | ||||
Although the user class option field only permits one NVT string, | In this section, we consider the simple case where the user can | |||
the working group envisions that multiple classes can be simulated | send a single User Class. Section 6 discusses potential multiple | |||
by creating combination classes which map into a single class NVT | classes support. | |||
string. For example, suppose a site desires to create multiple | ||||
logical user classes, including: | ||||
"mobile" -- These hosts receive short lease times | Servers not equipped to interpret the user class specified by | |||
and are assumed to dynamically update | a client MUST ignore it (although it may be reported). | |||
their own DNS records | Otherwise, whenever any DHCP client message is seen by the DHCP | |||
server, it MUST do the regular processing and if the DHCP server | ||||
determines that the Client is to be offered a new (or unbound) IP | ||||
address, the following procedure MUST be adopted: | ||||
"engineer" -- These hosts are assigned a high- | If the client DHCP message does not contain a User Class | |||
performance NFS file server | option, then the DHCP Server MUST attempt to choose an available | |||
address pool which has both the ALLOWED and DISALLOWED USER CLASSES | ||||
empty. If no such address pool is available, and if the DHCP Server | ||||
has been specifically configured to do so, it MUST attempt to choose | ||||
an address from any available address pool. | ||||
For the above two classes, then, a combination class could look | If the Client DHCP message contains a User Class option, then | |||
something like: | the DHCP server MUST attempt to choose an available address pool | |||
for which the ALLOWED USER CLASSES set contains the user | ||||
class option present in the DHCP message. It SHOULD also check that | ||||
the User Class option present in the DHCP message is NOT present | ||||
in the DISALLOWED USER CLASS set [this is to cope with possible | ||||
misconfigurations in which an administrator will have by mistake put | ||||
a User Class in both the ALLOWED and the DISALLOWED sets]. | ||||
If no such address pool is available, and if the DHCP Server has been | ||||
specifically configured to do so, it MUST attempt to choose any | ||||
address pool for which the User Class options present in | ||||
the DHCP message is NOT present in the DISALLOWED USER CLASS set. | ||||
"mobeng" -- hosts of this mobile-engineer combination | If the server responds with all the parameters corresponding to | |||
class get assigned a high-performance | the given user class, it MUST return this option (with the given | |||
file server and a short lease time, and | user class value) to the client. | |||
a DNS proxy A record update is not attempted | ||||
on their behalf. | ||||
Thus, by mapping combinations of classes into single class names, | If the DHCP server is unable to find a suitable address pool, it | |||
you can effectively implement multiple user classing at a site | MUST NOT offer an IP address to the Client. It MAY indicate the | |||
using only the single NVT string field. | condition to the administrator. | |||
DISCUSSION: Serving Competing Option Values | DISCUSSION: Serving Competing Option Values | |||
When servicing a request from a client of a particular user class, | When servicing a request from a client of a particular user class, | |||
a DHCP server makes decisions about what collection of options to | a DHCP server makes decisions about what address and what collection | |||
include in its response. These decisions are expected to consider | of options to include in its response. These decisions are expected | |||
options and values designated for the client host by virtue of its | to consider addresses, options and values designated for the client | |||
subnet/location, vendor class, user class, or client id. | host by virtue of its subnet/location, vendor class, user class, or | |||
client id. | ||||
In cases where multiple option values are possible for return to | ||||
the client due to multiple, overlapping "affiliations", DHCP | ||||
server policy may dictate which values take precedence over | ||||
others. A DHCP server implementation SHOULD provide flexibility | ||||
in specifying DHCP option precedence policy so that DHCP | ||||
administrators can customize a DHCP system to best suit their | ||||
network environments. | ||||
DRAFT The User Class Option for DHCP November 1998 | In cases where multiple addresses or option values are possible for | |||
return to the client due to multiple, overlapping "affiliations", | ||||
DHCP server policy may dictate which values take precedence over | ||||
others. | ||||
A DHCP server implementation SHOULD provide flexibility in specifying | ||||
DHCP option precedence policy so that DHCP administrators can | ||||
customize a DHCP system to best suit their network environments. | ||||
If flexibility in a server's option precedence policy is not | If flexibility in a server's option precedence policy is not | |||
implemented by a vendor (or is perhaps implemented but not | implemented by a vendor (or is perhaps implemented but not exercised | |||
exercised by an administrator), a recommended default policy is | by an administrator), a recommended default policy is that option | |||
that option values of specific affiliations override those of less | values of specific affiliations override those of less specific. | |||
specific. That is, an option value designated for a specific | That is, an option value designated for a specific client -- | |||
client -- sometimes known as a "reserved binding" -- SHOULD | sometimes known as a "reserved binding" -- SHOULD override option | |||
override option values designated for the client's user or vendor | values designated for the client's user or vendor class, which | |||
class, which SHOULD override option values designated for the | SHOULD override option values designated for the client's vendor | |||
client's vendor class, which SHOULD override option values for the | class, which SHOULD override option values for the client's subnet. | |||
client's subnet. | ||||
4. Security Considerations | 6. Multiple User Classes | |||
DHCP currently provides no authentication or security mechanisms. | This section intends to raise some of the issues associated with | |||
Potential exposures to attack are discussed is section 7 of the | supporting multiple user classes. Feedback from the Working Group | |||
protocol specification [1]. | is welcome. | |||
5. References | - Should we allow a client to send multiple User Classes to a | |||
server? | ||||
If yes: | ||||
- Should we allow the client to send the option twice in a message | ||||
with each option instance containing one class or should we let the | ||||
user concatenate classes inside one option? | ||||
- How should the server behave? | ||||
option1: the server considers the classes to be ANDed | ||||
[ie. chooses an address pool for which the ALLOWED USER CLASSES set | ||||
contains all the User Classes present in the DHCP message and | ||||
the DISALLOWED USER CLASSES set contains none of the User Classes | ||||
in the DHCP message]. | ||||
option 2: the server considers the classes to be ORed | ||||
[ie. chooses an address pool for which the ALLOWED USER CLASSES set | ||||
contains one of the User Classes present in the DHCP message and | ||||
the DISALLOWED USER CLASSES set contains none of the User Classes | ||||
in the DHCP message]. | ||||
option 3: the server should not assume anything and the administrator | ||||
of the server MUST define the behaviour. | ||||
7. Client behaviour | ||||
If a client receives a response from a DHCP Server with the same User | ||||
Class option value as it puts in its request, then it knows that the | ||||
server responded with parameters corresponding to the given user | ||||
class. | ||||
Clients which do not receive all the configuration for the user class | ||||
requested but which received an IP address SHOULD make an attempt to | ||||
operate without it, although they may do so (and may announce they are | ||||
doing so) in a degraded mode. | ||||
Clients which do not receive an IP address because of the User Class | ||||
requested MUST announce it. | ||||
8. Security Considerations | ||||
DHCP currently provides no authentication or security | ||||
mechanisms. Potential exposures to attack are discussed | ||||
is section 7 of the protocol specification [1]. | ||||
9. References | ||||
[1] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, | [1] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, | |||
March 1997. | March 1997. | |||
[2] S. Alexander, R. Droms, "DHCP Options and BOOTP Vendor | [2] S. Alexander, R. Droms, "DHCP Options and BOOTP Vendor | |||
Extensions", RFC 2132, March 1997. | Extensions", RFC 2132, March 1997. | |||
[3] Bradner, S., "Key words for use in RFCs to Indicate Requirement | [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement | |||
Levels," RFC 2119, March 1997. | Levels," RFC 2119, March 1997. | |||
DRAFT The User Class Option for DHCP November 1998 | 10. Acknowledgments | |||
6. Author Information | This document attempts to merge draft-ietf-dhc-userclass-03.txt | |||
(by Glen Stump and Ralph Droms) and | ||||
draft-ietf-dhc-useraddr-00.txt (by Ye Gu, Ramesh Vyaghrapuri and | ||||
Burcak Beser). | ||||
11. Author Information | ||||
Glenn Stump | Glenn Stump | |||
IBM Networking Software | IBM Networking Software | |||
P.O. Box 12195 | P.O. Box 12195 | |||
RTP, NC 27709 | RTP, NC 27709 | |||
Phone: (919) 301-4277 | Phone: (919) 301-4277 | |||
email: stumpga@us.ibm.com | Email: stumpga@us.ibm.com | |||
Ralph Droms | Ralph Droms | |||
Computer Science Department | Computer Science Department | |||
323 Dana Engineering | 323 Dana Engineering | |||
Bucknell University | Bucknell University | |||
Lewisburg, PA 17837 | Lewisburg, PA 17837 | |||
Phone: (717) 524-1145 | Phone: (717) 524-1145 | |||
email: droms@bucknell.edu | Email: droms@bucknell.edu | |||
7. Expiration | ||||
This document will expire on May 31, 1999. | ||||
Full Copyright Statement | Ye Gu | |||
Microsoft Corporation | ||||
One Microsoft Way | ||||
Redmond, WA 98052 | ||||
Phone: 425 936 8601 | ||||
Email: yegu@microsoft.com | ||||
Copyright (C) The Internet Society (1998). All Rights Reserved. | Ramesh Vyaghrapuri | |||
Microsoft Corporation | ||||
One Microsoft Way | ||||
Redmond, WA 98052 | ||||
Phone: 425 703 9581 | ||||
Email: rameshv@microsoft.com | ||||
This document and translations of it may be copied and furnished to | Burcak Beser | |||
others, and derivative works that comment on or otherwise explain it | 3Com Corporation | |||
or assist in its implementation may be prepared, copied, published | 3800 Golf Road | |||
and distributed, in whole or in part, without restriction of any | Rolling Meadows, IL | |||
kind, provided that the above copyright notice and this paragraph are | Phone: 847 262 2195 | |||
included on all such copies and derivative works. However, this | Email: Burcak_Beser@3com.com | |||
document itself may not be modified in any way, such as by removing | ||||
the copyright notice or references to the Internet Society or other | ||||
Internet organizations, except as needed for the purpose of | ||||
developing Internet standards in which case the procedures for | ||||
copyrights defined in the Internet Standards process must be | ||||
followed, or as required to translate it into languages other than | ||||
English. | ||||
The limited permissions granted above are perpetual and will not be | Ann Demirtjis | |||
revoked by the Internet Society or its successors or assigns. | Microsoft Corporation | |||
One Microsoft Way | ||||
Redmond WA 98052 | ||||
Phone: 425-705-2254 | ||||
Email: annd@microsoft.com | ||||
This document and the information contained herein is provided on an | Jerome Privat | |||
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING | BT Advanced Communications Technology Centre | |||
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING | Adastral Park, Martlesham Heath, IP5 3RE | |||
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION | UK | |||
Phone: +44 1473 648910 | ||||
Email: jerome.privat@bt.com | ||||
DRAFT The User Class Option for DHCP November 1998 | 12. Expiration | |||
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF | This document will expire on April 2000. | |||
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | ||||
End of changes. | ||||
This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |