Archives 2023

Configuration Mai 2023

Tuesday, 02 May 2023
|
Écrit par
Grégory Soutadé
Boîtier PC Cooler Master N300 NSE-300-KKN1				    67.99 €
BE QUIET! ATX 550W - PURE POWER 12 M 80+ GOLD   			    97.99 €
RYZEN 5 5600 - 3.5GHZ/35MO/AM4/BOX					   169.19 €
VENTILATEUR CPU BE QUIET! PURE ROCK 2 NOIR			    	    42.99 €
ASUS PRIME B550 PLUS							   143.95 €
CORSAIR 16GO (2x8) DDR4 3200MHZ PC25600				    	    59.99 €
SAPPHIRE PULSE AMD RADEON RX 6500 XT GAMING OC 4GB GDDR6		   209.99 €
Crucial SSD MX500 500Go							    69.99 €
Seagate 2To 7200tr SATA III 256Mo					    61.99 €
LOGITECH Mouse M100							    12.90 €
CLAVIER PC DELL DELL KEYBOARD FRENCH AZERTY DELL KB			    34.55 €
ENCEINTE PC LOGITECH Z150 - NOIR					    33.90 €

Total :									  1005.42 €


En sus :

ECRAN PC PHILIPS MOMENTUM 27" 27M1C5500VL/00                               239.99 €

Mont Vinaigre

Sunday, 23 April 2023
|
Écrit par
Grégory Soutadé

Vue en direction du Var

Profitons d'un dimanche ensoleillé pour aller faire un tour au Mont Vinaigre ! La température est idéale en ce mois d'avril et le soleil au beau fixe après les quelques pluies bienfaitrices (bien que trop rares) de la veille. Il s'agit d'une randonnée abordable : 10,4km pour 300m de dénivelé positif. Mis à part lorsqu'on s'approche du sommet où le chemin devient assez technique, le reste du parcours est composé de pistes assez larges et peu caillouteuses, propices aux balades en VTT.

Départ du parking Piste large

Comme pour le lac de l'Allevan, le point de départ se situe à ~1km du centre du village des Adrets-De-L'Estérel (côté opposé à l'autoroute). On pourra se garer sur le petit parking, avant de traverser la route pour emprunter le chemin des cols/Mont Vinaigre. Le départ est très roulant. Le balisage à suivre est vert. Si on veut suivre les instructions de viso rando, il faudra bifurquer sur la gauche à l'intersection "chemin privé" au bout de ~1,3km. Néanmoins, je conseille de faire le parcours à l'envers (en continuant sur la piste principale) en suivant le marquage vert/jaune, ce sera plus facile pour se diriger (notamment au niveau de "la Duchesse").

Saint Raphaël au loin

Au fur et à mesure de l'ascension, le panorama se découvre. On peut apercevoir Saint-Raphaël.

Bifurcation Chemin étroit

Il faut ensuite prendre sur la gauche (on fait demi-tour). À partir de ce moment, le chemin se rétrécit, se charge de cailloux et le dénivelé augmente.

Antenne relais

Avant de rejoindre le mont Vinaigre, on passera au pied de l'antenne relais. Il faut continuer son chemin jusqu'à la plateforme, puis la traverser pour compléter la boucle. Le passage est étroit et assez technique.

Mercantour et mer

Au loin, le massif du Mercantour, enneigé. On redescendra vers la maison forestière de "la Duchesse".

Piste large

Un peu plus loin après la maison forestière, il y a un sentier plus étroit sur la gauche qui remonte. Il faut l'emprunter et non pas continuer sur la grande piste qui descend (il n'y a pas de marquage), afin de contourner le massif. La voie redevient large et boisée pour finalement retrouver l'intersection "chemin privé".

Quelques plantes que l'on peut observer sur le parcours :

L'IPv6 est arrivée !

Monday, 17 April 2023
|
Écrit par
Grégory Soutadé

