logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 29-05-2020 13:40:44

spawn63
Membre
Distrib. : Debian GNU/Linux 11 (bullseye)
Noyau : Linux 5.10.0-8-amd64
(G)UI : KDE
Inscription : 28-05-2020

[RESOLU]Trouver les hostname de machines sur le réseau sans dns

Bonjour,
Je cherche a trouver le moyen de changer le hostname d'un poste sans DNS sur le réseau, via un script bash,

Voici ma reflexion:

je sais que je peut trouver le hostname de la machine par la commande

cat /etc/hostname



par contre si je dois vérifier la présence du hostname (il doit être unique sur le réseau) choisi et modifié dans le réseau.Est ce que  je dois vérifier après opération si il y a un doublons de hostname sur le réseau, ou bien une formule existe pour tout faire en simultanée?

De plus je suis sur la présence du hostname dans le fichier /etc/hostname mais aussi dans /etc/hosts donc je dois bien les changer sur ces deux fichiers le nom de la machine.

Quel opération dois je réaliser je coupe et je colle une ligne sur chaque fichier ou il y a t'il une parade, je sais que pour le fichier /etc/hostname, un:

echo "nouveau_nom_de_machine > /etc/hostname



devrai fonctionné cependant dans le fichier /etc/hosts, il y a plusieurs lignes et mon hostname ce trouve en deuxième ligne. Est ce qu'il faut que je passe par la commande sed pour remplacer cette ligne ou bien y aurais t'il une autre commande possible?

Merci par avance pour vos lumières

Dernière modification par spawn63 (06-07-2020 19:38:00)


« L'informatique semble encore chercher la recette miracle qui permettra aux gens d'écrire des programmes corrects sans avoir à réfléchir. Au lieu de cela, nous devons apprendre aux gens comment réfléchir. »
Anonyme

Hors ligne

#2 29-05-2020 16:26:39

spawn63
Membre
Distrib. : Debian GNU/Linux 11 (bullseye)
Noyau : Linux 5.10.0-8-amd64
(G)UI : KDE
Inscription : 28-05-2020

Re : [RESOLU]Trouver les hostname de machines sur le réseau sans dns

Peut être une solution aussi en nommant les machines avec le dernier octet de l'IP. JE CHERCHE  smile

« L'informatique semble encore chercher la recette miracle qui permettra aux gens d'écrire des programmes corrects sans avoir à réfléchir. Au lieu de cela, nous devons apprendre aux gens comment réfléchir. »
Anonyme

Hors ligne

#3 29-05-2020 16:46:52

saitama-san
Membre
Inscription : 28-07-2019

Re : [RESOLU]Trouver les hostname de machines sur le réseau sans dns

mac address ?

Hors ligne

#4 29-05-2020 17:08:26

MicP
Membre
Inscription : 29-02-2016

Re : [RESOLU]Trouver les hostname de machines sur le réseau sans dns

Bonjour

Dis nous-en un peu plus sur ce réseau :

le CIDR de ce réseau
combien il y a de machines à nommer ?
comment elles ont obtenu leur adresse IP ?
est-ce le protocole AVAHI qui a donné une adresse ip à l'interface réseau de chaque machine (si elles n'ont qu'une interface réseau)
qu'est-ce qui les relient entre-elles ?
est-ce qu'elles sont toutes reliées par un câble RJ45 ou/et par WiFi ?
est-ce qu'il y a un serveur DHCP sur ce réseau  ?
ou alors est ce que les adresses IP des interfaces réseau de ces machines on été fixées arbitrairement ?
est-ce que toutes les machines peuvent communiquer entre elles ?
Si oui, est-ce parce qu'elles ont chacune leur serveur et client SSH (ou alors par quel protocole(s))

Bref, sans avoir une idée de ce réseau,
je ne pourrais pas répondre autrement
qu'en écrivant pendant des heures pour envisager tous les cas possibles
avec toutes les chances de tomber à côté d'une solution adaptée à ton contexte.

Dernière modification par MicP (30-05-2020 15:15:27)

Hors ligne

#5 29-05-2020 18:19:11

