CnxRaspberryPc : Différence entre versions

De fablabo
Aller à : navigation, rechercher
(Objet)
 
(3 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 19 : Ligne 19 :
 
                             |−|          |W|
 
                             |−|          |W|
 
  −−−−−−−−−−−−  Cnx filaire |E|          |L|
 
  −−−−−−−−−−−−  Cnx filaire |E|          |L|
|Raspberry-pi|______________|T|    PC    |A|__ \\\\ Liaison Wifi du PC  
+
Raspberry-pi|______________|T|    PC    |A|__ \\\\ Liaison Wifi du PC  
 
  −−−−−−−−−−−−              |H|          |N|  ////
 
  −−−−−−−−−−−−              |H|          |N|  ////
 
               10.44.1.0/24 |0|          |0|
 
               10.44.1.0/24 |0|          |0|
Ligne 27 : Ligne 27 :
 
</code>
 
</code>
  
L'objectif est donc de connecter la carte avec un câble réseau sur son PC et d'utiliser le PC comme routeur.
+
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 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 surement avec Debian et probablement avec Ubuntu.
+
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=
 
=Installer le serveur DHCP local=
Ligne 39 : Ligne 39 :
 
==Installation==
 
==Installation==
  
<code>
+
<code>$ sudo apt install isc-dhcp-server</code>
$ sudo apt install isc-dhcp-server
 
</code>
 
  
 
Modifier '''/etc/default/isc-dhcp-server'''
 
Modifier '''/etc/default/isc-dhcp-server'''
  
<code>
+
<code> INTERFACES="eth0"</code>
INTERFACES="eth0"
 
</code>
 
  
 
==Configuration d'un réseau local 10.44.1.0/24==
 
==Configuration d'un réseau local 10.44.1.0/24==
  
 
Modifier '''/etc/dhcp/dhcpd.conf'''
 
Modifier '''/etc/dhcp/dhcpd.conf'''
<code>
+
<code> ddns-update-style none;
ddns-update-style none;
 
 
default-lease-time 600;
 
default-lease-time 600;
 
max-lease-time 7200;
 
max-lease-time 7200;
Ligne 63 : Ligne 58 :
 
 
 
subnet 10.44.1.0 netmask 255.255.255.0 {
 
subnet 10.44.1.0 netmask 255.255.255.0 {
range 10.44.1.150 10.44.1.200;
+
range 10.44.1.100 10.44.1.100;
 
option routers 10.44.1.1;
 
option routers 10.44.1.1;
 
}  
 
}  
log-facility local7;
+
log-facility local7;</code>
</code>
+
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==
 
==Ne pas démarrer automatiquement le service==
  
<code>
+
<code>$ sudo update-rc.d isc-dhcp-server remove</code>
$ sudo update-rc.d isc-dhcp-server remove
 
</code>
 
  
 
=Configurer eth0 avec une IP statique=
 
=Configurer eth0 avec une IP statique=
  
 
Créer '''/etc/network/interfaces.d/static_eth0'''
 
Créer '''/etc/network/interfaces.d/static_eth0'''
<code>
+
<code> #auto eth0 -> pas de démarrage au boot ne démarre que par ifup
#auto eth0 -> pas de démarrage au boot ne démarre que par ifup
 
 
iface eth0 inet static
 
iface eth0 inet static
 
address 10.44.1.1
 
address 10.44.1.1
 
netmask 255.255.255.0
 
netmask 255.255.255.0
 
up service isc-dhcp-server start
 
up service isc-dhcp-server start
down service isc-dhcp-server stop
+
down service isc-dhcp-server stop</code>
</code>
 
  
 
Cette configuration permet de ne pas démarrer automatiquement le serveur DHCP, mais uniquement lorsque l'on active manuellement l'interface eth0.
 
Cette configuration permet de ne pas démarrer automatiquement le serveur DHCP, mais uniquement lorsque l'on active manuellement l'interface eth0.
Ligne 91 : Ligne 82 :
 
==Activer le routage==
 
==Activer le routage==
  
Pour permettre à la carte d'accéder à internet, ne serait-ce que pour les installations et mise à jour des logiciels, il faut configurer le PC pour qu'il se comporte comme un routeur.
+
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===
 
===Forwarding===
Ligne 97 : Ligne 88 :
 
Modifier '''/etc/sysctl.conf'''
 
Modifier '''/etc/sysctl.conf'''
  
<code>
+
<code> net.ipv4.conf.default.forwarding=1</code>
net.ipv4.conf.default.forwarding=1
 
</code>
 
  
 
Pour une prise en compte immédiate :
 
Pour une prise en compte immédiate :
<code>
+
<code>$ sudo sysctl -p (activer la prise en compte pas le kernel)
$ sudo sysctl -p (activer la prise en compte pas le kernel)
+
(ou bien $ sudo echo 1 > /proc/sys/net/ipv4/ip_forward )</code>
(ou bien $ sudo echo 1 > /proc/sys/net/ipv4/ip_forward )
 
</code>
 
  
 
===Masquer les paquets sortants===
 
===Masquer les paquets sortants===
Ligne 111 : Ligne 98 :
 
Ajouter cette ligne avant "exit 0" dans '''/etc/rc.local'''
 
Ajouter cette ligne avant "exit 0" dans '''/etc/rc.local'''
  
<code>
+
<code>   iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE</code>
    iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
 
</code>
 
  
 
=Usage=
 
=Usage=
Ligne 119 : Ligne 104 :
 
Après la connexion de la carte :
 
Après la connexion de la carte :
  
<code>
+
<code>$ sudo ifup eth0 -> démarre le service dhcp</code>
$ sudo ifup eth0 -> démarre le service dhcp
 
</code>
 
  
 
Avant la déconnexion :
 
Avant la déconnexion :
  
<code>
+
<code>$ sudo ifdown eth0 -> arrête le service dhcp</code>
$ sudo ifdown eth0 -> arrête le service dhcp
 
</code>
 
  
 
==Visualiser l'adresse affectée==
 
==Visualiser l'adresse affectée==
<code>
+
Pour confirmer l'affectation de l'adresse :
$ tail -12 /var/lib/dhcp/dhcpd.leases
+
<code>$ tail -12 /var/lib/dhcp/dhcpd.leases
lease 10.44.1.150 {
+
lease 10.44.1.100 {
 
   starts 1 2016/01/11 12:57:27;
 
   starts 1 2016/01/11 12:57:27;
 
   ends 1 2016/01/11 13:07:27;
 
   ends 1 2016/01/11 13:07:27;
   cltt 1 2016/01/11 12:57:27;
+
   .../...</code>
  binding state active;
 
  next binding state free;
 
  rewind binding state free;
 
  hardware ethernet b8:27:eb:32:8c:7d;
 
  uid "\001\270'\3532\214}";
 
  set vendor-class-identifier = "dhcpcd-6.7.1:Linux-4.1.13+:armv6l:BCM2708";
 
  client-hostname "raspberrypi";
 
}
 
</code>
 
  
 
=Optionnel : NetworkManager ne gère plus eth0=
 
=Optionnel : NetworkManager ne gère plus eth0=

Version actuelle en date du 27 juin 2017 à 18:55


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