OVH Cloud OVH Cloud

Pas de connexion automatique DHCP au réseau

23 réponses
Avatar
Patrick
Bonjour,

Mon Linux (Ubuntu 6.06.1) ne veut plus se connecter automatiquement au
réseau. Une interface eth0 est bien démarrée, mais pas de DHCP.

Un "sudo /etc/init.d/networking restart" donne ceci:

DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval ...
No DHCPOFFERS received.

Mais bizarrement, un "sudo dhclient" me démarre une interface eth1, qui
elle semble marcher.

De plus en plus bizarre, "lspci |grep Ethernet" me fait apparaître 2
cartes réseau, alors que je n'en ai qu'une sur mon PC!

Quelqu'un pourrait-il éclairer ce mystère?

Merci d'avance!

--
Patrick

3 réponses

1 2 3
Avatar
Pascal Hambourg

udev permet de (re)nommer les interfaces réseau sans bidouillage basé
sur l'adresse MAC ?


Oui. D'une manière générale, on peut (re)nommer les périphériques en
fonction de la position du périphérique sur le bus PCI (variable ID), en
fonction de son constructeur (variable SYSFS{vendor}), en fonction du
modèle (SYSFS{device}), etc.


Je savais pour les périphériques "normaux" /dev/truc, qui ne sont
finalement que des fichiers spéciaux, mais pas pour les interfaces réseau.

Il suffit de placer une règle dans /etc/udev/rules.d. Par exemple, pour
renommer une carte réseau Realtek :

BUS=="pci",SYSFS{vendor}=="0x10ec",SYSFS{device}=="0x8139",NAME="eth-rltk"

ou bien :

KERNEL=="eth*",SYSFS{vendor}=="0x10ec",NAME="eth-rltk"


Merci.
Peut-on faire la même chose en fonction du nom du module ?
Comment ça se passe s'il y a plusieurs cartes identiques ?


Avatar
Sébastien Monbrun aka TiChou
Dans le message <news:eg3fh5$25dl$,
*Pascal Hambourg* tapota sur f.c.o.l.configuration :

Salut Pascal,

Il suffit de placer une règle dans /etc/udev/rules.d. Par exemple, pour
renommer une carte réseau Realtek :

BUS=="pci",SYSFS{vendor}=="0x10ec",SYSFS{device}=="0x8139",NAME="eth-rltk
"

ou bien :

KERNEL=="eth*",SYSFS{vendor}=="0x10ec",NAME="eth-rltk"


Peut-on faire la même chose en fonction du nom du module ?


DRIVER=="8139too", NAME="eth-rltk"

Comment ça se passe s'il y a plusieurs cartes identiques ?


Avec les règles précédentes, il va y avoir bien évidement un conflit.

Pour éviter ce conflit, on peut alors numéroter nos interfaces :

DRIVER=="8139too", NAME="eth-rltk%n"

%n contient le numéro du périphérique. Par exemple %n vaut 0 si le
périphérique est eth0, 1 si eth1, etc.

Sinon, on peut aussi faire appel à un programme externe qui déterminera
alors le nom et le numéro à donner à l'interface en fonction des paramètres
qu'on lui envoie :

DRIVER=="8139too", PROGRAM="mon_script %k %s{vendor} %s{device}", NAME="%c"

Sous Ubuntu (disponible aussi sous Gentoo), il existe, à l'instar de nameif
et de ifrename, le programme iftab_helper qui, en fonction des entrées dans
le fichier /etc/iftab, va déterminer le nom à donner à l'interface.

Dans notre cas précédent, /etc/iftab contiendrait :

eth-rltk* driver 8139too

Le wildcard indique ici qu'il faut incrémenter automatiquement le nom de
l'interface.

--
Sébastien Monbrun aka TiChou


Avatar
Sébastien Monbrun aka TiChou
Dans le message <news:,
*Sébastien Monbrun aka TiChou* tapota sur f.c.o.l.configuration :

Sous Ubuntu (disponible aussi sous Gentoo), il existe, à l'instar de
nameif et de ifrename, le programme iftab_helper qui, en fonction des
entrées dans le fichier /etc/iftab, va déterminer le nom à donner à
l'interface.


J'oubliais de dire que ce programme est automatiquement appelé par udev via
une règle placée dans /etc/udev/rules.d. On n'a donc pas à se soucier de
comment lancer ce programme mais juste de renseigner le fichier /etc/iftab.

--
Sébastien Monbrun aka TiChou

1 2 3