5G SCTP LoadBalancer Using LoxiLB Applying on free5GC

許博勝
13 min readJun 26, 2023

--

This is the first blog of free5GC Tech. Hope you will like!!

The blog will introduce how to archive load balance task on AMF using loxilb. AMF is a critical network function in core network. It is responsible for many tasks like access control and mobility management. This project can distribute the loading of single AMF to two or multiple AMF to promote the scalability and reliability of service.

All Network Function including AMF1、AMF2… and load balancer-LoxiLB are running on docker container and operated by docker compose v2.

The architecture is shown below:

Components in the architecture

Core Network(free5GC)

  • AMF: The function focus on access and mobility management. It is also the interface to UE and RAN
  • SMF: Session management, including: create, release and modify sessions for user traffic.
  • NRF: It is responsible for service discovery of the core network. When any NF(consumer) needs the service of other NFs(producer), the consumer shall ask NRF for the location of producer NFs at first.
  • UDM: It is responsible for the management of user identification, subscription data, authentication data, and user service network element registration management.
  • UDR: Data storage. These data include subscriber data and policy data held by UDM and PCF
  • MongoDB: It is a database tool for managing the data stored in UDR.
  • Web-UI: The front-end interface to manage the subscription data of users. Service Owner can get and modify data via this Web-UI.
  • other NFs: The above NF introduced are important components. You can refer to 3GPP spec definition for other NFs.

UE/RAN

  • This component actually includes the User Equipment(UE) and Radio Access Network(RAN). For the convenience of testing the service of core network, we usually combine them to a single component in software level. The RAN in this project will connect to loxilb(20.20.20.1) for N2 connection.

LoxiLB

  • It is a SCTP LoadBalancer for AMF. One of the function of LoxiLB is a L4/NAT stateful loadbalancer.Here it can be accessed by UE/RAN via VIP(20.20.20.1) then apply NAT to the IP(10.100.200.101). It Based on the technology of eBPF, it can archive data-path forwarding by inserting new functionality into Kernel as a sandbox program.

NAT modes in loxilb

1. Normal NAT

2. One-ARM(here used)

3. Full-NAT

4. L2-DSR mode

The load-balancing scheme used here is onearm, in this mode LoxiLB will replace source IP from the VIP(20.20.20.1) to its outgoing IP (10.100.200.101). We take the scheme for hiding the practical situation of AMF. For example, as a mobile service provider, the IP addresses of inner NFs(AMF) shall not be directly accessed by user, and the number of AMFs which serve for mobility management is also a confidential issue.

Normal NAT just replaces the DST IP to the chosen end-point IP, it does not affect the source IP when goes through LB. In the full-NAT mode, loxilb replaces the source-IP to a special instance IP. This instance IP is associated with each instance in a cluster deployment and maintained internally by loxilb.In L2-DSR (direct server return) mode, loxilb will not change any IP addresses. It just updates the layer2 header(frame header) as per selected end-point. More

One-ARM mode, refer to loxilb offcial

Summary of the IP setup(statically assign in docker compose yaml file):

  • SCTP VIP that is configured in LoxiLB: 20.20.20.1
  • LoxiLB address: 10.100.200.101
  • AMF-1 address: 10.100.200.102
  • AMF-2 address: 10.100.200.103

Preparation

or use modified version and jump to section-Execute

  • create a new config file named amf2.cfg.yaml under folder config/
# for AMF2 (amfcfg2.yaml)
info:
version: 1.0.9
description: AMF initial local configuration

