0% ont trouvé ce document utile (0 vote)
4 vues13 pages

Déploiement IMS avec Kamailio et Docker

Ce document présente un guide détaillé pour déployer un système IMS open source avec Kamailio en utilisant Docker. Il couvre les objectifs du projet, les concepts théoriques de Docker et Docker Compose, ainsi que les étapes pratiques pour configurer le réseau et déployer les composants IMS. Les utilisateurs apprendront à gérer des applications multi-conteneurs et à établir des connexions réseau entre les conteneurs.

Transféré par

abdallah abdelnour
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues13 pages

Déploiement IMS avec Kamailio et Docker

Ce document présente un guide détaillé pour déployer un système IMS open source avec Kamailio en utilisant Docker. Il couvre les objectifs du projet, les concepts théoriques de Docker et Docker Compose, ainsi que les étapes pratiques pour configurer le réseau et déployer les composants IMS. Les utilisateurs apprendront à gérer des applications multi-conteneurs et à établir des connexions réseau entre les conteneurs.

Transféré par

abdallah abdelnour
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

1.

Introduction
Ce document vise à fournir une vue d'ensemble détaillée du déploiement d'un système IMS (IP
Multimedia Subsystem) open source en utilisant Kamailio avec Docker.

Ce projet pratique vous permettra de mettre en place plusieurs composants IMS sur des conteneurs
Docker et d'explorer les mécanismes de connexion réseau entre ces conteneurs via un réseau
IPVLAN.

2. Objectifs
Au cours de ce projet, vous allez :

• Apprendre à utiliser Docker Compose pour gérer des applications multi-conteneurs.


Configurer et déployer les composants IMS : P-CSCF, I-CSCF, S-CSCF, HSS, RTP_ENGINE,
PRESENCE_SERVER en utilisant Docker.

• Étudier et implémenter les mécanismes de connexion réseau entre les conteneurs.

• Tester le déploiement en effectuant des enregistrements IMS et des appels entre clients SIP.

Avant d'entrer dans les aspects pratiques, il est crucial de comprendre certains concepts théoriques
fondamentaux, notamment la différence entre conteneurs Docker et machines virtuelles, ainsi que
l'utilisation de Docker Compose pour orchestrer des applications multi-conteneurs.

3. Concepts Théoriques
3.1. Conteneurs Docker vs. Machines Virtuelles
Machines Virtuelles (VMs) : Les machines virtuelles sont une méthode de virtualisation traditionnelle
permettant d'exécuter plusieurs systèmes d'exploitation sur un même serveur physique à l'aide d'un
hyperviseur. Chaque VM fonctionne avec un système d'exploitation complet, ce qui assure une
isolation forte entre les différents environnements, mais nécessite une consommation importante de
ressources.

Exemple concret : Lorsque vous utilisez VirtualBox pour créer des machines virtuelles sur un PC
Windows, Windows est le système d'exploitation de base (BaseOS), et VirtualBox sert d'hyperviseur
pour exécuter plusieurs VMs, qui peuvent être des systèmes comme Linux ou d'autres variantes.

Conteneurs Docker : Les conteneurs Docker, en revanche, utilisent le noyau (kernel) du système
d'exploitation hôte. Ils sont beaucoup plus légers et démarrent plus rapidement que les machines
virtuelles, car chaque conteneur ne contient que les bibliothèques et dépendances nécessaires pour
l'application spécifique qu'il exécute. Cela améliore l'efficacité et la portabilité des applications.

Exemple : Sur un système Linux, les conteneurs Docker partageront le même noyau Linux, ce qui rend
l'exécution des conteneurs très efficace.

Question fréquente : Docker fonctionne-t-il uniquement sur Windows ? Non, Docker peut fonctionner
sur divers systèmes d'exploitation, y compris Linux et Windows. Toutefois, Docker utilise le noyau de
l'hôte, donc sur Windows, il utilise une machine virtuelle Linux interne pour exécuter les conteneurs,
tandis que sur Linux, il fonctionne directement avec le noyau Linux.

3.2. Docker Compose


Docker Compose est un outil qui simplifie la gestion des applications multi-conteneurs. Il vous permet
de définir les services nécessaires à une application dans un fichier YAML. Avec une seule commande,
vous pouvez créer et démarrer tous les services définis simultanément.

3.3. Mécanismes de Connexion des Conteneurs


Pour connecter les conteneurs Docker, vous pouvez utiliser les drivers de réseau macvlan ou ipvlan.
Ces drivers permettent aux conteneurs de communiquer comme s'ils étaient des dispositifs réseau
physiques distincts.

