Subject: Diskless Cluster RPCBIND YPBIND problem
To: None <netbsd-help@NetBSD.ORG>
From: None <lordd@math.uaa.alaska.edu>
List: netbsd-help
Date: 06/30/2004 16:28:50
I have been setting up a NetBSD diskless 13 node dual processor cluster
for the past few days. I've followed the netbsd diskless howto, and man
page. Everything is set up; mpi-ch, nfs, nis, hosts, hosts.equiv, as far
as I know. The nodes use their vestigial hard disks for swap space and
share the master servers /usr and /export/client/root, they are the same
architecture.

When I boot the clients, each gets their assigned internal hostname and
domainname according to their hardware address. They all pass execution of
rpcbind and ypbind and mount the nfs directories.

My problem is most of them will not authenticate with NIS, when I try
ypwhich, I get the correct server, when I try ypcat passwd, I get:

  Can't get passwd.byname  Reason: Can't bind no server which serves this
domain.

So, I tried rpcinfo and get:

  Can't contact rpcbind:  RPC: Remote System Error - connection refused

If I only boot up 1 or 2 clients, they work OK, as soon as I start adding
more clients, the ones that boot later seem to mess up the earlier ones.

I am using NETBSD 2.0F kernel with 1.6.2 dist.

Here are my rc.conf;
For master:
--
rpcbind=YES
#rarpd=YES      rarpd_flags="-a"
bootparamd=YES  bootparamd_flags=""
dhcpd=YES       dhcpd_flags="-q"
mountd=YES      mountd_flags=""
nfs_server=YES  nfsd_flags="-6tun 12"
ypserv=YES      ypserv_flags=""
yppasswdd=YES
ypbind=YES

For node:
--
auto_ifconfig=NO
net_interfaces=""
wscons=YES
rpcbind=YES
ypbind=YES
inetd=YES
nfs_client=YES

Here is my /etc/dhcpd.conf:
#bal dhcpd parameters
deny unknown-clients;                   #disallow unknown connections
ddns-update-style none;                 #disallow dynamic DNS updates

allow bootp;                            #allow bootp requests, thus the dhcp
                                        #server will act as a bootp server

# which network interface the server will listen on
subnet 10.10.10.0 netmask 255.255.255.0 { #the zeros indicate which range
}                                          #of addresses are allowed to
connect

 #set of parameters common to all clients
 group {
  option broadcast-address 10.10.10.255;
  option domain-name "burninator";
  #option domain-name-servers dns.test.net;
  #option routers router.test.net;
  option subnet-mask 255.255.255.0;

  #set of parameters specific to one particular host
  host slave02.burninator {
   hardware ethernet 00:01:03:c6:19:56;
   fixed-address 10.10.10.2;
   option host-name "slave02";
   next-server 10.10.10.1;              #which machine to tftp filename from
   option root-path "/export/client/root"; #the path on the NFS server.
                                           #typically the client assumes the
                                           #nfsserver = tftpserver
   #always-reply-rfc1048 true;          #this is needed if your client isn't
                                        #getting the options you set and
                                        #the log says "(non-rfc1048)"
                                        #next68k machines require this to be
                                        #set false
  }

  host slave03.burninator {
   hardware ethernet 00:01:03:e3:9f:0d;
   fixed-address 10.10.10.3;
   next-server 10.10.10.1;
   option host-name "slave03";
   option root-path "/export/client/root"; #the path on the NFS server.
  }

...AND SO ON FOR THE REST OF THE CLIENTS...

  class "pxe-clients-ia32" {
   match if substring (option vendor-class-identifier, 0, 20)
   = "PXEClient:Arch:00000";
   filename "pxeboot_ia32.bin";
  }

  #you may paste another "host" entry here for additional clients on this
network

 }

Thanks,
Dayyan