You are not logged in.

#1 2019-10-06 10:59:29

aliena
Member
Registered: 2015-10-09
Posts: 29

[SOLVED] IPv6 DNS via router advertisement

Hi community,

I'm working to make my home network IPv6 ready. However my Archlinux doesn't pick up DNS resolvers set via RA packets. I know the RAs are read by the client because it chooses an address in the advertised subnet. Just the DNS option is not inserted into /etc/resolv.conf.

Is it even possible to achieve what I want? I'm not sure which program is resposible for listening to RA packets. Maybe I'm lacking a daemon.

My client netctl profile looks like this:

Description='Connect to ethernet'
Interface=enp0s25
Connection=ethernet
IP=dhcp
DHCPReleaseOnStop=yes
IP6=stateless

A sample RA packet looks like this in wireshark:

Frame 20158: 136 bytes on wire (1088 bits), 136 bytes captured (1088 bits) on interface 0
Linux cooked capture
Internet Protocol Version 6, Src: fe80::46d9:e7ff:fe9f:8ee1 (fe80::46d9:e7ff:fe9f:8ee1), Dst: ff02::1 (ff02::1)
Internet Control Message Protocol v6
    Type: Router Advertisement (134)
    Code: 0
    Checksum: 0x4d63 [correct]
    [Checksum Status: Good]
    Cur hop limit: 64
    Flags: 0xc0, Managed address configuration, Other configuration, Prf (Default Router Preference): Medium
        1... .... = Managed address configuration: Set
        .1.. .... = Other configuration: Set
        ..0. .... = Home Agent: Not set
        ...0 0... = Prf (Default Router Preference): Medium (0)
        .... .0.. = Proxy: Not set
        .... ..0. = Reserved: 0
    Router lifetime (s): 1800
    Reachable time (ms): 0
    Retrans timer (ms): 0
    ICMPv6 Option (Prefix information : 2a02:168:7821:1::/64)
        Type: Prefix information (3)
        Length: 4 (32 bytes)
        Prefix Length: 64
        Flag: 0xc0, On-link flag(L), Autonomous address-configuration flag(A)
            1... .... = On-link flag(L): Set
            .1.. .... = Autonomous address-configuration flag(A): Set
            ..0. .... = Router address flag(R): Not set
            ...0 0000 = Reserved: 0
        Valid Lifetime: 2592000
        Preferred Lifetime: 604800
        Reserved
        Prefix: 2a02:168:7821:1:: (2a02:168:7821:1::)
    ICMPv6 Option (Recursive DNS Server 2a02:168:7821:1::25)
        Type: Recursive DNS Server (25)
        Length: 3 (24 bytes)
        Reserved
        Lifetime: 600
        Recursive DNS Servers: redacted-by-op.example (2a02:168:7821:1::25)
    ICMPv6 Option (Source link-layer address : 44:d9:e7:9f:8e:e1)
        Type: Source link-layer address (1)
        Length: 1 (8 bytes)
        Link-layer address: 44:d9:e7:9f:8e:e1

Last edited by aliena (2019-10-06 12:42:21)

Offline

#2 2019-10-06 11:57:13

progandy
Member
Registered: 2012-05-17
Posts: 5,280

Re: [SOLVED] IPv6 DNS via router advertisement

As far as I know, you have to either let dhcpcd perform all ipv6 configuration or run rdnssd from [community]/ndisc6


| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |

Online

#3 2019-10-06 12:07:33

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 13,326

Re: [SOLVED] IPv6 DNS via router advertisement

Maybe you have conflicting network /dns management configurations, please post

$ systemctl list-unit-files --state=enabled
$ ls -lR /etc/systemd/system

Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#4 2019-10-06 12:26:43

aliena
Member
Registered: 2015-10-09
Posts: 29

Re: [SOLVED] IPv6 DNS via router advertisement

I made it work with the ndisc6 tools, now the resolver is added correctly. Strange that this isn't mentioned on any wiki page. Thank you very much for that hint!

Is it always required to have this service running or is it more of a workaround?

For the record, here the requested outputs. I am not aware of any other network tool on my machine than netctl.

# systemctl list-unit-files --state=enabled
UNIT FILE               STATE  
org.cups.cupsd.path     enabled
acpid.service           enabled
autovt@.service         enabled
bluetooth.service       enabled
cronie.service          enabled
cups-browsed.service    enabled
dbus-org.bluez.service  enabled
docker.service          enabled
fancontrol.service      enabled
getty@.service          enabled
libvirtd.service        enabled
loginspect.service      enabled
netctl-sleep.service    enabled
nftables.service        enabled
nginx.service           enabled
ntpd.service            enabled
org.cups.cupsd.service  enabled
postfix.service         enabled
postgresql.service      enabled
power_check.service     enabled
rngd.service            enabled
smartd.service          enabled
sshd.service            enabled
tor.service             enabled
upower.service          enabled
nix-daemon.socket       enabled
org.cups.cupsd.socket   enabled
virtlockd.socket        enabled
virtlogd.socket         enabled
remote-fs.target        enabled
postfix-krbhelper.timer enabled

