PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DHCPD: subnet decleration



usr
03.11.03, 13:44
Hi,
irgendwie ist mein dhcpd unwillig. Wenn ich ihn starte, bekomme ich folgende Fehlermeldung: "No subnet declaration for eth1"
Eth1 ist meine Nic, die die DSL-Verbindung herstellt (ppp0). Vom dhcpd bekomme ich so natürlich keine leases. Der Eintrag "subnet 10.0.0.1 netmask 255.255.255.255
{
deny bootp;
deny booting;
}
" in der dhcpd.conf hat leider auch nichts gebracht. Bei /etc/sysnconfig/dhcpd habe ich dhcpd an das interne Interface, also eth0 gebunden. Hier meine dhcpd.conf (ohne statische IPs, domain ist "zensiert"):




ddns-update-style none;
authorative;
subnet 192.168.0.0 netmask 255.255.255.0
{
range 192.168.0.2 192.168.0.50;
option subnet-mask 255.255.255.0;
option netbios-name-servers 192.168.0.1;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
option ip-forwarding off;
option domain-name "ba**n*+.local";
option nntp-server 192.168.0.1;
default-lease-time 86400;
max-lease-time 604800;
option domain-name-servers 192.168.0.1;
}

subnet 10.0.0.1 netmask 255.255.255.255
{
deny bootp;
deny booting;
}

Eth1 ist die Nic für die DSL-Verbindungen und hat eine statische IP (10.0.0.1). OS ist Suse 9.0

Jasper
03.11.03, 14:08
gib dhcpd beim starten als option 'eth0' mit. siehe manpage von dhco.
per default will dhcpd auf ALLEN interaces seine dienste bereitsstellen. in deinem fall ist das für eth1 aber falsch.

-j

usr
03.11.03, 15:33
Danke. Das werde ich mal testen. Ich habe bei /etc/sysconfig/dhcpd bereits "DHCPD_INTERFACE="eth0"" angegeben. Reicht das nicht aus?

Ein Sache noch: die Regeln müsste doch ür dhcp passen oder?

LAN_IP_RANGE="192.168.0.0/24" # IP Range
LAN_BROADCAST_ADDRESS="192.168.0.255" # IP Range Broadcast
INT="eth0"

# LAN/Broadcast akzeptieren
$IPT -A INPUT -i $INT -s $LAN_IP_RANGE -p all -j ACCEPT
$IPT -A OUTPUT -o $INT -d $LAN_IP_RANGE -p all -j ACCEPT
$IPT -A INPUT -i $INT -s $LAN_BROADCAST_ADDRESS -j ACCEPT
$IPT -A OUTPUT -o $INT -d $LAN_BROADCAST_ADDRESS -j ACCEPT

Ist natürlich nur ein kleiner Auszug.

Jasper
03.11.03, 16:48
Original geschrieben von usr
Danke. Das werde ich mal testen. Ich habe bei /etc/sysconfig/dhcpd bereits "DHCPD_INTERFACE="eth0"" angegeben. Reicht das nicht aus?


wenn diese datei im initsrkript auch ordnungsgemäss verwendet wird, ja. sieh mal mit 'ps axu' nach, ob der parameter beim starten verwednet wird. wenn nicht, musst du in das initskript reinsehen.



Ein Sache noch: die Regeln müsste doch ür dhcp passen oder?


der DHCPD von ISC verwendet raw sockets, die gehen an iptables vorbei. im forum gabs mal einen längeren thread dazu.

-j

usr
03.11.03, 17:51
Den thread habe ich gefunden und auch gelesen. Der eine Kollege wollte ja unbedingt DHCP blocken. Ich will das ja nicht. Folglich sollten die Regeln passen oder habe ich da einen Denkfehler?

Ein "ps aux" ergibt für den dhcpd folgendes: "0:00 /usr/sbin/dhcpd -chroot /var/lib/dhcp/ -lf /dhcpd.leases -user nobody"

Ich verstehe die ganze Sache net wirklich. Mit Suse 8.x hatte ich keine Probleme mitm dhcpd. Liegt das an der neuen Version oder was wurde da wieder gedreht?

Jasper
03.11.03, 18:28
Original geschrieben von usr
Den thread habe ich gefunden und auch gelesen. Der eine Kollege wollte ja unbedingt DHCP blocken. Ich will das ja nicht. Folglich sollten die Regeln passen oder habe ich da einen Denkfehler?


