Pagina 1 di 1

dhclient e IP via dhcpd

Inviato: sab 28 apr 2007, 10:48
da sonzo
Ciao ragazzi,

ho un problema; praticamente vorrei capire come prelevare l'ip per la mia ath0 o eth0 attraverso dhclient.

Ho fatto alcune prove sulla mia interfaccia ath0 ma non riesco ad ottenere l'ip.

Allora io ho tirato su l'interfaccia con un ifconfig ath0 up (eth0 è down al momento); dopo di ce do un dhclient ath0 ma non mi prende l'ipv4 esce dicendomi che non riesce a prendere l'ip... Perchè?

vi posto ifconfig ath0 perchè quando "uppo" l'interfaccia mi da sempre ipv6 e mai ipv4.

# ifconfig ath0
ath0 Link encap:Ethernet HWaddr 00:16:CF:A1:62:B1
inet6 addr: fe80::216:cfff:fea1:62b1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:17657 errors:0 dropped:0 overruns:0 frame:0
TX packets:13057 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:24321253 (23.1 MiB) TX bytes:1150548 (1.0 MiB)


Grazie, a presto.

Inviato: sab 28 apr 2007, 12:17
da kio341
5.3.1 DHCP

DHCP (o Dynamic Host Configuration Protocol, protocollo per la configurazione dinamica dei nodi), è uno dei sistemi attraverso cui è possibile assegnare un indirizzo IP ad un computer al suo avvio. Quando il client DHCP viene avviato, effettua una richiesta sulla rete locale, chiedendo ad un server DHCP di assegnargli un indirizzo IP. Il server DHCP ha un pool (o scope) di indirizzi IP disponibili. Il server risponderà a questa richiesta fornendo un indirizzo IP tra quelli nel pool, assieme ad un lease time (tempo di affitto). Una volta che il lease time per un dato indirizzo IP sia scaduto, il client dovrà contattare nuovamente il server e ripetere la negoziazione.

Il client dunque accetterà l'indirizzo IP fornitogli dal server e configurerà la propria interfaccia di rete con il suddetto indirizzo. Tuttavia, c'è un altro comodo trucco che i client DHCP usano durante le assegnazioni. Il client memorizza infatti l'indirizzo IP assegnatogli e, alla negoziazione successiva, chiederà al server di riassegnargli il medesimo indirizzo. Se possibile, il server soddisferà la richiesta; viceversa, assegnerà al client un nuovo indirizzo. Dunque, la negoziazione si svolge più o meno in questo modo:

Client: C'è un server DHCP disponibile sulla rete locale?
Server: Si, c'è. Sono qui.
Client: Ho bisogno di un indirizzo IP.
Server: Puoi prendere l'indirizzo 192.168.10.10 per 19200 secondi.
Client: Grazie.

Client: C'è un server DHCP disponibile sulla rete locale?
Server: Si, c'è. Sono qui.
Client: Ho bisogno di un indirizzo IP. L'ultima volta che abbiamo dialogato, avevo 192.168.10.10; posso averlo nuovamente?
Server: Si, puoi (oppure No, non puoi averlo: prendi invece l'indirizzo 192.168.10.12).
Client: Grazie.

Il client DHCP su Linux è /sbin/dhcpcd. Aprendo il file /etc/rc.d/rc.inet1 con il tuo editor di test preferito, noterai che il comando /sbin/dhcpcd viene chiamato a metà script. L'esecuzione del comando porterà alla conversazione descritta sopra. dhcpcd terrà inoltre traccia del tempo di validità rimasto per l'uso dell'indirizzo IP, e contatterà automaticamente il server DHCP richiedendo il rinnovo dell'affitto quando necessario. DHCP può anche controllare informazioni correlate, come il server ntp da usare, quale routing adoperare, etc.

Allestire DHCP su Slackware è facile. Avvia netconfig e seleziona l'opzione DHCP quando ti verrà proposta. Se hai più di una scheda di rete e non desideri che sia l'interfaccia eth0 ad essere configurata tramite DHCP, ti basterà modificare il file /etc/rc.d/rc.inet1.conf e cambiare i parametri relativi all'interfaccia di rete che dovrà avvalersi di DHCP.
da http://book.slackware.it/network-config ... tcpip.html
:idea:

Inviato: sab 28 apr 2007, 13:43
da whites11
kio341 ha scritto:
Client: C'è un server DHCP disponibile sulla rete locale?
Server: Si, c'è. Sono qui.
Client: Ho bisogno di un indirizzo IP.
Server: Puoi prendere l'indirizzo 192.168.10.10 per 19200 secondi.
Client: Grazie.
c'è da dire che il client è particolarmente educato :D

Inviato: dom 29 apr 2007, 11:10
da sonzo
eheh... lol

Si, fin lì ci sono; ma volevo capire perchè non riesco con dhclient a prendere l'ip dal server (e il server c'è)...

