[RISOLTO] Script networking

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
hashbang
Packager
Packager
Messaggi: 2021
Iscritto il: ven 4 giu 2010, 10:27
Nome Cognome: Luca De Pandis
Distribuzione: macOS/OpenBSD
Località: Lecce/Bergamo

[RISOLTO] Script networking

Messaggio da hashbang »

Salve a tutti,
vorrei chiedervi un consiglio riguardo lo script di inizializzazione rc.inet1. in breve a volte quando effettuo il boot lo script parte ma va in timed out. Questo comporta che quando mi loggo e vado su internet mi esce l'errore relativo alla mancanza di connessione. Il problema si risolve dopo una ventina di secondi. Nonostante questo problema compaia su KDE non ho mai avuto problemi in quanto la durata del caricamento del desktop mi permetteva di accedere tranquillamente su internet. Ma visto che uso FluxBox (però succedeva anche con XFCE) i tempi di caricamento sono irrisori e pertanto mi trovo in questa situazione. Ho notato però che su ArchLinux questo non succede nonostante sia persino più veloce (e a volte quando parte lo script del networking la connessione ADSL non è pronta, ma rimane su BUSY e quando la ADSL ha finito di caricare lo completa). Pertanto su Arch io ho la connessione totalmente funzionante già alla primo login in modo immediato.

Avete qualche idea per risolvere questo "scomodo" inconveniente?
Ultima modifica di hashbang il mer 13 ott 2010, 1:32, modificato 1 volta in totale.

Avatar utente
sardylan
Linux 3.x
Linux 3.x
Messaggi: 993
Iscritto il: mar 24 apr 2007, 9:21
Nome Cognome: Luca Cireddu
Slackware: current 64bits
Kernel: 3.16
Desktop: KDE 4.14
Distribuzione: Debian - CLFS
Località: Cagliari
Contatta:

Re: Script networking

Messaggio da sardylan »

A che cosa è dovuto questo ritardo??? Usi un router con la connessione nattata, e quindi è causato dal DHCP, oppure usi un modem ed avvii una connessione PPPoE nel computer?

hashbang
Packager
Packager
Messaggi: 2021
Iscritto il: ven 4 giu 2010, 10:27
Nome Cognome: Luca De Pandis
Distribuzione: macOS/OpenBSD
Località: Lecce/Bergamo

Re: Script networking

Messaggio da hashbang »

sardylan ha scritto:A che cosa è dovuto questo ritardo??? Usi un router con la connessione nattata, e quindi è causato dal DHCP, oppure usi un modem ed avvii una connessione PPPoE nel computer?
Un router con DHCP.

Avatar utente
sardylan
Linux 3.x
Linux 3.x
Messaggi: 993
Iscritto il: mar 24 apr 2007, 9:21
Nome Cognome: Luca Cireddu
Slackware: current 64bits
Kernel: 3.16
Desktop: KDE 4.14
Distribuzione: Debian - CLFS
Località: Cagliari
Contatta:

Re: Script networking

Messaggio da sardylan »

Allora potrebbe essere proprio un problema del demone dhcpcd... Prova da shell a fare a mano dei test usando dhcpcd e dhclient... Vedi quale dei due è più veloce...
La Slackware utilizza dhcpcd. Forse ArchLinux usa dhclient...

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Script networking

Messaggio da targzeta »

Potresti pensare di usare un indirizzo IP statico con il router, così non usi DHCP e fai in un attimo...se il problema è quello.
Devi capire se il problema è da te al router o dal router alla rete, mi sembra strano che un qualsiasi client DHCP ci metta così tanto per avere le informazioni di rete.

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
sardylan
Linux 3.x
Linux 3.x
Messaggi: 993
Iscritto il: mar 24 apr 2007, 9:21
Nome Cognome: Luca Cireddu
Slackware: current 64bits
Kernel: 3.16
Desktop: KDE 4.14
Distribuzione: Debian - CLFS
Località: Cagliari
Contatta:

Re: Script networking

Messaggio da sardylan »

Vabbe... Dipende anche dal router spina... Per esempio in facoltà con la rete universitaria il DHCP ci mette anche 30 secondi per ottenere un IP... A volte è davvero lento...
Ma li ci sono discorsi di server vari, giri assurdi di traffico e quant'altro...
Per un router domestico non c'è niente da fare di particolare, e dovrebbe darlo in fretta..

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Script networking

Messaggio da targzeta »

