On Sat, 6 Mar 2021 at 05:16, Thomas Lange <la...@cs.uni-koeln.de> wrote:
>
> >>>>> On Fri, 05 Mar 2021 17:58:26 +0000, Matthew Pounsett 
> >>>>> <m...@conundrum.com> said:
>
> I've made a change in fai-setup to determine the IP of the first
> interface, but this seems to fail with multiple interfaces
> Can you please provide the output of this command:
> ip -br ad show | awk '{print $3}'


Sure (indenting mine):
   % ip -br ad show | awk '{print $3}'
   127.0.0.1/8



   172.16.2.2/30

   64.191.0.64/24
   192.168.1.64/24
   192.168.0.64/24
   fe80::fc54:ff:fe78:7dd0/64
   fe80::fc54:ff:fe48:106e/64
   fe80::fc54:ff:fece:417f/64

If you're using that, you lose information, though.  For example, the
only IPv6 addresses you're getting are link-local.  Here's the full
output of that command without restricting it to a single column:

   % ip -br ad show
   lo               UNKNOWN        127.0.0.1/8 ::1/128
   eno1             UP
   eno2             UP
   eno3             DOWN
   eno4             UP             172.16.2.2/30 fe80::baca:3aff:fef3:7bac/64
   enp68s0          UP
   br0              UP             64.191.0.64/24 64.191.0.132/24
2620:ff:c000::132/64 2620:ff:c000::64/64 fe80::baca:3aff:fef3:7ba9/64
   br1              UP             192.168.1.64/24 fe80::baca:3aff:fef3:7baa/64
   br2              UP             192.168.0.64/24 fe80::260:ddff:fe43:99fb/64
   vnet0            UNKNOWN        fe80::fc54:ff:fe78:7dd0/64
   vnet1            UNKNOWN        fe80::fc54:ff:fe48:106e/64
   vnet2            UNKNOWN        fe80::fc54:ff:fece:417f/64

To strip that down, you probably want something more like the output of this:
% ip -br ad show | tr -s '[:blank:]' ' ' | cut -d' ' -f 3-

Since a server may have multiple addresses in the same subnet, you may
also want to de-dupe the output before using it.

>
> Which is the expected interface you want to use in /etc/exports?

That would be system dependent.

I would suggest that what fai-setup should do by default depends on
your intentions.  Do you want this to just be an example, or should it
be more like a functional default?  If it's the former, then I'd grab
the first IPv4 and IPv6 subnets you find that are not 127/8 (for v4)
or link-local (for v6).   If you want it to be fully functional, then
I would grab all such netblocks.

Keeping in mind that the main issue I'm reporting here is a problem
with /etc/exports syntax, not with the netblock selection.  The man
page for exports(5) is a little imprecise on this point ... an
export's client list *is* whitespace delimited, and newlines are
ignored, but newlines in the client list seem to be fatal.  This
implies they are not ignored mid-export and are not included in this
definition of "whitespace".

But, if you're looking at improving netblock selection as well, my
advice would be to grab all v4 netblocks not in 127/8 and all
non-link-local v6 blocks.

> A workaround is to set the variable SERVERINTERFACE in
> /etc/fai/nfsroot.conf. See nfsroot.conf(5)

I think if that's a thing that needs to be done to get fai-server to
generate valid /etc/exports syntax you should probably mention it in
the docs.  My personal workaround is just to fix the syntax of the
exports file after fai-setup writes it.

Reply via email to