Raspberry/Access Point

De WikiOpenTruc
Aller à : navigation, rechercher

Main

En 2017, le RPI3 et le RPIZeroW sont équipés d'une carte réseau wifi.

Basiquement, cette connectique est d'un emploi usuel, ie connection du RPI vers un équipement genre routeur etc. Le RPI n'étant qu'un terminal connecté au sens usuel (enfin bref, un client quoi).

Néanmoins, l'équipement étant là, on peut l'utiliser autrement que juste en mode terminal "passif". Le wifi peut en effet être utilisé pour faire du RPI un émetteur actif. (enfin bref, une espèce de sorte de genre de serveur quoi). Sauf erreur, c'est ce que fait un logiciel comme hostapd.
càd que le RPI va émettre une SSID etc (ce que font eg les routeurs wifi).


NB1 : Dans un 1° temps, je veux juste bricoler un AP tout simple, ie limité au raspberry lui-même, sans accès internet.

NB2 : Pour réaliser un AP capable de donner aussi un accès internet, le RPI doit être doté de 2 connexions wifi. Un wifi prend en charge les clients en aval. Un autre wifi s'occupe de la connexion en amont vers internet.

NB3 : Pour la même raison que NB2, un RPI avec une seule connexion wifi et fonctionnant en mode AP, ne peut pas être piloté en remote via cette même connexion. C'est pour cela que beaucoup de tutos emploient un cable ethernet. (Mais, sauf erreur, on peut évidemment aussi bidouiller le RPI avec clavier/écran). On doit aussi se rappeler que le dernier RPI sorti en 2017, PiZeroW, n'est pas équipé d'un connecteur RJ45. A moins d'acheter un adaptateur USB/RJ45, il faut donc bien faire sans.

NB4 : si on bosse sur le RPI en remote via le wifi, sitôt qu'on tripotera les fichiers de configuration wifi pour le reconfigurer en acces point on perdra la connection directe

Avant tout tripatouillage de fichier, penser impérativement à faire au moins une copie de sauvegarde.


Fichiers existants à tripoter

  • /etc/dhcpcd.conf à qui il faut ajouter 2 petites lignes :
interface wlan0  
 static ip_address=192.168.3.1/24
  • /etc/network/interfaces ,


Dnsmasq

Pas dans Raspbian de base. C'est un tout petit logiciel (70ko itself installé).

Dnsmasq fait 2 boulots :

  • serveur DNS, ie conversion nom de domaine -> bonnes adresses IP
  • serveur DHCP, ie attribution d'IPs aux clients

a priori, seule la partie serveur DHCP est pertinente pour réaliser un serveur minimal.

Si je comprends bien, un logiciel comme dnsmasq est nécessaire pour attribuer des adresses IP aux machines qui se connectent. Ceci ne serait sans doute pas nécessaire si une seule machine se connecte. Par contre s'il y a plus d'une machine connectée, il faut forcément pouvoir les différencier pour dialoguer avec sans s'embrouiller.

Un serveur au restaurant qui doit gérer 15 tables sur le coup de midi, qui doit prendre autant de commandes, les dispatcher en amont en cuisine, au bar, rassembler boissons et plats, etc, s'il ne note pas les n° de table associés aux commandes ... il ne va pas s'en sortir.

Par ailleurs, même avec un client unique, il vaut mieux arroser uniquement ce client, en indiquant bien avec les paquets envoyés à qui sont destinés ces paquets. Plutôt que de balancer des paquets, sans identifiants, ce qui ferait que chaque machine potentiellement cliente dans le coin pourrait se demander "pour qui sont ces paquets ?, pour moi, ou pas ?". (ça reviendrait un peu à hurler au mégaphone, au lieu d'avoir un dialogue ciblé).

Chaque matériel informatique connectable possède un petit nom bien à lui, un identifiant unique, appelé "adresse MAC". (https://fr.wikipedia.org/wiki/Adresse_MAC) (Une adresse MAC = 12 chiffres hexa = 16^12 possibilités. 16^12 > 10^12 = 1000 milliards. ça laisse de la marge)

C'est dnsmasq (si ce n'est lui, c'est un de ses frères) qui se charge de convertir ce très grand nombre en quelque chose d'un poil plus digeste, une adresse IP. Et d'associer les deux. (Une adresse IP = 12 chiffres hexa = 256^4 possibilités. 256^4 = 16^8 = > 10^8 = 100 millions.)

Vu que dnsmasq est petit, et que la configuration semble minimale, peut-être que je pourrais commencer juste par là ?


Hostapd

S'occupe, entre autres, de la sécurité, ie du cryptage des transmissions.

Coté client

Dans un 1° temps, pour seulement de l'upload/download de fichiers, on se base sur un logiciel FTP. Filezilla (gratuit, libre) n'est pas disponible sur téléphones portables.

En 2017, sur iPhone/iPad, le logiciel qui est proposé à la place est FTPManager.


Misc

  • les correspondances IP/DNS (nom de domaine) sont stockées dans /etc/hosts
    • une même adresse IP peut visiblement avoir plusieurs noms
    • le petit nom du Rasperrypi3B est raspberrypi
  • Visiblement, un même matériel n'a pas la même adresse IP selon l'endroit d'où il est vu. En local, typiquement n'importe quel ordi a une IP du genre 127.0.0.1 (qui signifie que, dans son propre espace, il est le n°1), mais ce même ordi, vu depuis internet ou un autre ordi connecté, a une autre IP.
  • le connecteur wifi est à coté du slot DSI
  • on peut utiliser un autre dongle wifi que celui intégré, eg si on veut émettre plus loin.
  • certains mentionnent la solution owncloud