- DHCP Relay for IPv6 HLD
- High Level Design Document - Rev 0.1
- Table of Contents
- List of Tables
- List of Figures
- Revision
- About this Manual
- Scope
- Definitions/Abbreviation
- 1 Requirements Overview
- 2 Modules design
- 3 CLI
- 4 Init flow
Rev | Date | Author | Change Description |
---|---|---|---|
0.1 | 03/04 | Shlomi Bitton | Initial version |
This document provides an overview of the implementation and integration of DHCP Relay for IPv6 feature in SONiC.
This document describes the high level design of the DHCP Relay for IPv6 feature in SONiC.
Abbreviation | Description |
---|---|
DHCP | Dynamic Host Configuration Protocol |
DHCP Relay for IPv6 feature in SONiC should meet the following high-level functional requirements:
- Give the support for relaying DHCP packets from downstream networks to upstream networks using IPv6 addresses.
- Provide the functionality as a seperate process running on dhcp-relay docker container.
- Relaying messages to multiple unicast and multicast addresses.
- DHCPv6 trap should be enabled through the COPP manager when the DHCP relay feature is enabled and vice versa.
- Downstream network is the VLAN interface with the relay configuration. Global IPv6 address is required to be configured on that interface.
- Config DB schema should meet the following format:
{
"VLAN": {
"Vlan1000": {
"dhcp_servers": [
"192.0.0.1",
"192.0.0.2",
],
"dhcpv6_servers": [
"21da:d3:0:2f3b::7",
"21da:d3:0:2f3b::6",
],
"vlanid": "1000"
}
}
}
The DHCP Relay for IPv6 feature, same as the IPv4 version, will be based on the open source project 'isc-dhcp'.
A new process will run in parallel to the other process for IPv4 support. The new process will listen to DHCP packets for IPv6 and forward them to the relevant interface according to the configuration. For example, from the configuration described on the previous section, the following daemon will start:
admin@sonic:/# /usr/sbin/dhcrelay -6 -d --name-alias-map-file /tmp/port-name-alias-map.txt -l Vlan1000 -u 21da:d3:0:2f3b::7%Ethernet28 -u 21da:d3:0:2f3b::6%Ethernet28
The existing DHCP monitor will be enhanced in order to support monitoring for DHCP IPv6 as well.
The existing CLI will be enhanced to support configuring DHCP IPv6 along with the IPv4 support.
config vlan dhcp_relay add
Usage:
config vlan dhcp_relay add <vlan_id> <dhcp_relay_destination_ip>
Example:
admin@sonic:~$ sudo config vlan dhcp_relay add 1000 21da:d3:0:2f3b::7
Added DHCP relay destination address 21da:d3:0:2f3b::7 to Vlan1000
Restarting DHCP relay service...
config vlan dhcp_relay delete
Usage:
config vlan dhcp_relay del <vlan-id> <dhcp_relay_destination_ip>
Example:
admin@sonic:~$ sudo config vlan dhcp_relay del 1000 21da:d3:0:2f3b::7
Removed DHCP relay destination address 21da:d3:0:2f3b::7 from Vlan1000
Restarting DHCP relay service...
show vlan brief
Usage:
show vlan brief
Example:
admin@sonic:~$ show vlan brief
+-----------+----------------------+------------+----------------+-----------------------+-------------+
| VLAN ID | IP Address | Ports | Port Tagging | DHCP Helper Address | Proxy ARP |
+===========+======================+============+================+=======================+=============+
| 1000 | 21da:d3:0:2f3b::6/96 | Ethernet28 | untagged | 21da:d3:0:2f3b::6 | disabled |
| | | | | 21da:d3:0:2f3b::7 | |
+-----------+----------------------+------------+----------------+-----------------------+-------------+