configuration:
amfName: AMF2 # the name of this AMF
ngapIpList: # the IP list of N2 interfaces on this AMF
- amf2.free5gc.org
ngapPort: 38412 # the SCTP port listened by NGAP
sbi: # Service-based interface information
scheme: http # the protocol for sbi (http or https)
registerIPv4: amf2.free5gc.org # IP used to register to NRF
bindingIPv4: amf2.free5gc.org # IP used to bind the service
port: 8000 # port used to bind the service
tls: # the local path of TLS key
pem: cert/amf.pem # AMF TLS Certificate
key: cert/amf.key # AMF TLS Private key
serviceNameList: # the SBI services provided by this AMF, refer to TS 29.518
- namf-comm # Namf_Communication service
- namf-evts # Namf_EventExposure service
- namf-mt # Namf_MT service
- namf-loc # Namf_Location service
- namf-oam # OAM service
servedGuamiList: # Guami (Globally Unique AMF ID) list supported by this AMF
# <GUAMI> = <MCC><MNC><AMF ID>
- plmnId: # Public Land Mobile Network ID, <PLMN ID> = <MCC><MNC>
mcc: 208 # Mobile Country Code (3 digits string, digit: 0~9)
mnc: 93 # Mobile Network Code (2 or 3 digits string, digit: 0~9)
amfId: cafe00 # AMF identifier (3 bytes hex string, range: 000000~FFFFFF)
supportTaiList: # the TAI (Tracking Area Identifier) list supported by this AMF
- plmnId: # Public Land Mobile Network ID, <PLMN ID> = <MCC><MNC>
mcc: 208 # Mobile Country Code (3 digits string, digit: 0~9)
mnc: 93 # Mobile Network Code (2 or 3 digits string, digit: 0~9)
tac: 000001 # Tracking Area Code (3 bytes hex string, range: 000000~FFFFFF)
plmnSupportList: # the PLMNs (Public land mobile network) list supported by this AMF
- plmnId: # Public Land Mobile Network ID, <PLMN ID> = <MCC><MNC>
mcc: 208 # Mobile Country Code (3 digits string, digit: 0~9)
mnc: 93 # Mobile Network Code (2 or 3 digits string, digit: 0~9)
snssaiList: # the S-NSSAI (Single Network Slice Selection Assistance Information) list supported by this AMF
- sst: 1 # Slice/Service Type (uinteger, range: 0~255)
sd: 010203 # Slice Differentiator (3 bytes hex string, range: 000000~FFFFFF)
- sst: 1 # Slice/Service Type (uinteger, range: 0~255)
sd: 112233 # Slice Differentiator (3 bytes hex string, range: 000000~FFFFFF)
supportDnnList: # the DNN (Data Network Name) list supported by this AMF
- internet
nrfUri: http://nrf.free5gc.org:8000 # a valid URI of NRF
security: # NAS security parameters
integrityOrder: # the priority of integrity algorithms
- NIA2
# - NIA0
cipheringOrder: # the priority of ciphering algorithms
- NEA0
# - NEA2
networkName: # the name of this core network
full: free5GC
short: free
ngapIE: # Optional NGAP IEs
mobilityRestrictionList: # Mobility Restriction List IE, refer to TS 38.413
enable: true # append this IE in related message or not
maskedIMEISV: # Masked IMEISV IE, refer to TS 38.413
enable: true # append this IE in related message or not
redirectionVoiceFallback: # Redirection Voice Fallback IE, refer to TS 38.413
enable: false # append this IE in related message or not
nasIE: # Optional NAS IEs
networkFeatureSupport5GS: # 5gs Network Feature Support IE, refer to TS 24.501
enable: true # append this IE in Registration accept or not
length: 1 # IE content length (uinteger, range: 1~3)
imsVoPS: 0 # IMS voice over PS session indicator (uinteger, range: 0~1)
emc: 0 # Emergency service support indicator for 3GPP access (uinteger, range: 0~3)
emf: 0 # Emergency service fallback indicator for 3GPP access (uinteger, range: 0~3)
iwkN26: 0 # Interworking without N26 interface indicator (uinteger, range: 0~1)
mpsi: 0 # MPS indicator (uinteger, range: 0~1)
emcN3: 0 # Emergency service support indicator for Non-3GPP access (uinteger, range: 0~1)
mcsi: 0 # MCS indicator (uinteger, range: 0~1)
t3502Value: 720 # timer value (seconds) at UE side
t3512Value: 3600 # timer value (seconds) at UE side
non3gppDeregTimerValue: 3240 # timer value (seconds) at UE side
# retransmission timer for paging message
t3513:
enable: true # true or false
expireTime: 6s # default is 6 seconds
maxRetryTimes: 4 # the max number of retransmission
# retransmission timer for NAS Deregistration Request message
t3522:
enable: true # true or false
expireTime: 6s # default is 6 seconds
maxRetryTimes: 4 # the max number of retransmission
# retransmission timer for NAS Registration Accept message
t3550:
enable: true # true or false
expireTime: 6s # default is 6 seconds
maxRetryTimes: 4 # the max number of retransmission
# retransmission timer for NAS Authentication Request/Security Mode Command message
t3560:
enable: true # true or false
expireTime: 6s # default is 6 seconds
maxRetryTimes: 4 # the max number of retransmission
# retransmission timer for NAS Notification message
t3565:
enable: true # true or false
expireTime: 6s # default is 6 seconds
maxRetryTimes: 4 # the max number of retransmission
# retransmission timer for NAS Identity Request message
t3570:
enable: true # true or false
expireTime: 6s # default is 6 seconds
maxRetryTimes: 4 # the max number of retransmission
locality: area1 # Name of the location where a set of AMF, SMF, PCF and UPFs are located
sctp: # set the sctp server setting <optinal>, once this field is set, please also add maxInputStream, maxOsStream, maxAttempts, maxInitTimeOut
numOstreams: 3 # the maximum out streams of each sctp connection
maxInstreams: 5 # the maximum in streams of each sctp connection
maxAttempts: 2 # the maximum attempts of each sctp connection
maxInitTimeout: 2 # the maximum init timeout of each sctp connection
defaultUECtxReq: false # the default value of UE Context Request to decide when triggering Initial Context Setup procedure