31 unit files listed.
# ls -lR /etc/systemd/system
/etc/systemd/system:
insgesamt 76
drwxr-xr-x 2 root root 4096  1. Jul 2015   bluetooth.target.wants
drwxr-xr-x 2 root root 4096 11. Sep 15:30  cronie.service.d
lrwxrwxrwx 1 root root   41  1. Jul 2015   dbus-org.bluez.service -> /usr/lib/systemd/system/bluetooth.service
drwxr-xr-x 2 root root 4096  6. Okt 14:24  default.target.wants
drwxr-xr-x 2 root root 4096  7. Mär 2018   fancontrol.service.d
drwxr-xr-x 2 root root 4096 22. Mär 2015   getty.target.wants
drwxr-xr-x 2 root root 4096  6. Aug 14:38  graphical.target.wants
-rw-r--r-- 1 root root  584  6. Mär 2016   libvirtd.service
drwxr-xr-x 2 root root 4096  6. Okt 14:10  multi-user.target.wants
-rw-r--r-- 1 root root  238 11. Mai 2018   netctl-auto-resume@.service
-rw-r--r-- 1 root root  167 24. Mär 2015  'netctl@wlp4s0\x2deth.service'
-rw-r--r-- 1 root root  201 18. Mai 13:09  postfix-krbhelper.service
-rw-r--r-- 1 root root  146 18. Mai 13:09  postfix-krbhelper.timer
drw-r--r-- 2 root root 4096 18. Mai 13:09  postfix@.service.d
-rw-r--r-- 1 root root  146 26. Mär 2016   power_check.service
drwxr-xr-x 2 root root 4096  5. Apr 2015   printer.target.wants
drwxr-xr-x 2 root root 4096 11. Mai 2018   sleep.target.wants
drwxr-xr-x 2 root root 4096 16. Mai 11:51  sockets.target.wants
drwxr-xr-x 2 root root 4096 19. Mai 10:54  timers.target.wants
drwxr-xr-x 2 root root 4096 11. Sep 15:31  unbound.service.d

/etc/systemd/system/bluetooth.target.wants:
insgesamt 0
lrwxrwxrwx 1 root root 41  1. Jul 2015  bluetooth.service -> /usr/lib/systemd/system/bluetooth.service

/etc/systemd/system/cronie.service.d:
insgesamt 4
-rw-r--r-- 1 root root 100 11. Sep 15:30 override.conf

/etc/systemd/system/default.target.wants:
insgesamt 0

/etc/systemd/system/fancontrol.service.d:
insgesamt 4
-rw-r--r-- 1 root root 46  7. Mär 2018  override.conf

/etc/systemd/system/getty.target.wants:
insgesamt 0
lrwxrwxrwx 1 root root 38 22. Mär 2015  getty@tty1.service -> /usr/lib/systemd/system/getty@.service

/etc/systemd/system/graphical.target.wants:
insgesamt 0
lrwxrwxrwx 1 root root 38 21. Mär 2016  upower.service -> /usr/lib/systemd/system/upower.service

