Hi,

I've been running dhcpd/tftpd on OpenBSD 3.8-4.2 on a PC without
problems, for booting my Soekris boxens. However, when I run [almost]
the exact same config on a net4521, and try booting another Soekris box
off that one, TFTP times out. On the boot server, 'inetd -d' shows a
rapid re-execution of tcpd (or of tftpd without using TCP wrappers) when
the client tries to fetch the pxeboot image. The same happens by the way
when I try to fetch files manually using 'tftp' from Linux or OpenBSD,
but those implementations seem to have a reputation for stupidity and
brokenness.

The really weird thing is that the same config works on a PC as boot
server, but not on a Soekris box. Anyone seen this before?

Files:

/etc/dhcpd.conf:
-----------------------------------------------------------------------
#       $OpenBSD: dhcpd.conf,v 1.1 1998/08/19 04:25:45 form Exp $
#
# DHCP server options.
# See dhcpd.conf(5) and dhcpd(8) for more information.
#

# Network:              192.168.1.0/255.255.255.0
# Domain name:          my.domain
# Name servers:         192.168.1.3 and 192.168.1.5
# Default router:       192.168.1.1
# Addresses:            192.168.1.32 - 192.168.1.127
#
#shared-network LOCAL-NET {
#       option  domain-name "my.domain";
#       option  domain-name-servers 192.168.1.3, 192.168.1.5;
#
#       subnet 192.168.1.0 netmask 255.255.255.0 {
#               option routers 192.168.1.1;
#
#               range 192.168.1.32 192.168.1.127;
#       }
#}

# Subnetwork declaration
subnet 192.168.1.0 netmask 255.255.255.0 {
        option domain-name "localdomain";
        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.1.255;
        option domain-name-servers 194.109.6.66, 194.109.104.104;
        option routers 192.168.1.1;
}

# Fixed addresses for local hosts
# (this is for PXE-booting the boor server itself)
group {
        next-server 192.168.1.2;
        host net4521 {
                hardware ethernet 00:00:24:XX:XX:XX;
                fixed-address 192.168.1.11;
                filename "pxeboot";
        }
}

# (this is for "my" clients)
group {
        next-server 192.168.1.11;
        host net4801 {
                hardware ethernet 00:00:24:YY:YY:YY;
                fixed-address 192.168.1.8;
                filename "pxeboot";
        }
        host net5501 {
                hardware ethernet 00:00:24:ZZ:ZZ:ZZ;
                fixed-address 192.168.1.9;
                filename "pxeboot";
        }
}
-----------------------------------------------------------------------

/etc/inetd.conf
-----------------------------------------------------------------------
[...]
tftp            dgram   udp     wait
root    /usr/libexec/tcpd /usr/libexec/tftpd -l -s /tftpboot
[...]
-----------------------------------------------------------------------

/etc/hosts.allow
-----------------------------------------------------------------------
# /etc/hosts.allow - see hosts_options(5)
sshd: ALL : allow
sendmail: LOCAL 192.168.1. .internal : allow
tftpd: LOCAL 192.168.1. .internal : allow
ftpd: LOCAL 192.168.1. .internal : allow
ALL: ALL : deny
-----------------------------------------------------------------------

/etc/hostname.sis0
-----------------------------------------------------------------------
inet 192.168.1.11 255.255.255.0 NONE 
-----------------------------------------------------------------------

/etc/hostname.sis0
-----------------------------------------------------------------------
inet 10.0.1.11 255.0.0.0 NONE 
-----------------------------------------------------------------------

(tried booting with and without hostname.sis1 configured - didn't make a
difference).

# pfctl -s rules          
-----------------------------------------------------------------------
scrub in all fragment reassemble
block return all
block return in quick inet6 all
pass out all flags S/SA keep state
pass in quick on lo all flags S/SA keep state
block drop in on ! lo inet from 127.0.0.0/8 to any
block drop in on ! lo inet6 from ::1 to any
block drop in inet from 127.0.0.1 to any
block drop in on ! sis0 inet from 192.168.1.0/24 to any
block drop in inet from 192.168.1.111 to any
block drop in inet6 from ::1 to any
block drop in on lo0 inet6 from fe80::1 to any
block drop in on sis0 inet6 from fe80::200:24ff:fec1:ef50 to any
pass in quick on sis1 all flags S/SA keep state
pass in inet proto icmp from <lan1> to any icmp-type echoreq code 0 keep
state
pass in log proto tcp from <lan1> port = bootps to (sis0) port = bootpc
flags S/SA keep state
pass in log proto tcp from <lan1> to (sis0) port = ftp flags S/SA keep
state
pass in log proto tcp from <lan1> to (sis0) port > 49151 flags S/SA keep
state
pass in log proto udp from <lan1> port = bootps to (sis0) port = bootpc
keep state
pass in log proto udp from <lan1> to (sis0) port = tftp keep state
pass in on sis0 proto tcp from any to (sis0) port = ssh flags S/SA keep
state
pass in log on sis0 proto tcp from any to (sis0) port = smtp flags S/SA
keep state
pass out log on sis0 proto tcp from (sis0) to any port = smtp flags S/SA
keep state
-----------------------------------------------------------------------

Do I need to allow any extra ICMP messages? And why does it work like
this on the PC and not on the Soekris box? The only difference I can see
is with the NICs: Realtek 8139 (PC) vs. NS DP83815 (Soekris boxen).

Bill

-- 
"What's a computer?" - MES

_______________________________________________
Soekris-tech mailing list
[email protected]
http://lists.soekris.com/mailman/listinfo/soekris-tech

Reply via email to