Macvlan Network Driver : Le driver macvlan permet d'assigner une adresse MAC unique à chaque
conteneur, le faisant apparaître comme un appareil physique distinct sur le réseau. Cela est
particulièrement utile pour des applications nécessitant une isolation réseau stricte et des
performances élevées. Cependant, la gestion des adresses IP et des modes promiscuous doivent être
gérés avec soin pour éviter les conflits et les problèmes de réseau.

IPvlan Network Driver : Le driver ipvlan est une alternative au macvlan. Contrairement à macvlan, qui
utilise des adresses MAC distinctes, ipvlan fonctionne en utilisant des adresses IP uniques tout en
partageant une adresse MAC commune. Cela peut simplifier la configuration et réduire les problèmes
de gestion d'adresses IP, tout en offrant une isolation réseau efficace.

Différences clés entre macvlan et ipvlan :

• Isolation MAC : macvlan attribue une adresse MAC unique à chaque conteneur, alors que
ipvlan utilise une adresse MAC partagée mais des adresses IP distinctes.

• Compatibilité : ipvlan peut être plus simple à gérer dans des environnements avec des
restrictions sur l'utilisation des adresses MAC, tandis que macvlan peut offrir une isolation
plus forte pour des scénarios spécifiques.

• Gestion du réseau : ipvlan est souvent préféré lorsque la gestion des adresses IP est complexe
ou lorsqu'une architecture plus simple est souhaitée.

D'autres options pour la connexion réseau des conteneurs incluent :

• Le réseau bridge : Utilisé pour des connexions entre conteneurs sur un même hôte Docker.

• Le réseau overlay : Permet la communication entre conteneurs répartis sur plusieurs hôtes
Docker.

4. Partie Pratique
Pour commencer la partie pratique, assurez-vous de disposer des éléments suivants :

• Système d'exploitation : Un système Linux Ubuntu 18.04 est recommandé pour faire
fonctionner Docker et Docker Compose.

• Outils git: La commande git est nécessaire pour récupérer le dépôt contenant les fichiers
nécessaires.

• Routeur : Un routeur capable de gérer le WLAN/LAN est essentiel pour connecter les clients
SIP via Wi-Fi ou en réseau local à notre réseau IMS.

• Matériel : Un clavier, une souris, un ordinateur portable, et bien sûr, un sourire pour rester
motivé et éviter les erreurs !

4.1. Configuration du Routeur


Avant de démarrer, configurez votre routeur si ce n'est pas déjà fait. Nous utiliserons un routeur
CISCO RV110W comme exemple. Voici les étapes pour la configuration :

• Réinitialisation du Routeur : Appuyez sur le bouton de réinitialisation pendant 20 secondes


pour rétablir les paramètres par défaut.

• Accès à l'Interface Web : Connectez-vous à l'interface web du routeur en ouvrant un


navigateur et en accédant à l'adresse IP : [Link].

Remarque : Si vous utilisez un modèle différent, veuillez consulter le guide de configuration spécifique
à votre routeur.

• Connexion : Utilisez les identifiants par défaut : cisco pour le nom d'utilisateur et cisco pour le
mot de passe
Configurez l'adresse IP LAN sur [Link]/24 et laissez DHCP activé.

Ports : Laissez les ports non tagués (untagged).


Mode de Fonctionnement : Réglez le mode de fonctionnement sur "Gateway".

Interfaces : LAN & Wireless Internet (WAN)

Inter-VLAN Routing : Activez le routage Inter-VLAN.

Configuration Wireless : Accédez à l'onglet Wireless pour configurer votre point d'accès sans fil (AP)
selon vos besoins.

4.2. Préparation de la Machine Hôte (IMS-B)


Une fois le routeur configuré, nous allons préparer la machine hôte qui accueillera les conteneurs
Docker.

Suivez les étapes ci-dessous pour installer Docker et Docker Compose :

Mettez à jour les paquets existants :

#sudo apt update

#sudo apt upgrade


Installez Docker :

#sudo apt install [Link]

Installation de Docker Compose : Téléchargez la version spécifique de Docker Compose (1.29.2 dans
ce cas)

#sudo curl -L "[Link]


$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Rendez le fichier exécutable

#sudo chmod +x /usr/local/bin/docker-compose

Instructions pour le Déploiement IMS avec Docker :

Étape 1 : Cloner le Référentiel

Commencez par cloner le dépôt contenant les fichiers nécessaires

#git clone [Link]

Étape 2 : Connexion de la Machine Hôte à un réseau Internet

Connectez votre machine hôte au routeur et assurez-vous qu'elle obtient automatiquement une
adresse IP via DHCP.

Cela peut être fait en vérifiant que la connexion réseau est active et en consultant les paramètres
réseau de votre machine hôte.

Étape 3 : Configuration des Adresses IP dans le Fichier .env