/etc/systemd/system/multi-user.target.wants:
insgesamt 0
lrwxrwxrwx 1 root root 37 23. Mär 2015  acpid.service -> /usr/lib/systemd/system/acpid.service
lrwxrwxrwx 1 root root 38 11. Sep 15:30 cronie.service -> /usr/lib/systemd/system/cronie.service
lrwxrwxrwx 1 root root 44 16. Nov 2017  cups-browsed.service -> /usr/lib/systemd/system/cups-browsed.service
lrwxrwxrwx 1 root root 38 23. Sep 09:51 docker.service -> /usr/lib/systemd/system/docker.service
lrwxrwxrwx 1 root root 42  7. Mär 2018  fancontrol.service -> /usr/lib/systemd/system/fancontrol.service
lrwxrwxrwx 1 root root 36 12. Feb 2017  libvirtd.service -> /etc/systemd/system/libvirtd.service
lrwxrwxrwx 1 root root 42 15. Aug 18:09 loginspect.service -> /usr/lib/systemd/system/loginspect.service
lrwxrwxrwx 1 root root 44  4. Mai 2018  netctl-auto@wlp4s0.service -> /usr/lib/systemd/system/netctl-auto@.service
lrwxrwxrwx 1 root root 47  7. Apr 2015  netctl-ifplugd@enp0s25.service -> /usr/lib/systemd/system/netctl-ifplugd@.service
lrwxrwxrwx 1 root root 40  3. Mai 2018  nftables.service -> /usr/lib/systemd/system/nftables.service
lrwxrwxrwx 1 root root 37 25. Aug 09:55 nginx.service -> /usr/lib/systemd/system/nginx.service
lrwxrwxrwx 1 root root 36 23. Mär 2015  ntpd.service -> /usr/lib/systemd/system/ntpd.service
lrwxrwxrwx 1 root root 43  5. Apr 2015  org.cups.cupsd.path -> /usr/lib/systemd/system/org.cups.cupsd.path
lrwxrwxrwx 1 root root 39 18. Mai 13:22 postfix.service -> /usr/lib/systemd/system/postfix.service
lrwxrwxrwx 1 root root 42  2. Apr 2018  postgresql.service -> /usr/lib/systemd/system/postgresql.service
lrwxrwxrwx 1 root root 39 23. Mär 2016  power_check.service -> /etc/systemd/system/power_check.service
lrwxrwxrwx 1 root root 39  6. Okt 14:03 rdnssd@resolvconf-hook.service -> /usr/lib/systemd/system/rdnssd@.service
lrwxrwxrwx 1 root root 40 19. Apr 2015  remote-fs.target -> /usr/lib/systemd/system/remote-fs.target
lrwxrwxrwx 1 root root 36  2. Nov 2015  rngd.service -> /usr/lib/systemd/system/rngd.service
lrwxrwxrwx 1 root root 38  5. Mai 2018  smartd.service -> /usr/lib/systemd/system/smartd.service
lrwxrwxrwx 1 root root 36 12. Sep 2017  sshd.service -> /usr/lib/systemd/system/sshd.service
lrwxrwxrwx 1 root root 35 27. Nov 2015  tor.service -> /usr/lib/systemd/system/tor.service

/etc/systemd/system/postfix@.service.d:
insgesamt 4
-rw-r--r-- 1 root root 119 18. Mai 13:09 ansible-client.conf

/etc/systemd/system/printer.target.wants:
insgesamt 0
lrwxrwxrwx 1 root root 46  5. Apr 2015  org.cups.cupsd.service -> /usr/lib/systemd/system/org.cups.cupsd.service

/etc/systemd/system/sleep.target.wants:
insgesamt 0
lrwxrwxrwx 1 root root 47 11. Mai 2018  netctl-auto-resume@wlp4s0.service -> /etc/systemd/system/netctl-auto-resume@.service
lrwxrwxrwx 1 root root 44 14. Mär 2016  netctl-sleep.service -> /usr/lib/systemd/system/netctl-sleep.service

/etc/systemd/system/sockets.target.wants:
insgesamt 0
lrwxrwxrwx 1 root root 41 16. Mai 11:51 nix-daemon.socket -> /usr/lib/systemd/system/nix-daemon.socket
lrwxrwxrwx 1 root root 45  5. Apr 2015  org.cups.cupsd.socket -> /usr/lib/systemd/system/org.cups.cupsd.socket
lrwxrwxrwx 1 root root 40 12. Feb 2017  virtlockd.socket -> /usr/lib/systemd/system/virtlockd.socket
lrwxrwxrwx 1 root root 39 12. Feb 2017  virtlogd.socket -> /usr/lib/systemd/system/virtlogd.socket

/etc/systemd/system/timers.target.wants:
insgesamt 0
lrwxrwxrwx 1 root root 43 19. Mai 10:54 postfix-krbhelper.timer -> /etc/systemd/system/postfix-krbhelper.timer

/etc/systemd/system/unbound.service.d:
insgesamt 4
-rw-r--r-- 1 root root 97 11. Sep 15:31 override.conf

Last edited by aliena (2019-10-06 12:27:15)

Offline

#5 2019-10-06 12:44:58

progandy
Member
Registered: 2012-05-17
Posts: 5,280

Re: [SOLVED] IPv6 DNS via router advertisement

The DNS server always has to be set with a userspace tool. If you use the IPv6 autoconfiguration built into the kernel, then you have to run an additional service like rdnssd. If you use a network manager like connman or networkmanager, then it should be built in I think. If you manage your IPv6 with dhcpcd (it understands both DHCPv6 as well as SLAAC), then it handles the DNS server as well.

Since most home networks are dual stack, clients receive DNS information via IPv4 DHCP which works well enough. Virtually all nameservers will return IPv6 responses even if the request is received via IPv4.

Last edited by progandy (2019-10-06 12:57:24)


| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |

Online

Board footer

Powered by FluxBB