Implémentation de srsRAN - torressantiago/4G-5G-through-SDR GitHub Wiki

TP: Réseaux LTE - srsRAN

0. Introduction

De même qu'avec OpenAir Interface, il est possible de construire un réseau 4G pour que des différentes UE puissent se connecter avec srsRAN. srsRAN est un projet Open Source qui n'a pas autant de succès et (possiblement) de pérennité que OpenAir Interface. Néanmoins, il représente une alternative beaucoup plus stable et de rapide déploiement.

1. Description du matériel

srsRAN est une solution légère, ce qui permet de tout déployer en un seul ordinateur. La structure physique de ce qui est implementé dans cette note d'application se trouve ci-dessous :

                               +-------------------------------------------+                                                          
         +----------------+    |  +-----------------+  +----------------+  |      +-----------------+                                 
         |                |    |  |                 |  |                |  |      |                 |                                 
        /-      USRP      ---------     srsENB      ----     srsEPC     -----------    Internet     |                                 
      /- |                |    |  |                 |  |                |  |      |                 |                                 
    /-   +----------------+    |  +-----------------+  +----------------+  |      +-----------------+                                 
  /-                           |                                       PC  |                                                          
--                             +-------------------------------------------+                                                          
  -\                                                                                                                                  
   -\   +-----------------+    +-----------------+                                                                                   
     -\ |                 |    |                 |                                                                                   
       --     Support     ------       UE        |                                                                                   
        |                 |    |                 |                                                                                   
        +-----------------+    +-----------------+                                                                                 

Pour commencer, il est nécessaire de vérifier que l'USRP est bien connecté et opérationnel :

uhd_usrp_probe

Ceci devrait montrer les différentes informations du USRP. De plus, la complète configuration de UHD, les librairies qui permettent d'utiliser les USRP, devrait s'afficher.

2. Configuration du réseau

Les fichiers de configuration se trouvent sous ~./config/srsran. Pour cette occasion, trois fichiers seront modifiés:

  • epc.conf
  • enb.conf
  • user_db.csv

De ces trois fichiers, on constate la première grande différence entre Open Air Interface et srsRAN, la base de données. Précédemment nous avons utilisé Cassandra pour gérer la base de données fournie dans la HSS. Cette fois-ci un fichier csv est utilisé. Si bien ceci implique un processus de moins à gérer, nous perdons les avantages que donne avoir une vraie base de données.

EPC

À faire :

Utilisez l'éditeur de votre choix pour modifier epc.conf.

22 | #####################################################################
23 | [mme]
24 | mme_code = 0x1a
25 | mme_group = 0x0001
26 | tac = 0x0007
27 | mcc = <mcc>
28 | mnc = <mnc>
29 | mme_bind_addr = 127.0.1.100 # modifier si mme ailleurs
30 | apn = <apn>
31 | dns_addr = 8.8.8.8 # modifier si dns désiré est différent
32 | encryption_algo = EEA0
33 | integrity_algo = EIA1
34 | paging_timer = 2
35 |
36 | #####################################################################

Aide

Utilisez le mcc, mnc et apn utilisé pour OpenAir Interface. Vous pouvez aussi essayer des nouvelles valeurs sachant que mnc et mcc on max trois chiffres et que le apn est un string de votre choix pour nommer votre réseau mobile. De plus, les valeurs choisies devront être les mêmes pendant la configuration de la carte SIM.


Rappel :

  • APN : nom de l’APN auquel l’abonné appartient, c’est le nom de l’APN qu’il faudra rentrer dans le téléphone et dans la configuration de la MME. Il depend de la MCC et de la MNC choisie.
  • MNC : Code d'opérateur, ce sont les 4e et 5e chiffres de l’IMSI.
  • MCC : Code pays, ce sont les 3 premiers chiffres de l’IMSI.

eNB

À faire :

De même qu'avec l'EPC, avec l'éditeur de votre choix, modifiez enb.conf.

