Network is unreachable

24 risposte [Ultimo contenuto]
Ritratto di Dudoleitor
Dudoleitor
(Geek)
Offline
Geek
Iscritto: 24/09/2014
Messaggi: 56

Buongiorno a tutti,
da sabato a questa parte sto avendo seri problemi con il mio VPS hostato da OVH. OVH mette a disposizione l'accesso diretto (KVM) e la modalità rescue per fare manutenzione/disaster recovering. In modalità rescue viene avviata un'altra macchina (che viene ogni volta reistallata), in /mnt è montata la / del VPS originale, in modo da avere accesso ai files.

Il VPS, inseguito ad un riavvio, è completamente isolato; provando a fare
ping 8.8.8.8
restituisce
connect: Network is unreachable

Ho contattato il supporto il quale mi ha detto che siccome il VPS rescue (che usa stesso IP e rete) funziona correttamente non era colpa loro ma di un problema nel sistema operativo.

Sul VPS rescue facendo
ip route show
restituisce

default via 51.254.96.1 dev eth0
51.254.96.1 dev eth0  scope link

e facendo
route -n
restituisce
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         51.254.96.1     0.0.0.0         UG    0      0        0 eth0
51.254.96.1     0.0.0.0         255.255.255.255 UH    0      0        0 eth0

Il file /etc/network/interfaces, uguale in entrembe le macchine, è

auto lo
iface lo inet loopback
 
auto eth0
iface etho inet dhcp

Queste configurazioni hanno sempre funzionato fino a qualche giorno fa.

Come posso fare per replicare le stesse configurazioni del VPS rescue (che quindi mi hanno garantito essere corrette) sul VPS effettivo?

Grazie in anticipo,
Dudoleitor

Ritratto di badroot
badroot
(Guru)
Offline
Guru
Iscritto: 22/08/2008
Messaggi: 2068

Dudoleitor ha scritto:


auto eth0
iface etho inet dhcp

Ciao,
sicuramente è solo un errore di stampa nel post, ma dovrebbe essere eth0 e non etho.
Hai provato a eseguire :

/sbin/dhclient eth0

Ritratto di Dudoleitor
Dudoleitor
(Geek)
Offline
Geek
Iscritto: 24/09/2014
Messaggi: 56

Grazie mille per il tuo interessamento, scusa se rispondo solo ora con il server offline non ho ricevuto la mail dal forum.

Per quell'eth0 sbagliato si tratta di un errore si copiatura, nel file è corretto.

Ho fatto /sbin/dhclient eth0 e sembrava funzionare: se provavo a fare
ping 8.8.8.8
funzionava. Se però facevo
servive networking restart
continuava a dirmi
Failed to bring up eth0

Dopo aver riavviato è tornato a non funzionare. Hai qualche altra idea?

Ritratto di badroot
badroot
(Guru)
Offline
Guru
Iscritto: 22/08/2008
Messaggi: 2068

Ciao,
se usando manualmente il comando dhclient la rete è tornata a funzionare potrebbe essere un problema con qualche file di configurazione o script che va in errore all'avvio del server.

Il comando :

service networking status

da qualche informazione aggiuntiva ?
Poi, per quel poco che so, lo script che si occupa di attivare la rete è /etc/init.d/networking, che a sua volta usa i programmi /sbin/ifup e /sbin/idown rispettivamente per attivare/disattivare la rete. Questi programmi usano le informazioni in /etc/network/interfaces per sapere come gestire la rete ( DHCP, IP statico ecc ecc ).
Quindi potresti provare manualmente e vedere gli eventuali messaggi di errore eseguendo :

/sbin/ifdown eth0
/sbin/ifup eth0

Potrebbe anche essere che su questa macchina sia in esecuzione anche un altro gestore di rete che va in conflitto ? tipo network-manager o wicd ?

Ritratto di Dudoleitor
Dudoleitor
(Geek)
Offline
Geek
Iscritto: 24/09/2014
Messaggi: 56

Ho provato a fare come hai detto:
service networking status
mostra l'uso del comando, l'opzione status non è accettata.

Con
/sbin/ifup eth0
mostra l'utilizzo di dhclient e dice ancora
Failed to bring up eth0

Con
/sbin/ifdown eth0
dice:
ifdown: interface eth0 not configured

Recentemente ho solo modificato le config di iptables (che ora, per evitare altri problemi, accetta tutte le connessioni in ingresso) e fatto qualche update, niente di correlato ai servizi di rete.
Non ti viene in mente altro?

Ritratto di badroot
badroot
(Guru)
Offline
Guru
Iscritto: 22/08/2008
Messaggi: 2068