Io devo assegnare un ip ad ath0 o eth0 con DHCP SOLO quando sono da "peppino", mentre invece se sono a casa devo assegnare io ASSOLUTAMENTE l'IP..

Devo continuamente modificare i file di config del network? O è possibile farlo in un altro modo?

Inviato: dom 29 apr 2007, 11:39
da gnubit
Credo che un modo "semplice" sia quello di modificare /etc/rc.d/rc.inet1.

Utilizzando iwlist ath0 scanning rilevi gli SSID della rete e a seconda di quello che rilevi lanci dhcpcd o ifconfig.

tempo fa avevo fatto una cosa simile per caricare ip fissi diversi in due ambienti diversi.

Inviato: dom 29 apr 2007, 12:33
da whites11
prova a scaricare kubication

Inviato: gio 3 mag 2007, 20:58
da sonzo
Credo che un modo "semplice" sia quello di modificare /etc/rc.d/rc.inet1.

Utilizzando iwlist ath0 scanning rilevi gli SSID della rete e a seconda di quello che rilevi lanci dhcpcd o ifconfig.
Che intendi per "a seconda di quello che rilevi lanci dhcpcd o ifconfig"?

Io avevo pensato di editare /etc/rc.d/rc.inet1.conf e settare dhcp a yes e poi mi connetto all'AP e poi do un dhclient ath0; no?

Inviato: gio 3 mag 2007, 22:02
da gnubit
Forse avevo capito male, pensavo tu avessi questa situazione
Rete A dhcp
Rete B ip fisso.

Questa è la ragone del mio consiglio.

credo sia dhcpd ath0 il comando

Inviato: ven 4 mag 2007, 9:33
da whites11
gnubit ha scritto: credo sia dhcpd ath0 il comando
questo comando crea un server dhcp in ascolto sull'interfaccia ath0
per usufruire di un server dhcp preesistente il comando è

Codice: Seleziona tutto

dhclient ath0

Inviato: ven 4 mag 2007, 14:17
da gnubit
Io mi sono basato su questo pezzo di /etc/rc.d/rc.inet1

Codice: Seleziona tutto

if [ "${USE_DHCP[$i]}" = "yes" ]; then # use DHCP to bring interface up
        [ ${DHCP_HOSTNAME[$i]} ] && DHCP_OPTIONS="-h ${DHCP_HOSTNAME[$i]}"
        [ "${DHCP_KEEPRESOLV[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -R"
        [ "${DHCP_KEEPNTP[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -N"
        [ "${DHCP_KEEPGW[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -G"
        [ ${DHCP_IPADDR[$i]} ] && DHCP_OPTIONS="$DHCP_OPTIONS -s ${DHCP_IPADDR[$i]}"
        echo "/etc/rc.d/rc.inet1:  /sbin/dhcpcd -d -t ${DHCP_TIMEOUT[$i]:-60} ${DHCP_OPTIONS} ${1}" | $LOGGER
        /sbin/dhcpcd -d -t ${DHCP_TIMEOUT[$i]:-60} ${DHCP_OPTIONS} ${1}
E tra l'altro a me funziona così impostando USE_DHCP = "YES" in inet1.conf.

Quindi vuol dire che l'impostazione in inet1.conf serve a far partire il server DHCP sulla scheda di rete.