samedi 26 avril 2014

Socat quel outil formidable.. avec un tunnel ssh

Socat est vraiment un outil formidable qui permet, dans un registre augmenté à ncat, de faire des "bidouilles" en communication réseau bien sympas.

Personnellement je l'utilise pour monter un réseau virtuel sur SSH (un VPN en somme).

Imaginons deux PC sur l'Internet:
  •  PC1 d'adresse IPv4 86.22.32.30
  • PC2 d'adresse IPv4 88.32.24.52
Sur le PC2 fonctionne un serveur SSH sur le port 8269 (le port normalisé étant 22, le port utilisé ici est donc une configuration "personnelle").

La 1ère étape est donc d'établir le pont SSH, donc depuis le PC1 nous faisons:
ssh -p 8269 userX@88.32.24.52 -L 5702:localhost:5702

userX est le login d'un compte utilisateur connu sur le PC2. C'est utilisateur est autorisé à ce connecté via SSH au PC2.

Afin de créer notre réseau virtuel (via socat), nous avons besoin de permettre une inter-connexion entre deux instances de socat; l'une fonctionnant sur le PC2 comme serveur, l'autre sur le PC1 comme client, qui établira la connexion.

Pour cela, il nous faut utiliser la redirection de port (port forwarding) offerte par SSH afin que le port d'écoute du serveur socat sur le PC2 soit redirigé sur le PC1. Ceci est l'objet des paramètres " -L 5702:localhost:5702", ainsi le port 5702 local au PC2 est redirigé sur le port équivalent du PC1 (donc 5702).

Nous démarrons, sur le PC2 le serveur socat qui va accepter la connexion du client PC1 et qui va créer un tunnel (sous réseau).
sudo socat TCP4-LISTEN:5702 TUN:193.168.0.1/24,up &

Les paramètres TUN:193.168.0.1/24,up vont permettre de créer une interface réseau d'adresse IPv4 193.168.0.1 et de masque 24 (255.255.255.0).

Côté PC1 (le client socat), nous démarrons la commande suivante:
 sudo socat TCP:127.0.0.1:5702 TUN:193.168.0.2/24,up &

Nous remarquons que la connexion se fait au PC local (127.0.0.1 = PC1) sur le port 5702 qui est le port "forwardé" du serveur PC2 au client PC1.
De même que pour le serveur, il y a création d'une interface réseau IPv4, mais cette fois-ci d'adresse 193.168.0.2/24.

Si tout s'est bien passé, vous pouvez désormais faire un ping entre les deux machines sur le même réseau virtuel 193.168.0.0/24

Sur les deux PC, le ping 193.168.0.1 et le ping 193.168.0.2 doivent fonctionner.

mercredi 23 avril 2014

Docker, LCX, Cgroups, Github, ACID, base de données, CSP, concurrence et intégration continue...

Et voilà, je me balade sur le net en partant d'un sujet et je me retrouve sur un autre sujet qui m'intéresse tout autant... :-(

Je suis toujours indiscipliné et perdu à vouloir tout connaître, tout comprendre et tout savoir.

Ce soir, en partant de recherche à propos de Docker, je passe par une présentation sympa de celui-ci mais sans vraiment l'exploiter car je saute de suite vers des termes que je ne maîtrise pas : les LCX et les Cgroups.

Bref... Je n'ai encore pas  ce soir regardé Docker. :-(

D'autant que sur la page de docker, je vois qu'ils demandent à être "forkés" sur github. Donc je m'intéresse à GitHub qui est un espèce de sourceforge utilisant Git et basé sur le fork. Et de fil en aiguille je tombe sur l'article intéressant du blog de Frédéric de Villamil.

Depuis son blog je m'intéresse alors au langage Go et à son aspect concurrentiel.
Et mon voyage se poursuit alors vers les paradigmes ACID des bases de données et de la gestion des transactions et de contrôle de la concurrence via STM  puis des  l'algèbre des processus en CSP.

cré-diou...
Il faut que je creuse tout cela... mais quand.

Ah, j'oubliais... dans mon dédale je suis passé aussi sur les systèmes d'intégration continue à la Jenkins, TinderBox et buildbot.
Gil

samedi 12 avril 2014

Aujourd'hui, un peu de jardin.

Alors, après avoir repeint une partie de la balancelle et tondu, voici qq photos des activités jardin.

Alors, au 1er plan, la zone bêchée où était placée la p'tite maison des enfants.

Nos jolies fleurs  au pied du cerisier.


Un "truc" que j'ai planté

Et un autre "truc" que j'ai déplacé car il crevait derrière un "truc" plus envahissant.

mardi 8 avril 2014

Des outils....