Data Network and SMS (over NAS)

Data Network and SMS (over NAS)

In this guide I present how to set up Data Network for SMS (over NAS) in YateMMI step by step.

The IPs / GTs / MSISDN and any other resources are internal conventions and don’t map to real settings in any way for this MCC/MNC operator.

Before setting up everything in MMI, I write an IP plan and a Network Plan. Then, I install the MMI and Yate Products, I setup Baicell, followed finally by the MMI set-up.  Following every step in this order:

1. IP Plan

2. Network Plan (ports, GTs, PCs)

3. Install MMI and products
 
4. Setup Baicell
 
5. MMI setup

IP Plan

It is absolutely necessary to set multiple interfaces on a server (using aliases or VLAN ), when having multiple features on the same server or even for separating traffic based on role or protocols.
 
For example:
  • When I have both PGW and SGSN on the same server, due to the fact that GTP does not accept to change ports.
  • Unless I will set 2 YateUCNs with different features support, I need a workaround for using both features on same machine.
  • This is the reason why I need to create multiple interfaces.
 
NetworkBroadcastGatewayInterfaceAddressRoleProtocolsEquipmentServices
10.101.50.151/1610.101.255.255 10.101.0.1 enp0s3 10.101.50.151 SSH,MGMT HTTP, SSH, Zabbix, HSS clusteringYateDRA/
YateUCN/
YateHSS
10.1.0.0/1610.1.255.255 enp0s3:1 10.1.50.151 Internal communication SCTPYateSTP/YateDRA/
YateSMSC/ YateUCN/YateHSS
10.4.0.0/16* 10.4.255.255* enp0s3:4* 10.4.50.151*GMSC* YateUCN* voice*
10.30.0.0/16**10.30.255.255** enp0s3:30** 10.30.50.151** SGi** YateUCN**data**
10.25.0.0/1610.25.255.255 enp0s3:25 10.25.50.151PGW S5 YateUCNdata
10.35.0.0/1610.35.255.255 enp0s3:35 10.35.50.151 PGW S8 GTP-c/GTP-uYateUCNdata
10.37.0.0/16*10.37.255.255* enp0s3:37*10.37.50.151*RAN***/SMPP Other
services*
YateUCN/YateSMSC*SMS*
100.82.0.0/16 tun-pdn 100.82.0.1tunnel YateUCN
subscribers IP range: 100.84.0.2 - 100.84.255.254
* This aliases were not necessary for this setup.
 
**This is usually used when building a network but I didn’t need it for my tests.
 
*** This is the recommended option but in my tests I use the MGMT IP (10.101.99.165) for RAN.

Network Plan (ports, GTs, PCs)

– check information from onboarding form
– for interconnect (external) – info defined in IR21 (GTs, PCs, network type, MCC, MNC,…APN)
Operator NameTest operator
MCC232
MNC03
CC43
NDC (National Destination Code)3323
E.214 MGT (CC+NDC)433323
MSISDN4333230000 – 4333230999
SS7 international PC5162-5166
Declared GT (global title)4333231000 – 4333231009
IMSIs232030001000 – 232030009999
Declared APNinternet.t-mobile.at (just an example for test) because this is the apn defined in the carrier bundle for this MCC/MCN
SIGTRAN connections
 
EquipmentPorts
YateSTP5001 – 5010
YateHSS10.101.99.165:5011
YateUCN10.101.99.165:5012
YateSMSC10.101.99.165:5013
DIAMETER connections
 
EquipmentPorts
YateDRA8890
YateHSS8891
YateUCN8892
SIP UCN
 
VLR SIP Listener
5070

Install YateMMI and products

After creating the IP pan and the Network plan, I start installing YateMMI and the products I need.

Setup Baicell

For the next step I setup the Baicell according to my configurations.

YateMMI Setup

After all the preparations are done, I start adding all the info in YateMMI.

When I set up YateMMI, I carefully check that I pass through all the necessary steps:

  • 1. Network Settings
  • 2. Editing Network Settings
  • 3. Equipment / Core
  • 4. Profile Management
  • 5. Subscriber Management

