[ << ]
[ < ]
[ Sommaire ]
[ > ]
[ >> ]
3. Les modules réseaux
Table des matières :
3.a. Les modules réseaux
Nous utilisons à présent des scripts réseaux modulaires, c'est-à-dire que nous
pouvons facilement ajouter du support pour un nouveau type d'interface ou des
nouveaux modules de configuration tout en gardant une compatibilité avec les
anciens.
Par défaut, un module se charge si le paquet nécessaire à son utilisation est
installé. Si vous spécifiez ici un module dont le paquet n'est pas installé,
vous obtiendrez alors une erreur vous indiquant quel paquet doit être installé
pour utiliser ce module. Typiquement, cette configuration n'est à faire que si
vous avez installé plusieurs paquets qui fournissent le même service et si vous
en préférez un en particulier.
Note :
Tous les réglages mentionnés ci-dessous se trouvent dans
etc/conf.d/net sauf mention contraire.
|
Exemple de code 1 : Choix des modules |
modules=( "iproute2" )
modules_eth0=( "udhcpc" )
modules=( "!iwconfig" )
|
3.b. Outils de configuration d'interfaces réseau
Nous fournissons deux outils de configuration d'interfaces réseau
actuellement : ifconfig et iproute2. Vous avez besoin d'un
de ces deux outils pour pouvoir procéder à la configuration du réseau.
ifconfig est l'outil par défaut de Gentoo et est inclu dans le profil
« system ». proute2 est un paquet bien plus puissant et plus
flexible, mais n'est pas inclu par défaut.
Exemple de code 2 : Installer iproute2 |
# emerge sys-apps/iproute2
modules=( "iproute2" )
|
Puisqu'ifconfig et iproute2 font à peu près la même chose, nous
avons fait en sorte que la configuration de base fonctionne indifféremment avec
les deux modules. Par exemple, les deux extraits de code ci-dessous
fonctionnent quel que soit le module utilisé.
Exemple de code 3 : Exemple avec ifconfig ou iproute2 |
config_eth0=( "192.168.0.2/24" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0" )
config_eth0=( "192.168.0.2/24 brd 192.168.0.255" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" )
|
3.c. DHCP
Le DHCP est un moyen d'obtenir les informations nécessaires à la configuration
du réseau (adresse IP, serveurs DNS, passerelle, etc.) depuis un serveur DHCP.
Cela signifie que si un serveur DHCP est actif sur le réseau, vous n'avez qu'à
indiquer à chaque client d'utiliser DHCP et ce dernier se débrouillera tout
seul. Cependant, vous aurez peut-être quelque chose à configurer (réseau sans
fil, liaison PPP ou autre) avant de pouvoir utiliser le DHCP.
Le DHCP peut être fourni par dhclient, dhcpcd, pump ou
udhcpc. Chaque module DHCP a ses avantages et ses inconvénients. Voici
un rapide résumé.
Module DHCP |
Paquet |
Avantages |
Inconvénients |
dhclient |
net-misc/dhcp |
Produit par ISC, ceux-là même qui font le serveur DNS Bind.
Très configurable.
|
La configuration est trop complexe.
L'application est vraiment énorme.
Ne récupère pas les serveurs NTP en DHCP.
N'envoie pas le nom de la machine au serveur par défaut.
|
dhcpcd |
net-misc/dhcpcd |
C'est le client par défaut de Gentoo depuis longtemps.
Ne s'appuie pas sur d'autre outils.
Est maintenu par l'équipe Gentoo.
|
Parfois lent.
Reste lancé même si l'adresse IP est allouée « pour toujours ».
|
pump |
net-misc/pump |
Léger.
Ne repose pas sur d'autres outils.
|
N'est plus maintenu par ses développeurs.
Pas fiable, en particulier au travers des modems.
Ne sait pas récupérer les informations NIS depuis DHCP.
|
udhcpc |
net-misc/udhcp |
Léger, le plus petit client des environs.
Conçu pour les systèmes embarqués.
|
Peu testé, aucune distribution ne l'utilise par défaut.
Ne peut pas définir un délai d'attente supérieur à trois secondes.
|
Si vous avez plus d'un client DHCP installé, vous devez spécifier lequel
utiliser, sinon nous utiliserons dhcpcd s'il est disponible.
Pour faire passer des options spécifiques au module dhcp, utilisez
module_eth0="..." en changeant « module » par le nom
du module DHCP à utiliser. Par exemple : dhcpcd_eth0.
Nous essayons de garder la configuration du DHCP relativement indépendante du
module utilisé. Ainsi, voici la liste des commandes utilisables avec la variable
dhcp_eth0. Par défaut, aucune n'est exécutée.
-
release : rend l'adresse IP afin qu'elle puisse être réutilisée.
-
nodns : n'écrase pas le fichier /etc/resolv.conf.
-
nontp : n'écrase pas le fichier /etc/ntp.conf.
-
nonis : n'écrase pas le fichier /etc/yp.conf.
Exemple de code 4 : Exemple de configuration DHCP dans /etc/conf.d/net |
modules=( "dhcpcd" )
config_eth0=( "dhcp" )
dhcpcd_eth0="-t 10"
dhcp_eth0="release nodns nontp nonis"
|
Note :
dhcpcd, udhcpc et pump envoient le nom actuel de la
machine au serveur DHCP par défaut donc vous n'avez plus besoin de le
spécifier.
|
3.d. L'ADSL avec PPPoE/PPPoA
Installons tout d'abord le logiciel pour gérer l'ADSL.
Exemple de code 5 : Installer le paquet ppp |
# emerge net-dialup/ppp
|
Note :
Vous devez utiliser >=baselayout-1.12.x pour avoir le support de PPPoA.
|
Ensuite, créez le script net PPP et le script net de l'interface Ethernet que
doit utiliser PPP :
Exemple de code 6 : Créer les script net PPP et Ethernet |
# ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0
# ln -s /etc/init.d/net.lo /etc/init.d/net.eth0
|
Mettez bien RC_NET_STRICT_CHECKING="yes" dans le fichier
/etc/conf.d/rc.
Nous devons maintenant éditer le fichier /etc/conf.d/net.
Exemple de code 7 : Une configuration simple de PPPoE |
config_eth0=( null )
config_ppp0=( "ppp" )
link_ppp0="eth0"
plugins_ppp0=( "pppoe" )
username_ppp0='nom_utilisateur'
password_ppp0='mot_de_passe'
pppd_ppp0=(
"noauth"
"defaultroute"
"usepeerdns"
"holdoff 3"
"child-timeout 60"
"lcp-echo-interval 15"
"lcp-echo-failure 3"
noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp
)
depend_ppp0() {
need net.eth0
}
|
Vous pouvez également placer votre mot de passe dans /etc/ppp/pap-secrets.
Exemple de code 8 : Exemple de fichier /etc/ppp/pap-secrets |
"nom_utilisateur" * "mot_de_passe"
|
Si vous utilisez PPPoE avec un modem USB, vous devez installer
br2684ctl. Lisez le fichier
/usr/portage/net-dialup/speedtouch-usb/files/README pour savoir
comment le configurer correctement.
Important :
Lisez attentivement la section sur l'ADSL et PPP dans le fichier
/etc/conf.d/net.example. Elle contient des explications très
détaillées sur les réglages à votre disposition pour configurer votre PPP.
|
3.e. APIPA (Adressage automatique d'adresse IP privée)
APIPA essaye de trouver une adresse libre dans l'intervalle
169.254.0.0-169.254.255.255 en faisant un arping sur une adresse au hasard sur
l'interface. S'il n'y a pas de réponse, alors l'adresse est assignée à cette
interface.
Cette méthode est utile pour les réseaux où il n'y a pas de serveur DHCP, où les
machines ne sont pas connectées directement à Internet et où tous les autres
ordinateurs utilisent APIPA.
Pour obtenir le support APIPA, installez net-misc/iputils ou
net-analyzer/arping.
Exemple de code 9 : Configuration APIPA dans /etc/conf.d/net |
config_eth0=( "dhcp" )
fallback_eth0=( "apipa" )
config_eth0=( "apipa" )
|
3.f. Agrégation de liens (Bonding)
Pour pouvoir faire de l'agrégation de liens (bonding, trunking), installez
net-misc/ifenslave.
L'agrégation de liens est utilisée pour augmenter la bande passante réseau. Si
vous avez deux cartes réseaux branchées sur le même réseau, vous pouvez les
fusionner afin que vos applications ne voient qu'une seule interface qui
utilise en réalité les deux cartes.
Exemple de code 10 : Configurer une agrégation de liens dans /etc/conf.d/net |
slaves_bond0="eth0 eth1 eth2"
config_bond0=( "null" )
depend_bond0() {
need net.eth0 net.eth1 net.eth2
}
|
3.g. Pont réseau (« bridge » 802.1d)
Pour activer le support des ponts réseaux, installez
net-misc/bridge-utils.
Le pontage de réseaux est utilisé pour connecter plusieurs réseaux ensemble. Par
exemple, un serveur qui se connecte à Internet via un modem ADSL peut utiliser
un pont réseau pour permettre aux machines connectées sur sa carte réseau sans
fil d'accéder à Internet.
Exemple de code 11 : Configuration d'un pont réseau dans /etc/conf.d/net |
brctl_br0=( "setfd 0" "sethello 0" "stp off" )
bridge_br0="eth0 eth1"
config_eth0=( "null" )
config_eth1=( "null" )
config_br0=( "192.168.0.1/24" )
depend_br0() {
need net.eth0 net.eth1
}
|
Important :
Pour la configuration de certains ponts, vous pourriez avoir besoin de consulter
la documentation sur les noms des
variables.
|
3.h. Adresse MAC
Vous n'avez pas besoin d'installer quoi que ce soit pour changer l'adresse MAC
de votre interface si vous utilisez sys-apps/baselayout-1.11.14 ou une
version plus récente. En revanche, si vous utilisez une version de baselayout
plus ancienne ou si vous voulez assigner une adresse aléatoire, vous devez
installer net-analyzer/macchanger.
Exemple de code 12 : Exemples de modification d'adresse MAC |
mac_eth0="00:11:22:33:44:55"
mac_eth0="random-ending"
mac_eth0="random-samekind"
mac_eth0="random-anykind"
mac_eth0="random-full"
|
3.i. Les tunnels
Vous n'avez pas à installer quoi que ce soit pour créer des tunnels car l'outil
de configuration d'interfaces réseaux peut s'en charger.
Exemple de code 13 : Configuration de tunnels dans /etc/conf.d/net |
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"
config_vpn0=( "192.168.0.2 peer 192.168.1.1" )
|
3.j. VLAN (802.1q)
Pour activer le support des VLAN, installez net-misc/vconfig.
Un réseau virtuel (ou VLAN) est un groupe d'équipements réseaux qui agissent
comme s'ils se trouvaient sur un seul segment réseau, même si ce n'est pas le
cas. Les membres d'un VLAN peuvent uniquement voir les autres membres du même
VLAN, même s'ils sont physiquement sur le même réseau.
Exemple de code 14 : Configuration de VLAN dans /etc/conf.d/net |
vlans_eth0="1 2"
vconfig_eth0=( "set_name_type VLAN_PLUS_VID_NO_PAD" )
vconfig_vlan1=( "set_flag 1" "set_egress_map 2 6" )
config_vlan1=( "172.16.3.1 netmask 255.255.254.0" )
config_vlan2=( "172.16.2.1 netmask 255.255.254.0" )
|
Important :
Pour la configuration de certains VLAN, vous pourriez avoir besoin de consulter
la documentation sur les noms des
variables.
|
[ << ]
[ < ]
[ Sommaire ]
[ > ]
[ >> ]
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|