OVH Cloud OVH Cloud

Pinger une machine hors-reseau et a IP variable

18 réponses
Avatar
Remi Moyen
Salut,

Drôle de sujet, hein ? Je vous rassure, ça veut quand même dire quelque
chose, mais j'ai pas trouvé de sujet plus explicite. J'explique.

J'utilise sur mon portable un logiciel qui marche avec une license FlexLM.
J'ai donc un serveur de license local, et un fichier de license qui est
locké sur mon nom de machine (et sur l'adresse MAC de la carte réseau,
sinon ça sert à rien...), et pas sur son IP. Il est bien sûr impossible de
modifier ce fichier de license.

Donc, pour utiliser ce logiciel, il *faut* que, en gros, un 'ping machine'
réponde. Je dis bien un 'ping machine', et pas un 'ping 123.456.789.012',
puisque le fichier de license contient le nom de machine et pas l'IP.

Or, cette machine est un portable. Il y a donc des jours où je boote en
dehors de tout réseau (dans le train, par exemple). Donc, même si
j'affecte une IP à ma carte réseau, je n'ai pas de serveur DNS (je vais
pas m'amuser à en faire tourner un juste pour ça, hein), et donc, par
défaut, le 'ping machine' marche pas (mais 'ping IP', ou 'ping localhost',
ou 'ping 127.0.0.1', oui -- les deux derniers passant par lo et pas
eth0, c'est un peu différent).

J'aurais cru que le système était assez malin pour résoudre tout seul le
DNS de ma machine (son nom étant fixé dans /etc/hostname). Bon, pas grave,
si je rajoute la ligne '123.456.789.012 machine' dans /etc/hosts, le
problème est réglé. Très bien. Sauf que ça suppose de connaître mon IP, et
qu'elle ne change pas à chaque fois.

Compliquons. J'utilise habituellement un serveur DHCP. Donc, au boot, je
ne sais pas quel va être mon IP (en fait, c'est presque toujours la même,
mais passons). Quand je suis connecté, je m'en fous, puisqu'il y a un
serveur DNS ailleurs qui règle tous les problèmes. Quand je me deconnecte
ensuite, par contre... Et même pire, quand je boote sans être connecté, la
carte réseau n'arrivant pas à joindre le serveur DHCP, aucune IP n'y est
affectée (pas même celle que j'avais lors du coup précédent).

Donc, deux problèmes un peu en parallèle :

- Y'a-t-il moyen de modifier automatiquement le /etc/hosts pour y mettre
au boot l'entrée correspondant à mon IP du jour, fournie par DHCP ? Comme
ça, si je boote sur réseau, puis que je débranche mon portable sans
l'éteindre (genre pour aller dans un bureau à côté), le DNS sera résolu
localement.

- D'autre part, pour les jours où je boote carrement hors du réseau,
y'a-t-il un moyen lorsque le DHCP échoue, d'affecter une IP fixe (bidon,
je m'en fous), ou encore d'affecter l'IP de la dernière connexion, au lieu
de ne pas affecter d'IP du tout à eth0 ?
--
Rémi Moyen
"Malgré les apparences, le temps est très varié à Nancy :
pluie, nuages, neige, brouillard, grêle, ..."

10 réponses

1 2
Avatar
Thomas Nemeth
Le mer 26 mai 2004 à 10:26, Remi Moyen a tapoté :
| Salut,

Salut.


[...]
| Donc, deux problèmes un peu en parallèle :
|
| - Y'a-t-il moyen de modifier automatiquement le /etc/hosts pour y mettre
| au boot l'entrée correspondant à mon IP du jour, fournie par DHCP ? Comme
| ça, si je boote sur réseau, puis que je débranche mon portable sans
| l'éteindre (genre pour aller dans un bureau à côté), le DNS sera résolu
| localement.

Oui. Normalement, ton client DHCP devrait te permettre d'exécuter un
script lors de l'affection d'une IP à ton interface. Pour moi, c'est
dhcpcd. Dans /etc/dhcpc/ il y a un fichier nommé dhcpcd-eth0.info
qui contient mon adresse IP. Il suffit de le sourcer dans le script
appelé par dhcpcd et de faire echo "$IPADDR machine" >> /etc/hosts
(en gros car ça peut poser quelques soucis d'augmentation de taille
du fichier si on ne le contrôle pas).

Extrait du man de dhcpcd :
/etc/dhcpc/dhcpcd-<interface>.info
file in which dhcpcd saves the host information.
The word interface is actually replaced with the
network interface name like eth0 to which dhcpcd is
attached.

/etc/dhcpc/dhcpcd-<interface>.exe
file which dhcpcd will try to execute whenever it
detects a change in IP address.



| - D'autre part, pour les jours où je boote carrement hors du réseau,
| y'a-t-il un moyen lorsque le DHCP échoue, d'affecter une IP fixe (bidon,
| je m'en fous), ou encore d'affecter l'IP de la dernière connexion, au lieu
| de ne pas affecter d'IP du tout à eth0 ?

Oui, mais c'est de la bidouille.
Tu te rajoutes un script de boot qui vérifie avec ifconfig si eth0
est up. Si elle ne l'est pas, tu la mets up. Le pb viendra quand tu
voudras brancher la machine sur un réseau : je ne sais pas comment
ton client DHCP réagira.

Note que ton interface sera, normalement, arrêtée aussi lorsque ton
client DHCP désactive la carte réseau suite à un débranchement (mais
ça peut dépendre des clients).


Thomas
--
«je copie le fichier rpm dans un répertoire et l'installe, maintenant
je ne sais pas lancer l'appli car elle ne s'est pas mise dans le menu
"Démarrer-Programmes".»
-+- Stéph in Guide du linuxien pervers : "install.exe il est ou?" -+-
Avatar
jerome paulin
Pourquoi ne mets tu pas simplement :

127.0.0.1 localhost
127.0.0.1 lenomquivabien.pour.lalicence

dans ton /etc/hosts ?
Avatar
Remi Moyen
On Wed, 26 May 2004, LnX wrote:

ça va peut etre pas te faire avancer beaucoup, mais pourquoi tu n'attribues
pas une IP fixe à ton portable ? avec une réservation d'adresse sur ton
serveur dhcp


Parce que c'est pas moi qui administre le réseau du labo, et que le
responsable veut que tout le monde utilise DHCP, et c'est tout.

Ça serait effectivement le plus simple, mais c'est pas possible. Ouin :-(
--
Rémi Moyen
"Malgré les apparences, le temps est très varié à Nancy :
pluie, nuages, neige, brouillard, grêle, ..."

Avatar
Remi Moyen
On Wed, 26 May 2004, jerome paulin wrote:

Pourquoi ne mets tu pas simplement :

127.0.0.1 localhost
127.0.0.1 lenomquivabien.pour.lalicence

dans ton /etc/hosts ?


Ah !

Euh, oui, j'y pensais pas.

Ça ne risque pas de poser problème, de mélanger localhost et vrai nom ? Ou
de court-circuiter eth0 pour passer par lo pour le vrai nom ? (c'est une
question totalement innocente, j'essaye juste de m'assurer que ça risque
pas de casser autre chose).
--
Rémi Moyen
"Malgré les apparences, le temps est très varié à Nancy :
pluie, nuages, neige, brouillard, grêle, ..."

Avatar
Remi Moyen
On Wed, 26 May 2004, Thomas Nemeth wrote:

Oui. Normalement, ton client DHCP devrait te permettre d'exécuter un
script lors de l'affection d'une IP à ton interface. Pour moi, c'est
dhcpcd.


Parfait. Et en plus, ça tombe bien, moi aussi j'utilise dhcpcd.

Dans /etc/dhcpc/ il y a un fichier nommé dhcpcd-eth0.info
qui contient mon adresse IP.


Uh, là, par contre, ça va plus. J'ai pas de fichier comme ça... J'ai juste
le dhcpcd.exe (et config, évidemment). Et j'ai un dhcpcd-eth0.pid dans
/var/run, mais c'est le seul truc dhcp-esque qui s'y trouve.

Tu te rajoutes un script de boot qui vérifie avec ifconfig si eth0
est up. Si elle ne l'est pas, tu la mets up. Le pb viendra quand tu
voudras brancher la machine sur un réseau : je ne sais pas comment
ton client DHCP réagira.


Bon, à priori, ça devrait pas arriver (quand je boote en dehors du réseau,
c'est habituellement pour toute une session en dehors du réseau). Et de
toute façon, c'est évident que si je mets une IP bidon, y'aura des
problèmes si je me connecte à un vrai réseau.

Note que ton interface sera, normalement, arrêtée aussi lorsque ton
client DHCP désactive la carte réseau suite à un débranchement (mais
ça peut dépendre des clients).


En effet, c'est vrai. Y'a un moyen de parer à ça ? Genre dire au client
dhcp de ne pas arrêter la carte et de garder l'IP ?

Merci pour tes infos !
--
Rémi Moyen
"Malgré les apparences, le temps est très varié à Nancy :
pluie, nuages, neige, brouillard, grêle, ..."

Avatar
Nicolas George
"jerome paulin" wrote in message
<c91mec$2ih$:
127.0.0.1 localhost
127.0.0.1 lenomquivabien.pour.lalicence


Mettre 127.0.0.2 dans le second cas est probablement préférable. En tout
cas ça ne coûte pas plus.

Avatar
Thomas Nemeth
Le mer 26 mai 2004 à 11:39, Remi Moyen a tapoté :
| On Wed, 26 May 2004, jerome paulin wrote:
|
| > Pourquoi ne mets tu pas simplement :
| >
| > 127.0.0.1 localhost
| > 127.0.0.1 lenomquivabien.pour.lalicence
| >
| > dans ton /etc/hosts ?
|
| Ah !
|
| Euh, oui, j'y pensais pas.
|
| Ça ne risque pas de poser problème, de mélanger localhost et vrai nom ? Ou
| de court-circuiter eth0 pour passer par lo pour le vrai nom ? (c'est une
| question totalement innocente, j'essaye juste de m'assurer que ça risque
| pas de casser autre chose).

Chez moi ça casse des trucs (mais c'est certainement parceque le
serveur DNS me donne le même nom que le hostname configuré). Je
n'ai pas testé en utiliser 127.0.0.2, mais pourquoi pas...


Thomas
--
D'ailleurs, c'est pour ça que Corel arrète Linux.
Leurs avocats ont compris la GNU ?

Ils sont venus, ils ont vu, ils l'ont pris dans le GNU.

-+- OP in Guide du Fmblien Assassin : "Et mon GNU, tu l'as vu ?" -+-


Avatar
LnX
Remi Moyen wrote:

Salut,



ça va peut etre pas te faire avancer beaucoup, mais pourquoi tu n'attribues
pas une IP fixe à ton portable ? avec une réservation d'adresse sur ton
serveur dhcp
--
A+
LnX

Avatar
Thomas Nemeth
Le mer 26 mai 2004 à 11:48, Remi Moyen a tapoté :
| On Wed, 26 May 2004, Thomas Nemeth wrote:
|
| > Dans /etc/dhcpc/ il y a un fichier nommé dhcpcd-eth0.info
| > qui contient mon adresse IP.
|
| Uh, là, par contre, ça va plus. J'ai pas de fichier comme ça... J'ai juste
| le dhcpcd.exe (et config, évidemment). Et j'ai un dhcpcd-eth0.pid dans
| /var/run, mais c'est le seul truc dhcp-esque qui s'y trouve.

C'est qu'on ne doit pas avoir la même version de dhcpcd :)
Que dit ton man dhcpcd à ce sujet ?


| > Note que ton interface sera, normalement, arrêtée aussi lorsque ton
| > client DHCP désactive la carte réseau suite à un débranchement (mais
| > ça peut dépendre des clients).
|
| En effet, c'est vrai. Y'a un moyen de parer à ça ? Genre dire au client
| dhcp de ne pas arrêter la carte et de garder l'IP ?

Ici j'utilise les outils pcmcia qui sont bien pratiques : lors de
l'insertion d'une carte, ce sont eux qui appellent dhcpcd et lancent
un de mes scripts qui :
- lors de l'insertion, après configuration de l'interface, monte des
répertoires NFS et met à jour ntpdate, etc...
- lors de l'éjection (avant, en fait), démonte les répertoire NFS,
etc...
Le tout, évidemment, en fonction du domaine.

Si tu utilise dhcpcd tout seul (sans les outils pcmcia), regarde
dans le man histoire de savoir s'il y a un truc de possible à faire
lors de la déconfiguration de l'interface. Sinon, le truc serait de
monitorer l'ip de l'interface (voir tout simplement la présence de
l'interface -- pas compliqué), et de la remettre up automatiquement.

Ceci dit, si tu rebranches ton portable sur le réseau, ça risque de
poser problème :)


| Merci pour tes infos !

'plaisir.


Thomas
--
D'ailleurs, c'est pour ça que Corel arrète Linux.
Leurs avocats ont compris la GNU ?

Ils sont venus, ils ont vu, ils l'ont pris dans le GNU.

-+- OP in Guide du Fmblien Assassin : "Et mon GNU, tu l'as vu ?" -+-


Avatar
Remi Moyen
On Wed, 26 May 2004, Thomas Nemeth wrote:

| > Dans /etc/dhcpc/ il y a un fichier nommé dhcpcd-eth0.info
| > qui contient mon adresse IP.
|
| Uh, là, par contre, ça va plus. J'ai pas de fichier comme ça... J'ai juste
| le dhcpcd.exe (et config, évidemment). Et j'ai un dhcpcd-eth0.pid dans
| /var/run, mais c'est le seul truc dhcp-esque qui s'y trouve.

C'est qu'on ne doit pas avoir la même version de dhcpcd :)
Que dit ton man dhcpcd à ce sujet ?


La même chose que le tien (en français)... D'après le man, je suis
effectivement censé avoir ces fichiers. Arg. Pas de message d'erreur
visible dans les logs non plus. Y'aurait-il quelque chose d'autre de cassé
chez moi ?

(et au fait, j'utilise le paquet dhcpcd 1:1.3.22pl4-10 de Debian/testing)
--
Rémi Moyen
"Malgré les apparences, le temps est très varié à Nancy :
pluie, nuages, neige, brouillard, grêle, ..."

1 2