[Bug 282481] Need to be able to specify NFS mounport and not use port mapper

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 02 Nov 2024 04:07:53 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282481

            Bug ID: 282481
           Summary: Need to be able to specify NFS mounport and not use
                    port mapper
           Product: Base System
           Version: Unspecified
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: bin
          Assignee: bugs@FreeBSD.org
          Reporter: rminnich@gmail.com

GitHub.com/u-root/cpu is an implementation of the Plan 9 cpu command. In cpu,
users connect from a local system to a remote system, but it is possible to use
some or all of the local file system on the remote system. 

cpu is used by both ARM and Google, among others.

More information here:
https://docs.google.com/presentation/d/12_mZR-tpjHNrq6xMEqXQMHPiQej4o3Mink-Rkapiw50/edit?usp=sharing

cpu clients work today on linux, Darwin, osx, and windows. 

cpud works only on Linux. 

We are getting cpud working on freebsd. 

To get this to work, however, it must be possible to use both the NFS3 mount
and NFS3 server provided by the cpu command. 

The problem comes in when cpud tries to mount the NFS3 server provided by cpu.

Currently, freebsd mount assumes that all mount servers are registered with the
port mapper, and uses SUNRPC calls to port 111 to locate and connect to mount
servers. If no port mapper is running; the mount will fail. Even if a port
mapper is running, there is no practical way for the cpu client to contact the
port mapper on the system running cpud; we would not want it to, anyway, as the
mount namespace provided by cpu should be private to the single session it is
running with cpud*.

Linux allows us to specify the mount port of the mount server, bypassing the
port mapper entirely. 

We would like to have this same ability on freebsd. One option might be as
follows: add a mountport option to the set of options passed to mount_nfs.

mount -t nfs -o mountport=abcde,port=abcde,etc.etc 127.0.0.1:whatever
/some/directory.

*While there do not seem to be private mount namespaces on freebsd at present,
we hope there will be someday. Nevertheless, even without private namespaces,
cpu/cpud would be very useful for small IoT devices.

-- 
You are receiving this mail because:
You are the assignee for the bug.