logger: # log output setting
enable: true # true or false
level: info # how detailed to output, value: trace, debug, info, warn, error, fatal, panic
reportCaller: false # enable the caller report or not, value: true or false
  • modify the file docker-compose.yaml

Add a service that enable loxilb and assign the static IPv4(10.100.200.101) to loxilb. Here we get the loxilb official image and add some options from the instruction from loxilb official website

services:
# add a new service
loxilb:
container_name: lb
image: ghcr.io/loxilb-io/loxilb:latestu22
# command: loxicmd create lb 20.20.20.1 --sctp=38412:38412 --endpoints=10.100.200.102:1,10.100.200.103:1 --mode=onearm
cap_add:
- SYS_ADMIN
privileged: true
networks:
privnet:
ipv4_address: 10.100.200.101
aliases:
- lb.free5gc.org
depends_on:
- free5gc-amf
- free5gc-amf2

Modify the service named free5gc-amf, just need to assign a static IPv4(10.100.200.102) for amf to communicate to loxilb .

  free5gc-amf:
container_name: amf
image: free5gc/amf:v3.3.0
command: ./amf -c ./config/amfcfg.yaml
expose:
- "8000"
volumes:
- ./config/amfcfg.yaml:/free5gc/config/amfcfg.yaml
environment:
GIN_MODE: release
networks:
privnet:
#just need to add this line
ipv4_address: 10.100.200.102
aliases:
- amf.free5gc.org
depends_on:
- free5gc-nrf

Add a service named free5gc-amf2. We need this amf to release the loading of original amf. At default, we assign the loading to the two AMF equally.

# Add new service in compose file:
free5gc-amf2:
container_name: amf2
image: free5gc/amf:v3.3.0
command: ./amf -c ./config/amfcfg.yaml
expose:
- "8000"
volumes:
- ./config/amf2cfg.yaml:/free5gc/config/amfcfg.yaml
environment:
GIN_MODE: release
networks:
privnet:
ipv4_address: 10.100.200.103
aliases:
- amf2.free5gc.org
depends_on:
- free5gc-nrf
- free5gc-amf

Modify the service named ueransim. You need to add a new command to create routing rule in route table. It will enable the gnb to connect to loxilb

  ueransim:
container_name: ueransim
image: free5gc/ueransim:latest
command: bash -c "ip route add 20.20.20.1/32 dev eth0 via 10.100.200.101 && \
sleep infinity"
  • modify the file config/gnbcfg.yaml

Modify the information of AMF in gnb from direct access to indirect access through loxilb. You need to set the IP address under amfConfigs to VIP of lixilb(20.20.20.1)

# List of AMF address information
amfConfigs:
- address: 20.20.20.1
port: 38412
  • Finally, the required file are prepared, then enter these instructions below on the terminal under the project folder.

Execute

  1. sudo docker compose pull: pull the image, it will take some time.
  2. sudo docker compose up: activate all container(services) and set up the environment . Notice: add option -d to run these service in background
