====== 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