Certo certo, hai ragione. Davo per scontato che si trattasse di una rete domestica, visto che ha detto: '...la connessione ADSL non è pronta, ma rimane su BUSY e quando la ADSL ha finito di caricare lo completa'.

Ma effettivamente potrei sbagliarmi,
Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

hashbang
Packager
Packager
Messaggi: 2021
Iscritto il: ven 4 giu 2010, 10:27
Nome Cognome: Luca De Pandis
Distribuzione: macOS/OpenBSD
Località: Lecce/Bergamo

Re: Script networking

Messaggio da hashbang »

sardylan ha scritto:Allora potrebbe essere proprio un problema del demone dhcpcd... Prova da shell a fare a mano dei test usando dhcpcd e dhclient... Vedi quale dei due è più veloce...
La Slackware utilizza dhcpcd. Forse ArchLinux usa dhclient...
Sembra che anche ArchLinux usi dhcpcd. Lo script del networking di Arch comunque è questo (/etc/rc.d/network)

Codice: Seleziona tutto

#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions

# wireless settings
[ -f /etc/conf.d/wireless ] && . /etc/conf.d/wireless
# ethernet bonding settings
[ -f /etc/conf.d/bonding ] && . /etc/conf.d/bonding
# bridge settings
[ -f /etc/conf.d/bridges ] && . /etc/conf.d/bridges
# dhcpcd settings
[ -f /etc/conf.d/dhcpcd ] && . /etc/conf.d/dhcpcd

ifup()
{
	if [ "$1" = "" ]; then
		echo "usage: $0 ifup <interface_name>"
		return 1
	fi

	eval ifcfg="\$${1}"

	# Get the name of the interface from the first token in the string

	if [ "$ifcfg" = "dhcp" ]; then
		ifname="$1"
	else
		ifname=${ifcfg%% *}
	fi

	/sbin/ifconfig $ifname up

	wi_up $1 || return 1

	if [ "$ifcfg" = "dhcp" ]; then
		# remove the .pid file if it exists
		/bin/rm -f /var/run/dhcpcd-${1}.pid >/dev/null 2>&1
		/bin/rm -f /var/run/dhcpcd-${1}.cache >/dev/null 2>&1
		/sbin/dhcpcd $DHCPCD_ARGS ${1}
	else
		/sbin/ifconfig $ifcfg
	fi
	return $?
}

wi_up()
{
	eval iwcfg="\$wlan_${1}"
	[ "$iwcfg" = "" ] && return 0

	/usr/sbin/iwconfig $iwcfg
	[[ -z "$WIRELESS_TIMEOUT" ]] && WIRELESS_TIMEOUT=2
	sleep $WIRELESS_TIMEOUT

	bssid=`iwgetid $1 -ra`
	if [[ "$bssid" = "00:00:00:00:00:00" ]]; then
		printhl "Could not associate $1 - try increasing WIRELESS_TIMEOUT and check network is WEP or has no security"
		return 1
	fi
	return 0
}

ifdown()
{
	if [ "$1" = "" ]; then
		echo "usage: $0 ifdown <interface_name>"
		return 1
	fi
	eval ifcfg="\$${1}"
	if [ "$ifcfg" = "dhcp" ]; then
		if [ -f /var/run/dhcpcd-${1}.pid ]; then
			/bin/kill $(cat /var/run/dhcpcd-${1}.pid)
		fi
	fi
	# Always bring the interface itself down
	/sbin/ifconfig ${1} down >/dev/null 2>&1
	return $?
}

