Aller au contenu

20 avril 2011

24

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> :


Poster un Commentaire

24 Commentaires sur "Installation d’un cœur de réseau IMS"

avatar
  Subscribe  
plus récents plus anciens plus de votes
Me notifier des
Guy Salvatore
Invité
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:~#
Yoann
Invité
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… Read more »
Sam
Invité

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
Invité

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

emmanuel
Invité

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
Invité

slt il ne reconnait pas votre jdk

romy
Invité

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?

olfa
Invité

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???

dhikra
Invité

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

dhikra
Invité

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

nasyto
Invité

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.

RAFAEL SANZIO
Invité

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

diallo
Invité

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
Invité

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

konkon
Invité

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

BAH
Invité

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

niandou
Invité

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

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

[…] 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 […]

jenny
Invité

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
Invité

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

[…] 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 […]

trackback

[…] 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. […]

mehdi
Invité

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