Implémentation de srsRAN - torressantiago/4G-5G-through-SDR GitHub Wiki
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.
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.
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.
À 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.
À 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.
À 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
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>
Où interface
est l'interface par laquelle l'ordinateur est connecté à internet.
À faire : Lancez deux terminaux puis exécutez le commandes suivantes, une par terminal.
sudo srsepc
sudo srsenb
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.