Network Settings

General:

MCC=232, MNC=03, CC=43, NDC=3323, NNSF bits=8, NNSF bits data=8

MSISDN prefixes: 433323 (based on declared values)

SS7, Diameter support are enabled

SS7 step:

GT prefixes: 4333231 (based on declared values)

SMSC GT: 4333231000 (based on declared values)

Dialect : ANSI 

Netindicator : national 

DIAMETER step:

For the Diameter step, I check if suggested value for Diameter Realms and IMS Domain are based on MCC and MNC.

 – check if suggested value for Diameter Realms and IMS Domain are based on MCC and MNC
 epc.mnc003.mcc232.3gppnetwork.org
 APNs step:
– add internet.t-mobile.at apn
         IP version – iPv4v6
         QoS true
Primary DNS IPv4 – 192.168.168.1 (this is used by our team for tests, in production usually the APNs Primary DNS IPv4 is 8.8.8.8)
Aliases – internet.apn.epc.mnc003.mcc232.3gppnetwork.org
QCI – 9  
GGSN/PGW Address (for S8 interface)  – 10.35.50.151 (the IP used to build S8 interface in UCN)

Edit Network Settings

Node Params > YateUCN

  • I modify the parameters as follows:
    • MME features ->false
    • Combined: true (default suggested value)
    • Fake CSFB: true (default suggested value)
    • Fake CSFB no reg: false (default)
    • PLMN: 23203 (default suggested value)
    • LAC: 100 (default suggested value)

Equipment / Core

YateSTP

  • Management interface IP* 10.101.50.151
  • SS7 step
    • Pointcode 5162
    • IP 10.1.50.151

YateDRA

  • IP 10.101.50.151
  • Diameter step
    • Identity epc.mnc003.mcc232.3gppnetwork.org/dra1.epc.mnc003.mcc232.3gppnetwork.org – relay
    • Listener 10.1.50.151
    • Local port 8890
    • Transport SCPT
    • Accept rule – custom regexp – ^epc\.mnc003\.mcc232\.3gppnetwork\.org/

Routing Table

				
					     [
  {
    "vars": {
      "MY_REALM": "epc.mnc003.mcc232.3gppnetwork.org",
      "MY_DRA_LOCAL_NODE": "${MY_REALM}/dra1.${MY_REALM}",
      "MY_DEA_LOCAL_NODE": "${MY_REALM}/dea1.${MY_REALM}",
      "MY_REALM_MATCH": "epc\\.mnc003\\.mcc232\\.3gppnetwork\\.org",
      "HSS1": "${MY_REALM}/hss1.${MY_REALM}",
      "UCN1": "${MY_REALM}/ucn1.${MY_REALM}",
      "INTERCONNECT_REALM": "epc.mnc003.mcc232.3gppnetwork.org",
      "INTERCONNECT_PEER": "${INTERCONNECT_REALM}/dea1.${INTERCONNECT_REALM}",
      "INTERCONNECT_REALM_MATCH": "^epc\\.mnc003\\.mcc232\\.3gppnetwork\\.org$"
    }
  },
  {
    "realm": "^${MY_REALM_MATCH}$",
    "description": "Message destination is our realm",
    "routes": [
      {
        "host": "^$",
        "cmdappid": "^(16777251|16777216)$",
        "local_node": "${MY_DRA_LOCAL_NODE}",
        "peer_list": {
          "peers": [
            "${HSS1}"
          ]
        }
      },
      {
        "host": "^$^",
        "forward": true,
        "local_node": "${MY_DRA_LOCAL_NODE}"
      }
    ]
  }
]

				
			

YsteHSS

  • IP 10.101.50.151
  • SS7 step
    • Pointcode 5163
    • GT 4333231001
    • Local IP 10.1.50.151
    • Local port 5011
    • Remote port 5001
  • Diameter step
    • YateHSS/HLR Identity epc.mnc003.mcc232.3gppnetwork.org/hss1.epc.mnc003.mcc232.3gppnetwork.org
    • Local IP(s)* 10.1.50.151
    • Local Port 8891

