Matlab & tunnel ssh

ou comment accéder au serveur de licence depuis l'extérieur du campus? ... voire de l'intérieur du campus ... mais de l'extérieur du labo (!) ... grâce à la mise en place d'eduroam ;-)

Les manip. détaillées (copies écrans etc. ) pour les usagers du labo se trouve ici

et/ou (mutualisation logicielle au niveau de l'ulco en 2017 , compte calculco obligatoire)

fig. 1 accès au manager de licence de l'extérieur du campus

Sur le serveur de licence

L'administrateur système doit simplement fixer les ports du manager de licence ( lmgrd ) et du vendeur ( mlm ) . C'est plus ou moins documenté dans le Matlab installation Guide for UNIX , il suffit d'ajouter les 2 ports au fichier licence:


SERVER licence.domain.fr 0123456789ab 27000 
DAEMON MLM "/usr/local/matlab/etc/lm_matlab" port=39555

# MathWorks license passcode file.
# LicenseNo: 123456   HostID: 0123456789ab
#
# R2011b
#
INCREMENT MATLAB MLM 26 01-jan-0000 5 AEDXXXXXXXXX \
        VENDOR_STRING=vi=0:at=200:ae=1:lu=200:lo=CN:ei=987654: \
        DUP_GROUP=UH asset_info=123456 ISSUED=02-Feb-2012 \
        NOTICE=product=MATLAB SN=123456
INCREMENT Optimization_Toolbox MLM 26 01-jan-0000 5 \
        ...
        ... autres toolbox
# END-----------------END-----------------END

Ici les deux ports choisis 27000 et 39555 sont les ports par défaut de l'installation de Flexlm (serveur de jetons inclu avec la distribution de Matlab) et de Matlab; s'il y a un conflit avec un autre serveur et ou avec un autre logiciel à jetons, rien de vous empêche de choisir d'autres ports : 27001 à 27009 et 39555 à 39565 (selon certaines docs) ou bien dwtfyw!

Sur le client: installation et connexion

L'idée est d'annoncer lors de l'installation de Matlab sur le client (Linux Mac Windows) que l'on va utiliser une licence « réseau » et que le serveur de licence bidon (fake license manager de la fig.1) est le localhost (≈ 127.0.0.1) . Ensuite il suffira d'établir le tunnel ssh entre le localhost et le bien réel serveur de licence.

fichier de licence du client

Voici le contenu du fichier de licence client (fichier texte):


SERVER localhost 003048233769 27000
USE_SERVER

Rq: 003048233769 est l'adresse physique ( mac address ) du serveur, sans influence ici sur le client .

établissement de la connexion via le tunnel ssh

pingouins et félins

taper dans un terminal de votre PC (avant de lancer matlab) :

ssh -N -L 27000:localhost:39555 votre_login@licence.domaine.fr

Bien entendu , on peut insérer la commande dans un petit script .

Remarque: dans le cas le plus général où le serveur de licence n'est pas confondu avec le serveur de login (mais se trouverait masqué derrière) , il faut enchaîner les connexions et la nouvelle commande devrait être ssh -N -L 27000:localhost:27000 -L 39555:licence.domaine.fr:39555 -l votre_login server-ssh.domaine.fr

Windows

A priori Windows n'intègre toujours pas de client ssh par défaut ( win 8 ?). Avec putty (MIT licence, Open source), établir le tunnel ssh de la manière suivante :

fig. même contenu, sans style puis trois feuilles de style différentes