**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.** # Howto Reseau sous Debian ## Configuration IP fixe La configuration d'une interface réseau avec une IP fixée se passe dans le fichier _/etc/network/interfaces_. Voici un exemple simple : ~~~ auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.0.43.10 netmask 255.255.255.0 gateway 192.0.43.254 ~~~ Pour l'IPv6 il faut rajouter : ~~~ iface eth0 inet6 static address 2001:500:88:200::10 netmask 48 up /bin/ip route add 2000::0/3 via 2001:500:88:200::254 ~~~ Si besoin d'exécuter des commandes après l'activation de l'interface (classiquement des ajouts de routes), on utilise l'option _up_. Par exemple : ~~~ auto eth0 iface eth0 inet static address 192.0.43.10 netmask 255.255.255.0 gateway 192.0.43.254 up /sbin/route add -net 192.0.42.0/24 gw 192.0.43.242 ~~~ Pour ajouter des interfaces virtuelles, toujours via _/etc/network/interfaces_ on fera : ~~~ auto eth0:0 iface eth0:0 inet static address 192.0.43.11 netmask 255.255.255.0 ~~~ Note 1 : certains hébergeurs comme OVH préconisent une configuration un peu différente, voir [wiki:ServeurOVH#IPFailOver] Note 2 : dans certains cas particuliers (comme le besoin de préciser le nom de l'interface dans une commande _iptables_) on souhaite avoir un nom d'interface virtuelle sans les ":". Il faudra donc passer par la commande _ip_ (voir ci-dessous). Mais tout cela se gère également dynamiquement via les commande _ifconfig_ et _ip_. Quelques exemples : ~~~ # ifconfig eth0 add 192.0.43.11 netmask 255.255.255.0 # ip addr add 192.0.43.12/24 dev eth0 # ip addr add 192.0.43.13/24 dev label eth0:3 # ip addr del 192.0.43.12/24 ~~~ Attention, avec la commande _ip_ le résultat ne sera pas visible avec _ifconfig_ si aucun label du type eth0:N n'est donné à l'interface ; on ne verra l'adresse qu'avec un : ~~~ # ip addr show ~~~ Notons que dans certains cas particuliers (comme le besoin de préciser le nom de l'interface dans une commande _iptables_) on souhaite avoir un nom d'interface virtuelle sans les ":". On utilisera donc simplement un label sans ":" : ~~~ # ip addr add 192.0.43.13/24 dev label eth00 # iptables -t nat -A POSTROUTING -o eth00 [...] ~~~ ## Configuration serveur(s) DNS Le fichier _/etc/hosts_ permet d'indiquer manuellement des enregistrements DNS, du type : ~~~ 127.0.0.1 ad.doubleclick.net ~~~ Pour note, ces enregistrements sont par défaut prioritaires sur les réponses des serveurs DNS (et pour rappel, les commandes dig et host n'utilisent PAS _/etc/hosts_). La configuration du (ou des) serveur(s) DNS s'effectue dans le fichier _/etc/resolv.conf_. Voici un exemple classique : ~~~ search example.com nameserver 192.0.42.53 nameserver 192.0.43.53 options timeout:2 attempts:2 ~~~ Pour des précisions sur les options possibles : _man resolv.conf_ Note : si l'on utilise Postfix, il faut le redémarrer suite à un changement dans _/etc/resolv.conf_ (car il est chrooté par dédaut et il gère sa propre copie dans /var/spool/postfix) ## Bridge Pour créer un bridge : ~~~ # brctl addbr br0 # brctl addif br0 eth0 # ifconfig eth0 up ~~~ Au niveau /etc/network/interfaces on aura ainsi : ~~~ auto eth0 iface eth0 inet manual auto br0 iface br0 inet manual bridge_ports eth0 ~~~ Et l'on listera les infos d'un bridge via : ~~~ # brctl show bridge name bridge id STP enabled interfaces br0 8000.001e0beac6c0 no eth0 ~~~ Pour avoir un bridge vide : ~~~ auto br0 iface br0 inet manual bridge_ports none ~~~ ## VLAN ~~~ # aptitude install vlan # modprobe 8021q ~~~ Pour ajouter dans le VLAN 42 ~~~ # vconfig add eth0 42 # ifconfig eth0.42 ~~~ Le fichier /etc/network/interfaces : ~~~ # cat /etc/network/interfaces auto eth0.42 iface eth0.42 inet static address 192.0.43.10 netmask 255.255.255.0 gateway 192.0.43.254 ~~~ ### Gestion des VLAN avec iproute L'utilitaire ip (paquet iproute) permet aussi de gérer les VLAN. Exemple : ~~~ # ip link add link eth0 name eth0.42 type vlan id 42 # ip addr add 192.168.1.1/24 dev eth0.42 # ip link set dev eth0.42 up ~~~ ## Désactiver IPv6 De façon temporaire : ~~~ # sysctl -w net.ipv6.conf.all.disable_ipv6=1 ~~~ De façon définitive : ~~~ # echo net.ipv6.conf.all.disable_ipv6=1 >> /etc/sysctl.conf ~~~ ## FAQ ### Bascule réseau à chaud Si l'on fait une modification réseau sur un serveur distant il est important de ne pas perdre la main. Voici une méthode possible en utilisant [screen](HowtoScreen), exemple avec la bascule sur un bridge : ~~~ # cp /etc/network/interfaces /var/backups/ # vim /etc/network/interfaces [...] # screen -S network -dm bash -c "sleep 300; cp /var/backups/interfaces /etc/network/; systemctl stop networking; systemctl start networking" # screen -S reboot -dm bash -c "sleep 600; reboot" # systemctl restart networking; ip a d 192.0.2.42/24 dev eth0; ip a a 192.0.2.42/24 dev br0; ip r d default via 192.0.2.1 dev eth0; ip r a default via 192.0.2.1 dev br0 ~~~ Ainsi, si l'on perd la main, la machine revient accessible en quelques minutes. Si l'on ne perd pas la main, il faut stopper les commandes lancées dans les screens.