spawn63
Membre
Distrib. : Debian GNU/Linux 11 (bullseye)
Noyau : Linux 5.10.0-8-amd64
(G)UI : KDE
Inscription : 28-05-2020

Re : [RESOLU]Trouver les hostname de machines sur le réseau sans dns

saitama-san a écrit :

mac address ?


Ouais peut être par le bias des adresse MAC hmm

Ok, mes réseau sont en /24 il y en a deux un en 192.168.10.0/24 et l'autre en 192.168.11.0/24 , il ya dix machines sur chaque réseau, un serveur DHCP est en service et attribue les adresses sur les deux réseaux. Tout est en filaire, non les IP de ces machine non pas été fixées, elles communiquent toutes entres elles, oui elles sont toutes joignable à distance via ssh passphrase.

Je comprend toa reflexion et je m'en excuse j'aurais due y penser

Dernière modification par spawn63 (29-05-2020 18:20:04)


« L'informatique semble encore chercher la recette miracle qui permettra aux gens d'écrire des programmes corrects sans avoir à réfléchir. Au lieu de cela, nous devons apprendre aux gens comment réfléchir. »
Anonyme

Hors ligne

#6 29-05-2020 18:50:27

MicP
Membre
Inscription : 29-02-2016

Re : [RESOLU]Trouver les hostname de machines sur le réseau sans dns

Et je comprends très bien que, en plein dans le problème, on puisse oublier de transmettre certaines informations.

=======
J'avais utilisé un simple hub pour connecter 4 machines entre elles => pas de serveur DHCP ni DNS.

Et pour pouvoir communiquer entre nous (noms de machines : pierre paul jacques kevin) j'avais laissé les adresses IP qui nous avaient été données par le service AVAHI ZeroConf
et j'avais ajouté 4 lignes, dans le fichier /etc/hosts de chaque machine : les adresses IP associées aux noms de machine.

Et ça donnait, par exemple, ça :

Le /etc/hosts de la machine pierre :


127.0.0.1 localhost
127.0.1.1 pierre.local   pierre

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

#169.254.0.47  pierre.local    pierre
169.254.0.12  paul.local      paul
169.254.0.23  jacques.local   jacques
169.254.0.45  kevin.local     kevin
 



Le /etc/hosts de la machine paul :


127.0.0.1 localhost
127.0.1.1 paul.local      paul

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

169.254.0.47    pierre.local     pierre
#169.254.0.12    paul.local       paul
169.254.0.23    jacques.local    jacques
169.254.0.45    kevin.local      kevin
 



Le /etc/hosts de la machine jacques :


127.0.0.1 localhost
127.0.1.1 jacques.local   jacques

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

169.254.0.47    pierre.local     pierre
169.254.0.12    paul.local       paul
#169.254.0.23    jacques.local    jacques
169.254.0.45    kevin.local      kevin
 



Le /etc/hosts de la machine kevin :


127.0.0.1 localhost
127.0.1.1 kevin.local     kevin

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

169.254.0.47    pierre.local    pierre
169.254.0.12    paul.local      paul
169.254.0.23    jacques.local   jacques
#169.254.0.45    kevin.local     kevin
 


Avec  ça, on pouvait utiliser le nom de chaque machine au lieu de son adresse IP

Mais ça fait des années que je n'ai pas testé cette possibilité,
j'espère que c'est encore possible …

=======
Tu peux faire le test avec deux machines simplement reliées entre elles par un cordon RJ45 :

Comme aucun serveur DNS ni DHCP sera trouvé (puisque pas connecté à la box),
quand leurs cartes réseau seront connectées entre elles par un câble RJ45,
le service zeroconf attribuera une adresse IP
à chacune des machines dans la plage d'adresses 169.254.0.0/16
et tu pourras déjà faire communiquer les deux machines entre elles en utilisant leur adresse IP.

Ensuite, tu récupères les adresses IP, et tu suis le modèle ci dessus
ce qui permettra aux machines de pouvoir communiquer en utilisant leur nom de machine.

=======
Mais comme il y a un serveur DHCP qui distribue les adresses,
il faut espérer qu'une machine ne va pas rester trop longtemps déconnectée,
sinon, elle pourrait perdre son adresse IP à cause de la durée du BAIL qui serait dépassée
( durée qui est généralement assez longue).

