Fórum Root.cz

Hlavní témata => Distribuce => Téma založeno: Rejpal 29. 08. 2013, 22:34:41

Název: Debian: automatický start DHCP
Přispěvatel: Rejpal 29. 08. 2013, 22:34:41
Ahoj, už jsem tady zas. Tentokráte jde o zdánlivě banalitu, ale našl jsem rozporné návody - možná špatně hledám.
Nainstaloval jsem isc-dhcp-server, nastavil v /etc/dhcp/dhcp.conf vše potřebné a také to po ručním spuštění funguje.
Teď bych ale rád nějak nastavil start DHCP servru automaticky po startu. Možná špatně ťukám do googlu, ale kdyby jse mě něčím nakopli, tak bych byl vděčen. Našel jsem nějaký soubor /etc/default/isc-dhcp-server, ale neporozuměl popisu co dál s ním.
Předem děkuju za kopanec.
Název: Re:Jak v debianu nabootovat s DHCP serverem
Přispěvatel: Něco 29. 08. 2013, 22:42:08
S tímto serverem nemám zkušenost, ale co to udělat cronem? http://www.cyberciti.biz/faq/linux-execute-cron-job-after-system-reboot/
Název: Re:Debian: automatický start DHCP
Přispěvatel: Petr Krčmář 29. 08. 2013, 22:53:01
Nainstaluj si utilitu sysv-rc-conf, v ní si to pěkně interaktivně navolíš pro každý runlevel zvlášť. Jinak se k tomu používá systémová utilita update-rc.d.
Název: Re:Debian: automatický start DHCP
Přispěvatel: Rejpal 29. 08. 2013, 23:34:22
Tyjo, to je parádní utilitka, a já doteď mysle, že jak se někdo může vyznat v těch runlevelech. Coby ne, když to je tak hezky zakřížkováno. Ale stejně, ten isc-dhcp-server tam byl zakřížkován pro 2,3,4,5 runlevel, ale pŕesto po bootu nenajede, nebylo by možné nějak stopnout ty runlevelové nabíhačky abych viděl, co se děje? nějak to debugrovat. 
Název: Re:Debian: automatický start DHCP
Přispěvatel: Petr Krčmář 29. 08. 2013, 23:39:24
Dá se zapnout ukecaný boot - v souboru /etc/default/rcS se zapne VERBOSE=yes.
Název: Re:Debian: automatický start DHCP
Přispěvatel: Ramtech 29. 08. 2013, 23:44:13
A prečo nestačí chkconfig?
Název: Re:Debian: automatický start DHCP
Přispěvatel: Rejpal 30. 08. 2013, 00:00:50
Hehe, ten ukecaný boot jsem zapnul, ale i3 to flešla na 0,5 sekundy a pak to smazal login request.
Takže teď jednoznačně vim, že mu něco při startu chybí a já nevim co, protože se nespustí, i když je v runlevelech 2,3,5, volán. :(
Název: Re:Debian: automatický start DHCP
Přispěvatel: Rejpal 30. 08. 2013, 00:02:19
nedal by se ten boot někam zaznamenat?
Název: Re:Debian: automatický start DHCP
Přispěvatel: Trubicoid2 30. 08. 2013, 18:31:40
Myslim chces --noclear v /etc/inittab pro prvni terminal, gugl poradi detaily.

A co pustit ten server rucne? /etc/init.d/strasny-server start
Název: Re:Debian: automatický start DHCP
Přispěvatel: JardaP . 30. 08. 2013, 19:51:14
U tehle veci casto nekde v konfiguraku nebo v /etc/defaults byva nejaka volba, ktera zabrani nabehnuti a dost mozna treba jenom automatickemu nabehnuti, aby se zabranilo tomu, ze to nabehne s nejakymi nevhodnymi defaultnimi parametry.
Název: Re:Debian: automatický start DHCP
Přispěvatel: Rejpal 30. 08. 2013, 21:08:39
Tohle tam je:
Kód: [Vybrat]
# Defaults for isc-dhcp-server initscript
# sourced by /etc/init.d/isc-dhcp-server
# installed at /etc/default/isc-dhcp-server by the maintainer scripts

#
# This is a POSIX shell fragment
#

# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
DHCPD_CONF=/etc/dhcp/dhcpd.conf

# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
#DHCPD_PID=/var/run/dhcpd.pid

# Additional options to start dhcpd with.
# Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
#OPTIONS=""

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth1"

Ale nikde nevidím slůvko required. To eth1 jsem povoloval a také cestu pro konfig.
Název: Re:Debian: automatický start DHCP
Přispěvatel: JardaP . 30. 08. 2013, 23:40:40
Mrknete do /etc/defaults, jestli tam nemaji jeste jeden soubor.
Název: Re:Debian: automatický start DHCP
Přispěvatel: Rejpal 31. 08. 2013, 08:27:51
Je tam už jenom jediný soubor, týkající se sítě, soubor network:
Kód: [Vybrat]
# Configuration for networking init script being run during
# the boot sequence

# Set to 'no' to skip interfaces configuration on boot
#CONFIGURE_INTERFACES=yes

# Don't configure these interfaces. Shell wildcards supported/
#EXCLUDE_INTERFACES=

# Set to 'yes' to enable additional verbosity
#VERBOSE=no

Název: Re:Debian: automatický start DHCP
Přispěvatel: hhj 31. 08. 2013, 10:42:07
a nemuze byt problem v tom ze pri startu dhcp server nabehne, ale neco se mu nelibi a proto se ukonci?

rika neco /var/log/syslog ?
Název: Re:Debian: automatický start DHCP
Přispěvatel: orm 31. 08. 2013, 11:17:25
Dobrý den,

1, dhcp loguje do souboru /var/log/daemon.log, tj. tam najdete duvod proc vam dhcp nechce najet, pokud startuje.

grep dhcp /var/log/daemon.log

2, dhcp server pouziva dva soubory /etc/dhcp/dhcpd.conf a /etc/default/isc-dhcp-server. V souboru isc-dhcp-server je potřeba uvést jméno rozhraní na kterém bude dhcp poslouchat.

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth1"

3, Pokud se chcete dostat k hláškám startujících programů při bootu, tak si nainstalujte balíček bootlogd, platí pro wheezy. Pro starší distribuce editujte soubor /etc/default/bootlogd.

# Run bootlogd at startup ?
BOOTLOGD_ENABLE=Yes

Hlášky se ukládají do souboru /var/log/boot.

4, Program update-rc.d byl nahrazen v nových verzích Debianu programem insserv, viz. wiki https://wiki.debian.org/LSBInitScripts/DependencyBasedBoot.
Název: Re:Debian: automatický start DHCP
Přispěvatel: Rejpal 31. 08. 2013, 16:38:28
Moc děkuji za cenné informace, ukládám. Nicméně jsem pomocí nich jen zjistil, že je daemon spouštěn, ale pak je vypnut, z mě neznámé příčiny. Jal jsem se pátrat směrem k runlevelů, i když prakticky naslepo. Narazil jsem na dosti komplikovaný systém, který bude nutno prostudovat a zorientovat se v něm. Myslím ty runlevely. Tady jsem zjistil možnou příčinu. Zapínám eth1 příkazem ifconfig eth1 172.16.1.1 netmask 255.255.255.0 v souboru /etc/rc.local, který je ale v /etc/rc2.d uveden jako S21rc.local, přičemž isc-dhcp-server má uvedeno S18isc-dhcp-server. Dedukuju z toho, že isc-dhcp-server se spustí ještě před rc.local a tím zhebne na banální chybu nezapnuté eth1.
Z toho mě plynou dva dotazy:
1. Proč jsou soubory uvedeny ve všech runlevelech, aneb asi to nebude tak, že se skripty po startu spouští v pořadí, jak jdou runlevely? čili nejdřív se spustí runlevel 0, pak 1, pak 2?
2. můžu přepsat u všech /etc/rcx.d číslo Sxxrc.local tak, aby bylo menší, v tomto případě kupř. S17rc.local, než je číslo S18isc-dhcp-server, abych docílil přednostního spuštění souboru /etc/rc.local ještě před spuštěním isc-dhcp-server? Nebo mám použít opačný postup, zvýšit S18isc-dhcp-server, na třebas S22isc-dhcp-server, ANIŽ bych způsobil nějakou katastrofu?
Název: Re:Debian: automatický start DHCP
Přispěvatel: Lol Phirae 31. 08. 2013, 17:01:38
Šmajrá, ty tam nemáš nastavenou IP adresu? No, tak to se snažíš vopravdu zbytečně. A jinak, takhle blbě se teda ty IP adresy fakt nenastavujou.

https://wiki.debian.org/NetworkConfiguration#Configuring_the_interface_manually
Název: Re:Debian: automatický start DHCP
Přispěvatel: Rejpal 31. 08. 2013, 18:14:52
Šmarjá, to jsem také zkoušel, debian ale nenastaví adresu z /etc/network/interfaces dřív, než spustí isc-dhcp-server.
A teď babo raď.
Název: Re:Debian: automatický start DHCP
Přispěvatel: Lol Phirae 31. 08. 2013, 18:40:52
Asi to máš rozbitý. Žádný podobný problém nepozoruju.
Název: Re:Debian: automatický start DHCP
Přispěvatel: Rejpal 31. 08. 2013, 18:58:15
ifconfig eth1 172.16.1.1 netmask 255.255.255.0
/etc/init.d/isc-dhcp-server start

Tyto dva řádky v souboru /etc/rc.local a odstranění dhcp serveru ze startu v runlevelech situaci vyřešili. Evidentní bug v, a teď nevím v čem, abych někoho neurazil.

Apropo, nevim, co bych moh mít rozbitý, zkoušel jsem to na dvou strojích po čerstvé instalaci debianu. Chovalo se to stejně.
Název: Re:Debian: automatický start DHCP
Přispěvatel: orm 31. 08. 2013, 22:30:29
Dobrý den,

přečetl jsem váš příspěvek a je z něj patrné, že nevíte jak funguje boot v linuxu a program init. Se studiem můžete začít zde https://wiki.debian.org/Init.

Co se týká vašeho problému. Za prvé bych odstranil všechno co jste napsal do souboru /etc/rc.local a nechal tam jen exit 0, tak se to prostě nedělá. Síť se v debianu nastavuje v souboru /etc/network/interfaces, ve vašem případě tam dáte něco takového

auto eth1

iface eth1 inet static
   address 172.16.1.1
   netmask 255.255.255.0

Síť se startuje pomoci init skriptu /etc/init.d/networking. Tento skript by měl být spuštěn před skriptem /etc/init.d/isc-dhcp-server. Debian standardně bootuje v runlevelu 2, tj. vás bude zajímat adresář /etc/rc2.d. Každopádně skript na spuštění sítě se dává do adresáře /etc/rcS.d a skripty v tomto adresáři jsou spouštěny před skripty v adresáři specifickém pro runlevel, takže by v tom neměl byt problém.

Debian od verze 6 používá dependency base boot, tj. pokud init skript obsahuje na začátku nějaká data, viz. https://wiki.debian.org/LSBInitScripts/DependencyBasedBoot, a je vložen pomocí programu insserv, tak by spuštění init skriptu ve správném pořadí mělo být zaručeno. Každopádně je možné si ty simlinky v rc*.d měnit ručně, ale pak musíte počítat s tím, že se to v budoucnu může rozbít :-).
Název: Re:Debian: automatický start DHCP
Přispěvatel: Rejpal 31. 08. 2013, 23:33:49
Ano, máte naprostou pravdu, skutečně nevím, jak funguje boot, a nejen boot. Jsem teprve začátečník a učím se sám metodou samostudia + pokus/omyl.
To co jste mě odepsal, jsou pro mne další cenné informace, potřebné ke studiu. Určitě je využiju, nicméně nevysvětlují, proč nastala výše popsaná situce s nefukčností dhcp servru po bootu.
Název: Re:Debian: automatický start DHCP
Přispěvatel: orm 01. 09. 2013, 13:45:22
Dobrý den, vždyť jste si již sám odpověděl proč vám dhcp po startu spadne. Konfigurujete síť tam kde nemáte, v rc.local. Tento skript je spuštěn až po skriptu který spouští dhcp. Jelikož dhcp potřebuje mít nakonfigurovanou síť na rozhraní na kterém bude poslouchat, jinak se u končí, tak vám spadne a je to také ten důvod, proč vám dhcp jede, když si ho sám spustíte v rc.local až po konfiguraci sítě.

Proč vůbec konfigurujete síť v rc.local a ne na místě k tomu určeném, tj. v interfaces?

O žádný bug se nejedná, jen o váš, chtělo by se napsat, nestandardní způsob konfigurace.
Název: Re:Debian: automatický start DHCP
Přispěvatel: Rejpal 01. 09. 2013, 15:31:08
Pane orme, je vidět, že jste nečetl důsledné celou diskuzi, protože jinak by jste věděl, že jsem měl definovanou síť také v /etc/network/interfaces a problém, který řeším, je, proč je dhcp server spuštěn dřív, než se svedne síť, která je v /etc/network/interfaces nadefinovaná.

Výpis ze syslog po rebootu:

Kód: [Vybrat]
Sep  1 15:26:51 debian dhcpd: Internet Systems Consortium DHCP Server 4.2.2
Sep  1 15:26:51 debian dhcpd: Copyright 2004-2011 Internet Systems Consortium.
Sep  1 15:26:51 debian dhcpd: All rights reserved.
Sep  1 15:26:51 debian dhcpd: For info, please visit https://www.isc.org/software/dhcp/
Sep  1 15:26:51 debian dhcpd: Wrote 1 leases to leases file.
Sep  1 15:26:51 debian dhcpd:
Sep  1 15:26:51 debian dhcpd: No subnet declaration for eth1 (no IPv4 addresses).
Sep  1 15:26:51 debian dhcpd: ** Ignoring requests on eth1.  If this is not what
Sep  1 15:26:51 debian dhcpd:    you want, please write a subnet declaration
Sep  1 15:26:51 debian dhcpd:    in your dhcpd.conf file for the network segment
Sep  1 15:26:51 debian dhcpd:    to which interface eth1 is attached. **
Sep  1 15:26:51 debian dhcpd:
Sep  1 15:26:51 debian dhcpd:
Sep  1 15:26:51 debian dhcpd: Not configured to listen on any interfaces!

Výpis po /etc/init.d/isc-dhcp-server start

Kód: [Vybrat]
Sep  1 15:28:35 debian dhcpd: Internet Systems Consortium DHCP Server 4.2.2
Sep  1 15:28:35 debian dhcpd: Copyright 2004-2011 Internet Systems Consortium.
Sep  1 15:28:35 debian dhcpd: All rights reserved.
Sep  1 15:28:35 debian dhcpd: For info, please visit https://www.isc.org/software/dhcp/
Sep  1 15:28:35 debian dhcpd: Internet Systems Consortium DHCP Server 4.2.2
Sep  1 15:28:35 debian dhcpd: Copyright 2004-2011 Internet Systems Consortium.
Sep  1 15:28:35 debian dhcpd: All rights reserved.
Sep  1 15:28:35 debian dhcpd: For info, please visit https://www.isc.org/software/dhcp/
Sep  1 15:28:35 debian dhcpd: Wrote 1 leases to leases file.

skutečně už nevím, jak bych vám vyjasnil lépe, v čem je problém, abyste mě mohli poradit, kde dělám chybu.
Název: Re:Debian: automatický start DHCP
Přispěvatel: JardaP . 01. 09. 2013, 16:03:48
Tak kdyz se vam spousti DHCP server pred nahozenim site, tak se podivejte na poradi init skriptu v danem runlevelu.
Název: Re:Debian: automatický start DHCP
Přispěvatel: Rejpal 01. 09. 2013, 17:11:18
.........

Síť se startuje pomoci init skriptu /etc/init.d/networking. Tento skript by měl být spuštěn před skriptem /etc/init.d/isc-dhcp-server. Debian standardně bootuje v runlevelu 2, tj. vás bude zajímat adresář /etc/rc2.d. Každopádně skript na spuštění sítě se dává do adresáře /etc/rcS.d a skripty v tomto adresáři jsou spouštěny před skripty v adresáři specifickém pro runlevel, takže by v tom neměl byt problém.
.......

Tady to říká, že síť startuje mnohem dřív než dhcp server v runleveli 2

A tady to říká, že nejsem sám, co narazil na tento problém:

"I had exactly the same problem.

I fixed it by editing /etc/init.d/isc-dhcp-server and adding a sleep 10 at the top.
I tried sleep 5 but it wasn't enough."

Kód: [Vybrat]
http://askubuntu.com/questions/58032/dhcp-server-doesnt-start-at-boot-because-of-wrong-startup-order
Název: Re:Debian: automatický start DHCP
Přispěvatel: Ondřej Caletka 01. 09. 2013, 17:34:40
A nezapomněl jsi v tom souboru /etc/network/interfaces přidat také následující řádek?
Kód: [Vybrat]
auto eth1
Jinými slovy, když odstraníš ten ifconfig z rc.local, nabootuje to s nastavenou IP adresou na eth1, či nikoli? Pokud to nabootuje bez adresy, máš špatně /etc/network/interfaces a hledej chybu tam. Pokud to nastartuje se správně nakonfigurovanou adresou a přesto se dhcpd nespustí, může být skutečně problém se závislostí skriptů a asi pomůže workaround v podobě sleepu na začátku initskriptu.

Právě jsem se ale podíval na jeden server s Wheezym, kde běží DHCPd a žádnou speciální konfiguraci jsem tam nenašel, takže by to mělo fungovat bez úprav.
Název: Re:Debian: automatický start DHCP
Přispěvatel: Rejpal 01. 09. 2013, 19:21:33
No iterfaces mám takto:
Kód: [Vybrat]
This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.7
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.2
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.1.2

allow-hotplug eth1
iface eth1 inet static
address 172.16.1.1
netmask 255.255.255.0
network 172.16.1.0
broadcast 172.16.1.255
gateway 192.168.1.2
# dns-* options are implemented by the resolvconf package, if installed
# dns-nameservers 192.168.1.2

jestli je to dobře, nevim, ale eth1 konfiguroval instalátor debianu a eth1 jsem od něj odkoukal.
Pozn. - samozřejmě, že nemám obě věci současně, buď mám eth1 tak jak je výše, nebo to dám do rc.local, jak jsem psal předtim, ale současně jsem to neměl nikdy.
Název: Re:Debian: automatický start DHCP
Přispěvatel: Rejpal 01. 09. 2013, 19:42:42
Problém vyřešen.
Ďekuju všem za příspěvky, každý jeden má pro mě cenné informace.

Takže bug je v tom, že instalátor debianu nenakonfiguroval do /etc/network/interfaces příkaz auto eth0, což přikazuje systému konfigurovat síťovku eth0 skriptem /etc/init.d/networking. Já to tvrdě od něj odkoukal i pro eth1, a  informace, kterou jsem o příkazu auto ethX měl, byla zapadlá prachem. Prostě ta moje stará palice zapoměla. Omlouvám se všem, kdo si teď říkáte - njn, zas jedna lama, kdybych věděl, že to tam nemá....
Ale jsem poučen, nastudoval jsem přitom do jisté míry problematiku runlevelů a posunul se dál.
Ješté jednou díky všem.
Už to jede jak má.