Ciao,
su Jessie l'opzione status funziona, anche se non è indicata tra le possibili opzioni.
Se ricordo bene, ed è improbabile Big Grin , un utente che aveva avuto un problema simile avevamo poi trovato che si trattava del file interfaces che in qualche modo era stato editato in modalità "dos", i sistemi unix gestiscono il fine riga in maniera diversa dai sistemi dos/windows, e quindi sebbene il file sembrasse a prima vista corretto in realtà vi erano dei caratteri non visualizzabili che lo rendevano illeggibile.
Potresti provare a fare una copia del file attuale e poi ricrearlo da zero inserendo le stesse righe, usa vi o nano come editor, quello che più ti è comodo.
Hai già controllato di non avere altri gestori di rete in esecuzione che magari vanno in conflitto ( network-manager o altro ) ?

Ritratto di Dudoleitor
Dudoleitor
(Geek)
Offline
Geek
Iscritto: 24/09/2014
Messaggi: 56

Ho provato a riscrivere il file da capo (con nano, che uso sempre) ma, anche dopo aver riavviato, il problema rimane.
Non ho installato nessun altro gestore di rete.

Però ora che mi ci fai pensare, ho installato webmin, non vorrei che può essere colpa sua. Da webmin non ho modificato nulla in merito alle configurazioni di rete/del firewall, potrebbe essere qualche settaggio di default. Comunque nella pagina "Linux firewall" l'opzione start on boot è su NO, però non si può mai sapere...

Ritratto di badroot
badroot
(Guru)
Offline
Guru
Iscritto: 22/08/2008
Messaggi: 2068

Prova questa sequenza di comandi :

/sbin/ifconfig eth0 down
service networking restart

in teoria ifconfig o ifdown dovrebbero fare la stessa cosa, però .....

Ritratto di Dudoleitor
Dudoleitor
(Geek)
Offline
Geek
Iscritto: 24/09/2014
Messaggi: 56

Ho provato a fare la sequenza che mi hai detto e il primo non da nessun output, mentre il secondo:
Failed to bring up eth0

Ci sono stati altri sviluppi: ieri sera tutto andava bene, era in poche parole tornato online. Dopo ho riavviato, ho fatto /sbin/dhclient eth0, ho avviato il file .sh contenente le regole del firewall (che risultavano correttamente inserite), con ping riusciva a raggiungere altri server ma tutte le porte erano chiuse tranne quella che uso per SSH e quella di webmin.
Da adesso, per quanto abbia già riprovato a riavviare e disattivare iptables, non c'è modo di accettare le connesioni sulle altre porte. Non vorrei che si tratta di un problema di webmin; non c'è niente di configurato nella sezione networking, non capisco cosa possa centrare.
Anche facendo service webmin stop rimangono tutte le porte chiuse.

Ritratto di Dudoleitor
Dudoleitor
(Geek)
Offline
Geek
Iscritto: 24/09/2014
Messaggi: 56

Per evitare ogni problema ho rimosso webmin am il problema rimane comunque. Anche dopo aver fatto /sbin/dhclient eth0 rimane aperta solo la porta ssh, tutte le altre sono chiuse. Credo proprio quindi che sia uno script che viene eseguito all'avvio che crea problemi.
Come posso fare per vedere tutto quello che viene caricato all'avvio?

Ritratto di badroot
badroot
(Guru)
Offline
Guru
Iscritto: 22/08/2008
Messaggi: 2068

Dudoleitor ha scritto:

Anche dopo aver fatto /sbin/dhclient eth0 rimane aperta solo la porta ssh, tutte le altre sono chiuse

Scusa ma non capisco il nesso tra le due cose. Quali porte dovresti avere aperte oltre a ssh ? il tuo server avrà aperte solo quelle porte richieste dai servizi che hai attivato. Per esempio il mio serverino ha solo SSH e FTP come porte aperte, ma proprio perchè sono gli unici servizi attivi. E questo non ha a che vedere con il problema dell'interfaccia di rete.
Ma può essere che io abbia frainteso un pò tutto il discorso.
Per vedere quali script vengono eseguiti prima guardi il runlevel e poi il contenuto della relativa cartella, sicuramente c'è un modo più intelligente e moderno però io ormai sono rimasto un pò indietro su queste tematiche.

Per il run level corrente :

/sbin/runlevel

ottenuto il numero, quello sulla destra :

ls -l /etc/rcN.d

dove al posto di N metti il numero di cui sopra, e ti vengono visualizzati tutti gli script, quelli che iniziano con S sono messi in esecuzione all'avvio.
Puoi installare anche il pacchetto sysv-rc-conf per una gestione più comoda, sempre da terminale.
In realtà bisognerebbe impararsi i comandi di systemd per gestire i servizi, ma fino a che non mi decido a farlo e fino a che c'è compatibilità con sysv ..... Big Grin