ok after several days of testing here is the results (tested in kde and lxde):
i've noticed that in lxde nfs-server works fine and in kde is not ( = lsnetdrake --nfs can/can't discover the nfs server = PCC Access NFS Shared drives is working/not working)
Case 1
LXDE, as server, is working because in the config files (/etc/sysconfig/nfs-server and /etc/sysconfig/nfs-common) ports are not specified = the ports for mountd and nlockmgr are dynamically assigned
but these dynamically ports is not good for firewall
Case 2
KDE as server.
here is rpcinfo -p with default config files
rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049 nfs_acl
100227 3 udp 2049 nfs_acl
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100227 3 tcp 2049 nfs_acl
100021 1 udp 40619 nlockmgr
100021 3 udp 40619 nlockmgr
100021 4 udp 40619 nlockmgr
100021 1 tcp 48258 nlockmgr
100021 3 tcp 48258 nlockmgr
100021 4 tcp 48258 nlockmgr
100005 1 udp 4003 mountd
100005 1 tcp 4003 mountd
and here we have two errors
1. mountd runs as version 1 and that is not good at all (should be 2 or 3 or 4 according with nfs version)
2. nlockmgr does not bind the port specified in /etc/sysconfig/nfs-common ( LOCKD_TCPPORT=4002 )
The sollution is:
1. for mountd, in /etc/sysconfig/nfs-server, replace RPCMOUNTD_OPTIONS="--port 4003" with RPCMOUNTD_OPTIONS="--no-nfs-version 2 --port 4003"
2. for nlockmgr, to bind the correct port, replace the code in /etc/rc.d/init.d/nfs-common like this
# Set the ports lockd should listen on
if [ -n "$LOCKD_TCPPORT" ]; then
/sbin/sysctl -w fs.nfs.nlm_tcpport=$LOCKD_TCPPORT >/dev/null 2>&1
fi
if [ -n "$LOCKD_UDPPORT" ]; then
/sbin/sysctl -w fs.nfs.nlm_udpport=$LOCKD_UDPPORT >/dev/null 2>&1
fi
with
# Set the ports lockd should listen on
if [ -n "$LOCKD_TCPPORT" -o -n "$LOCKD_UDPPORT" ]; then
[ -x /sbin/modprobe ] && /sbin/modprobe lockd $LOCKDARG
[ -n "$LOCKD_TCPPORT" ] && \
/sbin/sysctl -w fs.nfs.nlm_tcpport=$LOCKD_TCPPORT >/dev/null 2>&1
[ -n "$LOCKD_UDPPORT" ] && \
/sbin/sysctl -w fs.nfs.nlm_udpport=$LOCKD_UDPPORT >/dev/null 2>&1
fi
Save, reboot and ..done
now see what rpcinfo -p says
[root@localhost ~]# rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 4001 status
100024 1 tcp 4001 status
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100227 3 tcp 2049 nfs_acl
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049 nfs_acl
100227 3 udp 2049 nfs_acl
100021 1 udp 4002 nlockmgr
100021 3 udp 4002 nlockmgr
100021 4 udp 4002 nlockmgr
100021 1 tcp 4002 nlockmgr
100021 3 tcp 4002 nlockmgr
100021 4 tcp 4002 nlockmgr
100005 3 udp 4003 mountd
100005 3 tcp 4003 mountd
then go to client and run lsnetdrake --nfs
P.S.
1.for more accurate results is a good ideea to clear ARP cache from your router before lsnetdrake
2. there is patch for rpc.mountd
https://build.pub.meego.com/package/view_file?file=nfs-utils-1.2.3-libnfs-multiports.patch&package=nfs-utils&project=home%3Atschak909&srcmd5=2c870d729a10cf10cb06b456bca5ae30 which solve the -p parameter in conjuction with another parameter for example/usr/sbin/rpc.mountd --nfs-version 3 --port 32555 don't work
I don't know if the latest version of nfs-utils (now as 1.2.5) solve this problem
Hope it helps !