ben10ten@ubuntu:~/free5gc-compose$ sudo docker compose up -d
[+] Running 15/15
✔ Container lb Started 1.7s
✔ Container mongodb Started 1.4s
✔ Container upf Started 1.7s
✔ Container nrf Started 1.9s
✔ Container webui Started 2.0s
✔ Container ausf Started 3.1s
✔ Container nssf Started 2.6s
✔ Container smf Started 2.9s
✔ Container udr Started 2.8s
✔ Container amf Started 3.0s
✔ Container pcf Started 2.8s
✔ Container udm Started 3.0s
✔ Container amf2 Started 2.8s
✔ Container ueransim Started 3.7s
✔ Container n3iwf Started 3.4s

3. sudo docker exec -it lb bash: enter the bash of loxilb for next instruction

4. enter below instruction to create SCTP connection between UE/RAN and AMF&AMF2. Notice: loxicmd is a build-in command provided by LoxiLB, the more information can get from here

loxicmd create lb 20.20.20.1 --sctp=38412:38412 --endpoints=10.100.200.102:1,10.100.200.103:1 --mode=onearm
root@1a806bcc176a:/# loxicmd create lb 20.20.20.1 --sctp=38412:38412 --endpoints=10.100.200.102:1,10.100.200.103:1 --mode=onearm
ProtoPortpair: map[sctp:[38412:38412]]
Debug: response.StatusCode: 200
Success
root@1a806bcc176a:/#
root@1a806bcc176a:/#
root@1a806bcc176a:/# loxicmd get lb
| EXTERNAL IP | PORT | PROTOCOL | BLOCK | SELECT | MODE | # OF ENDPOINTS | MONITOR |
|-------------|-------|----------|-------|--------|--------|----------------|---------|
| 20.20.20.1 | 38412 | sctp | 0 | rr | onearm | 2 | Off |
root@1a806bcc176a:/# loxicmd get ct
| DESTINATIONIP | SOURCEIP | DESTINATIONPORT | SOURCEPORT | PROTOCOL | STATE | ACT | PACKETS | BYTES |
|----------------|----------------|-----------------|------------|----------|-------|-----|---------|-------|
| 10.100.200.101 | 10.100.200.102 | 12346 | 38412 | sctp | init | | 3 | 364 |
| 10.100.200.102 | 10.100.200.101 | 38412 | 12346 | sctp | init | | 0 | 0 |

5. gnb try to connect to loxilb using SCTP connection

sudo docker exec -it ueransim  bash
./nr-gnb -c ./config/gnbcfg.yaml

then you will see SCTP connection to loxilb(20.20.20.1:38412) successful.

sudo docker exec -it ueransim  bash
root@4e00dd72380a:/ueransim# ./nr-gnb -c ./config/gnbcfg.yaml
UERANSIM v3.2.6
[2023-06-26 07:51:05.995] [sctp] [info] Trying to establish SCTP connection... (20.20.20.1:38412)
[2023-06-26 07:51:06.002] [sctp] [info] SCTP connection established (20.20.20.1:38412)
[2023-06-26 07:51:06.004] [sctp] [debug] SCTP association setup ascId[94643]
[2023-06-26 07:51:06.005] [ngap] [debug] Sending NG Setup Request
[2023-06-26 07:51:06.009] [ngap] [debug] NG Setup Response received
[2023-06-26 07:51:06.009] [ngap] [info] NG Setup procedure is successful

6. Check whether loxilb will distribute N2 connection to both amf and amf2 equally. If you make gnb connect to server twice, amf and amf2 will recieve gnb set up request once respective. Then it means this project success!!

AMF-1 shown logs