Donc, il vaudra mieux faire en sorte d'utiliser des adresses IP fixes
(c'est possible, il doit bien y avoir une plage d'adresses IP utilisables
qui ne seront pas dans le pool d'adresses distribuées par le serveur DHCP

Ou alors, rallonger énormément la durée du BAIL,
mais ça pourrait entraîner d'autres conséquences fâcheuses …

=======
Il y a des personnes qui sont beaucoup plus qualifiées que moi
(et surtout qui ont vraiment de l'expérience en réseau)
qui viendront peut-être proposer une meilleure solution.

Dernière modification par MicP (31-05-2020 07:40:50)

Hors ligne

#7 30-05-2020 06:21:40

spawn63
Membre
Distrib. : Debian GNU/Linux 11 (bullseye)
Noyau : Linux 5.10.0-8-amd64
(G)UI : KDE
Inscription : 28-05-2020

Re : [RESOLU]Trouver les hostname de machines sur le réseau sans dns

Bon j'ai bien lus vos remarques et elle me font évoluer, réfléchir et surtout me permette d'avancer.


@MicP on peut via DHCP faire des réservation d'adresses se qui permettrais d'attribué une adresse fix à chaque poste.

Je vais tout regarder aujourd'hui et tester:)

D'autre remarque, avis, conseil?

Dernière modification par spawn63 (30-05-2020 06:22:19)


« L'informatique semble encore chercher la recette miracle qui permettra aux gens d'écrire des programmes corrects sans avoir à réfléchir. Au lieu de cela, nous devons apprendre aux gens comment réfléchir. »
Anonyme

Hors ligne

#8 30-05-2020 08:51:31

MicP
Membre
Inscription : 29-02-2016

Re : [RESOLU]Trouver les hostname de machines sur le réseau sans dns

Bonjour

spawn63 a écrit :

… il ya dix machines sur chaque réseau, …

Ça fait donc un seul fichier de 20 lignes à créer (nom de machine + adresse IP)
puis faire ajouter le contenu de ce fichier dans le fichier /etc/hosts de chacune de ces machines
en supprimant, pour chaque machine, la ligne dans laquelle leur nom de machine est cité.

Par exemple, en supposant que le fichier listeNomsIP.txt contienne :

192.168.0.47  pierre.local    pierre
192.168.0.12  paul.local      paul
192.168.1.23  jacques.local   jacques
192.168.1.45  kevin.local     kevin


Une fois le fichier listeNomsIP.txt copié sur chacune des machines,
il suffirait, sur chacune de ces machines et avec les privilèges de leur compte root
de lancer la ligne de commande suivante :

grep -v $(hostname) listeNomsIp.txt >> /etc/hosts


Dernière modification par MicP (30-05-2020 09:04:07)

Hors ligne

#9 30-05-2020 14:50:26

spawn63
Membre
Distrib. : Debian GNU/Linux 11 (bullseye)
Noyau : Linux 5.10.0-8-amd64
(G)UI : KDE
Inscription : 28-05-2020

Re : [RESOLU]Trouver les hostname de machines sur le réseau sans dns

MicP a écrit :

Bonjour

spawn63 a écrit :

… il ya dix machines sur chaque réseau, …

Ça fait donc un seul fichier de 20 lignes à créer (nom de machine + adresse IP)
puis faire ajouter le contenu de ce fichier dans le fichier /etc/hosts de chacune de ces machines
en supprimant, pour chaque machine, la ligne dans laquelle leur nom de machine est cité.

Par exemple, en supposant que le fichier listeNomsIP.txt contienne :

192.168.0.47  pierre.local    pierre
192.168.0.12  paul.local      paul
192.168.1.23  jacques.local   jacques
192.168.1.45  kevin.local     kevin


Une fois le fichier listeNomsIP.txt copié sur chacune des machines,
il suffirait, sur chacune de ces machines et avec les privilèges de leur compte root
de lancer la ligne de commande suivante :

grep -v $(hostname) listeNomsIp.txt >> /etc/hosts





Salut, ok bien je viens de percuter là mais quelque chose de costaux!

Donc je récapitule tu associe dans le fichier /etc/hosts les  IP et nom de machine du réseau ce qui fait que toutes les machines sont présente dans le fichier /etchosts de chaque machine.
J'ai bien saisie ?

Aller je me lâche je vais tout configuré

Dernière modification par spawn63 (30-05-2020 14:52:31)


« L'informatique semble encore chercher la recette miracle qui permettra aux gens d'écrire des programmes corrects sans avoir à réfléchir. Au lieu de cela, nous devons apprendre aux gens comment réfléchir. »
Anonyme

Hors ligne

#10 30-05-2020 14:58:05

MicP
Membre
Inscription : 29-02-2016

Re : [RESOLU]Trouver les hostname de machines sur le réseau sans dns

… J'ai bien saisie ? …

Oui, c'est bien ça.

Tu fais une liste de toutes les machines avec leur adresse IP
et quand tu voudras contacter une des machines en utilisant son nom,
l'adresse IP qui est associée à son nom sera utilisée.

Tu peux déjà créer une liste et ajouter cette liste au fichier /etc/hosts d'une seule machine,
et depuis cette machine, tu pourras t'adresser à toutes les machines qui sont dans cette liste
en utilisant leur nom de machine au lieu de leur adresse IP.

Dernière modification par MicP (30-05-2020 15:10:10)

Hors ligne

#11 31-05-2020 06:15:36

spawn63
Membre
Distrib. : Debian GNU/Linux 11 (bullseye)
Noyau : Linux 5.10.0-8-amd64
(G)UI : KDE
Inscription : 28-05-2020

Re : [RESOLU]Trouver les hostname de machines sur le réseau sans dns

Niquel cela fonctionne à merveille,

Avant toutes choses j'ai essayé de comprendre la manip, ensuite j'ai réservées des adresses via le DHCP,  puis enfin j'ai modifié le fichier hosts de chaque machine et maintenant elles communique  (ping), bien entre elles via le hostname! J'aurais tendance à dire c'est magique mais non c'est de l'informatique smile smile.
Maintenant reste à savoir comment faire pour réaliser ce script qui me permettra de changer le hostname d'une machine en sachant qu'il ne sera pas en doublon sur le réseau

Super d'avoir de pouvoir parler ici  et d'évoluer dans le domaine

Dernière modification par spawn63 (31-05-2020 06:16:24)


« L'informatique semble encore chercher la recette miracle qui permettra aux gens d'écrire des programmes corrects sans avoir à réfléchir. Au lieu de cela, nous devons apprendre aux gens comment réfléchir. »
Anonyme

Hors ligne

#12 31-05-2020 07:24:22

MicP
Membre
Inscription : 29-02-2016

Re : [RESOLU]Trouver les hostname de machines sur le réseau sans dns

spawn63 a écrit :

…  Niquel cela fonctionne à merveille,  …

Impec smile

=======
Pour le changement de nom de machine,
si c'est théoriquement simple à faire,
ça peut devenir plus compliqué quand il faut aussi en informer
tous les services qui utilisent ce nom de machine.

Voir : https://wiki.debian.org/Hostname

Ceci dit, étant donné que ces réseaux communiquaient par leur adresse IP,
il ne devrait pas y avoir de problème,
même pour les redirections de services sur la box
étant donné que ces redirections utilisent actuellement l'adresse IP de tes machines
et qu'il n'y a pas de serveur DNS sur tes réseaux locaux.

Dernière modification par MicP (31-05-2020 11:05:42)

Hors ligne

#13 31-05-2020 07:44:08

spawn63
Membre
Distrib. : Debian GNU/Linux 11 (bullseye)
Noyau : Linux 5.10.0-8-amd64
(G)UI : KDE
Inscription : 28-05-2020

Re : [RESOLU]Trouver les hostname de machines sur le réseau sans dns

MicP, merci je vais de ce pas lire les données de ton lien wink

« L'informatique semble encore chercher la recette miracle qui permettra aux gens d'écrire des programmes corrects sans avoir à réfléchir. Au lieu de cela, nous devons apprendre aux gens comment réfléchir. »
Anonyme

Hors ligne

Pied de page des forums