Table des matières

Gestion des adresses IPv4 publiques sur le routeur de quartier

Voir aussi Installation et configuration d'un routeur de quartier, Tutoriel : résilier un abonnement wifi, Tutoriel : Raccorder un·e adhérent·e au service wifi

Prérequis

Un peu de théorie

Le but du jeu est de gérer les associations IPv4 ↔ Adresse matérielle du routeur abonné. Cette gestion se fait sur le routeur de quartier, que l'on administre à distance en ligne de commande. L'unique fichier qui nous intéresse ici est donc situé sur le routeur de quartier et se nomme /etc/ethers.

C'est un fichier texte qui ressemble à ça :

NB : les lignes commençant par un # sont des commentaires, elles ne servent pas au programme mais aux humains pour mieux comprendre le fichier, et ici pour garder l'historique des attributions)

###########################
#                         #
#  Bloc 203.0.113.32/28  #
#                         #
###########################

#  13 adresses utilisables
# + 1 broadcast
# + 1 adresse routeur
# + 1 adresse réseau
#-------------------------
# =16 adresses dans le bloc / 13 adresses disponibles pour abonnés

### 203.0.113.32 ###
# non attribuable (adresse du réseau)

### 203.0.113.33 ###
# non attribuable (attribuée au routeur)

### 203.0.113.34 ###
# ajout le 01/01/1970
00:53:F2:84:7B:90 203.0.113.34

### 203.0.113.35 ###
00:53:97:D3:BD:14 203.0.113.35

### 203.0.113.36 ###
# supprime le 02/02/1970
#00:53:EC:02:45:80 203.0.113.36
# ajoute le 03/03/1970
00:53:7A:97:80:CE 203.0.113.36

### 203.0.113.37 ###
# ajoute le 04/04/1970
00:53:2B:F2:EA:D0 203.0.113.37

### 203.0.113.38 ###
# ajoute le 02/02/1970
00:53:B9:FC:E0:45 203.0.113.38

### 203.0.113.39 ###
# ajoute le 02/02/1970
00:53:90:D1:AD:C1 203.0.113.39

### 203.0.113.40 ###
# ajoute le 05/05/1971
00:53:D7:37:3C:A0 203.0.113.40

### 203.0.113.41 ###
# supprimé le 06/06/1970
# 00:53:9E:94:CA:42 203.0.113.41
# ajouté le 14/11/1970
00:53:EC:02:45:80 203.0.113.41

### 203.0.113.42 ###
# ajouté le 02/07/1970
00:53:CA:5B:D2:E2 203.0.113.42

### 203.0.113.43 ###
# ajouté le 07/06/1970
00:53:15:89:CE:08 203.0.113.43

### 203.0.113.44 ###
# ajouté le 22/12/1970
00:53:17:C8:93:B4 203.0.113.44

### 203.0.113.45 ###
# ajouté le 04/04/1970
# fin le 05/11/1970
#00:53:DE:40:3B:CE 203.0.113.45

### 203.0.113.46 ###
# supprimé le 1/10/1970
#00:53:20:A8:09:07 203.0.113.46
# ajouté le 1/4/1970
00:53:C7:AD:B5:15 203.0.113.46

### 203.0.113.47 ###
# non utilisable (broadcast)

Comment se connecter au routeur (commun aux procédures Ajout / Retrait) ?

Par exemple, si le nom du routeur de quartier est *bidule.faimaison.net* et que votre identifiant de connexion au routeur est *toto*.

Depuis un terminal (ou sous Windows, en utilisant putty), se connecter au routeur :

ssh toto@bidule.faimaison.net

Selon votre configuration, un mot de passe ou la phrase de passe de votre clef SSH vous est demandée.

Vous avez alors accès à la ligne de commande du routeur, qui attend vos commandes :

toto@bidule $

(ndlr: si vous saisissez exit, vous mettez fin à la connexion).

Comment attribuer une adresse à une nouvelle abonnée ?