ben10ten@ubuntu:~/free5gc-compose$ sudo docker logs amf
2023-06-26T07:47:24.828038598Z [INFO][AMF][Main] AMF version:
free5GC version: v3.3.0
build time: 2023-06-08T16:36:08Z
commit hash: 7907d3c0
commit time: 2023-05-20T15:04:00Z
go version: go1.17.13 linux/amd64
2023-06-26T07:47:24.828204104Z [INFO][AMF][CFG] Read config from [./config/amfcfg.yaml]
2023-06-26T07:47:24.829468310Z [INFO][AMF][Main] Log enable is set to [true]
2023-06-26T07:47:24.831784113Z [INFO][AMF][Main] Log level is set to [info]
2023-06-26T07:47:24.831850314Z [INFO][AMF][Main] Report Caller is set to [false]
2023-06-26T07:47:24.831873707Z [INFO][AMF][Util] amfconfig Info: Version[1.0.9]
2023-06-26T07:47:24.831957848Z [INFO][AMF][Init] Server started
2023-06-26T07:47:24.832157965Z [INFO][AMF][Util] amfconfig Info: Version[1.0.9]
2023-06-26T07:47:24.834107545Z [INFO][AMF][Ngap] Listen on 10.100.200.102:38412
2023-06-26T07:47:25.573582701Z [INFO][AMF][Ngap] [AMF] SCTP Accept from: 10.100.200.12/10.0.0.1:57269
2023-06-26T07:47:25.574636783Z [INFO][AMF][Ngap] Create a new NG connection for: 10.100.200.12/10.0.0.1:57269
2023-06-26T07:47:25.575189765Z [INFO][AMF][Ngap][ran_addr:10.100.200.12/10.0.0.1:57269] Handle NGSetupRequest
2023-06-26T07:47:25.575211079Z [WARN][AMF][Ngap][ran_addr:10.100.200.12/10.0.0.1:57269] Missing IE PagingDRX
2023-06-26T07:47:25.576138454Z [INFO][AMF][Ngap][ran_addr:10.100.200.12/10.0.0.1:57269] Send NG-Setup response

AMF-2 shown logs

ben10ten@ubuntu:~/free5gc-compose$ sudo docker logs amf2
2023-06-26T07:47:25.601918280Z [INFO][AMF][Main] AMF version:
free5GC version: v3.3.0
build time: 2023-06-08T16:36:08Z
commit hash: 7907d3c0
commit time: 2023-05-20T15:04:00Z
go version: go1.17.13 linux/amd64
2023-06-26T07:47:25.602023683Z [INFO][AMF][CFG] Read config from [./config/amfcfg.yaml]
2023-06-26T07:47:25.607162655Z [INFO][AMF][Main] Log enable is set to [true]
2023-06-26T07:47:25.607236711Z [INFO][AMF][Main] Log level is set to [info]
2023-06-26T07:47:25.607245019Z [INFO][AMF][Main] Report Caller is set to [false]
2023-06-26T07:47:25.607250253Z [INFO][AMF][Util] amfconfig Info: Version[1.0.9]
2023-06-26T07:47:25.607280706Z [INFO][AMF][Init] Server started
2023-06-26T07:47:25.607425465Z [INFO][AMF][Util] amfconfig Info: Version[1.0.9]
2023-06-26T07:47:25.623473185Z [INFO][AMF][Ngap] Listen on 10.100.200.103:38412
2023-06-26T07:49:13.081596056Z [INFO][AMF][Ngap] [AMF] SCTP Accept from: <nil>
2023-06-26T07:49:13.082042589Z [INFO][AMF][Ngap] Handle SCTP Connection Error[addr: <nil>] - remove RAN
2023-06-26T07:49:13.082086577Z [WARN][AMF][Ngap] RAN context has been removed[addr: <nil>]
2023-06-26T07:51:21.079581202Z [INFO][AMF][Ngap] [AMF] SCTP Accept from: <nil>
2023-06-26T07:51:21.080275787Z [ERRO][AMF][Ngap] Handle connection[addr: <nil>] error: transport endpoint is not connected
2023-06-26T07:51:21.080362647Z [INFO][AMF][Ngap] Handle SCTP Connection Error[addr: <nil>] - remove RAN
2023-06-26T07:51:21.080382611Z [WARN][AMF][Ngap] RAN context has been removed[addr: <nil>]
2023-06-26T07:51:45.869300460Z [INFO][AMF][Ngap] [AMF] SCTP Accept from: 10.100.200.101:54648
2023-06-26T07:51:45.871071251Z [INFO][AMF][Ngap] Create a new NG connection for: 10.100.200.101:54648
2023-06-26T07:51:45.873265293Z [INFO][AMF][Ngap][ran_addr:10.100.200.101:54648] Handle NGSetupRequest
2023-06-26T07:51:45.873364950Z [INFO][AMF][Ngap][ran_addr:10.100.200.101:54648] Send NG-Setup response

7. (optional): Establish PDU-session for UE to connect to Data Network

Terminal-1