YateSMSC

  • General settings
    • IP 10.101.50.151
    • Diameter support disable
    • SMPP Server & Client support – not configured
  • SS7 step
    • Pointcode* 5164
    • Global title* 4333231000 (this GT should also be set on SIMs)
    • Local IP* 10.1.50.151
    • Local Port 5013
    • Remote Port 5003

YateUCN

  • General settings
    • Management interface IP* 10.101.50.151
    • netinfo config file: add proto_cs=map on IMSI prefixes section (not in general section); cs registration is mandatory for SMS over NAS; //this was solved in later YateMMI commits and is automatically set from YateMMI
    • GMSC support disabled
    • CSCF support disabled
  • SS7 step
    • Pointcode* 5165
    • Global title* 4333231002
    • Local IP* 10.1.50.151
    • Local Port 5012
    • Remote Port 5002
  • Diameter step
    • YateUCN Identity epc.mnc003.mcc232.3gppnetwork.org/ucn1.epc.mnc003.mcc232.3gppnetwork.org
    • Default priority 1
    • Default realm 1
      (if I didn’t set the default priority and realm, diameter connection won’t work)
    • Local IP(s)* 10.1.50.151
    • Local Port 8892
  • MME/SGSN step
    • NNSF node: 1 (same value as Code from MME identity – in the below section)
    • MME configuration (Inherited / default settings set in UCN Node Params from Network Settings)
      • MME features should not be set/set as false
    • Combine attach options (default settings set in UCN Node Params from Network Settings)
      • Status – Inherited active
      • Fake combined – Inherited true
      • Fake CSFB – Inherited true 
      • Fake CSFB no reg – Inherited false (for SMS over NAS to work this must be false)
    • MME – Identity
      • PLMNS: 23203
      • TAC: 1
      • Group: 1
      • Code: 1
    • S1AP SCTP Listener
      • Name (Optional Identity MME Name to be sent to each eNodeB on S1Setup)
      • S1AP SCTP -> Local IP: 10.101.50.151
    • MME/SGSN common configuration
      • Local PDN (advanced setting): disabled
        (If I want PGW set on same server, I will disable ‘Local PDN’ from advanced settings MME step in YateUCN, otherwise PGW will be ignored.)
  • VLR/CSCF step
    • GW call: none
    • Always GMSC: false (as long as we have GMSC support disabled this should be false)
    • VLR sip listener
      • Role RAN
      • IPv4 address 10.101.50.151
      • Type UDP
      • Port 5070
  • GGSN/PGW step
    • Tunnels
      • tun-pdn
        • IPv4 Pool 100.82.0.2 – 100.82.255.254
        • IPv4 Interface 100.82.0.1/16
        • Interface MTU 1400
  • GTP step
    • S1 GTP interface(s)
      • IPv4 GTP-U address 10.101.50.151
    • S5 GTP interface(s)
      • IPv4 GTP-U address 10.25.50.151
    • S8/Gp/Gn GTP
      • Name: internal
      • IPv4 GTP-U address 10.35.50.151
  • APNs step
    • internet.t-mobile.at
    • PGW selection 10.35.50.151 (from My Network/Local S8) 

Profile Management

SIM Profile

  • I choose to add default profiles (using ‘Add default profile’ button) (I unchecked IMS profile and 5G profile)

PS Profile

  • APN name is the one requested by the Baicell

EPS Profile

  • Default EPS Profile: APN name is the one requested by the Baicell

Subscriber Management

SIM

  • Import SIMs (I use decrypt key if needed) with SIM Profile – DefaultISIM
  • Add MSISDN to each SIM (Ex. 43332300008) with IMSI; ICCI; IMS Profile = not active

The SIM cards I use should also contain according information: IMSI, Domain, IMPI, IMPU, SMSP with SMSC GT.