Il y a quelques jours, j'ai eu une coupure d'Internet d'environ 5h... De quoi râler auprès de son opérateur ! Perturbation générale de tous les clients. Il vaut mieux que soit ainsi plutôt qu'un incident isolé, potentiellement long à résoudre. Une fois Internet reconnecté, quel plaisir de voir dans l'interface de la box une adresse IPv6 ! Après quelques soucis de configuration réseau, tous les services sont désormais joignables via cet adressage !

Qu'est-ce qu'IPv6 ?

C'est une bonne question, car en général on veut simplement que notre connexion internet fonctionne sans avoir à tripatouiller les tréfonds de la configuration réseau. IPv6 est le "successeur" d'IPv4. Il a été spécifié en 1998 et normalisé en 2017. L'objectif est de dépasser les limitations actuelles des fameuses adresses "IP" (Internet Protocol). Cette adresse est attribuée de façon statique (toujours la même) ou dynamique aux appareils qui se connectent à un réseau ethernet (dont Internet). Elle permet le routage du trafic réseau. Au quotidien, nous ne manipulons pas directement ces adresses, mais plutôt des identifiants textuels (l'adresse d'un site web) pour naviguer. Ces identifiants sont traduits automatiquement en adresses IP par les serveurs DNS (Domain Name Server). La gestion mondiale des adresses est confiée à la société américaine (à but non lucratif) IANA qui dépend de l'ICANN (américaine également). Elle est chargée d'attribuer des blocs d'adresses IP à différents registres régionaux (1 par continent), qui attribuent eux même des sous-ensembles aux registres locaux (la plupart du temps des opérateurs télécom), attribuant individuellement (à leurs clients) une ou plusieurs adresses.

Les adresses IPv4 sont constituées de 4 octets (32 bits), chaque octet ayant une valeur comprise entre 0 et 255 (exemple : 205.196.32.55). Le nombre d'adresses total est donc de ~4 milliards. Cela peut paraître énorme, mais aujourd'hui où tout le monde a un ou plusieurs appareils connectés en même temps, on arrive vite à saturation. Surtout qu'il faut également compter les adresses nécessaires pour les serveurs (web) et les objets connectés. Les adresses IPv6 sont elles composées de 8 octets (128 bits), amenant ainsi le nombre total à plus de 340 sextillions (ou 34 * 10^37). Elles ont une notation différente, utilisant l'hexadécimal en séparant les blocs de deux octets par ":" (exemple : 2003:e8:2705:ac00:15a5:4e85:fe11:47a3). Pour améliorer la lisibilité, on utilise une forme compressée où les 0 en tête sont supprimés (au niveau du second bloc e8 par exemple). On peut également fusionner tous les blocs avec des 0 consécutifs, comme sur cet exemple : 2a02:4780:12::28 qui correspond en réalité à 2a02:4780:0012:000:0000:0000:0000:0028. Malgré cette version condensée, elles restent pourtant beaucoup moins lisibles.

Alors pourquoi ne pas avoir basculé plus tôt ? Le matériel est compatible depuis de nombreuses années, néanmoins IPv6 n'est pas qu'une simple augmentation de la taille des adresses. La norme apporte également des fonctionnalités complexes à implémenter (cf la coupure réseau !). D'autant plus qu'il faut faire cohabiter les deux piles réseau sur un même système durant la phase de transition. Mais, face à la pénurie mondiale d'IPv4 et la pression des institutions, les opérateurs n'ont d'autres choix que de migrer (progressivement). D'après mes premières statistiques (1/2 mois), il y a environ 20% de connexions utilisant IPv6.

IPv6 sur une box Bouygues Telecom (sagem F@st5330b)

