Le 11.03.2004 11:04, Raphaël SurcouF Bordet a écrit :
Le mer 10/03/2004 à 17:56, Sebastien Varrette a écrit :Bonjour, Lors d'un précédent mail (http://lists.debian.org/debian-user-french/2004/debian-user-french-200403/msg00252.html)je recherchais la solution au problème exposé dans le titre de cemail :- soit une machine possédant plusieurs cartes réseaux fonctionnantsurles modules éventuellement différents - 1 seule carte réseau est reliée au réseau -> comment faire pour que cette carte réseau soit associée àl'interfaceeth0??? En effet, ces associations sont définies dans /etc/modules.conf (ouplusproprement dans un fichier /etc/modutils/network qui défini les aliasvers les cartes réseaux suivu d'un 'update-modules') par exemple : $> cat /etc/modutils/network # Chargement des modules de cartes # Cas le plus courant alias eth0 tg3 # Autre Carte alias eth1 e1000 En fait, comme on m'a répondu alors, "Indépendament des alias définis dans modules.conf, linux nomme les interface eth0, eth1, etc dasn l'ordre où les modules sont chargés" Pour etre exact, il me semble que l'ordre donné dans/etc/modules.confest respecté au boot mais si ensuite son s'amuse a remover lesmodulesinséré ('rmmod tg3 e1000') et a les insérer à nouveau, alors l'ordredesinterfaces suivra l'ordre des chargements de modules ('insmod e1000' suivi d'un 'insmod tg3' configurera eth0 sur e1000 et eth1 sur tg3, contrairement au fichier /etc/modules.conf)Jamais rien lu d'aussi stupide. Si tu veux les charger au démarrage, onles place dans /etc/modules. Les alias présents dans /etc/modules.conf (généré automatiquement chez Debian: modifiez /etc/modutils/aliases sous peine de voir vos modifications fondre comme neige au soleil) servent justement à charger les modules dynamiquement en fonction des appels. En principe, on ne charge pas les modules à la main directement, ce n'est pas prévu ainsi.
Stupide ? Je vous suggère de faire une demande de révision de Ethernet- HOWTO où l'on peutt lire :
« modprobe eth0 modprobe eth1 ... modprobe ethN-1 where `N' is the number of ethernet interfaces you have. Note that the interface name (ethX) assigned to the driver by the kernel is independent of the name used on the alias line. For further details on this, see: ``Using the Ethernet Drivers as Modules'' » « Important Note: The alias above is only used by the module utilitiesto translate a generic device name (e.g.eth0) into a hardware specific
driver module name. When the driver loads, it never even sees thisalias; instead it will simply choose the first free ethN (N=0,1,2,...) device name available. Thus, if more than one ethernet module is being
loaded, the ethN assigned to the driver by the kernel may or may notbe the same as the one given on the alias line, depending on the order
in which the modules have been loaded. If you need to ensure that a particular card is given a particular IP address, then read the station address and assign your IP address based upon that. If you are writing your own shell scripts for this, you can just parse the ifconfig output; if using C, then you would use ioctl(ethfd, SIOCGIFHWADDR, &ifreq). »Voir particulièrement la ligne qui dit que « le nom ethN assigné au driver par le noyau est indépendant du nom d'alias donné dans /etc/ modules.conf...»
Ayant rencontré ce problème (2 cartes ethernet, une pour le réseau local et une pour le modem adsl), suivant la manière dotn je démarrais mon système, la carte physique 1 se voyait alloué eth0 et la carte physique 2 eth1 ou le contraire. Il est amusant de voir qu'un modprobe eth1 avec "alias eth1 tlan" me créait une interface eth0.... J'ai donc écrit à Paul Gortmaker, auteur du HOWTO en question qui m'a conseillé d'uliser la comamnde nameif pour assigner un nom d'interface à une adresse MAC précise.
-- - Jean-Luc
Attachment:
pgpKqBzMGHZLo.pgp
Description: PGP signature