Vous êtes sur la page 1sur 9

OPEN IMS.

txt
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);
Pge p
OPEN IMS.txt
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)

Répertoire d’installation : le code source est


pré-configuré pour fonctionner selon un chemin de fichier
standard
Créer le dossier /opt/OpenIMSCore/ et s’y rendre :

mkdir /opt/OpenIMSCore
cd /opt/OpenIMSCore

Créer le dossier ser_ims et y placer les serveurs


Pge p
OPEN IMS.txt
CSCF :

mkdir ser_ims
svn checkout
http://svn.berlios.de/svnroot/repos/openimscore/ser_ims/tru
nk ser_ims/

Créer le dossier FHoSS et y placer le serveur HSS :

mkdir FHoSS
svn checkout
http://svn.berlios.de/svnroot/repos/openimscore/FHoSS/trunk
FHoSS

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)

Pge p
OPEN IMS.txt
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


Pge p
OPEN IMS.txt
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
Pge p
OPEN IMS.txt

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.

Pge p
OPEN IMS.txt

É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
Pge p
OPEN IMS.txt
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> :

Partie 1: Présentation et pré-requis


Présentation du dossier;
Principe de la gestion des profils et identités
utilisateurs au sein d’une architecture IMS;
Création et mise en place d’une machine virtuelle
pour IMS;
Partie 2: Cœur de réseau IMS
Installation d’un cœur de réseau IMS (OpenIMSCore)
[page actuelle];
Quelques infos sur la configuration réseau pour
l’interface FHoSS;
Pge p
OPEN IMS.txt
Configuration d’abonnés IMS;
Configuration et utilisation d’un client IMS;
Partie 3: Serveurs d’application
Quelques infos sur l’ajout et la configuration d’un
serveur d’application IMS;
Installation d’un serveur de présence (OpenSIPs);
Installation d’un serveur IPTV (UCT IPTv Advanced);
Mise en place d’un serveur de VOD.

Pge p