Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Apr 2016 12:00:59 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-arm@FreeBSD.org
Subject:   [Bug 208669] Improvement of pxeboot using Linux NFS servers.
Message-ID:  <bug-208669-7@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D208669

            Bug ID: 208669
           Summary: Improvement of pxeboot using Linux NFS servers.
           Product: Base System
           Version: 10.2-STABLE
          Hardware: i386
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: arm
          Assignee: freebsd-arm@FreeBSD.org
          Reporter: zen-freebsd-users@suzuki.que.ne.jp
                CC: freebsd-i386@FreeBSD.org
                CC: freebsd-i386@FreeBSD.org

I tried to boot by pxeboot using some Linux nfs servers.

But, I could not  boot by using Linux nfs servers.=20

I tested using CentOS6.7 and CentOS7.1 as a dhcp,tftp,NFS server.
The pxeboot of FreeBSD9.3 and 10.2 correctly downloaded by TFTP from Linux
server.

At second stage , the pxeboot will mount to load kernel by nfs. But, pxeboot
was failed to mount nfs.

I monitored a packet using tcpdump. It was as below.

14:12:47.658036 IP 192.168.8.215.1023 > 192.168.8.2.sunrpc: UDP,length 76
14:12:47.658349 IP 192.168.8.2.sunrpc > 192.168.8.215.1023: UDP,length 28
... reapeat infinity ....

I checked  a source file of pxeboot at FreeBSD 9.3, then I was succeed to b=
oot
using Linux NFS Server.

My improvement is as below.

*** /sys/boot/i386/libi386/pxe.c.orig  2014-12-14 13:47:38.000000000 +0900
--- /sys/boot/i386/libi386/pxe.c       2016-04-10 20:24:13.000000000 +0900
***************
*** 673,679 ****
        uh =3D (struct udphdr *) pkt - 1;
        bzero(udpread_p, sizeof(*udpread_p));

!       udpread_p->dest_ip        =3D h->myip.s_addr;
        udpread_p->d_port         =3D h->myport;
        udpread_p->buffer_size    =3D len;
        udpread_p->buffer.segment =3D VTOPSEG(data_buffer);
--- 673,679 ----
        uh =3D (struct udphdr *) pkt - 1;
        bzero(udpread_p, sizeof(*udpread_p));

!       udpread_p->src_ip         =3D h->destip.s_addr;
        udpread_p->d_port         =3D h->myport;
        udpread_p->buffer_size    =3D len;
        udpread_p->buffer.segment =3D VTOPSEG(data_buffer);

The Intel's document of pxe says=20

DestIP: Only accept packets sent to this IP address. If this is zero,
packets sent to any IP address are accepted

http://www.intel.com/design/archives/wfm/downloads/pxespec.htm

I remove line of udpread_p->dest_ip... , And added the line
udpread_p->src_ip... for security.

I wonder why NFS Server of FreeBSD is success at the code of current.
Unfortunately a reason isn't understood.


--- my test enviroment
Boot server
 CentOS6.7 and CentOS7.1.

Diskless client
 FreeBSD-9.3
 Hardware1: virtual machin of VMware ESXi 6.0
 Hardware2: M/B SuperMicro X8SIL-F (IntelPXE)

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-208669-7>