====== Réseau ====== ===== Wifi ===== Tout ça sans Network-Manager **vade retro satanas** La gestion du wifi peut passer par plusieurs biais: * /etc/network/interfaces * iwconfig * wpa_supplicant ==== Lister les réseaux wifi ==== sudo iwlist scanning | less sudo iwlist wlan0 scanning | less Exemple de résultat: Cell 03 - Address: F4:CA:E5:EA:37:AD Channel:1 Frequency:2.412 GHz (Channel 1) Quality=26/70 Signal level=-84 dBm <=========== Encryption key:off <=========== ESSID:"FreeWifi" <=========== Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 22 Mb/s 6 Mb/s; 9 Mb/s; 12 Mb/s Bit Rates:18 Mb/s; 24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s Mode:Master Extra:tsf=00000285527f96a4 Extra: Last beacon: 220ms ago IE: Unknown: 00084672656557696669 IE: Unknown: 010882848B962C0C1218 IE: Unknown: 030101 IE: Unknown: 2A0104 IE: Unknown: 3205243048606C IE: Unknown: 2D1A6C0003FFFFFF0001000000000000000100000000000000000000 IE: Unknown: 3D1601000400000000000000000000000000000000000000 IE: Unknown: 7F080000000000000040 IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00 Si on connait approximativement le nom du réseau wifi, on peut se contenter de n'afficher que la liste des noms: sudo iwlist scanning | grep -i essid ==== Connection basique à un réseau ==== sudo iwconfig wlan0 essid "FreeWifi" && dhclient wlan0 On spécifie le nom du réseau (**FreeWifi**) puis on demande une adresse ip via le service dhcp pour l'interface wifi (**wlan0**). ==== Gestion de plusieurs réseaux ==== Si on est amené à switcher de réseau (association/maison/travail/amante/…), il peut être intéressant de ne pas avoir à faire cette manipulation à chaque fois :) On peut donc utiliser un gestionnaire de configuration: **ifscheme**. sudo aptitude install ifscheme Puis éditer le fichier des interfaces réseaux pour ajouter: * un réseau wifi en dhcp pour maylug * un réseau wifi en dhcp pour la maison allow-hotplug wlan0 mapping wlan0 script ifscheme-mapping iface wlan0-maylug inet dhcp wpa-ssid "Businesslivebox_987698769876" wpa-psk "SUPRA_PASSWORD_DE_LA_MORT" iface wlan0-home inet dhcp wpa-ssid "wookie" wpa-psk "better with butter" Ensuite il suffit de choisir le schéma à utiliser puis d'activer l'interface: sudo ifscheme maylug sudo ifup wlan0 Et une fois de retour à la maison: sudo ifscheme home sudo ifup wlan0 Si on choisit de mettre la clef wifi en clair dans le fichier, il est plus judicieux dans limiter les droits: sudo chmod 0600 /etc/networks/interfaces ==== Réseau exotique ==== Jusqu'à récemment, les deux solutions précédentes ne m'ont pas fait défaut: besoin de me connecter à un réseau un peu plus "exotique" qui ne voulait pas fonctionner via ifscheme ( et qui n'envoie pas d'informations sur la configuration à utiliser … ). La solution: passer par wpa_supplicant + wpa_gui (pour demander le mot de passe): sudo aptitude install wpasupplicant wpagui ctrl_interface=/var/run/wpa_supplicant #update_config=1 # =1 -> autoriser wpa_gui à modifier la configuration network={ ssid="network_NAME" proto=RSN key_mgmt=WPA-EAP pairwise=CCMP auth_alg=OPEN eap=TTLS identity="IDENTIFIANT_DE_CONNECTION" # password="AVOID" ca_cert="/usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt" #phase1="peaplabel=0" phase2="auth=PAP" # disabled=1 # Désactiver la connection automatique } Lancer d'abord **wpa_gui** (permet de saisir le mot de passe de connection) puis lancer wpa_supplicant: sudo wpa_supplicant -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf sudo wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf # En mode deamon ===== Bonding ===== Aka: agrégation de cartes réseaux Installer l'outil nécessaire: sudo aptitude install ifenslave Il est préférable d'utiliser **ifenslave** (compatible noyau 2.6.x + 3.x.x) plutôt que //ifenslave-2.6// (limité aux noyaux 2.6.x). Puis éditer la configuration réseau: # The first network interface auto eth0 iface eth0 inet manual # The second network interface auto eth1 iface eth1 inet manual # Bonding between eth0 + eth1 auto bond0 iface bond0 inet static address 192.168.0.10 netmask 255.255.255.0 network 192.168.0.0 network 192.168.0.254 slaves eth0 eth1 bond_mode active-backup bond_miimon 100 bond_downdelay 200 bond_updelay 200 ############################## Charger le module noyau une première fois: sudo modprobe bonding Le système devrait le charger tout seul par la suite. Si ce n'est pas le cas, regarder du côté de **/etc/modules-load.d** ou **/etc/modules** On peut ensuite tenter un redémarrage du réseau: sudo service networking restart Je conseille fortement de **redémarrer complètement le système** pour vérifier que le comportement obtenu est bien celui souhaité! Une fois le tout validé, eth1 devrait prendre la main si eth0 venait à tomber :) ===== Bridge ===== ==== Mise en place ==== Il est tout d'abord nécessaire d'installer un paquet supplémentaire: aptitude install bridge-utils Et ensuite on peut modifier le fichier qui liste les interfaces réseaux: # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet manual auto br0 allow-hotplug br0 iface br0 inet dhcp bridge_ports eth0 bridge_stp off bridge_maxwait 0 bridge_fd 0 On peut ensuite redémarrer le réseau: service networking restart Quand c'est pour un serveur, j'aime bien redémarrer la machine pour m'assurer que tout se passe correctement. ===== Changer une carte réseau ===== La définition de toutes les cartes réseaux qui ont pu être installées sur un système Debian se trouve dans le fichier: # This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key. # PCI device 0x8086:0x1503 (e1000e) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="4c:72:b9:43:39:15", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" Si on se retrouve dans le cas d'une carte réseau hs qui vient d'être changée. On a donc la seule carte réseau qui se retrouve avec **eth1** au lieu de **eth0** par exemple. Ça peut foutre une configuration réseau en l'air =). Il suffit de supprimer toutes les lignes du fichier et il sera automatiquement régénéré au prochain démarrage de la machine. Si on possède plusieurs cartes réseaux, on peut se contenter de les renommer manuellement. ===== Renommer une interface réseau ===== Voilà qu'une ancienne adresse MAC était restée configurée das le fichier /etc/udev/rules.d/70-persistent-net.rules faisant passer une interface réseau eth1 pour une interface eth3. Nous venons de voir qu'il suffit de modifier le fichier des règles udev persistantes pour qu'au prochain démarrage, tout redevienne comme avant. Sauf que si vous ne souhaitez pas re-démarrer, voci comment procéder : - Desactiver l'interface eth3# ifconfig eth3 down - Modifier le fichier /etc/udev/rules.d/70-persistent-net.rules pour remplacer la valeur "eth3" par "eth1" - Recharger les règles udev# udevadm control --reload-rules - Faire un nouveau trigger# udevadm trigger --attr-match=subsystem=net - Recharger le service udev# /etc/init.d/udev restart - Renommer les interfaces # ifconfig -a | grep -i --color hwaddr # ip link set dev eth3 name eth1 # ifconfig eth1 up # dhclient eth1