Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DHCPv6 Relay Agent #787

Merged
merged 13 commits into from
Aug 12, 2021
Merged

DHCPv6 Relay Agent #787

merged 13 commits into from
Aug 12, 2021

Conversation

kellyyeh
Copy link
Contributor

No description provided.

@kellyyeh kellyyeh requested a review from tahmed-dev May 12, 2021 00:00
Copy link

@tahmed-dev tahmed-dev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your work,

doc/DHCPv6_relay/DHCPv6-relay-agent-High-Level-Design.md Outdated Show resolved Hide resolved
doc/DHCPv6_relay/DHCPv6-relay-agent-High-Level-Design.md Outdated Show resolved Hide resolved
doc/DHCPv6_relay/DHCPv6-relay-agent-High-Level-Design.md Outdated Show resolved Hide resolved
doc/DHCPv6_relay/DHCPv6-relay-agent-High-Level-Design.md Outdated Show resolved Hide resolved
doc/DHCPv6_relay/DHCPv6-relay-agent-High-Level-Design.md Outdated Show resolved Hide resolved
doc/DHCPv6_relay/DHCPv6-relay-agent-High-Level-Design.md Outdated Show resolved Hide resolved
tahmed-dev
tahmed-dev previously approved these changes Jun 29, 2021
Copy link

@tahmed-dev tahmed-dev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, few minor comments. Thanks for your work.

doc/DHCPv6_relay/DHCPv6-relay-agent-High-Level-Design.md Outdated Show resolved Hide resolved
doc/DHCPv6_relay/DHCPv6-relay-agent-High-Level-Design.md Outdated Show resolved Hide resolved
doc/DHCPv6_relay/DHCPv6-relay-agent-High-Level-Design.md Outdated Show resolved Hide resolved
doc/DHCPv6_relay/DHCPv6-relay-agent-High-Level-Design.md Outdated Show resolved Hide resolved
tahmed-dev
tahmed-dev previously approved these changes Jul 16, 2021
Copy link

@tahmed-dev tahmed-dev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!


# Overview

SONiC currently supports DHCPv4 Relay via the use of open source ISC DHCP package. However, DHCPv6 specification does not define a way to communicate client link-layer address to the DHCP server where DHCP server is not connected to the same network link as DHCP client. DHCPv6 requires all clients prepare and send a DUID as the client identifier in all DHCPv6 message exchanges. However, these methods do not provide a simple way to extract a client's link-layer address. Providing option 79 in DHCPv6 Relay-Forward messages will help carry the client link-layer address explicitly. The server needs to know the client's MAC address to allow DHCP Reservation, which provides pre-set IP address to specific client based on its physical MAC address. The DHCPv6 relay agent is able to read the source MAC address of DHCPv6 messages that it received from client, and encapsulate these messages within a DHCPv6 Relay-Forward message, inserting the client MAC address as option 79 in the Relay-Forward header sent to the server.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add details on why we think opensource ISC package is not a right fit for this DHCP6 relay enhancements.

3. Request, Renew, Rebind: DHCPv6 client sends a REQUEST message to request configuration parameters(IP address or delegated prefixes) from the DHCPv6 server
4. Reply: DHCPv6 server sends a REPLY message containing assigned addresses and configuration parameters in response to a CONFIRM message that confirms or denies that the addresses assigned to the client are appropriate to the link to which the client is connected. REPLY message acknowledges receipt of a RELEASE or DECLINE message.

![image](https://user-images.githubusercontent.com/42761586/117859723-3adcc800-b244-11eb-9dd4-dbde609185a1.png)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please upload the image to this folder images directory.

type inet6:ip-address;
}
leaf options {
type uint16;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does this only allow one option, what if we have other options? I suggest to define option79 true/false. some options needs parameter. it is difficult to define a universal way to define options.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated option 79 to have a bool type! Future options added can define its own parameter.

@kellyyeh kellyyeh merged commit 78e7fb1 into sonic-net:master Aug 12, 2021
@kellyyeh kellyyeh deleted the kellyyeh-dhcprelay branch August 12, 2021 21:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants