CnxRaspberryPc

De fablabo



Connexion Raspberry au réseau via son PC


Objet

RASPBERRY-PI connectée en local

Lorsque l'on configure et teste une carte Raspberry-pi via le réseau, il est nécessaire de connecter cette carte. Pour cela on l'équipe souvent d'une clé Wifi, mais ce n'est pas incontournable.

                             −−−−−−−−−−−−−
                            |             |
                           |−|           |W|
−−−−−−−−−−−−   Cnx filaire |E|           |L|
Raspberry-pi|______________|T|    PC     |A|__ \\\\ Liaison Wifi du PC 
−−−−−−−−−−−−               |H|           |N|   ////
              10.44.1.0/24 |0|           |0|
                            −             −
                            |             |
                             −−−−−−−−−−−−−

L'objectif est donc de connecter la carte avec un câble réseau sur son PC et d'utiliser le PC comme routeur, sans perturber le fonctionnement habituel du PC.

Cette technique devrait fonctionner avec une carte nouvellement installée, ce que signifie qu'on n'a à aucun moment besoin d'un clavier et d'un écran...

Cette procédure est validée sur Linux-Mint LMDE mais fonctionne sûrement avec Debian et probablement avec Ubuntu.

Installer le serveur DHCP local

Pour affecter une adresse IP à la carte il nous faut un serveur DHCP local qui écoutera uniquement sur l'interface filaire.

Installation

$ sudo apt install isc-dhcp-server

Modifier /etc/default/isc-dhcp-server

INTERFACES="eth0"

Configuration d'un réseau local 10.44.1.0/24

Modifier /etc/dhcp/dhcpd.conf ddns-update-style none; default-lease-time 600; max-lease-time 7200; option domain-name "mon-domaine.loc"; option domain-name-servers 8.8.8.8; option subnet-mask 255.255.255.0; option broadcast-address 10.44.1.255; option ntp-servers 10.44.1.1

subnet 10.44.1.0 netmask 255.255.255.0 { range 10.44.1.100 10.44.1.100; option routers 10.44.1.1; } log-facility local7; Cette configuration ne prévoit d'affecter qu'une seule IP 10.44.1.100 (option range) ce qui simplifie la recherche de l'adresse affectée.

Ne pas démarrer automatiquement le service

$ sudo update-rc.d isc-dhcp-server remove

Configurer eth0 avec une IP statique

Créer /etc/network/interfaces.d/static_eth0 #auto eth0 -> pas de démarrage au boot ne démarre que par ifup iface eth0 inet static address 10.44.1.1 netmask 255.255.255.0 up service isc-dhcp-server start down service isc-dhcp-server stop

Cette configuration permet de ne pas démarrer automatiquement le serveur DHCP, mais uniquement lorsque l'on active manuellement l'interface eth0.

Activer le routage

Pour permettre à la carte d'accéder à internet, ne serait-ce que pour les installations et mises à jour des logiciels, il faut configurer le PC pour qu'il se comporte comme un routeur.

Forwarding

Modifier /etc/sysctl.conf

net.ipv4.conf.default.forwarding=1

Pour une prise en compte immédiate : $ sudo sysctl -p (activer la prise en compte pas le kernel) (ou bien $ sudo echo 1 > /proc/sys/net/ipv4/ip_forward )

Masquer les paquets sortants

Ajouter cette ligne avant "exit 0" dans /etc/rc.local

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Usage

Après la connexion de la carte :

$ sudo ifup eth0 -> démarre le service dhcp

Avant la déconnexion :

$ sudo ifdown eth0 -> arrête le service dhcp

Visualiser l'adresse affectée

Pour confirmer l'affectation de l'adresse : $ tail -12 /var/lib/dhcp/dhcpd.leases lease 10.44.1.100 {

 starts 1 2016/01/11 12:57:27;
 ends 1 2016/01/11 13:07:27;
 .../...

Optionnel : NetworkManager ne gère plus eth0

Modifier /etc/NetworkManager/NetworkManager.conf [main]

 plugins=ifupdown,keyfile
 no-auto-default=eth0		--> Commenter (#) pour permettre usage