Aller au contenu

20 avril 2011

26

Installation d’un cœur de réseau IMS

An IMS Artefact on all IP architecture

Cet article a pour but de vous montrer les différentes étapes nécessaires pour la mise en place du cœur de réseau d’une architecture IMS.

Dans cette optique, nous utiliserons l’implémentation open source « Open IMS Core », développé par l’institut Fraunhofer FOKUS de Berlin. Si vous n’avez pas lu l’article sur le projet OpenIMSCore, c’est le bon moment pour aller y jeter un coup d’œil : OpenIMSCore Project.

Note sur la performance: Dans ce tutorial, les différents serveurs du cœur de réseau IMS (hss, .-cscf) sont installés sur une même machine, sans configuration réseau spécifique (localhost). Nous y reviendrons dans un autre article, et nous verrons comment basculer vers une configuration plus avancée en dissociant les différents serveurs sur plusieurs machines et comment basculer d’une configuration en localhost vers une adresse IP spécifique.

Note sur la sécurité: Comme expliqué précédemment, le but de ce tutoriel est de mettre en place une architecture de test. Nous n’abordons donc que très peu le thème de la sécurité (ce sera le sujet d’un article à venir).
Concernant l’activation du compte root, nous vous rappelons que son utilisation est, de manière générale, très fortement déconseillée. Pour rappel, nous avons dans notre cas commencé par une installation en root pour appréhender les différents outils et serveurs. Nous avons par la suite repris l’intégralité des installations en désactivant le compte root (entres autres).

 

Étape 1: Pré-requis

apt-get update

  • Configuration matérielle et réseau :
    • Une machine Linux opérationnelle ou une VM Linux (voir comment créer sa VM -Ubuntu- pour IMS);
    • Environ 100 à 150 Mo d’espace libre;
    • De préférence 1Go de RAM;
    • Un serveur DNS configurable pré-installé (par exemple bind9, normalement par défaut sur les dernières configuration Linux);
    • et enfin… un accès internet fonctionnel!! (pour ceux utilisant une machine virtuelle).
  • Outils et Libraries :
    • Pour la récupération des sources: SVN
    • Pour la compil: GCC3/4, make, ant
    • Analyseur lexical et syntaxique: flex, bison
    • JDK1.5 (default-jdk ou openjdk)
    • libmysql (++3 à l’heure actuelle), libmysql-dev (++dev), (libmysql-java), libxml2, libxml2-dev
    • curl, libcurl4-gnutls-dev
    • ipsec-tools (pour le chiffrement de clées)
    • MySQL-server, bind9 (configurés pour un lancement à chaque démarrage de la machine, pour plus de simplicité – normalement par défaut lors de l’installation)
    • Note : Lors de l’installation de MySQL-server, une invite vous demande un mot de passe super utilisateur; Retenez-le :)!

    • Optionnel (non traité dans cet article): openssl pour la sécurité TLS
  • Note: A ce stade, toutes les libraires & outils sont installés, lancés et fonctionnels.

 

Étape 2: Récupération du code source d’OpenIMSCore (via SVN)

Note: Il est bien sur possible de modifier les chemins d’installation. Cependant, dans un premier temps, il est préférable de garder ceux par défauts proposé par OpenIMSCore (sinon, vous pouvez modifier les fichiers de configuration en fonction de votre arborescence).

 

Étape 3: Compilation d’openIMSCore

  • Compilation des serveurs .cscf (ser_ims) :

    cd ser_ims
    make install-libs all

  • Note: Si une erreur survient lors de la compilation, c’est probablement qu’une librairie est manquante : étudié l’erreur, elle devrait afficher la « missing library ».

  • Compilation du serveur FHoSS :
    • Un JDK >=1.5 doit être installé sur la machine. Pour s’en assurer :

      # java -version
      java version « 1.6.0_20 »
      OpenJDK Runtime Environment (IcedTea6 1.9.7) (6b20-1.9.7-0ubuntu1)
      OpenJDK Client VM (build 19.0-b09, mixed mode, sharing)

      Attention: Si vous venez juste d’installer un JDK>=1.5, vérifier que cette dernière version soit bien prise en compte par le système (il se peut que votre système soit encore lié à une ancienne version du JDK, malgré l’installation d’une version JDK plus récente).

    • Compilation et déploiement :

      cd ../FHoSS
      ant compile
      ant deploy

  • It’s done !

 