18 | #####################################################################
19 | [enb]
20 | enb_id = 0x19B
21 | mcc = <mcc>
22 | mnc = <mnc>
23 | mme_addr = 127.0.1.100
24 | gtp_bind_addr = 127.0.1.1
25 | s1c_bind_addr = 127.0.1.1
26 | n_prb = 50
27 | #tm = 4
28 | #nof_ports = 2
29 |
30 | #####################################################################

Cette fois-ci, il suffit de remplir le fichier avec les valeurs choisies auparavant.

La base de données

À faire :

Finalement pour ce qui concerne la configuration, modifiez user_db.csv.

1 | #
2 | # .csv to store UE's information in HSS
3 | # Kept in the following format: "Name,Auth,IMSI,Key,OP_Type,OP,AMF,SQN,QCI,IP_alloc"
4 | #
5 | # Name:     Human readable name to help distinguish UE's. Ignored by the HSS
6 | # IMSI:     UE's IMSI value
7 | # Auth:     Authentication algorithm used by the UE. Valid algorithms are XOR
8 | #           (xor) and MILENAGE (mil)
9 | # Key:      UE's key, where other keys are derived from. Stored in hexadecimal
10| # OP_Type:  Operator's code type, either OP or OPc
11| # OP/OPc:   Operator Code/Cyphered Operator Code, stored in hexadecimal
12| # AMF:      Authentication management field, stored in hexadecimal
13| # SQN:      UE's Sequence number for freshness of the authentication
14| # QCI:      QoS Class Identifier for the UE's default bearer.
15| # IP_alloc: IP allocation stratagy for the SPGW.
16| #           With 'dynamic' the SPGW will automatically allocate IPs
17| #           With a valid IPv4 (e.g. '172.16.0.2') the UE will have a statically assigned IP.
18| #
19| # Note: Lines starting by '#' are ignored and will be overwritten
20| ue3,mil,901700000020936,4933f9c5a83e5718c52e54066dc78dcf,opc,fc632f97bd249ce0d16ba79e6505d300,9000,0000000060f8,9,dynamic

Aide :

Name : Un nom quelconque pour l'UE à enregistrer

Auth : Algorithme d'authentification (xor/ mil)

IMSI : IMSI de l'UE. L’IMSI permet d’identifier l’abonné dans la base de données.

Key : Clé publique de l'UE, hex

OP Type : Type de clé privée (OP/ OPc)

OP : OP/ Clé privée de l'opérateur, hex

AMF : Authentication management field, hex supérieur à 8000

SQN : Numéro de séquence de l'UE, le numéro par défaut peut être utilisé.

QCI : QoS Class Identifier pour le bearer par défaut de l'UE. La valeur par défaut peut être utilisé.

IP Alloc : Stratégie d'allocation d’adresse IP par la SPGW


Configurations additionnelles

Pour que srsRAN puisse créer une interface entre eNB et internet, il faut exécuter le fichier suivant

sudo ./srsepc_if_masq.sh <interface>

interface est l'interface par laquelle l'ordinateur est connecté à internet.

Exécution de srsRAN

À faire : Lancez deux terminaux puis exécutez le commandes suivantes, une par terminal.

sudo srsepc
sudo srsenb

La carte SIM

Connectez l'adaptateur à une machine Windows et retrouvez lancez le logiciel qui permet de programmer la carte SIM (SIM\GRSIMWrite 3.10\GRSIMWrite.exe). Rentrez les paramètres choisis.


Aide : Une photo qui explique quels paramètres sont à changer peut se retrouver sur le répertoire.


### Le téléphone
Après avoir inséré votre carte sim, ajoutez l’APN adéquat dans les paramètres du téléphone.
Faites une recherche de réseaux mobiles et découvrez votre eNB.
Vous pouvez vérifier la connexion de l'UE au eNodeB en regardant les trames s1ap sur wireshark du côté du EPC.
⚠️ **GitHub.com Fallback** ⚠️