radvd-project / radvd

radvd | Official repository: https://github.com/radvd-project/radvd
https://radvd.litech.org/
Other
203 stars 107 forks source link

radvd exits on too many addresses in RDNSS section #182

Open wcbonner opened 2 years ago

wcbonner commented 2 years ago

radvd exits silently when there are too many addresses in the RDNSS section. This is being used in ddwrt, which builds the radvd.conf file based on advertisments it gets from my upstream router and adds the DNS records I specify to what comes from upstream.

It would be nice if radvd either accepts an unlimited number of RDNSS entries or ignores any that are more than it deals with.

DD-WRT v3.0-r49626 std (c) 2022 NewMedia-NET GmbH
Release: 08/03/22
Board: Netgear R7000

root@Netgear-R7000:~# cat /tmp/radvd.conf
interface br0
{
 IgnoreIfMissing on;
 AdvSendAdvert on;
 MinRtrAdvInterval 3;
 MaxRtrAdvInterval 10;
 AdvHomeAgentFlag off;
 AdvManagedFlag off;
 AdvOtherConfigFlag on;
 AdvLinkMTU 1452;
 prefix 2604:4080:1304:8010::/64
 {
  AdvOnLink on;
  AdvAutonomous on;
  AdvValidLifetime 30;
  AdvPreferredLifetime 20;
 };
 RDNSS 2001:4860:4860::8888 2001:4860:4860::8844 2607:f060:2::1 2607:f060:2:1::1{};
};

root@Netgear-R7000:~# radvd --debug=5 -C /tmp/radvd.conf
[Aug 05 08:00:06] radvd (19543): too many addresses in RDNSS section
[Aug 05 08:00:06] radvd (19543): exiting, failed to read config file
root@Netgear-R7000:~# radvd --version
Version: 2.19

Compiled in settings:
  default config file           "/etc/radvd.conf"
  default pidfile               "/var/run/radvd.pid"
  default logfile               "/var/log/radvd.log"
  default syslog facility       24
Please send bug reports or suggestions to Reuben Hawkins <reubenhwk@gmail.com>.
the-j0k3r commented 2 years ago

@BrainSlayer

robbat2 commented 2 years ago

Patch welcome to change rdnss->AdvRDNSSAddr[123] into an array or linked list instead of three addresses only.

The three addresses comes from earlier RFCs that have been superseded now.

WenChao1Hou commented 2 years ago

@robbat2 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

The current number of radvd RDNSS ipv6 addresses is limited to 3

This MR(#193 ) fix it

the-j0k3r commented 2 years ago

@wcbonner just a heads up https://svn.dd-wrt.com/changeset/50755 on a revert related to your report.

Im sure when there is a proper solution here things will change downstream. Sadly cannot contribute here for that myself.

BrainSlayer commented 2 years ago

@the-j0k3r i had to revert it. the patch was broken and not compilable

Neustradamus commented 2 years ago

@the-j0k3r, @BrainSlayer: @wcbonner has updated the PR.

Please comment on the PR...

the-j0k3r commented 2 years ago

@wcbonner patch is merged downstream, next public build please test.

@Neustradamus will have feedback once hes done that.

wcbonner commented 2 years ago

@wcbonner patch is merged downstream, next public build please test.

@Neustradamus will have feedback once hes done that.

@the-j0k3r I installed the build from 10/31/2022 yesterday. I'll look for another upgrade in the next day.

the-j0k3r commented 2 years ago

It will by post r50786 yesterday wont have it

Mile-Lile commented 2 years ago

@wcbonner as a workaround you can use/advertise (RA) global address of the machine running radvd (wan ipv6 of the router)...

just copy your ipv6 from the ddwrt GUI and paste it to Static ipv6 dns on IPV6.asp... this will add RDNSS entries in radvd.conf on Services.asp in Additional dnsmasq opstions add directives e.g.:

no-resolv bogus-priv strict-order server=2a07:a9b1:: server=45.90.30.0 server=2a07:a9b0:: server=45.90.28.0 and put as many servers as you want ipv4 or ipv6

the-j0k3r commented 2 years ago

@Mile-Lile use the dd-wrt topic on the issue to suggest workarounds in future.

Mile-Lile commented 2 years ago

Previous text has was an insult.