iflist()
{
	for ifline in ${INTERFACES[@]}; do
		if [ "$ifline" = "${ifline#!}" ]; then
			printf " $ifline:\t"
		else
			printf "$ifline:\t"
		fi
		eval real_ifline=\$${ifline#!}
		echo $real_ifline
	done
}

rtup()
{
	if [ "$1" = "" ]; then
		echo "usage: $0 rtup <route_name>"
		return 1
	fi
	eval routecfg="\$${1}"
	if grep -q :: <<< $routecfg; then
			/sbin/route -A inet6 add $routecfg
	else
			/sbin/route add $routecfg
	fi
	return $?
}

rtdown()
{
	if [ "$1" = "" ]; then
		echo "usage: $0 rtdown <route_name>"
		return 1
	fi
	eval routecfg="\$${1}"
	if grep -q :: <<< $routecfg; then
			/sbin/route -A inet6 del $routecfg
	else
			/sbin/route del $routecfg
	fi
	return $?
}

rtlist()
{
	for rtline in ${ROUTES[@]}; do
		if [ "$rtline" = "${rtline#!}" ]; then
			printf " $rtline:\t"
		else
			printf "$rtline:\t"
		fi
		eval real_rtline=\$${rtline#!}
		echo $real_rtline
	done
}

bond_up()
{
	for ifline in ${BOND_INTERFACES[@]}; do
		if [ "$ifline" = "${ifline#!}" ]; then
			eval bondcfg="\$bond_${ifline}"
			if [ -n "${bondcfg}" ]; then
				/sbin/ifenslave $ifline $bondcfg || error=1
			fi
		fi
	done
}

bond_down()
{
	for ifline in ${BOND_INTERFACES[@]}; do
		if [ "$ifline" = "${ifline#!}" ]; then
			eval bondcfg="\$bond_${ifline}"
			/sbin/ifenslave -d $ifline $bondcfg || error=1
		fi
	done
}

bridge_up()
{
	for br in ${BRIDGE_INTERFACES[@]}; do
		if [ "$br" = "${br#!}" ]; then
			# if the bridge already exists, remove it
			if [ "$(/sbin/ifconfig $br 2>/dev/null)" ]; then
				/sbin/ifconfig $br down
				/usr/sbin/brctl delbr $br
			fi
			/usr/sbin/brctl addbr $br
			eval brifs="\$bridge_${br}"
			for brif in $brifs; do
				if [ "$brif" = "${brif#!}" ]; then
					for ifline in ${BOND_INTERFACES[@]}; do
						if [ "$brif" = "$ifline" ] && [ "$ifline" = "${ifline#!}" ]; then
							ifup $ifline
							eval bondcfg="\$bond_${ifline}"
							/sbin/ifenslave $ifline $bondcfg || error=1
							unset bond_${ifline}
						fi
					done

					/usr/sbin/brctl addif $br $brif || error=1
				fi
			done
		fi
	done
}

bridge_down()
{
	for br in ${BRIDGE_INTERFACES[@]}; do
		if [ "$br" = "${br#!}" ]; then
			/usr/sbin/brctl delbr $br
		fi
	done
}


case "$1" in
	start)
		if ! ck_daemon network; then
			echo "Network is already running.  Try 'network restart'"
			exit
		fi

		stat_busy "Starting Network"
		error=0
		# bring up bridge interfaces
		bridge_up
		# bring up ethernet interfaces
		for ifline in ${INTERFACES[@]}; do
			if [ "$ifline" = "${ifline#!}" ]; then
				ifup $ifline || error=1
			fi
		done
		# bring up bond interfaces
		bond_up
		# bring up routes
		for rtline in "${ROUTES[@]}"; do
			if [ "$rtline" = "${rtline#!}" ]; then
				rtup $rtline || error=1
			fi
		done
		if [ $error -eq 0 ]; then
			add_daemon network
			stat_done
		else
			stat_fail
		fi
		;;
	stop)
		#if ck_daemon network; then
		#	echo "Network is not running.  Try 'network start'"
		#	exit
		#fi

		if [ "${NETWORK_PERSIST}" = "yes" -o "${NETWORK_PERSIST}" = "YES" ]; then
			status "Skipping Network Shutdown" true
			exit 0
		fi

		stat_busy "Stopping Network"
		rm_daemon network
		error=0
		for rtline in "${ROUTES[@]}"; do
			if [ "$rtline" = "${rtline#!}" ]; then
				rtdown $rtline || error=1
			fi
		done
		# bring down bond interfaces
		bond_down
		for ifline in ${INTERFACES[@]}; do
			if [ "$ifline" = "${ifline#!}" ]; then
				ifdown $ifline || error=1
			fi
		done
		# bring down bridge interfaces
		bridge_down
		if [ $error -eq 0 ]; then
			stat_done
		else
			stat_fail
		fi
		;;
	restart)
		$0 stop
		/bin/sleep 2
		$0 start
		;;
	ifup|ifdown|iflist|rtup|rtdown|rtlist)
		$1 $2
		;;
	*)
		echo "usage: $0 {start|stop|restart}"  
		echo "       $0 {ifup|ifdown|iflist|rtup|rtdown|rtlist}"
esac

# vim: set ts=2 noet:

hashbang
Packager
Packager
Messaggi: 2021
Iscritto il: ven 4 giu 2010, 10:27
Nome Cognome: Luca De Pandis
Distribuzione: macOS/OpenBSD
Località: Lecce/Bergamo

