CentOS configuration lan/lab de RPIs
Après avoir créer les images custom des RPI il va falloir les connecter entre eux. Pour cela on va créer un lan qui va les accueillir avec :
- Un linux qui fera passerelle
- Un dhcp local
- Un dns local
- Une route vers le net
Centos 7 et ses noms d’interfaces …
Commençons par cibler les interfaces en jeu:
- le lan RPI sera de type câble Ethernet (eth0)
- internet viendra du Wifi (wlan0)
Pour lister les interfaces de la machine :
[root@CentOS#]ip addr show
Oups, pas d’interface eth0 comme attendu mais un ifcfg-enp0s31f6 .
On va donc renommer l’interface et pour cela il faut avoir l’adresse MAC de la carte réseau visible avec la précédente commande et du genre : link/ether xx:xx:xx:xx:xx:xx
En live :
[root@CentOS#] /sbin/ip link set enp0s31f6 down [root@CentOS#] /sbin/ip link set enp0s31f6 name eth0 [root@CentOS#] /sbin/ip link set eth0 up
Et pour que cela soit fixé au boot:
[root@CentOS#] vi /usr/lib/udev/rules.d/60-net.rules
ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="eth0"
Profitons en pour fixer l’adresse ip qu’on va utiliser
[root@CentOS#] vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 BOOTPROTO=none ONBOOT=yes PREFIX=24 IPADDR=10.0.0.1
Place au reboot et à la vérification du renommage et de l’ip choisie:
[root@CentOS#] ip addr show
Dhcp : attribution automatique des IP
Imaginons que le parc de RPIs soit conséquent, nous n’allons pas configurer les paramètres réseaux pour chacun des Raspberry. Installons un Dhcp sur le réseau eth0.
[root@CentOS#] yum install dhcp
subnet 10.0.0.0 netmask 255.255.255.0 { range 10.0.0.100 10.0.0.150; option domain-name-servers 10.0.0.1; option domain-name "cyklodev.local"; option netbios-name-servers 10.0.0.1; option routers 10.0.0.1; option subnet-mask 255.255.255.0; option broadcast-address 10.0.0.255; default-lease-time 86400; max-lease-time 676800; }
Avec cette configuration, tous les RPI auront une IP comprise entre 10.0.0.100-150 et auront un serveur DNS pré configuré en 10.0.0.1.
[root@CentOS#] service dhcpd start
Le tunneling:
Ce n’est pas parce que 2 réseaux sont connectés entre eux que les machines qui sont derrières peuvent communiquer entre elles.
On commence par autoriser le forwarding.
[root@CentOS#] sysctl -w net.ipv4.ip_forward=1
Puis on définit dans iptables le fait le que le forwarding de port sera dirigé vers l’interface wlan0.
[root@CentOS#] iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
A partir de là, le Raspberry va atteindre le réseau extérieur
[root@raspberry#]ping 8.8.8.8
Résolution des noms de domaine
Maintenant que le réseau du Raspberry accède au net, il va lui falloir la résolution des nom de domaines. On va donc installer bind9.
[root@CentOS#] yum install dnsutils bind9
Pour éviter toute interaction avec un DNS existant, ce nouveau dns ne sera en écoute que sur l’interface eth0. On relayera aussi les requêtes vers un dns existant, celui de Google.
[root@CentOS#] vi /etc/bind/named.conf.options
#Listen on eth0 listen-on port 53 { 10.0.0.1; }; #Relay dns request on Google DNS forwarders { 8.8.8.8; 8.8.4.4; };
Après un restart du service, tous les RPIs ont un accès à la résolution des noms de domaines.
[root@raspberry#]ping free.fr
Vous êtes désormais en possession d’un réseau de RPIs sur lequel vous pourrez faire des labs de tout ce qui vous passe par la tête.