2001-11-15 15:47:15

by John Summerfield

[permalink] [raw]
Subject: BOOTP and 2.4.14


I'm trying to configure a system to boot with root on NFS. I have it
working, but there are problems.

The most serious are that the DNS domain name is set wrongly, and NIS
domain's not set at all.

The IP address offered and accepted in 192.168.1.20.

The DNS domain name being set is 168.1.20, and the host name 192.


I'm looking at the ipconfig.c source, around line 1324 where I see this
code:
case 4:
if ((dp = strchr(ip, '.'))) {
*dp++ = '\0';
strncpy(system_utsname.domainname, dp, __NEW_UTS_LEN);
system_utsname.domainname[__NEW_UTS_LEN] = '\0';
}
strncpy(system_utsname.nodename, ip, __NEW_UTS_LEN);
system_utsname.nodename[__NEW_UTS_LEN] = '\0';
ic_host_name_set = 1;
break;


I can see how the dnsdomain name's being set, and it does not look
right to me.

If someone can prepare a patch for me, I'll be delighted to test it.


--
Cheers
John Summerfield

Microsoft's most solid OS: http://www.geocities.com/rcwoolley/

Note: mail delivered to me is deemed to be intended for me, for my
disposition.




2001-11-15 15:11:45

by David Miller

[permalink] [raw]
Subject: Re: BOOTP and 2.4.14


Set your kernel command line correctly, the format is:

HOSTNAME.NIS_DOMAINNAME

It has been like this since ancient times :-)

2001-11-15 19:47:53

by John Summerfield

[permalink] [raw]
Subject: Re: BOOTP and 2.4.14

>
> Set your kernel command line correctly, the format is:
>
> HOSTNAME.NIS_DOMAINNAME
>
> It has been like this since ancient times :-)
>


I don't understand. According to nfsroot.txt all I need is this:

[root@numbat root]# cat /misc/fd0/syslinux.cfg
default linux
prompt 1
timeout 1
label linux
kernel vmlinuz
append root=/dev/nfs ip=bootp initrd=initial.dsk
[root@numbat root]#

The kernel messages say it's got the domain name, but by the time it
gets to init (I altered /etc/rc.d/rc.sysinit to see) it's using the IP
address for host/domain names, and that's what I see in the code I
cited.

The nis domain's not being set, but I've not established the kernel's
at failt.

According to the debugging code which I've enabled, it's seeing
extensions 1, 3, 6, 55, 45, 46 and 15.