Étape 4: Configuration de l’environnement: DNS et MySQL

  • Précisions :
    • Rappelez-vous: la configuration initiale d’openIMSCore permet uniquement un fonctionnement en localhost (dans un premier temps en tout cas).

    • Par ailleurs, le domaine par défaut est « open-ims.test ». Il est préférable de ne pas le modifier pour l’instant.

  • Configuration de MySQL :
    • Placez-vous dans le dossier d’openIMS et effectuer les 3 dumps suivants :

      cd /opt/OpenIMSCore/
      mysql -u root -p -h localhost < ser_ims/cfg/icscf.sql
      mysql -u root -p -h localhost < FHoSS/scripts/hss_db.sql
      mysql -u root -p -h localhost < FHoSS/scripts/userdata.sql

    • Le mot de passe demandé est le mot de passe super utilisateur de MySQL.
    • Vérifier que la base est accessible et chargée :

      mysql -u root -p -h localhost
      show databases;

      Vous devriez voir apparaitre 2 tables supplémentaires : hss_db et icscf.

  • Configuration du DNS :
    • Un exemple de fichier de zone DNS est présent dans le répertoire d’installation d’openIMS. Copier-le dans le répertoire de configuration de votre DNS :

      cp ser_ims/cfg/open-ims.dnszone /etc/bind/

    • Editer le named.conf.local (toujours dans /etc/bind/) pour prendre en compte cette nouvelle zone (ajouter les lignes suivantes):

      zone « open-ims.test » {
      type master;
      file « /etc/bind/open-ims.dnszone »;
      };

    • Vérifier que le named.conf fasse bien appel à ce fichier. Pour cela, la ligne suivante doit être présente dans le named.conf:

      include « /etc/bind/named.conf.local »;

      Ajoutez-la si ce n’est pas le cas.

    • Editer le fichier /etc/resolv.conf, supprimer (ou commenter) le contenu existant et ajouter les lignes suivantes :

      search open-ims.test
      domain open-ims.test
      nameserver 127.0.0.1

      Attention: A chaque redémarrage de l’OS, ce fichier va être écrasé par le Network Manager. Ainsi, faites un backup de ce fichier (nous l’utiliserons dans notre script automatique de lancement des serveurs, que nous verrons à la fin de ce tutoriel) :

      cp /etc/resolv.conf /etc/resolv.conf.ims

    • Editer le fichier /etc/hosts et ajouter les lignes suivantes :

      127.0.0.1 localhost
      127.0.0.1 open-ims.test mobicents.open-ims.test ue.open-ims.test presence.ope
      n-ims.test icscf.open-ims.test scscf.open-ims.test
      pcscf.open-ims.test hss.open-ims.test

      Attention: Comme précédemment, faites un backup de ce fichier :

      cp /etc/hosts /etc/hosts.ims

    • Redémarrer le serveur DNS :

      /etc/init.d/bind9 restart

    • Vérifier que le changement de configuration a bien été pris en compte (via dig) :

      dig open-ims.test

 