worauf ich hinauswill: da ISCs DHCPD raw sockets verwendet, die an netfilter vorbei gehen, kann man mit netfilter dhcp nicht beeinflussen, also weder blocken noch erlauben. kurz gesagt, für DHCP benötigt man gar keine netfilter-regeln. allerdings habe ich anhand eines anderen threads festgestellt, dass ich bei dhcpd versionsmäsig etwas hinterher bin. könnte also sein, dass sich bei der verwednung der raw sockets etwas getan hat.



Ein "ps aux" ergibt für den dhcpd folgendes: "0:00 /usr/sbin/dhcpd -chroot /var/lib/dhcp/ -lf /dhcpd.leases -user nobody"

Ich verstehe die ganze Sache net wirklich. Mit Suse 8.x hatte ich keine Probleme mitm dhcpd. Liegt das an der neuen Version oder was wurde da wieder gedreht?

wie du selbst siehst, wird kein interface übergeben. sieh dir mal das initskript an um herauszufinden, wie suse sich das mit der übergabe der interfaces gedacht hat.

-j

usr
03.11.03, 18:40
So, hier die Dateinen "dhcpd" aus /etc/sysconfig und /etc/init.d. Ich habe die Namen geändert, dass man erkennen kann, welche Datei aus welchem Ordner stammt. Für mich als Laien sehen die in Ordnung aus.

Kann ich immer nur einen Anhang pro Post uploaden?

Jasper
03.11.03, 19:25
Original geschrieben von usr
So, hier die Dateinen "dhcpd" aus /etc/sysconfig und /etc/init.d. Ich habe die Namen geändert, dass man erkennen kann, welche Datei aus welchem Ordner stammt. Für mich als Laien sehen die in Ordnung aus.


das initskript ist in ordnung. wenn die variable nicht gesetzt ist, wird der dhcpd server gar nicht erst gestartet. allerings passt das nicht zu dem ps-auszug den du gepostet hast.

man nochmal 'ps waxu --cols=500 | grep dhcpd'. was kommt dabei raus?

-j

usr
03.11.03, 19:37
ps waxu --cols=500 | grep dhcpd

nobody 3293 0.0 0.1 2616 1476 ? S 17:45 0:00 /usr/sbin/dhcpd -chroot /var/lib/dhcp/ -lf /dhcpd.leases -user nobody -group nogroup eth0
root 8802 0.0 0.0 1916 720 pts/1 R 19:39 0:00 grep dhcpd

Jasper
03.11.03, 20:21
Original geschrieben von usr

nobody 3293 0.0 0.1 2616 1476 ? S 17:45 0:00 /usr/sbin/dhcpd -chroot /var/lib/dhcp/ -lf /dhcpd.leases -user nobody -group nogroup eth0


ok, das skript funktioniert schonmal, eth0 wird übergeben.

warum dhcpd trotzdem für eth1 eine konfiguration haben will, weiss ich nicht.
mit version V3.0pl2 funktioniert das bei mir.

-j

usr
03.11.03, 21:31
Wenn ich den dhcpd manuell starten, also mit "dhcpd" bekomme ich folgende Meldung:

Internet Software Consortium DHCP Server V3.0.1rc12
Copyright 1995-2003 Internet Software Consortium.
All rights reserved.
For info, please visit http://www.isc.org/products/DHCP
Wrote 0 deleted host decls to leases file.
Wrote 0 new dynamic host decls to leases file.
Wrote 0 leases to leases file.
Listening on Socket/eth1/10.0.0.1.232/32
Sending on Socket/eth1/10.0.0.1.232/32
Listening on Socket/eth0/192.168.0.0/24
Sending on Socket/eth0/192.168.0.0/24
Sending on Socket/fallback/fallback-net

"rcdhcpd status" sagt mir, dass er läuft. Allerdings bekommt mein Mac keine IP

Wenn ich den dhcpd über "rcdhcpd start" starte, startet er sauber ohne Fehlermeldungen. "rcdhcpd status" sagt mir, dass er läuft. Aber eine IP bekomme ich auch nicht. So langsam bin ich am verzweifeln ;-)

edit: Ich habs! Ich musste die Ports für DHCP (67,68 UDP) noch extra freigeben. Das gibts doch net. Na ja, hauptsache es geht jetzt.