Re: Script networking

Messaggio da hashbang »

sardylan ha scritto:A volte è davvero lento...
come nel mio caso. A volte va bene e configura il tutto a primo colpo (solitamente in fase di riavvio). Comunque ho notato che questo difetto lo fa di rado col kernel huge e sempre col kernel custom da me compilato. Sicuramente succede in quanto il custom è molto più leggero e quindi più velocemente caricato al boot. Essendo più veloce arriva subito al demone dhcpcd quando l'ADSL non è ancora pronta e, a differenza di Arch, non rimane in attesa. Si potrebbe modificare lo script rc.inet1 per allungare il tempo di attesa prima del timeout?

Avatar utente
Ansa89
Iper Master
Iper Master
Messaggi: 2703
Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena

Re: Script networking

Messaggio da Ansa89 »

atomix600 ha scritto:Sicuramente succede in quanto il custom è molto più leggero e quindi più velocemente caricato al boot.
Lo trovo improbabile :roll: .

atomix600 ha scritto:Si potrebbe modificare lo script rc.inet1 per allungare il tempo di attesa prima del timeout?
Devi usare il file di configurazione "/etc/rc.d/rc.inet1.conf":

Codice: Seleziona tutto

...
DHCP_TIMEOUT[0]=15
...
Il valore è in secondi e devi cambiare "0" con l'indice del tuo device.

hashbang
Packager
Packager
Messaggi: 2021
Iscritto il: ven 4 giu 2010, 10:27
Nome Cognome: Luca De Pandis
Distribuzione: macOS/OpenBSD
Località: Lecce/Bergamo

Re: Script networking

Messaggio da hashbang »

Ansa89 ha scritto:Devi usare il file di configurazione "/etc/rc.d/rc.inet1.conf":

Codice: Seleziona tutto

...
DHCP_TIMEOUT[0]=15
...
Il valore è in secondi e devi cambiare "0" con l'indice del tuo device.
Ansa sicuro che sia nel file rc.inet1.conf? io DHCP_TIMEOUT l'ho trovato nello script rc.inet1 ma non nel file di configurazione :-k

notsafe
Linux 2.x
Linux 2.x
Messaggi: 451
Iscritto il: mar 21 mar 2006, 11:00

Re: Script networking

Messaggio da notsafe »

atomix600 ha scritto:
Ansa89 ha scritto:Devi usare il file di configurazione "/etc/rc.d/rc.inet1.conf":

Codice: Seleziona tutto

...
DHCP_TIMEOUT[0]=15
...
Il valore è in secondi e devi cambiare "0" con l'indice del tuo device.
Ansa sicuro che sia nel file rc.inet1.conf? io DHCP_TIMEOUT l'ho trovato nello script rc.inet1 ma non nel file di configurazione :-k

http://connie.slackware.com/~alien/rc_s ... inet1.conf

Codice: Seleziona tutto

#DHCP_TIMEOUT[4]=15             # The default timeout for the DHCP client to
                                # wait for server resonse is 30 seconds, but
                                # you might want a shorter wait.

Avatar utente
Ansa89
Iper Master
Iper Master
Messaggi: 2703
Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena

Re: Script networking

Messaggio da Ansa89 »

atomix600 ha scritto:Ansa sicuro che sia nel file rc.inet1.conf? io DHCP_TIMEOUT l'ho trovato nello script rc.inet1 ma non nel file di configurazione :-k
A parte il link di notsafe, prova un "grep -n DHCP_TIMEOUT /etc/rc.d/rc.inet1.conf".

hashbang
Packager
Packager
Messaggi: 2021
Iscritto il: ven 4 giu 2010, 10:27
Nome Cognome: Luca De Pandis
Distribuzione: macOS/OpenBSD
Località: Lecce/Bergamo

Re: Script networking

Messaggio da hashbang »

sorry, trovato....dalle mie parti si dice in questi casi: se vai a mare non trovi neanche l'acqua salata.... :banghead:

comunque al DHCP_TIMEOUT ho impostato 60 secondi e sembra non dare problemi

Avatar utente
Ansa89
Iper Master
Iper Master
Messaggi: 2703
Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena

Re: Script networking

Messaggio da Ansa89 »

Secondo me possono essere abbastanza anche 40-50 secondi.
Comunque con 60 dovrebbe funzionare in tutti i casi (se in un minuto il computer non è in grado di ricevere un indirizzo ip, probabilmente il problema è altrove).

Rispondi