-
Notifications
You must be signed in to change notification settings - Fork 107
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
RDNSS: support more ipv6 addresses #193
base: master
Are you sure you want to change the base?
Conversation
@@ -594,6 +596,12 @@ static struct safe_buffer_list *add_ra_options_rdnss(struct safe_buffer_list *sb | |||
|
|||
memset(&rdnssinfo, 0, sizeof(rdnssinfo)); | |||
|
|||
size_t const bytes = sizeof(rdnssinfo) + sizeof(struct in6_addr) * rdnss->AdvRDNSSNumber; | |||
if (bytes > (256 * 8)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why did you pick 2048?
- 1280 bytes is the min IPv6 MTU; what would happen in that case?
- can radvd safely send multiple RA packets with different RDNSS entries? (other framework code for example splits large options into their own packets)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in my opinion
1、The IPv6 MTU value may change the processing of the kernel protocol stack.
2、RDNSS 2048 is consistent with DNSSL packet maximum in radvd
Do you have any good suggestions for me?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks mostly good, some thoughts added; will wait for CI validation.
Please amend the commit to include a |
Compile failure, wonder if you missed something?
|
I've got some tests kicking around to add as well after you have it fixed. |
More testing, expected to fail until PR#193 is merged. Reference: radvd-project#193 Signed-off-by: Robin H. Johnson <[email protected]>
@WenChao1Hou that is up-to-you. So when it is day again in your time zone, please add |
it was an oversight on my part,The variable name was not updated in time when submitted, I will update MR as soon as possible |
RFC 6106 recommended that the number of RDNSS addresses thatshould be learned and maintained through the RDNSS RA option should be limited to three. RFC 8106 removes that recommendation; thus, the number of RDNSS addresses to maintain is determined by an implementer's local policy.The number of RDNSS addresses to maintain is determined by the user's own profile Signed-off-by: WenChao1Hou <[email protected]>
We had merged this patch downstream at this code state https://svn.dd-wrt.com/changeset/50745, I did not test it myself but clearly it caused some instability and was reverted One such report https://forum.dd-wrt.com/phpBB2/viewtopic.php?p=1275031#1275031
|
Just catching up here....why are more than 3 RDNS servers needed? I saw that more than three doesn't work, but I did NOT see any explanation as to why more than three are needed. |
There isn't really a huge need for more than three, but it would be nice if the program didn't crash or error out if more are listed in the config file. The problem I ran into was in a downstream project when I wanted to specify two dns servers and the program was already adding two servers it had received from another network broadcast or dhcp interaction. radvd was silently exiting in the background and my local network wasn't getting advertisements. |
Ack. It's been a long time since I've work on this code... Nonetheless I have concerns that not having a hard limit would eventually lead to MTU issues. At the same time I'm not sure that exiting the program is also the right thing to do. Not sure. Maybe best effort is good enough, maybe not. |
RFC 6106 recommended that the number of RDNSS addresses thatshould be learned and maintained through the RDNSS RA option should be limited to three. RFC 8106 removes that recommendation; thus, the number of RDNSS addresses to maintain is determined by an implementer's local policy.The number of RDNSS addresses to maintain is determined by the user's own profile
Fix:#182