Config reseau linux avec rclocal » Historique » Version 2
Version 1 (Emmanuel Navarro, 17/11/2016 22:29) → Version 2/3 (Emmanuel Navarro, 17/11/2016 22:40)
h1. Configuration réseau sous linux avec _/etc/rc.local_ et _ip_
Voici comment utiliser _/etc/rc.local_ plutôt que _/etc/network/interface_ sur une machine linux/debian (ou assimilable).
h2. Pourquoi faire ça ?
cf Laurent https://lists.tetaneutral.net/pipermail/technique/2016-March/002217.html:
<pre>Pour rappel sur /etc/network/interfaces & fichiers de ce genre :
- la moindre erreur d'edit et vous perdez totalement le reseau
- restart uniquement dans screen sinon perte totale du reseau
- impossible de separer ipv4 et ipv6 donc perte de benefice du dual stack en cas de soucis vous perdez les deux a la fois ipv4 et ipv6
- impossible de transitionner etape par etape vers une autre configuration
- au final fichier de configuration a la fois plus long et moins comprehensible qu'avec iproute2
- tres difficile de faire un setup autre que trivial (dhcp) en pratique
</pre>
Critiques remarques sur cette technique:
<pre><alarig> navarro: le souci c’est que /etc/rc.local est lu après le démarrage de tous les autres daemons
<alarig> donc s’ils doivent binder une IP au start, ils vont se vautrer.
</pre>
h2. Configuration dans _/etc/rc.local_
Voici une exemple _/etc/rc.local_, *attention* à bien remplacer les IP4, IP6, XX et YY pour que ca colle à vos IP (voir plus bas) :
<pre>#!/bin/sh
# Network configuration
ip link set eth0 up
ip addr add IP4/32 dev eth0
ip route add default via 91.224.148.0 dev eth0 onlink
echo nameserver 91.224.149.254 > /etc/resolv.conf
ip -6 addr add IP6/56 dev eth0
ip -6 addr add fe80::XX:YY/64 dev eth0
ip -6 route add default via fe80::31 dev eth0 onlink
echo nameserver 91.224.148.10 >> /etc/resolv.conf
echo nameserver 2a03:7220:8081:fe00::1 >> /etc/resolv.conf
exit 0
</pre>
* *IP4* c'est votre IPv4 TTNN...
* *IP6* c'est -votre- l'une de vos IPv6 ttnn (a priori en _2a03:7220:80XX:YY00::1).
* *XX* et *YY* ce sont les deux octets de fin de votre plage d'IPv6 (cf exemple ligne au dessus)
et dans _/etc/network/interface_ on a juste :
<pre>auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
</pre>
h2. Petites astuces
Avant de faire une modif, pensez à garder sous la main le résultat de :
<pre>
$ ip addr
</pre>
"""Ca donne la link local ipv6 qui pourra servir a recuperer le ssh sur la machine.""" cf https://lists.tetaneutral.net/pipermail/technique/2016-March/002217.html
Voici comment utiliser _/etc/rc.local_ plutôt que _/etc/network/interface_ sur une machine linux/debian (ou assimilable).
h2. Pourquoi faire ça ?
cf Laurent https://lists.tetaneutral.net/pipermail/technique/2016-March/002217.html:
<pre>Pour rappel sur /etc/network/interfaces & fichiers de ce genre :
- la moindre erreur d'edit et vous perdez totalement le reseau
- restart uniquement dans screen sinon perte totale du reseau
- impossible de separer ipv4 et ipv6 donc perte de benefice du dual stack en cas de soucis vous perdez les deux a la fois ipv4 et ipv6
- impossible de transitionner etape par etape vers une autre configuration
- au final fichier de configuration a la fois plus long et moins comprehensible qu'avec iproute2
- tres difficile de faire un setup autre que trivial (dhcp) en pratique
</pre>
Critiques remarques sur cette technique:
<pre><alarig> navarro: le souci c’est que /etc/rc.local est lu après le démarrage de tous les autres daemons
<alarig> donc s’ils doivent binder une IP au start, ils vont se vautrer.
</pre>
h2. Configuration dans _/etc/rc.local_
Voici une exemple _/etc/rc.local_, *attention* à bien remplacer les IP4, IP6, XX et YY pour que ca colle à vos IP (voir plus bas) :
<pre>#!/bin/sh
# Network configuration
ip link set eth0 up
ip addr add IP4/32 dev eth0
ip route add default via 91.224.148.0 dev eth0 onlink
echo nameserver 91.224.149.254 > /etc/resolv.conf
ip -6 addr add IP6/56 dev eth0
ip -6 addr add fe80::XX:YY/64 dev eth0
ip -6 route add default via fe80::31 dev eth0 onlink
echo nameserver 91.224.148.10 >> /etc/resolv.conf
echo nameserver 2a03:7220:8081:fe00::1 >> /etc/resolv.conf
exit 0
</pre>
* *IP4* c'est votre IPv4 TTNN...
* *IP6* c'est -votre- l'une de vos IPv6 ttnn (a priori en _2a03:7220:80XX:YY00::1).
* *XX* et *YY* ce sont les deux octets de fin de votre plage d'IPv6 (cf exemple ligne au dessus)
et dans _/etc/network/interface_ on a juste :
<pre>auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
</pre>
h2. Petites astuces
Avant de faire une modif, pensez à garder sous la main le résultat de :
<pre>
$ ip addr
</pre>
"""Ca donne la link local ipv6 qui pourra servir a recuperer le ssh sur la machine.""" cf https://lists.tetaneutral.net/pipermail/technique/2016-March/002217.html