Handbook:MIPS/Networking/Modular/fr
Modules réseau
Les scripts Netifrc prennent en charge les scripts modulaires de mise en réseau, ce qui signifie que la prise en charge de nouveaux types d'interface et de modules de configuration peut facilement être ajoutée tout en conservant la compatibilité avec les modules existants.
Les modules sont chargés par défaut si le paquet dont ils ont besoin est installé. Si les utilisateurs spécifient ici un module dont le paquet n'est pas installé, ils reçoivent une erreur indiquant le paquet à installer. Idéalement, le réglage des modules n'est utilisé que lorsque deux ou plusieurs paquets qui fournissent le même service sont installés et que l'un doit être préféré à l'autre.
Tous les paramètres abordés ici, sauf indication contraire, sont enregistrés dans /etc/conf.d/net.
# Préférer ifconfig à iproute2
# modules="ifconfig"
# On peut aussi spécifier d'autres modules pour une interface
# Ici nous choisissons dhclient au lieu de dhcpcd
modules_eth0="dhclient"
# Vous pouvez aussi spécifier quels modules ne pas utiliser - vous pouvez par exemple
# utiliser wpa_supplicant ou linux-wlan-ng pour contrôler le wifi mais
# vous voulez quand même configurer les paramètre du réseau pour chaque association avec un ESSID
modules="!iwconfig"
Gestionnaires d'interface
Nous fournissons deux gestionnaires d'interface : ifconfig et iproute2. L'un d'entre eux est nécessaire pour effectuer n'importe quel type de configuration réseau.
Les deux sont installés par défaut dans le cadre du profil du système. iproute2 est le package le plus puissant et le plus flexible. ifconfig et net-tools ne devraient plus être utilisés pour la configuration du réseau.
Comme ifconfig et iproute2 font des choses très similaires, nous permettons à leur configuration de base de fonctionner les unes avec les autres. Par exemple, l'extrait de code ci-dessous fonctionne quel que soit le module utilisé par l'utilisateur.
config_eth0="192.168.0.2/24"
config_eth0="192.168.0.2 netmask 255.255.255.0"
DHCP
DHCP est un moyen d'obtenir des informations réseau (adresse IP, serveurs DNS, passerelle, etc.) à partir d'un serveur DHCP. Cela signifie que s'il y a un serveur DHCP fonctionnant sur le réseau, l'utilisateur doit simplement dire à chaque client d'utiliser DHCP et cela configure le réseau automatiquement. Bien sûr, l'utilisateur devra configurer d'autres paramètres comme les paramètres sans fil, PPP ou autres si nécessaire avant de pouvoir utiliser DHCP.
DHCP peut être fourni par dhclient, dhcpcd ou pump. Chaque module DHCP a ses avantages et ses inconvénients - voici un résumé :
module DHCP | Paquet | Pours | Contres |
---|---|---|---|
dhclient | net-misc/dhcp | Développé par ISC, les mêmes personnes dérrière le logiciel DNS BIND. Très configurable | La configuration est trop complexe, le logiciel est assez lourd, ne peut pas recevoir les serveurs NTP du DHCP, n'envoie pas le nom d'hôte par défaut |
dhcpcd | net-misc/dhcpcd | Outil par défault de Gentoo de longue date, pas de dépendance aux outils externes, développé activement par Gentoo | Peut être lent parfois, ne peut pas encore se démoniser quand le bail est infini |
pump | net-misc/pump | Léger, pas de dépendance à des outils extérieurs | N'est plus maintenu en amont, peu fiable, en particulier sur les modems, ne peut pas obtenir les serveurs NIS de DHCP |
Si plus d'un client DHCP est installé, spécifier lequel utiliser - sinon dhcpcd sera utilisé par défaut si possible.
Pour envoyer des options spécifiques au module DHCP, utiliser module_eth0="..."
(remplacer module par le module DHCP utilisé, par exemple dhcpcd_eth0).
Nous essayons de rendre le protocole DHCP relativement indépendant - en tant que tel nous supportons les commandes suivantes en utilisant la variable dhcp_eth0. L'action par défaut est de n'en définir aucune :
release
- Libérer l'adresse IP pour ré-utilisation.
nodns
- Ne pas écraser /etc/resolv.conf
nontp
- Ne pas écraser /etc/ntp.conf
nonis
- Ne pas écraser /etc/yp.conf
# Nécessaire seulement si plus d'un module DHCP est installé
modules="dhcpcd"
config_eth0="dhcp"
dhcpcd_eth0="-t 10" # Timeout après 10 secondes
dhcp_eth0="release nodns nontp nonis" # Ne récupère qu'une adresse
dhcpcd et pump envoient le nom d'hôte actuel au serveur DHCP par défaut, il n'est donc plus nécessaire de le spécifier.
# Only needed if more than one DHCP module is installed
modules="dhclient"
config_eth0="dhcpv6"
# To use both DHCPv4 and DHCPv6 on a dual-stack network, remove the above line and uncomment the following lines
#config_eth0="dhcp
#dhcpv6"
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# To pass runtime arguments to dhclient for DHCPv6
dhclientv6_eth0="-t 10" # Timeout after 10 seconds
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# Set generic DHCPv6 options
dhcpv6_eth0="release nodns nontp nonis nogateway nosendhost"
ADSL avec PPPoE/PPPoA
D'abord installer le logiciel ADSL :
root #
emerge --ask net-dialup/ppp
Ensuite, créer le script net PPP et le script net pour l'interface Ethernet qui va être utilisée par PPP :
root #
ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0
root #
ln -s /etc/init.d/net.lo /etc/init.d/net.eth0
S'assurer de mettre rc_depend_strict à YES
dans /etc/rc.conf.
Maintenant, il faut configurer /etc/conf.d/net.
config_eth0=null (Spécifier l'interface ethernet)
config_ppp0="ppp"
link_ppp0="eth0" (Spécifier l'interface ethernet)
plugins_ppp0="pppoe"
username_ppp0='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"
rc_need_ppp0="net.eth0"
Il est également possible de configurer le mot de passe dans /etc/ppp/pap-secrets.
# Le * est important
"utilisateur" * "mot de passe"
Si PPPoE est utilisé avec un modem USB, s'assurer d'installer br2684ctl. Lire /var/db/repos/gentoo/net-dialup/speedtouch-usb/files/README pour plus d'informations sur comment le configurer correctement.
Lire attentivement le passage sur ADSL et PPP dans /usr/share/doc/netifrc-*/net.example.bz2. Il contient énormément d'explications détaillées de tous les paramètres qu'une installation de PPP nécessite.
APIPA (Automatic Private IP Addressing)
APIPA essaie de trouver une adresse libre dans la plage 169.254.0.0-169.254.255.255 en créant une adresse aléatoire dans cette plage sur l'interface. Si aucune réponse n'est trouvée, nous attribuons cette adresse à l'interface.
This is only useful for LANs where:
- there is no DHCP server;
- the system doesn't connect directly to the Internet; and
- all other computers use APIPA.
Pour le support APIPA, installer net-misc/iputils avec l'option de la variable USE arping
ou net-analyser/arping.
# Essayer DHCP en premier - si cela échoue alors se replier sur APIPA
config_eth0="dhcp"
fallback_eth0="apipa"
# N'utiliser que APIPA
config_eth0="apipa"
Agrégation
L’agrégation (ou bonding) est utilisée pour augmenter la bande passante du réseau ou pour améliorer la résilience face aux défaillances matérielles. Si un système possède deux cartes réseau connectées au même réseau, l'administrateur peut les lier ensemble pour que les applications ne voient qu'une seule interface mais utilisent réellement les deux cartes réseau.
Il existe plusieurs moyens de configurer l'agrégation. Certains d'entre eux, tels que le mode LACP 802.3ad, nécessitent une prise en charge et une configuration supplémentaire du commutateur réseau. Pour une référence des options individuelles, se reporter à la copie locale de /usr/src/linux/Documentation/networking/bonding.txt.
Tout d'abord, effacer la configuration des interfaces utilisées :
config_eth0="null"
config_eth1="null"
config_eth2="null"
Ensuite, définir l'agrégation entre les interfaces :
slaves_bond0="eth0 eth1 eth2"
config_bond0="192.168.100.4/24"
# Choisir le mode correct est les options supplémentaires nécessaires en fonction des besoins.
mode_bond0="balance-alb"
Supprimer les services net.eth* des niveaux de fonctionnement (runlevels), créer un fichier net.bond0 et l'ajouter au bon niveau de fonctionnement.
Pontage (support 802.1d)
Le pontage est utilisé pour joindre des réseaux ensemble. Par exemple, un système peut avoir un serveur qui se connecte à Internet via un modem ADSL et une carte d'accès sans fil pour permettre à d'autres ordinateurs de se connecter à Internet via le modem ADSL. Il est possible de créer un pont pour joindre les deux interfaces.
# Configurer le pont - "man brctl" pour plus de détails
bridge_forward_delay_br0=0
bridge_hello_time_br0=200
bridge_stp_state_br0=1
# Pour ajouter des ports au pont br0
bridge_br0="eth0 eth1"
# Il est nécessaire de configurer les ports avec null de telle sorte que dhcp ne se lance pas
config_eth0="null"
config_eth1="null"
# Finalement donner une adresse au pont - il est possible d'utiliser dhcp
config_br0="192.168.0.1/24"
# Dépend de eth0 et eth1 car ils peuvent nécessiter des configurations supplémentaires
rc_net_br0_need="net.eth0 net.eth1"
Pour utiliser certaines configurations de pont, consulter la documentation sur le nom de variables.
Lors de la mise en pont avec IPv6, SLAAC requiert que STP soit défini sur
1
comme indiqué dans l'exemple ci-dessus.Adresse MAC
Il est également possible de modifier l'adresse MAC des interfaces via le fichier de configuration réseau.
# Pour fixer l'adresse MAC de l'interface
mac_eth0="00:11:22:33:44:55"
# Pour randomiser les 3 derniers octets seulement
mac_eth0="random-ending"
# Pour randomiser entre le même type physique de connexion (par exemple, fibre,
# cuivre, sans fil), de tous fournisseurs
mac_eth0="random-samekind"
# Pour randomiser entre n'importe quel type physique de connexion (par exemple fibre, cuivre,
# sans fil), tous fournisseurs
mac_eth0="random-anykind"
# Complètement aléatoire - ATTENTION: certaines adresses MAC générées de cette manière
# peuvent NE PAS agir comme prévu
mac_eth0="random-full"
Tunneling
Le tunneling ne nécessite aucun logiciel supplémentaire pour être installé car le gestionnaire d'interface peut le faire.
# Pour les tunnels GRE
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"
# Pour les tunnels IPIP
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"
# Pour configurer l'interface
config_vpn0="192.168.0.2 peer 192.168.1.1"
VLAN (support 802.1q)
Pour la prise en charge du réseau local virtuel (VLAN), s'assurer que sys-apps/iproute2 soit installé et que iproute2 est utilisé comme module de configuration plutôt que ifconfig.
Le réseau local virtuel est un groupe de périphériques réseau qui se comportent comme s'ils étaient connectés à un seul segment de réseau, même s'ils ne le sont pas. Les membres du VLAN ne peuvent voir que les membres du même VLAN même s'ils partagent le même réseau physique.
Pour configurer les VLANs, spécifier d'abord les numéros VLAN dans /etc/conf.d/net comme suit :
vlans_eth0="1 2"
Ensuite, configurer l'interface pour chaque VLAN :
config_eth0_1="172.16.3.1 netmask 255.255.254.0"
routes_eth0_1="default via 172.16.3.254"
config_eth0_2="172.16.2.1 netmask 255.255.254.0"
routes_eth0_2="default via 172.16.2.254"
Les configurations spécifiques au VLAN sont gérées par vconfig comme ceci :
vlan1_name="vlan1"
vlan1_ingress="2:6 3:5"
eth0_vlan1_egress="1:2"
Pour l'utilisation de certaines configurations de VLAN, consulter la documentation du nom de la variable.