ben10ten@ubuntu:~/free5gc-compose$ sudo docker exec -it ueransim  /bin/bash
root@3ca86a8b1084:/ueransim# ./nr-ue -c ./config/uecfg.yaml
UERANSIM v3.2.6
[2023-06-25 18:42:28.100] [nas] [info] UE switches to state [MM-DEREGISTERED/PLMN-SEARCH]
[2023-06-25 18:42:28.101] [rrc] [debug] New signal detected for cell[1], total [1] cells in coverage
[2023-06-25 18:42:28.102] [nas] [info] Selected plmn[208/93]
[2023-06-25 18:42:28.102] [rrc] [info] Selected cell plmn[208/93] tac[1] category[SUITABLE]
[2023-06-25 18:42:28.102] [nas] [info] UE switches to state [MM-DEREGISTERED/PS]
[2023-06-25 18:42:28.103] [nas] [info] UE switches to state [MM-DEREGISTERED/NORMAL-SERVICE]
[2023-06-25 18:42:28.103] [nas] [debug] Initial registration required due to [MM-DEREG-NORMAL-SERVICE]
[2023-06-25 18:42:28.104] [nas] [debug] UAC access attempt is allowed for identity[0], category[MO_sig]
[2023-06-25 18:42:28.104] [nas] [debug] Sending Initial Registration
[2023-06-25 18:42:28.104] [nas] [info] UE switches to state [MM-REGISTER-INITIATED]
[2023-06-25 18:42:28.104] [rrc] [debug] Sending RRC Setup Request
[2023-06-25 18:42:28.105] [rrc] [info] RRC connection established
[2023-06-25 18:42:28.105] [rrc] [info] UE switches to state [RRC-CONNECTED]
[2023-06-25 18:42:28.106] [nas] [info] UE switches to state [CM-CONNECTED]
[2023-06-25 18:42:28.139] [nas] [debug] Authentication Request received
[2023-06-25 18:42:28.151] [nas] [debug] Security Mode Command received
[2023-06-25 18:42:28.151] [nas] [debug] Selected integrity[2] ciphering[0]
[2023-06-25 18:42:28.196] [nas] [debug] Registration accept received
[2023-06-25 18:42:28.196] [nas] [info] UE switches to state [MM-REGISTERED/NORMAL-SERVICE]
[2023-06-25 18:42:28.196] [nas] [debug] Sending Registration Complete
[2023-06-25 18:42:28.196] [nas] [info] Initial Registration is successful
[2023-06-25 18:42:28.196] [nas] [debug] Sending PDU Session Establishment Request
[2023-06-25 18:42:28.196] [nas] [debug] UAC access attempt is allowed for identity[0], category[MO_sig]
[2023-06-25 18:42:28.473] [nas] [debug] PDU Session Establishment Accept received
[2023-06-25 18:42:28.475] [nas] [info] PDU Session establishment is successful PSI[1]
[2023-06-25 18:42:28.491] [app] [info] Connection setup for PDU session[1] is successful, TUN interface[uesimtun0, 10.60.0.1] is up.

Terminal-2

ben10ten@ubuntu:~/free5gc-compose$ sudo docker exec -it ueransim  /bin/bash
root@3ca86a8b1084:/ueransim# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
3: ip_vti0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
4: uesimtun0: <POINTOPOINT,PROMISC,NOTRAILERS,UP,LOWER_UP> mtu 1400 qdisc fq_codel state UNKNOWN group default qlen 500
link/none
inet 10.60.0.1/32 scope global uesimtun0
valid_lft forever preferred_lft forever
935: eth0@if936: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:0a:64:c8:0c brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.100.200.12/24 brd 10.100.200.255 scope global eth0
valid_lft forever preferred_lft forever
root@3ca86a8b1084:/ueransim# ping -I uesimtun0 google.com -c 3
PING google.com (172.217.160.110) from 10.60.0.1 uesimtun0: 56(84) bytes of data.
64 bytes from tsa03s06-in-f14.1e100.net (172.217.160.110): icmp_seq=1 ttl=56 time=4.90 ms
64 bytes from tsa03s06-in-f14.1e100.net (172.217.160.110): icmp_seq=2 ttl=56 time=4.34 ms
64 bytes from tsa03s06-in-f14.1e100.net (172.217.160.110): icmp_seq=3 ttl=56 time=4.57 ms

--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 4.339/4.602/4.903/0.231 ms

REFERENCES

Author Profile

Hello, it’s my first 5GC related technology article. My belonging institution is free5gc.org which are developing the 5G Core Network. Below is my personal GitHub page and LinkedIn profile, welcome to contact me if you have any question.

--

--