Étape 5: Fichiers de configuration et de lancement des serveurs d’openIMS

  • Copier les fichiers de configuration .cfg et .xml, ainsi que les scripts de lancement .sh des serveurs x-cscf dans le répertoire de votre choix (nous avons choisis de les placer dans le répertoire d’openIMS pour plus de simplicité et d’organisation) :

    cd /opt/OpenIMSCore/
    cp ser_ims/cfg/*.cfg /opt/OpenIMSCore/
    cp ser_ims/cfg/*.xml /opt/OpenIMSCore/
    cp ser_ims/cfg/*.sh /opt/OpenIMSCore/

  • Vous pouvez éditer ses fichiers selon vos préférences.

 

Étape 6: Lancement d’openIMS

  • Serveurs x-cscf:
    • Lancer les fichiers pcscf.sh, icscf.sh et scscf.sh
    • Ces trois serveurs doivent fonctionner en parallèles; Vous pouvez lancer ces trois serveurs sur une même VM, cela ne pose aucun problème technique (en revanche, pas top au au niveau des performances)

    • Garder les terminaux ouverts, vous devriez pourvoir observer tout le trafic entre ces serveurs.
  • Serveur FHoSS :
    • Lancer le serveur via FHoSS/deploy/startup.sh
    • Il est possible que vous obteniez une erreur lors du lancement du script; dans ce cas, il est fort probable que celle-ci soit liée à la variable d’environnement JAVA_HOME. Vérifier que cette variable a été correctement exporté. Si ce n’est pas le cas, lancer la commande suivante dans un terminal :

      export JAVA_HOME= »/usr/lib/jvm/java-1.6.0-openjdk/ »

      Modifier le chemin en fonction de votre arborescence. Par ailleurs, il est possible également que cette variable soit écrasé à chaque redémarrage de la machine.

    • Vérifier que le FHoSS est correctement lancée en accédant à l’interface http://localhost:8080/.

 

Étape 7: Création d’un script de démarrage automatique

Comme expliqué précédemment dans ce tutorial, il peut être utile de créer un script qui lance de manière automatique les différents serveurs et qui s’occupe de faire les configurations nécessaire avant le lancement des serveurs (par exemple mettre à jour/exporter la variable JAVA_HOME, etc.).
En voici un basique mais qui fait le nécessaire (pour une installation en root):

#!/bin/bash

read -p « Lancement du coeur IMS. Appuyer sur une touche pour continuer.. »
export JAVA_HOME= »/usr/lib/jvm/java-1.6.0-openjdk/ »
cp /etc/resolv.conf.ims /etc/resolv.conf
cp /etc/hosts.ims /etc/hosts
cd /opt/OpenIMSCore/
gnome-terminal –geometry=70×20+100+350 -e ./pcscf.sh
read -p « PCSCF: OK! Appuyer sur une touche pour continuer.. »
gnome-terminal –geometry=70×20+200+350 -e ./icscf.sh
read -p « ICSCF: OK! Appuyer sur une touche pour continuer.. »
gnome-terminal –geometry=70×20+300+350 -e ./scscf.sh
read -p « SCSCF: OK! Appuyer sur une touche pour continuer.. »
cd FHoSS/deploy/
gnome-terminal –geometry=70×20+400+350 -e ./startup.sh
read -p « FHoSS: OK! Appuyer sur une touche pour continuer.. »

 

 

Référence Dossier <Mise en place d’un serveur de streaming vidéo> :


S’abonner
Notifier de
guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

26 Commentaires
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
nassa
nassa
6 années

Comment Faire le script de demarrage automatique et dans quel fichier on le mettra

mehdi
mehdi
7 années

j’ai essayé d’installer mais un erreur survenue ‘ ERROR: load_module: could not open module ‘

Coumba
Coumba
Reply to  mehdi
3 années

Bonjour moi aussi j’ai eu la même erreur . Avez vous trouvé une solution

trackback
7 années

[…] OpenIMScore et WaterClear  sont des solutions opensource permettant l’implémentation d’un réseau IMS  en l’utilisant l’ordinateur comme ressource matérielle principale. […]

jenny
jenny
8 années

Bonjour, merci pour ce tuto, très intéressant
Cependant j’ai un problème, j’ai suivie toutes les étapes d’installation, tout à bien fonctionné, mais quand je lance l’interface web du FHoSS les utilisateurs BOB et ALICE ont pour status « not registered »

SVP que puis je faire pour résoudre ce problème
merci

Black
Black
Reply to  jenny
7 années

Il faut que tu ais une application client IMS (logiciel exemple monster). Et avec ce logiciel tu pourras te connecter. C’est ainsi que l’état « not registered » changera en « resgisterd ».

trackback
*OpenIMSCore* Fail to restart bind9 in the installation step – Internet and Tecnnology Answers for Geeks
8 années

[…] the OpenIMSCore. I use ubuntu in VM Machine and followed the following posts to install OpenIMSCore Installing an IMS network heart. I went through all the first steps and now getting stuck at the step configuring DNS […]

niandou
9 années

bonjour,svp je voudrai savoir sur quel logiel se fait l’installation de Open IMS core

BAH
BAH
9 années

Bonjour,
pour ce qui ont des problèmes sur la partie JAVA, exemple: Building Classpath
Classpath is lib/*.jar::log4j.properties:..
FHoSS/deploy/startup.sh: ligne 15: /usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java: Aucun fichier ou dossier de ce type.
Il faut définir la variable d’environnement dans le fichier dans le fichier ~/.bashrc
export JAVA_HOME= »/usr/lib/jvm/java-1.7.0-openjdk-amd64″
export PATH=$PATH:$JAVA_HOME/bin

jackbauer
jackbauer
Reply to  BAH
4 années

je l’ai défini mais rien s’execute pour mon probleme avec /bin/java non reconnue

diallo
diallo
10 années

je te felicite pour ce tuto.
je rencontre un probleme pour le lancement du hss.
j’ai l’erreur suivante:
Error: Could not find or load main class de.fhg.fokus.hss.main.HSSContainer

konkon
konkon
Reply to  diallo
10 années

J’ai le même problème.
As-tu arrivé à trouver une solution?

konkon
konkon
Reply to  diallo
10 années

Bon je pense que j’ai resolu le probleme. Si tu executes le script par /FHoSS/deploy/ et PAS par FHoSS/scripts/.

RAFAEL SANZIO
RAFAEL SANZIO
10 années

bonjour, je suis à la loupe toutes les recommandations dictées dans le tuto mais lorsque je cherche à installer les paquets OpenIMSCore ser_ims et FHOSS, on me dit de relocaliser berlios.de. je ne comprend pas ce que cela veut dire. j’ai tellement besoin de ça vue que je travaille sur un projet et que c’est seul openimscore qui me permet vraiment de realiser quelque chose et donc le temps presse.
merci à tous,
obrigado,
gracias,
thanks

nasyto
nasyto
10 années

Salut,
en exécutant la commande:
svn checkout http://svn.berlios.de/svnroot/repos/openimscore/ser_ims/trunk ser_ims
J’obtiens le message d’erreur suivant:
svn: Repository moved temporarily to ‘http://www.berlios.de/’; please relocate

Besoin d’aide, Merci.

dhikra
dhikra
10 années

j’arrive pas a faire enregistrer un abonnée même alice et bob il m’indique dans l’interface NOT-REGISTRED je ne sais pas pourquoi

dhikra
dhikra
10 années

j’ai effectué toutes les étapes pour l’installation du coeur. Seulement j’ai des difficultés à lancer le FHoSS. il me met cette erreur

ERROR de.fhg.fokus.diameter.DiameterPeer.peer.StateMachine – I_Snd_Conn_Req StateMachine: Peer scscf.open-ims.test can not be resolved.

Pourriez vous m’aider?
Merci

olfa
olfa
10 années

j ai suivi tt le tutoriel mais j ai un pb au redémarrage de DNS en effet j ai pas le fichier /etc/init.d/bind9 (je suis ss fedora 20)

pourriez-vous m’aider svp???

romy
romy
10 années

Merci pour le tutoriel..
Seulement j’ai des problèmes avec mon JDK
j’ai bien exporté le JAVA-HOME mais au lancement du FHoSS j’ai
Classpath is lib/*.jar::log4j.properties:..
Exception in thread « main » java.lang.NoClassDefFoundError: de/fhg/fokus/hss/main/HSSContainer
Caused by: java.lang.ClassNotFoundException: de.fhg.fokus.hss.main.HSSContainer
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
Could not find the main class: de.fhg.fokus.hss.main.HSSContainer. Program will exit.

C’est quoi la solution?

emmanuel
emmanuel
11 années

Salut j’ai aimer ton tuto, c’est vraiment du bon travail. Je viens de le suivre mais j’ai une erreur au niveau du lancement de FHoSS.

J’ai verifier ce que je peut sur la variable d’environnement mais toujours l’erreur suivant persiste:

Building Classpath
Classpath is lib/*.jar::log4j.properties:..
FHoSS/deploy/startup.sh: ligne 15: /usr/lib/jvm/java-1.0.6-openjdk-i386/bin/java: Aucun fichier ou dossier de ce type

Pourriez vous me regarder sa svp?

malonethiof
malonethiof
Reply to  emmanuel
11 années

slt il ne reconnait pas votre jdk

Sam
Sam
11 années

Bonjour
j’ai effectué toutes les étapes pour l’installation du coeur. Seulement j’ai des difficultés à lancer le FHoSS. il me met une erreur

ERROR de.fhg.fokus.diameter.DiameterPeer.peer.StateMachine – I_Snd_Conn_Req StateMachine: Peer scscf.open-ims.test can not be resolved.

Pourriez vous m’aider?
Merci

kris
kris
Reply to  Sam
11 années

Bonsoir Sam
est ce que tu peux trouver le probleme sur
ERROR de.fhg.fokus.diameter.DiameterPeer.peer.StateMachine – I_Snd_Conn_Req StateMachine: Peer scscf.open-ims.test can not be resolved. j’ai cherché la solution par tout sur le net je n’ai pas trouvé.
si tu as trouvé la solution fais moi signe.
thanks

Guy Salvatore
Guy Salvatore
13 années

bonjour

j’ai suivi le mode opératoire, j’ai une erreur lorsque le dns démarre

voici une capture; pouvez-vous m’indiquer les pistes de recherche d’erreur et/ou m’envoyer les fichiers de configuration dns

nb: ubuntu 11.4, vmware 3.1.4

par avance merci

Guy Salvatore

root@ubuntu:~# /etc/init.d/bind9 restart
* Stopping domain name service… bind9 rndc: connect failed: 127.0.0.1#953: connection refused
[ OK ]
* Starting domain name service… bind9 [fail]
root@ubuntu:~# /etc/init.d/bind9 status
* could not access PID file for bind9
root@ubuntu:~#

Y
Y
Reply to  Guy Salvatore
13 années

Bonjour, A première vu, il semblerait que le problème provienne des droits d’accès sur le fichier PID de bind9. Il est possible que ces droits d’accès du fichier aient été modifié lors de l’édition des fichiers de conf. En reprenant les erreurs dans l’ordre : root@ubuntu:~# /etc/init.d/bind9 restart * Stopping domain name service… bind9 rndc: connect failed: 127.0.0.1#953: connection refused [ OK ] Cette première erreur n’en est pas vraiment une en soit dans le sens ou, si bind9 n’est pas fonctionnel, la commande stop sur le serveur renvoie un #953: connection refused. Rien de bien inquiétant donc jusqu’ici. Le… Lire la suite »

26
0
Would love your thoughts, please comment.x