Par défaut, le trafic IPv6 entrant est bloqué par le routeur et ce, même si le pare-feu est désactivé. C'est une bonne mesure de protection, mais qui pourra poser problème quand on souhaite exposer des services sur le web. Voici la procédure complète pour ouvrir les ports pour un serveur GNU/Linux (on pourra également passer en politique "faible" pour tout exposer sur toutes les machines, mais cela reste dangereux) :

  1. Désactiver la délégation de préfixe sur la box
  2. Activer le DHCPv6 sur son interface réseau (ici eth0), il faut ajouter une ligne au fichier /etc/network/interfaces :

    iface eth0 inet6 dhcp

  3. Redémarrer le serveur ou uniquement la partie réseau

    sudo service networking restart

  4. Attribuer une IP statique au serveur (n'est actuellement pas pris en compte)

  5. Récupérer la nouvelle adresse

    sudo dhclient -6 eth0

  6. Vérifier que l'IPv6 du serveur correspond à celle de la configuration de la box

    sudo ip a

  7. Ajouter des règles de pare-feu pour tous les services à exposer (utiliser la fonctionnalité "dupliquer" pour aller plus vite)

  8. Configurer le serveur DNS en ajoutant une règle AAAA
  9. (Optionnel) Tester les règles via ce site

Mise à jour automatique du DNS Gandi

C'est un script que j'utilise depuis 5 ans. Le voici mis à jour pour supporter IPv6. Il est disponible ici

#!/usr/bin/env python3
#-*- encoding: utf-8 -*-
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

import requests
import json
import re
import socket

# Config
domain="soutade.fr"
API_KEY = "YOUR-KEY"
livedns_api = "https://dns.api.gandi.net/api/v5/"
dyndns_url = 'http://checkip.dyndns.com/'
headers = {
    'X-Api-Key': API_KEY,
}

A_RECORD_NAME="@" # Record of A type

def get_ipv6():
    s = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
    # DNS Google
    s.connect(('2001:4860:4860::8888', 1))
    return s.getsockname()[0]

def get_ipv4():
    response = requests.get(dyndns_url)
    if response.ok:
        pattern = re.compile('[^:]*(\d+\.\d+\.\d+\.\d+)')
        result = pattern.search(response.text, 0)
        if result == None:
            print("No IP found")
            exit(1) 
        else:
            return result.group(0).strip()
    # Bad gateway
    elif response.status_code in (502,504):
        exit(0)
    else:
        print("Connexion error")
        response.raise_for_status()
        exit(1)

def update_gandi_record(domain_records_href, target, current_ip):
    # Get recorded IP
    response = requests.get(f'{domain_records_href}/{A_RECORD_NAME}/{target}', headers=headers)

    if (response.ok):
        record = response.json()
    else:
        print("Failed to look for recorded IP")
        if response.status_code != 502: # Bad gateway
            response.raise_for_status()
        exit(1)

    print('Old IP : %s' % (record['rrset_values'][0]))

    if current_ip != record['rrset_values'][0]:
        record['rrset_values'][0] = current_ip

        # PUT new IP
        response = requests.put(f'{domain_records_href}/{A_RECORD_NAME}/{target}',
                                headers=headers, json=record)

        if (response.ok):
            print("IP updated")
        else:
            print("something went wrong")
            if response.status_code != 502: # Bad gateway
                response.raise_for_status()
            exit(1)

        return 34 # IP updated return !!
    return 0


# Get current IP
current_ip = get_ipv4()
print(f'Your Current IP is {current_ip}')

# Retrieve domains address
response = requests.get(livedns_api + "domains", headers=headers)
if (response.ok):
    domains = response.json()
else:
    if response.status_code != 502: # Bad gateway
        response.raise_for_status()
    exit(1)

domain_index = next((index for (index, d) in enumerate(domains) if d["fqdn"] == domain), None)

if domain_index == None:
    # domain not found
    print("The requested domain {domain} was not found in this gandi account")
    exit(1)

domain_records_href = domains[domain_index]["domain_records_href"]
ret = update_gandi_record(domain_records_href, 'A', current_ip)

current_ip = get_ipv6()
print(f'Your Current IP is {current_ip}')
domain_records_href = domains[domain_index]["domain_records_href"]
ret |= update_gandi_record(domain_records_href, 'AAAA', current_ip)

exit(ret)

Athlé Expliqué

Thursday, 06 April 2023
|
Écrit par
Grégory Soutadé

Il y a quelques jours, Nicolas Dayez m'a contacté pour écrire un article invité sur son site Athlé Expliqué. Il est, comme qui dirait, un mordu de course à pied depuis maintenant 10 ans. La performance appelle la performance et elle est devenue son objectif principal. Ainsi, on ne peut être qu'admiratif devant ses records personnels (toutes épreuves confondues), surtout quand on sait tout le travail qu'il faut abattre pour en arriver là :

  • 3'27 (34'30) sur 10km
  • 3'39 (1h14) sur semi-marathon
  • 3'48 (2h40) sur marathon

