draft-ietf-dhc-relay-port-07.txt   draft-ietf-dhc-relay-port-08.txt 
Networking Working Group N. Shen Networking Working Group N. Shen
Internet-Draft E. Chen Internet-Draft E. Chen
Intended status: Standards Track Cisco Systems Intended status: Standards Track Cisco Systems
Expires: April 30, 2018 October 27, 2017 Expires: June 1, 2018 November 28, 2017
Generalized UDP Source Port for DHCP Relay Generalized UDP Source Port for DHCP Relay
draft-ietf-dhc-relay-port-07 draft-ietf-dhc-relay-port-08
Abstract Abstract
This document proposes an extension to the DHCP protocols that allows This document proposes an extension to the DHCP protocols that allows
a relay agent to use any available source port for upstream a relay agent to use any available source port for upstream
communications, and to include a DHCP option that can be used to communications, and to include a DHCP option that can be used to
statelessly route responses back to the appropriate source port on statelessly route responses back to the appropriate source port on
downstream communications. downstream communications.
Status of This Memo Status of This Memo
skipping to change at page 1, line 34 skipping to change at page 1, line 34
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
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 Internet-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."
This Internet-Draft will expire on April 30, 2018. This Internet-Draft will expire on June 1, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 34 skipping to change at page 2, line 34
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9
10. Normative References . . . . . . . . . . . . . . . . . . . . 9 10. Normative References . . . . . . . . . . . . . . . . . . . . 9
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10
1. Introduction 1. Introduction
RFC 2131 [RFC2131] and RFC 3315 [RFC3315] specify the use of UDP as RFC 2131 [RFC2131] and RFC 3315 [RFC3315] specify the use of UDP as
the transport protocol for DHCP. They also define both the server the transport protocol for DHCP. They also define both the server
side and client side port numbers. The IPv4 server port is UDP side and client side port numbers. The IPv4 server port is UDP
number (67) and the client port is UDP number (68); for IPv6 the number (67) and the client port is UDP number (68); for IPv6 the
server port is (546) and the client port is (547). server port is (547) and the client port is (546).
The fixed UDP port combinations for the DHCP protocol scheme creates The fixed UDP port combinations for the DHCP protocol scheme creates
challenges in certain DHCP relay operations. For instance, in a challenges in certain DHCP relay operations. For instance, in a
large scale DHCP relay implementation on a single switch node, the large scale DHCP relay implementation on a single switch node, the
DHCP relay functionality may be partitioned among multiple relay DHCP relay functionality may be partitioned among multiple relay
processes. All these DHCP relay processes may share the same IP processes. All these DHCP relay processes may share the same IP
address of the switch node. If the UDP source port has to be a fixed address of the switch node. If the UDP source port has to be a fixed
number as currently specified, the transport socket operation of DHCP number as currently specified, the transport socket operation of DHCP
packets would need to go through a central entity or process which packets would need to go through a central entity or process which
would defeat the purpose of distributing DHCP relay functionality. would defeat the purpose of distributing DHCP relay functionality.
skipping to change at page 3, line 42 skipping to change at page 3, line 42
Relay Source Port: This is the UDP port that a relay agent uses to Relay Source Port: This is the UDP port that a relay agent uses to
receive Relay-forward Messages from an upstream device. receive Relay-forward Messages from an upstream device.
Downstream Source Port: This is the UDP port that the downstream Downstream Source Port: This is the UDP port that the downstream
device uses when forwarding Relay-forward Messages to this device uses when forwarding Relay-forward Messages to this
relay agent device. This UDP port is to be used by this relay agent device. This UDP port is to be used by this
relay agent device when forwarding the Relay-reply Messages relay agent device when forwarding the Relay-reply Messages
to that downstream device. to that downstream device.
Non-DHCP UDP Port: Any valid UDP port other than port 67 for DHCPv4 Non-DHCP UDP Port: Any valid and non-zero UDP port other than port
and port 547 for DHCPv6. 67 for DHCPv4 and port 547 for DHCPv6.
3. Changes to DHCP Specifications 3. Changes to DHCP Specifications
3.1. Changes to DHCPv4 in RFC 2131 3.1. Changes to DHCPv4 in RFC 2131
Section 4.1 of RFC 2131 [RFC2131] specifies that: Section 4.1 of RFC 2131 [RFC2131] specifies that:
DHCP uses UDP as its transport protocol. DHCP messages from a DHCP uses UDP as its transport protocol. DHCP messages from a
client to a server are sent to the 'DHCP server' port (67), and client to a server are sent to the 'DHCP server' port (67), and
DHCP messages from a server to a client are sent to the 'DHCP DHCP messages from a server to a client are sent to the 'DHCP
skipping to change at page 5, line 11 skipping to change at page 5, line 11
part of the relay-agent-information option for DHCPv4 [RFC3046]. part of the relay-agent-information option for DHCPv4 [RFC3046].
The format of the "Source Port Sub-option" is shown below: The format of the "Source Port Sub-option" is shown below:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SubOpt Code | Len | | SubOpt Code | Len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where: Where:
SubOpt Code: SUBOPT_RELAY_PORT. 8 bits value, to be assigned by SubOpt Code: SUBOPT_RELAY_PORT. 8 bit value, to be assigned by
IANA. IANA.
Len: 8 bits value to be set to 0. Len: 8 bit value to be set to 0.
4.2. Relay Source Port Option for DHCPv6 4.2. Relay Source Port Option for DHCPv6
The "Relay Source Port Option" is a new DHCPv6 option. It MUST be The "Relay Source Port Option" is a new DHCPv6 option. It MUST be
used either by a DHCPv6 relay agent that uses a non-DHCP UDP port used either by a DHCPv6 relay agent that uses a non-DHCP UDP port
(not 547) communicating with the IPv6 server and the upstream relay (not 547) communicating with the IPv6 server and the upstream relay
agent, or by a IPv6 relay agent that detects the use of a non-DHCP agent, or by a IPv6 relay agent that detects the use of a non-DHCP
UDP port (not 547) by a downstream relay agent. UDP port (not 547) by a downstream relay agent.
The format of the "Relay Source Port Option" is shown below: The format of the "Relay Source Port Option" is shown below:
skipping to change at page 5, line 36 skipping to change at page 5, line 36
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_RELAY_RELAY_PORT | Option-Len | | OPTION_RELAY_RELAY_PORT | Option-Len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Downstream Source Port | | Downstream Source Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where: Where:
Option-Code: OPTION_RELAY_RELAY_PORT. 16 bits value, to be Option-Code: OPTION_RELAY_RELAY_PORT. 16 bit value, to be
assigned by IANA. assigned by IANA.
Option-Len: 16 bits value to be set to 2. Option-Len: 16 bit value to be set to 2.
Downstream Source Port: 16 bits value. To be set by the IPv6 Downstream Source Port: 16 bit value. To be set by the IPv6
relay either to the downstream relay agent's UDP source relay either to the downstream relay agent's UDP source
port used for the UDP packet, or to zero if only the port used for the UDP packet, or to zero if only the
local relay agent uses the non-DHCP UDP port (not 547). local relay agent uses the non-DHCP UDP port (not 547).
5. Relay Agent and Server Behavior 5. Relay Agent and Server Behavior
5.1. DHCPv4 5.1. DHCPv4
When a relay agent uses a non-DHCP UDP port (not 67) communicating When a relay agent uses a non-DHCP UDP port (not 67) communicating
with the DHCP server, it MUST include the "Source Port Sub-option" in with the DHCP server, it MUST include the "Source Port Sub-option" in
skipping to change at page 8, line 48 skipping to change at page 8, line 48
(not 547) and its upstream relay device support this generalized UDP (not 547) and its upstream relay device support this generalized UDP
source port extension. source port extension.
Similar to the above example, now assume that Relay2 uses the UDP Similar to the above example, now assume that Relay2 uses the UDP
source port of 2000 instead of 547 as in the diagram. The Relay3 source port of 2000 instead of 547 as in the diagram. The Relay3
device needs to support this DHCP extension and it will set 2000 in device needs to support this DHCP extension and it will set 2000 in
its "Downstream Source Port" field of the option in the Relay-forward its "Downstream Source Port" field of the option in the Relay-forward
message. When DHCP server sends the DHCP Relay-reply to Relay3, message. When DHCP server sends the DHCP Relay-reply to Relay3,
Relay3 finds its own relay option has this "Downstream Source Port" Relay3 finds its own relay option has this "Downstream Source Port"
with the value of 2000. Relay3 will use this UDP port when sending with the value of 2000. Relay3 will use this UDP port when sending
the Relay-reply message to Relay2. the Relay-reply message to Relay2. Relay2 finds its own relay option
also has this "Downstream Source Port" with the value of 1000.
Relay2 will use this UDP port when sending the Relay-reply message to
Relay1.
7. IANA Considerations 7. IANA Considerations
A new sub-option, DHCPv4 Relay Source Port, is defined in this A new sub-option, DHCPv4 Relay Source Port, is defined in this
document within the IPv4 Relay Agent Information Option. It needs to document within the IPv4 Relay Agent Information Option. It needs to
be assigned by IANA in the "DHCP Relay Agent Sub-Option Codes" be assigned by IANA in the "DHCP Relay Agent Sub-Option Codes"
registry, http://www.iana.org/assignments/bootp-dhcp-parameters as registry, http://www.iana.org/assignments/bootp-dhcp-parameters as
specified in [RFC3046]. specified in [RFC3046].
A new option, DHCPv6 Relay Source Port, is defined in this document A new option, DHCPv6 Relay Source Port, is defined in this document
skipping to change at page 9, line 28 skipping to change at page 9, line 28
8. Security Considerations 8. Security Considerations
[RFC3118] and [RFC3315] described many of the threats in using DHCP. [RFC3118] and [RFC3315] described many of the threats in using DHCP.
This extension does not raise addition security issues. This extension does not raise addition security issues.
9. Acknowledgments 9. Acknowledgments
The authors would like to thank Peter Arberg, Luyuan Fang, Bhanu The authors would like to thank Peter Arberg, Luyuan Fang, Bhanu
Gopalasetty, Scott Kelly, Andre Kostur, Victor Kuarsingh, Ted Lemon, Gopalasetty, Scott Kelly, Andre Kostur, Victor Kuarsingh, Ted Lemon,
Kishore Seshadri and Jackelyn Shen for their review and comments of Adam Roach, Kishore Seshadri and Jackelyn Shen for their review and
this document. comments of this document.
The authors would like to thank Bernie Volz for discussions that led The authors would like to thank Bernie Volz for discussions that led
to the definition of The Relay Source Port sub-option and DHCPv6 to the definition of The Relay Source Port sub-option and DHCPv6
Relay Source Port Option. Relay Source Port Option.
The RFC text was produced using Marshall Rose's xml2rfc tool. The RFC text was produced using Marshall Rose's xml2rfc tool.
10. Normative References 10. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
 End of changes. 12 change blocks. 
14 lines changed or deleted 17 lines changed or added

This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/