[PLUG] Strange NFS problem...

Larry Brigman larry.brigman at gmail.com
Mon Mar 29 15:17:24 UTC 2010


On Mon, Mar 29, 2010 at 1:09 AM, Michael C. Robinson
<plug_1 at robinson-west.com> wrote:
> On Sun, 2010-03-28 at 08:22 -0700, drew wymore wrote:
>> On Sun, Mar 28, 2010 at 8:06 AM, Michael C. Robinson
>> <plug_1 at robinson-west.com> wrote:
>> > I have a network installed copy of Fedora 12 in Virtual Box and the
>> > default setting is to PXE boot.  I think my nfsroot menu is correct,
>> > but every time I try to network boot I run into timeouts trying to
>> > get the NFS port numbers followed by using defaults followed by
>> > insert a floppy disk.  If I boot the local copy of Fedora 12, I
>> > can mount the share in question no problem.  I tried increasing
>> > the verbosity of NFS daemon logging, but that just poured a
>> > pile of useless information into my logs.  Is there a way to
>> > change the default port in the kernel for nfsd and mountd?  Can
>> > I specify the correct ports as command line arguments?  In my
>> > case 2049 for NFS and 4002 I think for mountd.
>> >
>> > _______________________________________________
>> > PLUG mailing list
>> > PLUG at lists.pdxlinux.org
>> > http://lists.pdxlinux.org/mailman/listinfo/plug
>> >
>>
>> Can you post your configs from both boxes?
>>
>> I found this regarding PXE booting and NFS mounts
>>
>> http://www.digitalpeer.com/id/linuxnfs
>> _______________________________________________
>> PLUG mailing list
>> PLUG at lists.pdxlinux.org
>> http://lists.pdxlinux.org/mailman/listinfo/plug
> The following is nfsroot.menu:
>
> MENU TITLE LFS NFS root
>
>    label Main Menu
>      menu label ^Return to Main Menu
>      kernel menu.c32
>      append pxelinux.cfg/default
>
>    label LFS_system
>      menu label Load Linux From Scratch system
>      kernel lfs/vmlinuz
>      append --ip=dhcp root=/dev/nfs
> nfsroot=192.168.5.2:/nfsroot/lfsp3,v3
>
> [admin at goose pxelinux.cfg]$ /usr/sbin/exportfs | grep lfsp3
> /nfsroot/lfsp3  192.168.5.0/255.255.255.0
>
> [admin at goose pxelinux.cfg]$ /usr/sbin/rpcinfo -p 192.168.5.2
>   program vers proto   port
>    100000    2   tcp    111  portmapper
>    100000    2   udp    111  portmapper
>    100011    1   udp   4003  rquotad
>    100011    2   udp   4003  rquotad
>    100011    1   tcp   4003  rquotad
>    100011    2   tcp   4003  rquotad
>    100003    2   udp   2049  nfs
>    100003    3   udp   2049  nfs
>    100003    4   udp   2049  nfs
>    100021    1   udp   4001  nlockmgr
>    100021    3   udp   4001  nlockmgr
>    100021    4   udp   4001  nlockmgr
>    100021    1   tcp   4001  nlockmgr
>    100021    3   tcp   4001  nlockmgr
>    100021    4   tcp   4001  nlockmgr
>    100003    2   tcp   2049  nfs
>    100003    3   tcp   2049  nfs
>    100003    4   tcp   2049  nfs
>    100005    1   udp   4002  mountd
>    100005    1   tcp   4002  mountd
>    100005    2   udp   4002  mountd
>    100005    2   tcp   4002  mountd
>    100005    3   udp   4002  mountd
>    100005    3   tcp   4002  mountd
>    100024    1   udp   4000  status
>    100024    1   tcp   4000  status
>
> [admin at goose pxelinux.cfg]$ cat /etc/dhcpd.conf
> failover peer "dhcp"
> {
>   primary;
>   address 192.168.5.2;
>   port 647;
>
>   peer address 192.168.5.1;
>   peer port 647;
>   max-response-delay 60;
>   max-unacked-updates 10;
>   mclt 600;
>   split 128;
>   load balance max seconds 3;
>
>   peer address 192.168.5.4;
> }
>
>
>
> ddns-update-style none;
> authoritative;
> allow booting;
> next-server 192.168.5.2;
>
>
>
> # %%% wifi-2 %%%
> shared-network WIFI-2
> {
>     subnet 192.168.4.0 netmask 255.255.255.240
>     {
>            option domain-name "w2.robinson-west.pri";
>            option domain-name-servers 192.168.4.2;
>            option routers 192.168.4.2;
>            option broadcast-address 192.168.4.15;
>            option ntp-servers 192.168.4.2;
>     }
>
>     subnet 192.168.4.16 netmask 255.255.255.240
>     {
>            option domain-name "w2.robinson-west.pri";
>            option domain-name-servers 192.168.4.18;
>            option routers 192.168.4.18;
>            option broadcast-address 192.168.4.31;
>            option ntp-servers 192.168.4.18;
>     }
>
>     # %%% wifi-2 network segment 1 %%%
>     group
>     {
>           use-host-decl-names on;
>           next-server 192.168.4.2;
>
>           host dodo.w2.robinson-west.pri
>           {
>              hardware ethernet 00:02:E3:14:1C:94;
>              fixed-address 192.168.4.1;
>              option root-path "192.168.4.2:/nfsroot/dodo";
>              filename="\dodo.nbi";
>           }
>      }
>      # %%% wifi-2 network segment 1 %%%
>
>      # %%% wifi-2 network segment 2 %%%
>      group
>      {
>           use-host-decl-names on;
>           next-server 192.168.4.18;
>
>           host condor.w2.robinson-west.pri
>           {
>              hardware ethernet 00:02:E3:02:46:37;
>              fixed-address 192.168.4.17;
>              option root-path "192.168.4.18:/nfsroot/condor";
>              filename="\condor.nbi";
>           }
>      }
>      # %%% wifi-2 network segment 2 %%%
> }
> # %%% wifi-2 %%%
>
>
>
> # %%% local lan %%%
> shared-network LAN-1
> {
>     subnet 192.168.5.0 netmask 255.255.255.0
>     {
>        pool
>        {
>          failover peer "dhcp";
>          range 192.168.5.129 192.168.5.254;
>          deny dynamic bootp clients;
>        }
>
>        option routers 192.168.5.6;
>        option domain-name-servers 192.168.5.1, 192.168.5.4;
>        option domain-name "robinson-west.com";
>        option broadcast-address 192.168.5.255;
>     }
>
>
>
>     # PXE clients...
>     group
>     {
>          use-host-decl-names on;
>          filename "pxelinux.0";
>
>          # parlor...
>          host vmeagle.robinson-west.com
>          { # Assumes the VirtualBox MAC address...
>
>               hardware ethernet 08:00:27:C6:50:F0;
>               fixed-address vmeagle.robinson-west.com;
>               option root-path "192.168.5.2:/nfsroot/lfsp3";
>          }
>
>          host eagle.robinson-west.com
>          {
>               hardware ethernet 00:07:e9:86:ff:33;
>               fixed-address eagle.robinson-west.com;
>               option root-path "192.168.5.2:/nfsroot/lfsp3";
>          }
>
>          # kitchen
>          host penguin.robinson-west.com
>          {
>               hardware ethernet 00:40:ca:58:65:75;
>               fixed-address penguin.robinson-west.com;
>               option root-path
> "192.168.5.2:/nfsroot/penguin_root_path";
>          }
>
>          # den...
>          host cheetah.robinson-west.com
>          {
>               hardware ethernet 00:26:9e:95:cc:35;
>               fixed-address cheetah.robinson-west.com;
>               option root-path
> "192.168.5.2:/nfsroot/cheetah_root_path";
>          }
>
>          # Laptops, floating...
>          host heron.robinson-west.com
>          {
>               hardware ethernet 00:0f:1f:0b:02:ce;
>               fixed-address heron.robinson-west.com;
>               option root-path "192.168.5.2:/nfsroot/heron_root_path";
>          }
>
>          host bluejay.robinson-west.com
>          {
>               hardware ethernet 00:0d:56:b1:14:c1;
>               fixed-address bluejay.robinson-west.com;
>               option root-path
> "192.168.5.2:/nfsroot/bluejay_root_path";
>          }
>
>
>
>          # Bedroom 1
>          host silene.robinson-west.com
>          {
>               hardware ethernet 00:07:E9:CB:56:DA;
>               fixed-address silene.robinson-west.com;
>               option root-path "192.168.5.2:/nfsroot/silene_root_path";
>          }
>
>     }
>
> ...
>
> # %%% local lan %%%
> }
>
>
>
> shared-network WAN-1
> {
>        subnet 216.151.30.104 netmask 255.255.255.252
>        {
>          option domain-name "robinson-west.com";
>          option domain-name-servers 209.210.200.3, 209.210.200.2;
>          option routers 216.151.30.105;
>          option broadcast-address 216.151.30.111;
>      }
> }
>
> [admin at goose pxelinux.cfg]$ cat /etc/hosts.deny
> #
> # hosts.deny    This file describes the names of the hosts which are
> #               *not* allowed to use the local INET services, as decided
> #               by the '/usr/sbin/tcpd' server.
> #
> # The portmap line is redundant, but it is left to remind you that
> # the new secure portmap uses hosts.deny and hosts.allow.  In particular
> # you should know that NFS uses portmap!
> ALL:ALL
>
> [admin at goose pxelinux.cfg]$ cat /etc/hosts.allow
> #
> # hosts.allow   This file describes the names of the hosts which are
> #               allowed to use the local INET services, as decided
> #               by the '/usr/sbin/tcpd' server.
> #
> lockd:          127.0.0.1
> lockd:          192.168.4.
> lockd:          192.168.5.
>
> mountd:         127.0.0.1
> mountd:         192.168.5.
> mountd:         192.168.4.
>
> rquotad:        127.0.0.1
> rquotad:        192.168.4.
> rquotad:        192.168.5.
>
> rpc.statd:      127.0.0.1
> rpc.statd:      192.168.4.
> rpc.statd:      192.168.5.
>
> bootpd:         127.0.0.1
> bootpd:         192.168.5.
> bootpd:         192.168.4.
>
> portmap:        127.0.0.1
> portmap:        192.168.5.
> portmap:        192.168.4.
>
> SSHD:           127.0.0.1
> SSHD:           192.168.5.
> SSHD:           192.168.4.
>
> in.tftpd:       127.0.0.1
> in.tftpd:       192.168.5.
> in.tftpd:       192.168.4.
>
> gdm:            127.0.0.1
> gdm:            192.168.5.
> gdm:            192.168.4.
>

Are you sure that you are getting an IP address?
Pxelinux only loads the info from the server and passes the args to the kernel.
If the kernel args don't have the proper info, you will get this type of thing.
I still think '--ip=dhcp' is wrong.  Should be 'ip=dhcp'.

Does the client machine have more than one network interface?
If this is the case the boot interface may not have access to the
correct network and
pxelinux doesn't know that.

Have you tried it without all the deny rules and doing ALL:ALL for allow?
When this is happening have you looked at the logs to determine if
there was any
denied access?

Have you tried monitoring from the server with tcpdump or wireshark?



More information about the PLUG mailing list