Il est clair que Nicolas est drogué à la course ! Avec des temps pareil, il est facile de prendre la grosse tête, d'être imbu de sa personne, pourtant il n'en est rien. Au contraire, Nicolas a mis en place son site/blog pour partager sa camepassion, quel que soit son niveau. Il décortique sous forme de fiche tous les aspects qui touchent de près ou de loin à son sport favori. Son expérience lui permet également de proposer des services de coaching (payant) pour booster ses performances (le coaching n'est qu'une activité secondaire).

Après avoir parcouru son blog, je me suis rendu compte que nous avions la même philosophie (mais pas les mêmes jambes !) de partage. J'ai donc tout naturellement accepté de rédiger un article sur le thème des courses solidaires, qui est désormais en ligne.

Courses de printemps 2023

Sunday, 02 April 2023
|
Écrit par
Grégory Soutadé

Toutes les bonnes choses ont une fin. Malheureusement, ce fut le cas pour La foulée des Baous, une course que j’appréciais particulièrement pour sa cause, sa bonne ambiance, la mobilisation de tout une village et son accessibilité au plus grand nombre. Il faut dire que mener un combat sur un temps long est difficile, d'autant plus quand le COVID passe par là. L'association Longo Trail qui avait repris le flambeau l'année dernière l'a transformée en Trail des Baous. Une épreuve plus difficile avec pas moins de 650m de dénivelé positif sur le parcours de 13km et 2400m sur celui de 42km... Ça fait partie de l'ADN du club, mais ne rentre pas dans mon cadre.

RoureTrail (du camp Romain)

Affiche trail du Rouret

Le dimanche 26 mars 2023 s'est déroulé la première édition du RoureTrail. Les trois formats (9km et 16km + rando 9km) proposent de monter jusqu'au camp Romain situé au dessus du village du Rouret. Les bénéfices serviront à financer du matériel et des sorties scolaires, ce qui n'est pas étonnant quand on sait que la course est organisée par les parents d'élèves du Rouret. J'y suis allé pour découvrir le chemin jusqu'au camp et ce fut clairement une très belle surprise sur tous les points : le circuit offre une multitude de surfaces (goudron, pierres, sentiers), particulièrement sur le 9km qui est moins "caillouteux" et plus boisé. Les bénévoles sont présents tout au long du parcours, qui est de surcroît extrêmement bien balisé. La descente finale, légèrement technique, fut un vrai plaisir et, cerise sur le gâteau, la brasserie locale CraftAzur a offert une bière (Riviera Pale Ale) à tous les participants ! Même en tant que non amateur de bière, je l'ai trouvé très bonne, rafraîchissante, avec un bon goût de céréales et quasiment pas d'amertume. Une belle réussite donc pour cette première qui a attirée 307 coureurs + 200 enfants + les randonneurs + les joëlettes. Vivement l'année prochaine !

Ascension du col de Vence

Affiche ascension du col de Vence

Ce ne sera plus une surprise pour l'édition 2023, prévue le dimanche 7 mai : les 10km du col de Vence (12km au total) n'offrent aucun répit ! 6% de pente moyenne, soit 620m de dénivelé positif au total. Il faudra donc être en forme et fort dans la tête pour viser l'arrivée. Mais c'est pour la bonne cause puisque les bénéfices seront reversés à l'association France AVC 06.

Retour : Félicitation aux 255 partants (à peine plus que l'année dernière). D'autant plus que les conditions étaient bonnes : couvert, un peu frais, mais pas de pluie ! Pour ma part, j'ai dû déclarer forfait à cause d'une blessure...