(il faut au préalable vous connecter au routeur, cf ci-avant)

1. Éditer le fichier /etc/ethers

sudo nano /etc/ethers

Il faut ensuite trouver une adresse disponible. C'est à dire une adresse

Si on reprend le fichier d'exemple ci-dessus, on aurait une seule adresse disponible : 203.0.113.45. C'est donc celle-ci que l'on attribuerait.

Si plusieurs adresses sont disponibles, on préfèrera une adresse qui n'a jamais été utilisée, ou bien utilisée ayant été utilisée il y a longtemps2).

2. Renseigner l'adresse MAC WAN du routeur abonné dans le fichier

Si on relève l'adresse MAC 00:53:F2:76:87:01 sur le routeur abonné, et que nous sommes le 12/12/2018, on toucherait à la section suivante :

...
### 203.0.113.45 ###
# ajouté le 04/04/1970
# fin le 05/11/1970
#00:53:DE:40:3B:CE 203.0.113.45
...

On la transformerait ainsi, afin d'attribuer l'adresse tout en conservant l'historique :

...
### 203.0.113.45 ###
# ajouté le 04/04/1970
# fin le 05/11/1970
#00:53:DE:40:3B:CE 203.0.113.45
# ajouté le 12/12/2018
00:53:F2:76:87:01 203.0.113.45
...

3. Relancer le serveur DHCP (nommé dnsmasq)

sudo systemctl restart dnsmasq

Comment « rendre » une adresse lors d'une résiliation ?

(il faut au préalable vous connecter au routeur, cf ci-avant)

1. Marquer l'adresse comme rendue

Il faut éditer notre fichier :

sudo nano /etc/ethers

Imaginons qu'un adhérent avait souscrit par le passé un abonnement et s'était vu attribuer l'adresse 203.0.113.46 le 1/10/1970. Aujourd'hui, 12/12/2018, il quitte le réseau, on doit marquer son adresse comme rendue.

On avait donc le bloc

### 203.0.113.46 ###
# supprimé le 1/10/1970
#00:53:20:A8:09:07 203.0.113.46
# ajouté le 1/4/1970
00:53:C7:AD:B5:15 203.0.113.46

On transformerait ce bloc afin de:

Soit :

### 203.0.113.46 ###
# supprimé le 1/10/1970
#00:53:20:A8:09:07 203.0.113.46
# ajouté le 1/4/1970
# fin le 12/12/2018
# 00:53:C7:AD:B5:15 203.0.113.46

3. Relancer le serveur DHCP (nommé dnsmasq)

sudo systemctl restart dnsmasq

Faire le ménage dans l'historique d'attribution

(il faut au préalable vous connecter au routeur, cf ci-avant)

La loi nous impose de garder un historique d'attributions d'adresses IP pendant un an. Ni plus, ni moins. Il convient donc de faire fréquemment le ménage dans l'historique que l'on conserve dans le fichiers /etc/ethers.

1. Ouvrir le fichier /etc/ethers

sudo nano /etc/ethers

2. Parcourir l'historique

Par exemple, si on a un le bloc suivant pour l'adresse 203.0.113.46

### 203.0.113.46 ###
# supprimé le 1/10/1970
#00:53:20:A8:09:07 203.0.113.46
# ajouté le 1/4/1970
# fin le 12/12/2018
# 00:53:C7:AD:B5:15 203.0.113.46

Il deviendra, après nettoyage :

### 203.0.113.46 ###
# ajouté le 1/4/1970
# fin le 12/12/2018
# 00:53:C7:AD:B5:15 203.0.113.46

(inutile de relancer le serveur dnsmasq)

1)
à ce jour : bambelle.faimaison.net pour St-Félix, ou carlota.faimaison.net pour le quartier bottière
2)
En effet, il est sage d'éviter de ré-utiliser une adresse récemment utilisée (ex: si cette adresse avait « mauvaise réputation », ou simplement pour éviter toute confusion