Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.kernel > #61013 > unrolled thread

Re: Bug#898527: libnss-mdns: Adding ipv6 scope id breaks NFS mounts

Started bySimon McVittie <smcv@debian.org>
First post2018-05-14 14:40 +0200
Last post2018-05-15 03:30 +0200
Articles 2 — 2 participants

Back to article view | Back to linux.debian.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: Bug#898527: libnss-mdns: Adding ipv6 scope id breaks NFS mounts Simon McVittie <smcv@debian.org> - 2018-05-14 14:40 +0200
    Re: Bug#898527: libnss-mdns: Adding ipv6 scope id breaks NFS mounts Ross Vandegrift <ross@kallisti.us> - 2018-05-15 03:30 +0200

#61013 — Re: Bug#898527: libnss-mdns: Adding ipv6 scope id breaks NFS mounts

FromSimon McVittie <smcv@debian.org>
Date2018-05-14 14:40 +0200
SubjectRe: Bug#898527: libnss-mdns: Adding ipv6 scope id breaks NFS mounts
Message-ID<vPkVH-8aj-3@gated-at.bofh.it>
On Sat, 12 May 2018 at 18:26:11 -0700, Ross Vandegrift wrote:
> After upgrading my laptop from stretch to buster, I'm not able to mount NFS via
> mdns.  I have the following entry in /etc/fstab:
> 
>   vanvanmojo.local:/mnt/storage   /mnt/storage         nfs4       noauto,nofail,x-systemd.automount,x-systemd.mount-timeout=10,x-systemd.requires=network-online.target,x-systemd.idle-timeout=10m        0       0
> 
> The mount fails with the following log message:
> 
>   stgulik kernel: [  575.329441] NFS: bad IP address specified: addr=2606:6000:4502:1d00:4639:c4ff:fe53:e49b%2
> 
> It looks like the scope id was added in #644912.  This may be a kernel bug if
> the scope id should be accepted.

I think this might be a bug in whatever user-space tool calls
getaddrinfo() and passes its result to the kernel, which probably means
mount.nfs? If the kernel doesn't want to see scope IDs in this context,
then the user-space tool shouldn't provide them: returning scope IDs is
part of the getaddrinfo() API.

Not including the scope ID in the result of address resolution breaks IPv6
link-local addressing (fe80:*), and link-local addressing and mDNS are both
parts of the Zeroconf stack, so they (should) go well together.

Or possibly nss-mdns should be setting the scope ID to the interface
index for link-local addresses, but not for other addresses? It isn't
entirely clear to me what nss-mdns is meant to be doing here.

Workarounds:

* don't use mDNS (.local names) to find NFS servers; or
* configure mdns4[_minimal] instead of mdns[_minimal] so .local names
  resolve to IPv4 addresses

NFS has historically been somewhat fragile against network failures,
so I'm not sure that I can recommend mDNS as a way to find NFS shares.
If your network is sufficiently static and hand-configured that you can
safely put NFS shares in /etc/fstab, then it's probably also sufficiently
static that the NFS server has a stable name, or even a stable IP address.

    smcv

[toc] | [next] | [standalone]


#61022

FromRoss Vandegrift <ross@kallisti.us>
Date2018-05-15 03:30 +0200
Message-ID<vPwWS-6P2-11@gated-at.bofh.it>
In reply to#61013
On Mon, May 14, 2018 at 01:38:15PM +0100, Simon McVittie wrote:
> Not including the scope ID in the result of address resolution breaks IPv6
> link-local addressing (fe80:*), and link-local addressing and mDNS are both
> parts of the Zeroconf stack, so they (should) go well together.

Yep, this makes perfect sense - the scope id shouldn't go away entirely.

> Or possibly nss-mdns should be setting the scope ID to the interface
> index for link-local addresses, but not for other addresses? It isn't
> entirely clear to me what nss-mdns is meant to be doing here.

On one hand, rfc4007 11.1 says that the scope id should not be used for
global scope, loopback, and undefined addresses.  On the other, ping &
ssh both saw the scope id and handled it without complaint.


> Workarounds:
> 
> * don't use mDNS (.local names) to find NFS servers; or
> * configure mdns4[_minimal] instead of mdns[_minimal] so .local names
>   resolve to IPv4 addresses

Yea there are workarounds, but I think this use-case is a sensible one
that should be supported.

My home has provider-assigned addressing via DHCPv6 PD, so it isn't
static.  ipv6 wisdom might suggest ULA + DNS instead.  That requires
static addressing or dynamic DNS - both of which are overkill for home
users.  mDNSv6 has been providing a good solution to exactly this.

Ross

[toc] | [prev] | [standalone]


Back to top | Article view | linux.debian.kernel


csiph-web