[dhcp_relay] Add support for DHCP client(s) on one VLAN and DHCP server(s) on another#2946
Merged
jleveque merged 5 commits intosonic-net:masterfrom Jun 3, 2019
jleveque:uplink_downlink_support_isc-dhcp-relay
Merged
[dhcp_relay] Add support for DHCP client(s) on one VLAN and DHCP server(s) on another#2946jleveque merged 5 commits intosonic-net:masterfrom jleveque:uplink_downlink_support_isc-dhcp-relay
jleveque merged 5 commits intosonic-net:masterfrom
jleveque:uplink_downlink_support_isc-dhcp-relay
Conversation
Collaborator
|
"I had to downgrade from the current Stretch release version of 4.3.5-3.1 because the Debian sources contain a backported upstream patch to use getifaddrs() on Linux instead of parsing /proc/net directly" do you know why debian did this backport? |
Contributor
Author
|
@lguohan: According to the changelog, this patch was backported to fix this bug, in which the DHCP server will not start if the physical interface it needs to listen on does not have an IP address. I don't believe this will be an issue for us, as all interfaces the relay listens on have IP addresses assigned. If this was an issue, I believe we would have already encountered it. |
added 5 commits
May 31, 2019 01:29
…drs.patch which conflicts with latest patches
As of version 4.3.5, it is no longer a dependency of isc-dhcp-relay, only a recommended package which contains manpages
…source back to 4.3.5-2
lguohan
approved these changes
Jun 1, 2019
yxieca
pushed a commit
that referenced
this pull request
Aug 28, 2023
…atically (#16265) src/sonic-utilities * 1ed5b5a9 - (HEAD -> 202205, origin/202205) Add transceiver status CLI to show output from TRANSCEIVER_STATUS table (cherry-pick to 202205) (#2950) (4 days ago) [longhuan-cisco] * ba327726 - Fix in config override when all asic namespaces not present in golden_config_db (#2946) (4 days ago) [judyjoseph]
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Previously, the DHCP relay agent in SONiC would not relay DHCP requests to other VLANs. Therefore, if a DHCP client and the DHCP server it needed to communicate with resided on different VLANs under the same ToR device, the DHCP server would never receive the requests. The reason for this was because there was no way to specify whether the agent should only listen for requests or responses on each interface, so each DHCP relay agent could only listen on one VLAN to avoid sending DHCP requests and replies to incorrect DHCP servers.
How I did it
-idand-iuarguments) which allow us to specify 'downstream' and 'upstream' interfaces, respectively (the relay agent will only listen for requests on downstream interfaces, and will only listen for replies on upstream interfaces.-id), and all other interfaces (including all other VLAN interfaces) as upstream interfaces (-iu).ERR dhcrelay[172]: send_packet: Permission denied. I discovered that this was due to the relay agent being built by default to open one shared socket on a "fallback" interface, without theSO_BROADCASTflag set. I then added a patch to force the relay agent to open one socket per interface, each with theSO_BROADCASTflag set. I then noticed, however, that when built with this configuration, the relay agent would only relay packets on one upstream interface, so I created another patch, firstly fixing a bug that prevented a fallback interface from being created ifUSE_SOCKETSwas defined. With this fix, I was able to open sockets on all specified interfaces, as well as a fallback interface. Then I was able to create a patch to relay request packets as follows: