CentOS configuration lan/lab de RPIs

Raspberry

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.

Zephilou

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Post comment