1 looks like the netmask, 3, 6, 44 and 45 are all the IP address of the
server (it does several things so that's probably okay), 46 has the
value 08 and 15 is the DNS domain name.

The client's IP address isn't reported by the debugging code, but is
set to the value I expect.

I see the extensions are parsed in ic_do_bootp_ext which silently
ignores 44, 45 & 46.

Here are some kernel messages from booting the client:
Nov 16 02:46:51 192 kernel: IP-Config: Entered.
Nov 16 02:46:52 192 kernel: IP-Config: eth0 UP (able=1, xid=46e93477)
Nov 16 02:46:52 192 kernel: Sending BOOTP requests .DHCP/BOOTP: Got
extension 1: ff ff ff 00
Nov 16 02:46:52 192 kernel: DHCP/BOOTP: Got extension 3: c0 a8 01 01
Nov 16 02:46:52 192 kernel: DHCP/BOOTP: Got extension 6: c0 a8 01 01
Nov 16 02:46:52 192 kernel: DHCP/BOOTP: Got extension 44: c0 a8 01 01
Nov 16 02:46:52 192 kernel: DHCP/BOOTP: Got extension 45: c0 a8 01 01
Nov 16 02:46:52 192 kernel: DHCP/BOOTP: Got extension 46: 08
Nov 16 02:46:52 192 kernel: DHCP/BOOTP: Got extension 15: 4f 73 32 2e
41 6d 69 2e 43 6f 6d 2e 41 75
Nov 16 02:46:52 192 kernel: OK
Nov 16 02:46:52 192 kernel: IP-Config: Got BOOTP answer from
192.168.1.1, my address is 192.168.1.20
Nov 16 02:46:52 192 kernel: IP-Config: Complete:
Nov 16 02:46:52 192 kernel: device=eth0, addr=192.168.1.20,
mask=255.255.255.0, gw=192.168.1.1,
Nov 16 02:46:52 192 kernel: host=192.168.1.20,
domain=Os2.Ami.Com.Au, nis-domain=(none),
Nov 16 02:46:52 192 kernel: bootserver=192.168.1.1,
rootserver=192.168.1.1, rootpath=


By the time init passes control to ins initialisation script, the
hostname command reports 192 and dnsdomainname reports 168.0.1.


--
Cheers
John Summerfield

Microsoft's most solid OS: http://www.geocities.com/rcwoolley/

Note: mail delivered to me is deemed to be intended for me, for my
disposition.



2001-11-15 21:22:29

by Peter Wächtler

[permalink] [raw]
Subject: Re: BOOTP and 2.4.14

[email protected] schrieb:
>
> I'm trying to configure a system to boot with root on NFS. I have it
> working, but there are problems.
>
> The most serious are that the DNS domain name is set wrongly, and NIS
> domain's not set at all.
>
> The IP address offered and accepted in 192.168.1.20.
>
> The DNS domain name being set is 168.1.20, and the host name 192.
>


Uh, how about to specify a NAME.DOMAIN.COM instead of an
dotted IP. Check your bootp configuration.


> I'm looking at the ipconfig.c source, around line 1324 where I see this
> code:
> case 4:
> if ((dp = strchr(ip, '.'))) {
> *dp++ = '\0';
> strncpy(system_utsname.domainname, dp, __NEW_UTS_LEN);
> system_utsname.domainname[__NEW_UTS_LEN] = '\0';
> }
> strncpy(system_utsname.nodename, ip, __NEW_UTS_LEN);
> system_utsname.nodename[__NEW_UTS_LEN] = '\0';
> ic_host_name_set = 1;
> break;
>
> I can see how the dnsdomain name's being set, and it does not look
> right to me.
>
> If someone can prepare a patch for me, I'll be delighted to test it.
>

2001-11-16 15:47:12

by John Summerfield

[permalink] [raw]
Subject: Re: BOOTP and 2.4.14

> [email protected] schrieb:
> >
> > I'm trying to configure a system to boot with root on NFS. I have it
> > working, but there are problems.
> >
> > The most serious are that the DNS domain name is set wrongly, and NIS
> > domain's not set at all.
> >
> > The IP address offered and accepted in 192.168.1.20.
> >
> > The DNS domain name being set is 168.1.20, and the host name 192.
> >
>
>
> Uh, how about to specify a NAME.DOMAIN.COM instead of an
> dotted IP. Check your bootp configuration.


The IP address being offered does not need to resolve; if I configure
it to update my DNS, then at the time it's offered it will not resolve.

Here's the stanza from /etc/dhcpd.conf

host banana
{
fixed-address 192.168.1.20;
option host-name "banana";
}


BUT the stanza's not required at all.

>
> > I'm looking at the ipconfig.c source, around line 1324 where I see this
> > code:
> > case 4:
> > if ((dp = strchr(ip, '.'))) {
> > *dp++ = '\0';
> > strncpy(system_utsname.domainname, dp, __NEW_UTS_LEN);
> > system_utsname.domainname[__NEW_UTS_LEN] = '\0';
> > }
> > strncpy(system_utsname.nodename, ip, __NEW_UTS_LEN);
> > system_utsname.nodename[__NEW_UTS_LEN] = '\0';
> > ic_host_name_set = 1;
> > break;
> >
> > I can see how the dnsdomain name's being set, and it does not look
> > right to me.
> >
> > If someone can prepare a patch for me, I'll be delighted to test it.
> >
>

--
Cheers
John Summerfield

Microsoft's most solid OS: http://www.geocities.com/rcwoolley/

Note: mail delivered to me is deemed to be intended for me, for my
disposition.