Ouvrez un nouveau terminal et naviguez vers le répertoire du projet cloné

#cd voip_kamailio

Éditez le fichier .env avec votre éditeur de texte préféré. Vous pouvez utiliser vi, nano, ou tout autre
éditeur

#vi .env Dans le fichier .env, configurez les adresses IP comme suit :

#Nom du domaine IMS

IMS_DOMAIN=[Link]

#Adresse IP de la machine hote Linux

DOCKER_HOST_IP=[Link]

# IMS DNS

DNS_IP=[Link]

# RTPENGINE

RTPENGINE_IP=[Link]

# MYSQL

MYSQL_IP=[Link]
# FHOSS

FHOSS_IP=[Link]

# ICSCF

ICSCF_IP=[Link]

# SCSCF

SCSCF_IP=[Link]

# PCSCF

PCSCF_IP=[Link]

# PRESENCE

PRESENCE_IP=[Link]

Assurez-vous que les adresses IP sont correctement configurées et correspondent à votre réseau.
Étape 4 : Construction de l'Image Docker pour Kamailio Naviguez vers le répertoire de construction de
l'image Kamailio et construisez l'image Docker :

#cd kamailio_ims/

#docker build --no-cache --force-rm -t kamailio .

Étape 5 : Construction des Conteneurs IMS : Une fois l'image Kamailio construite, vous pouvez
procéder à la construction des conteneurs IMS

Assurez-vous d'avoir une connexion Internet active pour que Docker puisse télécharger les images
nécessaires.

Ensuite, exécutez les commandes suivantes :

#cd ..

#source .env

#docker-compose build --no-cache

La construction des conteneurs peut prendre environ 20 minutes. Soyez patient pendant le
processus.

4.3. Déploiement de l'IMS avec Docker


1) Vérification des Images Docker

Avant de commencer le déploiement, vérifiez les images Docker disponibles sur votre système en
utilisant la commande suivante :

#docker images

2) Connexion de la Machine Hôte au Routeur

Connectez votre machine hôte au routeur et assurez-vous qu'elle obtient une adresse IP locale via
DHCP.
Cette étape est cruciale pour garantir que votre machine hôte est correctement intégrée au réseau.

Création du Réseau Docker

3) Créez un réseau Docker avec le mode IPVLAN en utilisant la commande suivante :

#docker network create -d ipvlan --subnet=[Link]/24 --gateway=[Link] -o


ipvlan_mode=l2 -o parent=eno1 dockervlan

Si le réseau est déjà créé, passez cette étape.

Pour vérifier si le réseau dockervlan existe, utilisez

#docker network ls

4) Démarrage des Conteneurs

Démarrez les conteneurs IMS en utilisant Docker Compose :

#docker-compose up

Cette commande montera et lancera les conteneurs définis dans votre fichier [Link].

Connexion au Réseau WiFi

5) Connectez-vous au réseau WiFi configuré précédemment pour pouvoir interagir avec les services
IMS.

6) Accès à l'Interface Graphique du HSS

Pour accéder à l'interface graphique du HSS (Home Subscriber Server), ouvrez un navigateur et allez à
l'adresse suivante : [Link]

Dans notre exemple, l'adresse sera [Link]

7) Création d'un Utilisateur IMS

Pour créer un utilisateur IMS, suivez ces étapes :

Accéder au Menu des Identités Utilisateurs

Naviguez vers le menu User Identities. Créer un Nouveau Utilisateur Cliquez sur Create.
Choisissez les paramètres par défaut : Capabilities Set : cap_set1 Preferred S-CSCF : scscf1 Cliquez sur
Save.

Associer un IMPI à l'Utilisateu. Après avoir enregistré l'utilisateur, cliquez pour associer un IMPi
(Identity of the public identity) à cet utilisateur.

Sélectionnez All pour les algorithmes d'authentification. L'IMPI est l'identité publique sous la forme
nom_utilisateur@domain. Cliquez sur Save.
Créer et Associer un IMPU Cliquez sur Create & Bind new IMPU pour associer un IMPU (Identity of
the public identity).

Configurez les paramètres comme suit :

Cliquez sur Save pour enregistrer les modifications.

Ajoutez le réseau [Link] comme réseau visité


4.4. SIP REGISTER à travers le réseau IMS :
Téléchargez et Installez Boghe :

• Rendez-vous sur le lien suivant pour récupérer Boghe :


[Link]
• Lancez l'application Boghe depuis un ordinateur connecté au réseau LAN/WLAN.
Assurez-vous que vous pouvez pinguer les conteneurs.

• Configuration de Boghe : Configurez Boghe en utilisant les informations fournies par votre
client IMS.

• Cliquez sur Sign In pour s’enregistrer

Vous aimerez peut-être aussi