OAI网络切片三切片配置


先看
基于之前已经创建的三个核心网,我们现在需要将服务器A与主机B用三个网线直连,然后在服务器A的单个虚拟机中同时启动三个核心网,主机B的单个虚拟机中同时启动三个基站,构建三套互相独立的仿真OAI核心网——ueransim基站。

1. 机器网络配置

机器网络配置过程如下
由于使用了虚拟机,网络配置较为复杂,需要最终映射到在虚拟机中三根网线分别一对一直连。

使用主机B只有一个网口,使用了两个USB转网口扩展了两个网口,图中左、中、右分别对应。
在这里插入图片描述
图中由windows里的网络适配器桥接映射到虚拟机的VMnet,再依次对应Ubuntu中的ens。
对应关系如下:
最左侧的网线————ASIX AX88772C USB2.0 to Fast Ethernet Adapter ————网络适配器6(VMnet4)——(00:0C:29:9B:47:50)——ens39

中间网线————ASIX AX88772C USB2.0 to Fast Ethernet Adapter #5 ————网络适配器5(VMnet3)——(00:0C:29:9B:47:46)——ens41

右边网线————Realtek PCIe GbE Family Controller ————网络适配器4(VMnet2)——(00:0C:29:9B:47:3C)——ens40
在这里插入图片描述
通过查看MAC地址,匹配虚拟机里的Vmnetx与Ubuntu里的ensxx
在这里插入图片描述

如下为服务器A的网口,从左到右分别为NIC4 NIC3 NIC2 NIC1,其中NIC1未使用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

从核心网到主机的连接如下:
ens33————(00:0C:29:B7:1E:CA)VMnet4————Broadcom NetXtreme Gigabit Ethernet————NIC4————最左侧的网线————ASIX AX88772C USB2.0 to Fast Ethernet Adapter ————网络适配器6(VMnet4)————ens41

ens38————(00:0C:29:B7:1E:C0)VMnet3————Broadcom NetXtreme Gigabit Ethernet #4————NIC3————中间网线————ASIX AX88772C USB2.0 to Fast Ethernet Adapter #5 ————网络适配器5(VMnet3)————ens40

ens37————(00:0C:29:B7:1E;B6)VMnet2————Broadcom NetXtreme Gigabit Ethernet #3————NIC2————右边网线————Realtek PCIe GbE Family Controller ————网络适配器4(VMnet2)————ens39

然后在Ubuntu内配置各个网口为对应的静态ip,一一对应的网口之间使用同一网段。
打算使用网段如下:

NIC2对应网线:网段:192.168.12.x 对应的网口:主机ens39(192.168.12.33) 服务器ens37(192.168.12.3)
NIC3对应网线:网段:192.168.13.x 对应的网口:主机ens40(192.168.13.33) 服务器ens38 (192.168.13.3)
NIC4对应网线:网段:192.168.14.x 对应的网口:主机ens41(192.168.14.33) 服务器ens33 (192.168.14.3)

先配置主机的网络
打开网络配置文件

lab@lab-virtual-machine:/etc/netplan$ sudo vim 01-network-manager-all.yaml 

配置网络文件

 version: 2
  renderer: NetworkManager
  ethernets:
          ens39:
                  addresses: [192.168.12.33/24]
                  dhcp4: no
                  gateway4: 192.168.12.1
                  nameservers:
                          addresses: [8.8.8.8,144.144.144.144,255.255.255.25]
          ens40:
                  addresses: [192.168.13.33/24]
                  dhcp4: no
                  gateway4: 192.168.13.1
                  nameservers:
                          addresses: [8.8.8.8,144.144.144.144,255.255.255.255]
          ens41:
                  addresses: [192.168.14.33/24]
                  dhcp4: no
                  gateway4: 192.168.14.1
                  nameservers:
                          addresses: [8.8.8.8,144.144.144.144,255.255.255.255]

应用网络设置

lab@lab-virtual-machine:/etc/netplan$ sudo netplan apply

再配置服务器A的网络:

 version: 2
  renderer: NetworkManager
  ethernets:
          ens37:
                  addresses: [192.168.12.3/24]
                  dhcp4: no
                  gateway4: 192.168.12.1
                  nameservers:
                          addresses: [8.8.8.8,144.144.144.144,255.255.255.25]
          ens38:
                  addresses: [192.168.13.3/24]
                  dhcp4: no
                  gateway4: 192.168.13.1
                  nameservers:
                          addresses: [8.8.8.8,144.144.144.144,255.255.255.255]
          ens33:
                  addresses: [192.168.14.3/24]
                  dhcp4: no
                  gateway4: 192.168.14.1
                  nameservers:
                         addrsses: [8.8.8.8,144.144.144.144,255.255.255.255]

测试是否成功:
从主机A ping服务器B
在这里插入图片描述
从服务器Aping同样成功·

2.核心网配置

详见OAI多核心网配置过程
核心网创建了3个,如下
其中核心网0是官方的,核心网1与核心网3是在官方基础上通过改标签复制了镜像,再修改yaml文件自己构造的。

核心网启动文件使用网段对应网段使用images
核心网0docker-compose-basic-vpp-nrf.yaml192.168.7x.x192.168.12.xoaisoftwarealliance/oai-xxx:v1.5.0
核心网2docker-compose-basic-vpp-nrf1.yaml192.168.1x.x192.168.13.xoaisoftwarealliance/oai-xxx:1.5.1
核心网3docker-compose-basic-vpp-nrf3.yaml192.168.3x.x192.168.14.xoaisoftwarealliance/oai-xxx:1.5.3

这三个核心网经测试可以在服务器A中同时启动:

docker-compose -f docker-compose-basic-vpp-nrf.yaml up -d
docker-compose -f docker-compose-basic-vpp-nrf1.yaml up -d
docker-compose -f docker-compose-basic-vpp-nrf3.yaml up -d

网元容器:
在这里插入图片描述
在这里插入图片描述
网络:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置文件分别如下:
docker-compose-basic-vpp-nrf

version: '3.8'
services:
    mysql:
        container_name: "mysql"
        image: mysql:8.0
        volumes:
            - ./database/oai_db2.sql:/docker-entrypoint-initdb.d/oai_db.sql
            - ./healthscripts/mysql-healthcheck2.sh:/tmp/mysql-healthcheck.sh
        environment:
            - TZ=Europe/Paris
            - MYSQL_DATABASE=oai_db
            - MYSQL_USER=test
            - MYSQL_PASSWORD=test
            - MYSQL_ROOT_PASSWORD=linux
        healthcheck:
            test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
            interval: 10s
            timeout: 5s
            retries: 30
        networks:
            public_net:
                ipv4_address: 192.168.70.131
    oai-udr:
        container_name: "oai-udr"
        image: oaisoftwarealliance/oai-udr:v1.5.0
        environment:
            - TZ=Europe/Paris
            - UDR_NAME=OAI_UDR
            - UDR_INTERFACE_NAME_FOR_NUDR=eth0
            - MYSQL_IPV4_ADDRESS=192.168.70.131
            - MYSQL_USER=test
            - MYSQL_PASS=test
            - MYSQL_DB=oai_db
            - WAIT_MYSQL=120
            - USE_FQDN_DNS=yes
            - REGISTER_NRF=yes
            - NRF_IPV4_ADDRESS=192.168.70.130
            - NRF_FQDN=oai-nrf
        depends_on:
            - mysql
            - oai-nrf
        networks:
            public_net:
                ipv4_address: 192.168.70.136
    oai-udm:
        container_name: "oai-udm"
        image: oaisoftwarealliance/oai-udm:v1.5.0
        environment:
            - TZ=Europe/Paris
            - UDM_NAME=OAI_UDM
            - SBI_IF_NAME=eth0
            - REGISTER_NRF=yes
            - USE_FQDN_DNS=yes
            - UDR_IP_ADDRESS=192.168.70.136
            - UDR_FQDN=oai-udr
            - NRF_IPV4_ADDRESS=192.168.70.130
            - NRF_FQDN=oai-nrf
        depends_on:
            - oai-udr
        networks:
            public_net:
                ipv4_address: 192.168.70.137
    oai-ausf:
        container_name: "oai-ausf"
        image: oaisoftwarealliance/oai-ausf:v1.5.0
        environment:
            - TZ=Europe/Paris
            - AUSF_NAME=OAI_AUSF
            - SBI_IF_NAME=eth0
            - USE_FQDN_DNS=yes
            - REGISTER_NRF=yes
            - UDM_IP_ADDRESS=192.168.70.137
            - UDM_FQDN=oai-udm
            - NRF_IPV4_ADDRESS=192.168.70.130
            - NRF_FQDN=oai-nrf
        depends_on:
            - oai-udm
        networks:
            public_net:
                ipv4_address: 192.168.70.138
    oai-nrf:
        container_name: "oai-nrf"
        image: oaisoftwarealliance/oai-nrf:v1.5.0
        environment:
            - TZ=Europe/Paris
            - NRF_INTERFACE_NAME_FOR_SBI=eth0
        networks:
            public_net:
                ipv4_address: 192.168.70.130
    oai-amf:
        container_name: "oai-amf"
        image: oaisoftwarealliance/oai-amf:v1.5.0
        environment:
            - TZ=Europe/paris
            - MCC=208
            - MNC=95
            - REGION_ID=128
            - AMF_SET_ID=1
            - SERVED_GUAMI_MCC_0=208
            - SERVED_GUAMI_MNC_0=95
            - SERVED_GUAMI_REGION_ID_0=128
            - SERVED_GUAMI_AMF_SET_ID_0=1
            - SERVED_GUAMI_MCC_1=460
            - SERVED_GUAMI_MNC_1=11
            - SERVED_GUAMI_REGION_ID_1=10
            - SERVED_GUAMI_AMF_SET_ID_1=1
            - PLMN_SUPPORT_MCC=208
            - PLMN_SUPPORT_MNC=95
            - PLMN_SUPPORT_TAC=0xa000
            # Slice 0 (222, 123)
            - SST_0=222
            - SD_0=123
            # Slice 0 (128, 12)
            - SST_1=128
            - SD_1=12
            - AMF_INTERFACE_NAME_FOR_NGAP=eth0
            - AMF_INTERFACE_NAME_FOR_N11=eth0
            # One single SMF instance
            - SMF_INSTANCE_ID_0=1
            - SMF_FQDN_0=oai-smf
            - SMF_IPV4_ADDR_0=192.168.70.133
            - SELECTED_0=true
            - NF_REGISTRATION=yes
            - SMF_SELECTION=yes
            - USE_FQDN_DNS=yes
            - EXTERNAL_AUSF=yes
            - EXTERNAL_UDM=no
            - EXTERNAL_NSSF=no
            - NRF_IPV4_ADDRESS=192.168.70.130
            - NRF_FQDN=oai-nrf
            - AUSF_IPV4_ADDRESS=192.168.70.138
            - AUSF_FQDN=oai-ausf
            - UDM_IPV4_ADDRESS=192.168.70.137
            - UDM_FQDN=oai-udm
            - INT_ALGO_LIST=[ "NIA1" , "NIA2"]
            - CIPH_ALGO_LIST=[ "NEA1" , "NEA2"]
        depends_on:
            - mysql
            - vpp-upf
            - oai-ext-dn
            - oai-ausf
        networks:
            public_net:
                ipv4_address: 192.168.70.132
    oai-smf:
        container_name: "oai-smf"
        image: oaisoftwarealliance/oai-smf:v1.5.0
        environment:
            - TZ=Europe/Paris
            - SMF_INTERFACE_NAME_FOR_N4=eth0
            - SMF_INTERFACE_NAME_FOR_SBI=eth0
            - DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
            - DEFAULT_DNS_SEC_IPV4_ADDRESS=8.8.8.8
            - AMF_IPV4_ADDRESS=192.168.70.132
            - AMF_FQDN=oai-amf
            - UDM_IPV4_ADDRESS=192.168.70.137
            - UDM_FQDN=oai-udm
            - UPF_IPV4_ADDRESS=192.168.70.201
            - UPF_FQDN_0=vpp-upf.node.5gcn.mnc95.mcc208.3gppnetwork.org
            - NRF_IPV4_ADDRESS=192.168.70.130
            - NRF_FQDN=oai-nrf
            - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1  # only needed when ims is being used
            - USE_LOCAL_SUBSCRIPTION_INFO=yes  #Set to yes if SMF uses local subscription information instead of from an UDM
            - REGISTER_NRF=yes
            - DISCOVER_UPF=yes
            - USE_FQDN_DNS=yes
            - USE_NETWORK_INSTANCE=yes
            - ENABLE_USAGE_REPORTING=yes
            # Slice 0 (1, 0xFFFFFF)
            - DNN_NI0=oai
            - TYPE0=IPv4
            - DNN_RANGE0=12.1.1.151 - 12.1.1.253
            - NSSAI_SST0=1
            - SESSION_AMBR_UL0=200Mbps
            - SESSION_AMBR_DL0=400Mbps
            # Slice 1 (1, 1)
            - DNN_NI1=oai.ipv4
            - TYPE1=IPv4
            - DNN_RANGE1=12.1.1.51 - 12.1.1.150
            - NSSAI_SST1=1
            - NSSAI_SD1=1
            - SESSION_AMBR_UL1=100Mbps
            - SESSION_AMBR_DL1=200Mbps
            # Slice 2 (222, 123)
            - DNN_NI2=default
            - TYPE2=IPv4
            - DNN_RANGE2=12.1.1.2 - 12.1.1.50
            - NSSAI_SST2=222
            - NSSAI_SD2=123
            - SESSION_AMBR_UL2=50Mbps
            - SESSION_AMBR_DL2=100Mbps
            # Slice 3 for ims
            - DNN_NI3=ims
            - TYPE3=IPv4v6
            - DNN_RANGE3=14.1.1.2 - 14.1.1.253
        extra_hosts:
            - "vpp-upf.node.5gcn.mnc95.mcc208.3gppnetwork.org:192.168.70.201"
        depends_on:
            - oai-amf
        networks:
            public_net:
                ipv4_address: 192.168.70.133
    vpp-upf:
        privileged: true
        container_name: "vpp-upf"
        image: oaisoftwarealliance/oai-upf-vpp:v1.5.0
        environment:
            - IF_1_IP=192.168.70.201
            - IF_1_TYPE=N4
            - IF_2_IP=192.168.72.201
            - IF_2_TYPE=N3
            - IF_2_NWI=access.oai.org
            - IF_3_IP=192.168.73.201
            - IF_3_TYPE=N6
            - IF_3_IP_REMOTE=192.168.73.135 # EXT-DN IP Address
            - IF_3_NWI=internet.oai.org
            - NAME=VPP-UPF
            - MNC=95
            - MCC=208
            - REALM=3gppnetwork.org
            - VPP_MAIN_CORE=0
            - VPP_CORE_WORKER=1
#           - VPP_PLUGIN_PATH=/usr/lib64/vpp_plugins/                # RHEL7
            - VPP_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/vpp_plugins/ # Ubntu18.04
            - SNSSAI_SD=123
            - SNSSAI_SST=222
            - DNN=default
            - REGISTER_NRF=yes
            - NRF_IP_ADDR=192.168.70.130
            - NRF_PORT=80
            - HTTP_VERSION=1
        depends_on:
            - oai-nrf
        healthcheck:
            test: /bin/bash -c "pgrep vpp"
            interval: 10s
            timeout: 5s
            retries: 5
        networks:
            public_net:
                ipv4_address: 192.168.70.134
            public_net_access:
                ipv4_address: 192.168.72.134
            public_net_core:
                ipv4_address: 192.168.73.134
    oai-ext-dn:
        privileged: true
        init: true
        container_name: "oai-ext-dn"
        image: oaisoftwarealliance/trf-gen-cn5g:latest
        entrypoint: /bin/bash -c \
              "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
              "ip route add 12.1.1.0/24 via 192.168.73.201 dev eth0; ip route; sleep infinity"
        command: ["/bin/bash", "-c", "trap : SIGTERM SIGINT; sleep infinity & wait"]
        healthcheck:
            test: /bin/bash -c "iptables -L -t nat | grep MASQUERADE"
            interval: 10s
            timeout: 5s
            retries: 5
        networks:
            public_net_core:
                ipv4_address: 192.168.73.135
networks:
    public_net:
        driver: bridge
        name: demo-oai-public-net
        ipam:
            config:
                - subnet: 192.168.70.0/24
        driver_opts:
            com.docker.network.bridge.name: "demo-oai"
    public_net_access:
        name: oai-public-access
        ipam:
            config:
                - subnet: 192.168.72.0/24
        driver_opts:
            com.docker.network.bridge.name: "cn5g-access"
    public_net_core:
        name: oai-public-core
        ipam:
            config:
                - subnet: 192.168.73.0/24
        driver_opts:
            com.docker.network.bridge.name: "cn5g-core"

docker-compose-basic-vpp-nrf2


version: '3.8'
services:
    mysql2:
        container_name: "mysql2"
        image: mysql:8.1
        volumes:
            - ./database/oai_db2.sql:/docker-entrypoint-initdb.d/oai_db.sql
            - ./healthscripts/mysql-healthcheck2.sh:/tmp/mysql-healthcheck.sh
        environment:
            - TZ=Europe/Paris
            - MYSQL_DATABASE=oai_db
            - MYSQL_USER=test
            - MYSQL_PASSWORD=test
            - MYSQL_ROOT_PASSWORD=linux
        healthcheck:
            test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
            interval: 10s
            timeout: 5s
            retries: 30
        networks:
            public_net2:
                ipv4_address: 192.168.20.131
    oai-udr2:
        container_name: "oai-udr2"
        image: oaisoftwarealliance/oai-udr:1.5.1
        environment:
            - TZ=Europe/Paris
            - UDR_NAME=OAI_UDR2
            - UDR_INTERFACE_NAME_FOR_NUDR=eth0
            - MYSQL_IPV4_ADDRESS=192.168.20.131
            - MYSQL_USER=test
            - MYSQL_PASS=test
            - MYSQL_DB=oai_db
            - WAIT_MYSQL=120
            - USE_FQDN_DNS=yes
            - REGISTER_NRF=yes
            - NRF_IPV4_ADDRESS=192.168.20.130
            - NRF_FQDN=oai-nrf2
        depends_on:
            - mysql2
            - oai-nrf2
        networks:
            public_net2:
                ipv4_address: 192.168.20.136
    oai-udm2:
        container_name: "oai-udm2"
        image: oaisoftwarealliance/oai-udm:1.5.1
        environment:
            - TZ=Europe/Paris
            - UDM_NAME=OAI_UDM2
            - SBI_IF_NAME=eth0
            - REGISTER_NRF=yes
            - USE_FQDN_DNS=yes
            - UDR_IP_ADDRESS=192.168.20.136
            - UDR_FQDN=oai-udr2
            - NRF_IPV4_ADDRESS=192.168.20.130
            - NRF_FQDN=oai-nrf2
        depends_on:
            - oai-udr2
        networks:
            public_net2:
                ipv4_address: 192.168.20.137
    oai-ausf2:
        container_name: "oai-ausf2"
        image: oaisoftwarealliance/oai-ausf:1.5.1
        environment:
            - TZ=Europe/Paris
            - AUSF_NAME=OAI_AUSF2
            - SBI_IF_NAME=eth0
            - USE_FQDN_DNS=yes
            - REGISTER_NRF=yes
            - UDM_IP_ADDRESS=192.168.20.137
            - UDM_FQDN=oai-udm2
            - NRF_IPV4_ADDRESS=192.168.20.130
            - NRF_FQDN=oai-nrf2
        depends_on:
            - oai-udm2
        networks:
            public_net2:
                ipv4_address: 192.168.20.138
    oai-nrf2:
        container_name: "oai-nrf2"
        image: oaisoftwarealliance/oai-nrf:1.5.1
        environment:
            - TZ=Europe/Paris
            - NRF_INTERFACE_NAME_FOR_SBI=eth0
        networks:
            public_net2:
                ipv4_address: 192.168.20.130
    oai-amf2:
        container_name: "oai-amf2"
        image: oaisoftwarealliance/oai-amf:1.5.1
        environment:
            - TZ=Europe/paris
            - MCC=208
            - MNC=95
            - REGION_ID=128
            - AMF_SET_ID=1
            - SERVED_GUAMI_MCC_0=208
            - SERVED_GUAMI_MNC_0=95
            - SERVED_GUAMI_REGION_ID_0=128
            - SERVED_GUAMI_AMF_SET_ID_0=1
            - SERVED_GUAMI_MCC_1=460
            - SERVED_GUAMI_MNC_1=11
            - SERVED_GUAMI_REGION_ID_1=10
            - SERVED_GUAMI_AMF_SET_ID_1=1
            - PLMN_SUPPORT_MCC=208
            - PLMN_SUPPORT_MNC=95
            - PLMN_SUPPORT_TAC=0xa000
            # Slice 0 (222, 123)
            - SST_0=222
            - SD_0=123
            # Slice 0 (128, 12)
            - SST_1=128
            - SD_1=12
            - AMF_INTERFACE_NAME_FOR_NGAP=eth0
            - AMF_INTERFACE_NAME_FOR_N11=eth0
            # One single SMF instance
            - SMF_INSTANCE_ID_0=1
            - SMF_FQDN_0=oai-smf1
            - SMF_IPV4_ADDR_0=192.168.10.133
            - SELECTED_0=true
            - NF_REGISTRATION=yes
            - SMF_SELECTION=yes
            - USE_FQDN_DNS=yes
            - EXTERNAL_AUSF=yes
            - EXTERNAL_UDM=no
            - EXTERNAL_NSSF=no
            - NRF_IPV4_ADDRESS=192.168.20.130
            - NRF_FQDN=oai-nrf2
            - AUSF_IPV4_ADDRESS=192.168.20.138
            - AUSF_FQDN=oai-ausf2
            - UDM_IPV4_ADDRESS=192.168.20.137
            - UDM_FQDN=oai-udm2
            - INT_ALGO_LIST=[ "NIA1" , "NIA2"]
            - CIPH_ALGO_LIST=[ "NEA1" , "NEA2"]
        depends_on:
            - mysql2
            - vpp-upf2
            - oai-ext-dn2
            - oai-ausf2
        networks:
            public_net2:
                ipv4_address: 192.168.20.132


    oai-smf2:
        container_name: "oai-smf2"
        image: oaisoftwarealliance/oai-smf:1.5.1
        environment:
            - TZ=Europe/Paris
            - SMF_INTERFACE_NAME_FOR_N4=eth0
            - SMF_INTERFACE_NAME_FOR_SBI=eth0
            - DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
            - DEFAULT_DNS_SEC_IPV4_ADDRESS=8.8.8.8
            - AMF_IPV4_ADDRESS=192.168.20.132
            - AMF_FQDN=oai-amf2
            - UDM_IPV4_ADDRESS=192.168.20.137
            - UDM_FQDN=oai-udm2
            - UPF_IPV4_ADDRESS=192.168.20.201
            - UPF_FQDN_0=vpp-upf2.node.5gcn.mnc95.mcc208.3gppnetwork.org
            - NRF_IPV4_ADDRESS=192.168.20.130
            - NRF_FQDN=oai-nrf2
            - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1  # only needed when ims is being used
            - USE_LOCAL_SUBSCRIPTION_INFO=yes  #Set to yes if SMF uses local subscription information instead of from an UDM
            - REGISTER_NRF=yes
            - DISCOVER_UPF=yes
            - USE_FQDN_DNS=yes
            - USE_NETWORK_INSTANCE=yes
            - ENABLE_USAGE_REPORTING=yes
            # Slice 0 (1, 0xFFFFFF)
            - DNN_NI0=oai
            - TYPE0=IPv4
            - DNN_RANGE0=12.1.1.151 - 12.1.1.253
            - NSSAI_SST0=1
            - SESSION_AMBR_UL0=200Mbps
            - SESSION_AMBR_DL0=400Mbps
            # Slice 1 (1, 1)
            - DNN_NI1=oai.ipv4
            - TYPE1=IPv4
            - DNN_RANGE1=12.1.1.51 - 12.1.1.150
            - NSSAI_SST1=1
            - NSSAI_SD1=1
            - SESSION_AMBR_UL1=100Mbps
            - SESSION_AMBR_DL1=200Mbps
            # Slice 2 (222, 123)
            - DNN_NI2=default
            - TYPE2=IPv4
            - DNN_RANGE2=12.1.1.2 - 12.1.1.50
            - NSSAI_SST2=222
            - NSSAI_SD2=123
            - SESSION_AMBR_UL2=50Mbps
            - SESSION_AMBR_DL2=100Mbps
            # Slice 3 for ims
            - DNN_NI3=ims
            - TYPE3=IPv4v6
            - DNN_RANGE3=14.1.1.2 - 14.1.1.253
        extra_hosts:
            - "vpp-upf2.node.5gcn.mnc95.mcc208.3gppnetwork.org:192.168.60.201"
        depends_on:
            - oai-amf2
        networks:
            public_net2:
                ipv4_address: 192.168.20.133
    vpp-upf2:
        privileged: true
        container_name: "vpp-upf2"
        image: oaisoftwarealliance/oai-upf-vpp:1.5.1
        environment:
            - IF_1_IP=192.168.20.201
            - IF_1_TYPE=N4
            - IF_2_IP=192.168.22.201
            - IF_2_TYPE=N3
            - IF_2_NWI=access2.oai.org
            - IF_3_IP=192.168.23.201
            - IF_3_TYPE=N6
            - IF_3_IP_REMOTE=192.168.23.135 # EXT-DN IP Address
            - IF_3_NWI=internet2.oai.org
            - NAME=VPP-UPF2
            - MNC=95
            - MCC=208
            - REALM=3gppnetwork.org
            - VPP_MAIN_CORE=0
            - VPP_CORE_WORKER=1
#           - VPP_PLUGIN_PATH=/usr/lib64/vpp_plugins/                # RHEL7
            - VPP_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/vpp_plugins/ # Ubntu18.04
            - SNSSAI_SD=123
            - SNSSAI_SST=222
            - DNN=default
            - REGISTER_NRF=yes
            - NRF_IP_ADDR=192.168.20.130
            - NRF_PORT=80
            - HTTP_VERSION=1
        depends_on:
            - oai-nrf2
        healthcheck:
            test: /bin/bash -c "pgrep vpp"
            interval: 10s
            timeout: 5s
            retries: 5
        networks:
            public_net2:
                ipv4_address: 192.168.20.134
            public_net_access2:
                ipv4_address: 192.168.22.134
            public_net_core2:
                ipv4_address: 192.168.23.134
    oai-ext-dn2:
        privileged: true
        init: true
        container_name: "oai-ext-dn2"
        image: oaisoftwarealliance/trf-gen-cn5g:1.5.1
        entrypoint: /bin/bash -c \
              "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
              "ip route add 12.1.1.0/24 via 192.168.13.201 dev eth0; ip route; sleep infinity"
        command: ["/bin/bash", "-c", "trap : SIGTERM SIGINT; sleep infinity & wait"]
        healthcheck:
            test: /bin/bash -c "iptables -L -t nat | grep MASQUERADE"
            interval: 10s
            timeout: 5s
            retries: 5
        networks:
            public_net_core2:
                ipv4_address: 192.168.23.135

networks:
    public_net2:
        driver: bridge
        name: demo-oai-public-net2
        ipam:
            config:
                - subnet: 192.168.20.0/24
        driver_opts:
            com.docker.network.bridge.name: "demo-oai2"

    public_net_access2:
        name: oai-public-access2
        ipam:
            config:
                - subnet: 192.168.22.0/24
        driver_opts:
            com.docker.network.bridge.name: "cn5g-access2"
    public_net_core2:
        name: oai-public-core2
        ipam:
            config:
                - subnet: 192.168.23.0/24
        driver_opts:
            com.docker.network.bridge.name: "cn5g-core2"

docker-compose-basic-vpp-nrf3

version: '3.8'
services:
    mysql3:
        container_name: "mysql3"
        image: mysql:8.3
        volumes:
            - ./database/oai_db2.sql:/docker-entrypoint-initdb.d/oai_db.sql
            - ./healthscripts/mysql-healthcheck2.sh:/tmp/mysql-healthcheck.sh
        environment:
            - TZ=Europe/Paris
            - MYSQL_DATABASE=oai_db
            - MYSQL_USER=test
            - MYSQL_PASSWORD=test
            - MYSQL_ROOT_PASSWORD=linux
        healthcheck:
            test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
            interval: 10s
            timeout: 5s
            retries: 30
        networks:
            public_net3:
                ipv4_address: 192.168.30.131
    oai-udr3:
        container_name: "oai-udr3"
        image: oaisoftwarealliance/oai-udr:1.5.3
        environment:
            - TZ=Europe/Paris
            - UDR_NAME=OAI_UDR
            - UDR_INTERFACE_NAME_FOR_NUDR=eth0
            - MYSQL_IPV4_ADDRESS=192.168.30.131
            - MYSQL_USER=test
            - MYSQL_PASS=test
            - MYSQL_DB=oai_db
            - WAIT_MYSQL=120
            - USE_FQDN_DNS=yes
            - REGISTER_NRF=yes
            - NRF_IPV4_ADDRESS=192.168.30.130
            - NRF_FQDN=oai-nrf3
        depends_on:
            - mysql3
            - oai-nrf3
        networks:
            public_net3:
                ipv4_address: 192.168.30.136
    oai-udm3:
        container_name: "oai-udm3"
        image: oaisoftwarealliance/oai-udm:1.5.3
        environment:
            - TZ=Europe/Paris
            - UDM_NAME=OAI_UDM
            - SBI_IF_NAME=eth0
            - REGISTER_NRF=yes
            - USE_FQDN_DNS=yes
            - UDR_IP_ADDRESS=192.168.30.136
            - UDR_FQDN=oai-udr3
            - NRF_IPV4_ADDRESS=192.168.30.130
            - NRF_FQDN=oai-nrf3
        depends_on:
            - oai-udr3
        networks:
            public_net3:
                ipv4_address: 192.168.30.137
    oai-ausf3:
        container_name: "oai-ausf3"
        image: oaisoftwarealliance/oai-ausf:1.5.3
        environment:
            - TZ=Europe/Paris
            - AUSF_NAME=OAI_AUSF
            - SBI_IF_NAME=eth0
            - USE_FQDN_DNS=yes
            - REGISTER_NRF=yes
            - UDM_IP_ADDRESS=192.168.30.137
            - UDM_FQDN=oai-udm3
            - NRF_IPV4_ADDRESS=192.168.30.130
            - NRF_FQDN=oai-nrf3
        depends_on:
            - oai-udm3
        networks:
            public_net3:
                ipv4_address: 192.168.30.138
    oai-nrf3:
        container_name: "oai-nrf3"
        image: oaisoftwarealliance/oai-nrf:1.5.3
        environment:
            - TZ=Europe/Paris
            - NRF_INTERFACE_NAME_FOR_SBI=eth0
        networks:
            public_net3:
                ipv4_address: 192.168.30.130
    oai-amf3:
        container_name: "oai-amf3"
        image: oaisoftwarealliance/oai-amf:1.5.3
        environment:
            - TZ=Europe/paris
            - MCC=208
            - MNC=95
            - REGION_ID=128
            - AMF_SET_ID=1
            - SERVED_GUAMI_MCC_0=208
            - SERVED_GUAMI_MNC_0=95
            - SERVED_GUAMI_REGION_ID_0=128
            - SERVED_GUAMI_AMF_SET_ID_0=1
            - SERVED_GUAMI_MCC_1=460
            - SERVED_GUAMI_MNC_1=11
            - SERVED_GUAMI_REGION_ID_1=10
            - SERVED_GUAMI_AMF_SET_ID_1=1
            - PLMN_SUPPORT_MCC=208
            - PLMN_SUPPORT_MNC=95
            - PLMN_SUPPORT_TAC=0xa000
            # Slice 0 (222, 123)
            - SST_0=222
            - SD_0=123
            # Slice 0 (128, 12)
            - SST_1=128
            - SD_1=12
            - AMF_INTERFACE_NAME_FOR_NGAP=eth0
            - AMF_INTERFACE_NAME_FOR_N11=eth0
            # One single SMF instance
            - SMF_INSTANCE_ID_0=1
            - SMF_FQDN_0=oai-smf3
            - SMF_IPV4_ADDR_0=192.168.30.133
            - SELECTED_0=true
            - NF_REGISTRATION=yes
            - SMF_SELECTION=yes
            - USE_FQDN_DNS=yes
            - EXTERNAL_AUSF=yes
            - EXTERNAL_UDM=no
            - EXTERNAL_NSSF=no
            - NRF_IPV4_ADDRESS=192.168.30.130
            - NRF_FQDN=oai-nrf3
            - AUSF_IPV4_ADDRESS=192.168.30.138
            - AUSF_FQDN=oai-ausf3
            - UDM_IPV4_ADDRESS=192.168.30.137
            - UDM_FQDN=oai-udm3
            - INT_ALGO_LIST=[ "NIA1" , "NIA2"]
            - CIPH_ALGO_LIST=[ "NEA1" , "NEA2"]
        depends_on:
            - mysql3
            - vpp-upf3
            - oai-ext-dn3
            - oai-ausf3
        networks:
            public_net3:
                ipv4_address: 192.168.30.132


    oai-smf3:
        container_name: "oai-smf3"
        image: oaisoftwarealliance/oai-smf:1.5.3
        environment:
            - TZ=Europe/Paris
            - SMF_INTERFACE_NAME_FOR_N4=eth0
            - SMF_INTERFACE_NAME_FOR_SBI=eth0
            - DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
            - DEFAULT_DNS_SEC_IPV4_ADDRESS=8.8.8.8
            - AMF_IPV4_ADDRESS=192.168.30.132
            - AMF_FQDN=oai-amf3
            - UDM_IPV4_ADDRESS=192.168.30.137
            - UDM_FQDN=oai-udm3
            - UPF_IPV4_ADDRESS=192.168.30.201
            - UPF_FQDN_0=vpp-upf3.node.5gcn.mnc95.mcc208.3gppnetwork.org
            - NRF_IPV4_ADDRESS=192.168.30.130
            - NRF_FQDN=oai-nrf3
            - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1  # only needed when ims is being used
            - USE_LOCAL_SUBSCRIPTION_INFO=yes  #Set to yes if SMF uses local subscription information instead of from an UDM
            - REGISTER_NRF=yes
            - DISCOVER_UPF=yes
            - USE_FQDN_DNS=yes
            - USE_NETWORK_INSTANCE=yes
            - ENABLE_USAGE_REPORTING=yes
            # Slice 0 (1, 0xFFFFFF)
            - DNN_NI0=oai
            - TYPE0=IPv4
            - DNN_RANGE0=12.1.1.151 - 12.1.1.253
            - NSSAI_SST0=1
            - SESSION_AMBR_UL0=200Mbps
            - SESSION_AMBR_DL0=400Mbps
            # Slice 1 (1, 1)
            - DNN_NI1=oai.ipv4
            - TYPE1=IPv4
            - DNN_RANGE1=12.1.1.51 - 12.1.1.150
            - NSSAI_SST1=1
            - NSSAI_SD1=1
            - SESSION_AMBR_UL1=100Mbps
            - SESSION_AMBR_DL1=200Mbps
            # Slice 2 (222, 123)
            - DNN_NI2=default
            - TYPE2=IPv4
            - DNN_RANGE2=12.1.1.2 - 12.1.1.50
            - NSSAI_SST2=222
            - NSSAI_SD2=123
            - SESSION_AMBR_UL2=50Mbps
            - SESSION_AMBR_DL2=100Mbps
            # Slice 3 for ims
            - DNN_NI3=ims
            - TYPE3=IPv4v6
            - DNN_RANGE3=14.1.1.2 - 14.1.1.253
        extra_hosts:
            - "vpp-upf3.node.5gcn.mnc95.mcc208.3gppnetwork.org:192.168.30.201"
        depends_on:
            - oai-amf3
        networks:
            public_net3:
                ipv4_address: 192.168.30.133
    vpp-upf3:
        privileged: true
        container_name: "vpp-upf3"
        image: oaisoftwarealliance/oai-upf-vpp:1.5.3
        environment:
            - IF_1_IP=192.168.30.201
            - IF_1_TYPE=N4
            - IF_2_IP=192.168.32.201
            - IF_2_TYPE=N3
            - IF_2_NWI=access3.oai.org
            - IF_3_IP=192.168.33.201
            - IF_3_TYPE=N6
            - IF_3_IP_REMOTE=192.168.33.135 # EXT-DN IP Address
            - IF_3_NWI=internet3.oai.org
            - NAME=VPP-UPF3
            - MNC=95
            - MCC=208
            - REALM=3gppnetwork.org
            - VPP_MAIN_CORE=0
            - VPP_CORE_WORKER=1
#           - VPP_PLUGIN_PATH=/usr/lib64/vpp_plugins/                # RHEL7
            - VPP_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/vpp_plugins/ # Ubntu18.04
            - SNSSAI_SD=123
            - SNSSAI_SST=222
            - DNN=default
            - REGISTER_NRF=yes
            - NRF_IP_ADDR=192.168.30.130
            - NRF_PORT=80
            - HTTP_VERSION=1
        depends_on:
            - oai-nrf3
        healthcheck:
            test: /bin/bash -c "pgrep vpp"
            interval: 10s
            timeout: 5s
            retries: 5
        networks:
            public_net3:
                ipv4_address: 192.168.30.134
            public_net_access3:
                ipv4_address: 192.168.32.134
            public_net_core3:
                ipv4_address: 192.168.33.134
    oai-ext-dn3:
        privileged: true
        init: true
        container_name: "oai-ext-dn3"
        image: oaisoftwarealliance/trf-gen-cn5g:1.5.3
        entrypoint: /bin/bash -c \
              "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
              "ip route add 12.1.1.0/24 via 192.168.33.201 dev eth0; ip route; sleep infinity"
        command: ["/bin/bash", "-c", "trap : SIGTERM SIGINT; sleep infinity & wait"]
        healthcheck:
            test: /bin/bash -c "iptables -L -t nat | grep MASQUERADE"
            interval: 10s
            timeout: 5s
            retries: 5
        networks:
            public_net_core3:
                ipv4_address: 192.168.33.135

networks:
    public_net3:
        driver: bridge
        name: demo-oai-public-net3
        ipam:
            config:
                - subnet: 192.168.30.0/24
        driver_opts:
            com.docker.network.bridge.name: "demo-oai3"

    public_net_access3:
        name: oai-public-access3
        ipam:
            config:
                - subnet: 192.168.32.0/24
        driver_opts:
            com.docker.network.bridge.name: "cn5g-access3"
    public_net_core3:
        name: oai-public-core3
        ipam:
            config:
                - subnet: 192.168.33.0/24
        driver_opts:
            com.docker.network.bridge.name: "cn5g-core3"


3.ueransim配置

需要构建3个容器化ueransim,与clone核心网一样,先改标签clone三个image,再修改yaml文件
单个ueransim的构建参考分立部署核心网与容器化ueransim

ueransim启动文件使用网段对应网段使用images接入核心网
ueransimdocker-compose-ueransim-vpp60.yaml192.168.6x.x192.168.12.xueransim1:latest核心网0
ueransim2docker-compose-basic-vpp-nrf8.yaml192.168.8x.x192.168.13.xueransim1:latest核心网2
ueransim3docker-compose-basic-vpp-nrf9.yaml192.168.9x.x192.168.13.xueransim1:latest核心网3

改标签clone镜像:

lab@lab-virtual-machine:~$ docker tag ueransim:latest ueransim1:latest
lab@lab-virtual-machine:~$ docker tag ueransim:latest ueransim3:latest

在这里插入图片描述
创建yaml配置文件:

ueransim配置 docker-compose-ueransim-vpp60.yaml

version: '3.8'
services:
#对名字进行了更改,避免重名
    ueransim60:
        container_name: ueransim60
        image: ueransim:latest
        privileged: true
        environment:
            # GNB Congig Parameters
            - MCC=208
            - MNC=95
            - NCI=0x000000010
            - TAC=0xa000
            #此三个ip网段对应本地创建的demo-oai的网段,最后141可更改,但此三个需相同
            - LINK_IP=192.168.60.141 
            - NGAP_IP=192.168.60.141
            - GTP_IP=192.168.62.141
            #此为核心网amf的接入ip
            - NGAP_PEER_IP=192.168.70.132
            - SST=222
            - SD=123
            - IGNORE_STREAM_IDS=true
            # UE Config Parameters
            - NUMBER_OF_UE=1
            - IMSI=208950000000031
            - KEY=0C0A34601D4F07677303652C0462535B
            - OP=63bfa50ee6523365ff14c1f45f88737d
            - OP_TYPE=OPC
            - AMF_VALUE=8000
            - IMEI=356938035643803
            - IMEI_SV=0035609204079514
            #此为ue接入gnb的ip,更改为LINK_IP
            - GNB_IP_ADDRESS=192.168.60.141
            - PDU_TYPE=IPv4
            - APN=default
            - SST_0=222
            - SD_0=123
            - SST_C=222
            - SD_C=123
            - SST_D=222
            - SD_D=123
        networks:
        #下面网络均更改与最下面的networks一致
            public_net:
                ipv4_address: 192.168.60.141
            public_net_access:
                ipv4_address: 192.168.62.141
        healthcheck:
            test: /bin/bash -c "ifconfig uesimtun0"
            interval: 10s
            timeout: 5s
            retries: 5
           #创建出与核心网同名网桥,但网段不同避免冲突
networks:
    public_net:
        driver: bridge
        name: demo-oai-public-net
        ipam:
            config:
                - subnet: 192.168.60.0/24
        driver_opts:
            com.docker.network.bridge.name: "demo-oai"
    public_net_access:
        name: oai-public-access
        ipam:
            config:
                - subnet: 192.168.62.0/24
        driver_opts:
            com.docker.network.bridge.name: "cn5g-access"

ueransim2配置 docker-compose-ueransim-vpp80.yaml

version: '3.8'
services:
#对名字进行了更改,避免重名
    ueransim80:
        container_name: ueransim80
        image: ueransim1:latest
        privileged: true
        environment:
            # GNB Congig Parameters
            - MCC=208
            - MNC=95
            - NCI=0x000000010
            - TAC=0xa000
            #此三个ip网段对应本地创建的demo-oai的网段,最后141可更改,但此三个需相同
            - LINK_IP=192.168.80.141 
            - NGAP_IP=192.168.80.141
            - GTP_IP=192.168.82.141
            #此为核心网amf的接入ip
            - NGAP_PEER_IP=192.168.20.132
            - SST=222
            - SD=123
            - IGNORE_STREAM_IDS=true
            # UE Config Parameters
            - NUMBER_OF_UE=1
            - IMSI=208950000000031
            - KEY=0C0A34601D4F07677303652C0462535B
            - OP=63bfa50ee6523365ff14c1f45f88737d
            - OP_TYPE=OPC
            - AMF_VALUE=8000
            - IMEI=356938035643803
            - IMEI_SV=0035609204079514
            #此为ue接入gnb的ip,更改为LINK_IP
            - GNB_IP_ADDRESS=192.168.80.141
            - PDU_TYPE=IPv4
            - APN=default
            - SST_0=222
            - SD_0=123
            - SST_C=222
            - SD_C=123
            - SST_D=222
            - SD_D=123
        networks:
        #下面网络均更改与最下面的networks一致
            public_net1:
                ipv4_address: 192.168.80.141
            public_net_access1:
                ipv4_address: 192.168.82.141
        healthcheck:
            test: /bin/bash -c "ifconfig uesimtun0"
            interval: 10s
            timeout: 5s
            retries: 5
           #创建出与核心网同名网桥,但网段不同避免冲突
networks:
    public_net1:
        driver: bridge
        name: demo-oai-public-net1
        ipam:
            config:
                - subnet: 192.168.80.0/24
        driver_opts:
            com.docker.network.bridge.name: "demo-oai1"
    public_net_access1:
        name: oai-public-access1
        ipam:
            config:
                - subnet: 192.168.82.0/24
        driver_opts:
            com.docker.network.bridge.name: "cn5g-access1"



ueransim3配置 docker-compose-ueransim-vpp90.yaml

version: '3.8'
services:
#对名字进行了更改,避免重名
    ueransim90:
        container_name: ueransim90
        image: ueransim3:latest
        privileged: true
        environment:
            # GNB Congig Parameters
            - MCC=208
            - MNC=95
            - NCI=0x000000010
            - TAC=0xa000
            #此三个ip网段对应本地创建的demo-oai的网段,最后141可更改,但此三个需相同
            - LINK_IP=192.168.90.141 
            - NGAP_IP=192.168.90.141
            - GTP_IP=192.168.92.141
            #此为核心网amf的接入ip
            - NGAP_PEER_IP=192.168.30.132
            - SST=222
            - SD=123
            - IGNORE_STREAM_IDS=true
            # UE Config Parameters
            - NUMBER_OF_UE=1
            - IMSI=208950000000031
            - KEY=0C0A34601D4F07677303652C0462535B
            - OP=63bfa50ee6523365ff14c1f45f88737d
            - OP_TYPE=OPC
            - AMF_VALUE=8000
            - IMEI=356938035643803
            - IMEI_SV=0035609204079514
            #此为ue接入gnb的ip,更改为LINK_IP
            - GNB_IP_ADDRESS=192.168.90.141
            - PDU_TYPE=IPv4
            - APN=default
            - SST_0=222
            - SD_0=123
            - SST_C=222
            - SD_C=123
            - SST_D=222
            - SD_D=123
        networks:
        #下面网络均更改与最下面的networks一致
            public_net3:
                ipv4_address: 192.168.90.141
            public_net_access3:
                ipv4_address: 192.168.92.141
        healthcheck:
            test: /bin/bash -c "ifconfig uesimtun0"
            interval: 10s
            timeout: 5s
            retries: 5
           #创建出与核心网同名网桥,但网段不同避免冲突
networks:
    public_net3:
        driver: bridge
        name: demo-oai-public-net3
        ipam:
            config:
                - subnet: 192.168.90.0/24
        driver_opts:
            com.docker.network.bridge.name: "demo-oai3"
    public_net_access3:
        name: oai-public-access3
        ipam:
            config:
                - subnet: 192.168.92.0/24
        driver_opts:
            com.docker.network.bridge.name: "cn5g-access3"

4.核心网与主机B路由构建

为了使ueranism接入核心网,需要使ueransim容器内的数据转发到核心网,通过构建特定的路由规则来实现。
参考单核心网与基站分立部署
在服务器A:

sudo sysctl net.ipv4.conf.all.forwarding=1
sudo iptables -P FORWARD ACCEPT
#核心网0到ueransim的路由
sudo route add -net 192.168.60.0/24 gw 192.168.12.33
#核心网1到ueransim1的路由
sudo route add -net 192.168.80.0/24 gw 192.168.13.33
#核心网3到ueransim3的路由
sudo route add -net 192.168.90.0/24 gw 192.168.14.33

在主机B:

#ueransim到核心网0的路由
sudo route add -net 192.168.70.0/24 gw 192.168.12.3
#ueransim1到核心网1的路由
sudo route add -net 192.168.20.0/24 gw 192.168.13.3
#ueransim3到核心网3的路由
sudo route add -net 192.168.30.0/24 gw 192.168.14.3

启动

核心网先前已经启动
启动ueransim:

docker-compose -f docker-compose-ueransim-vpp60.yaml up -d
docker-compose -f docker-compose-ueransim-vpp80.yaml up -d
docker-compose -f docker-compose-ueransim-vpp90.yaml up -d

如下,成功接入了核心网:
在这里插入图片描述

关闭

ueransim

docker-compose -f docker-compose-ueransim-vpp60.yaml down
docker-compose -f docker-compose-ueransim-vpp80.yaml down
docker-compose -f docker-compose-ueransim-vpp90.yaml down

核心网

docker-compose -f docker-compose-basic-vpp-nrf.yaml down
docker-compose -f docker-compose-basic-vpp-nrf1.yaml down
docker-compose -f docker-compose-basic-vpp-nrf3.yaml down

成功启动的日志

lab@lab-virtual-machine:~/oai-cn5g-fed/docker-compose$ docker-compose -f docker-compose-ueransim-vpp60.yaml up 
Creating network "demo-oai-public-net" with driver "bridge"
Creating network "oai-public-access" with the default driver
WARNING: Found orphan containers (oai-nrf-slice12, vpp-upf-slice3, oai-spgwu-slice2, oai-nssf, oai-spgwu-slice1, oai-smf-slice2, oai-nrf-slice3, oai-smf-slice3, oai-smf-slice1, ueransim80) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Creating ueransim60 ... done
Attaching to ueransim60
ueransim60    | Now setting these variables '@GTP_IP@ @IGNORE_STREAM_IDS@ @LINK_IP@ @MCC@ @MNC@ @NCI@ @NGAP_IP@ @NGAP_PEER_IP@ @SD_0@ @SD_1@ @SD_2@ @SST_0@ @SST_1@ @SST_2@ @TAC@'
ueransim60    | Now setting these variables '@AMF_VALUE@ @APN@ @GNB_IP_ADDRESS@ @IMEI@ @IMEI_SV@ @IMSI@ @KEY@ @MCC@ @MNC@ @OP@ @OP_TYPE@ @PDU_TYPE@ @SD_C@ @SD_D@ @SD_R@ @SST_C@ @SST_D@ @SST_R@'
ueransim60    | Done setting the configuration
ueransim60    | ### Running ueransim ###
ueransim60    | Running gnb
ueransim60    | UERANSIM v3.2.5
ueransim60    | [2023-03-28 09:13:23.731] [sctp] [info] Trying to establish SCTP connection... (192.168.70.132:38412)
ueransim60    | [2023-03-28 09:13:23.741] [sctp] [info] SCTP connection established (192.168.70.132:38412)
ueransim60    | [2023-03-28 09:13:23.741] [sctp] [debug] SCTP association setup ascId[3]
ueransim60    | [2023-03-28 09:13:23.742] [ngap] [debug] Sending NG Setup Request
ueransim60    | [2023-03-28 09:13:23.748] [ngap] [debug] NG Setup Response received
ueransim60    | [2023-03-28 09:13:23.748] [ngap] [info] NG Setup procedure is successful
ueransim60    | Running ue
ueransim60    | UERANSIM v3.2.5
ueransim60    | [2023-03-28 09:13:24.730] [nas] [info] UE switches to state [MM-DEREGISTERED/PLMN-SEARCH]
ueransim60    | [2023-03-28 09:13:24.730] [rrc] [debug] UE[1] new signal detected
ueransim60    | [2023-03-28 09:13:24.730] [rrc] [debug] New signal detected for cell[1], total [1] cells in coverage
ueransim60    | [2023-03-28 09:13:24.731] [nas] [info] Selected plmn[208/95]
ueransim60    | [2023-03-28 09:13:24.731] [rrc] [info] Selected cell plmn[208/95] tac[40960] category[SUITABLE]
ueransim60    | [2023-03-28 09:13:24.732] [nas] [info] UE switches to state [MM-DEREGISTERED/PS]
ueransim60    | [2023-03-28 09:13:24.732] [nas] [info] UE switches to state [MM-DEREGISTERED/NORMAL-SERVICE]
ueransim60    | [2023-03-28 09:13:24.732] [nas] [debug] Initial registration required due to [MM-DEREG-NORMAL-SERVICE]
ueransim60    | [2023-03-28 09:13:24.732] [nas] [debug] UAC access attempt is allowed for identity[0], category[MO_sig]
ueransim60    | [2023-03-28 09:13:24.732] [nas] [debug] Sending Initial Registration
ueransim60    | [2023-03-28 09:13:24.733] [nas] [info] UE switches to state [MM-REGISTER-INITIATED]
ueransim60    | [2023-03-28 09:13:24.733] [rrc] [debug] Sending RRC Setup Request
ueransim60    | [2023-03-28 09:13:24.733] [rrc] [info] RRC Setup for UE[1]
ueransim60    | [2023-03-28 09:13:24.734] [rrc] [info] RRC connection established
ueransim60    | [2023-03-28 09:13:24.734] [rrc] [info] UE switches to state [RRC-CONNECTED]
ueransim60    | [2023-03-28 09:13:24.734] [nas] [info] UE switches to state [CM-CONNECTED]
ueransim60    | [2023-03-28 09:13:24.734] [ngap] [debug] Initial NAS message received from UE[1]
ueransim60    | [2023-03-28 09:13:24.789] [nas] [debug] Authentication Request received
ueransim60    | [2023-03-28 09:13:24.809] [nas] [debug] Security Mode Command received
ueransim60    | [2023-03-28 09:13:24.809] [nas] [debug] Selected integrity[1] ciphering[1]
ueransim60    | [2023-03-28 09:13:24.818] [ngap] [debug] Initial Context Setup Request received
ueransim60    | [2023-03-28 09:13:24.819] [nas] [debug] Registration accept received
ueransim60    | [2023-03-28 09:13:24.819] [nas] [info] UE switches to state [MM-REGISTERED/NORMAL-SERVICE]
ueransim60    | [2023-03-28 09:13:24.819] [nas] [debug] Sending Registration Complete
ueransim60    | [2023-03-28 09:13:24.819] [nas] [info] Initial Registration is successful
ueransim60    | [2023-03-28 09:13:24.819] [nas] [debug] Sending PDU Session Establishment Request
ueransim60    | [2023-03-28 09:13:24.819] [nas] [debug] UAC access attempt is allowed for identity[0], category[MO_sig]
ueransim60    | [2023-03-28 09:13:41.747] [nas] [warning] Retransmitting PDU Session Establishment Request due to T3580 expiry
ueransim60    | [2023-03-28 09:13:41.747] [nas] [debug] UAC access attempt is allowed for identity[0], category[MO_sig]
ueransim60    | [2023-03-28 09:13:41.780] [ngap] [info] PDU session resource(s) setup for UE[1] count[1]
ueransim60    | [2023-03-28 09:13:41.781] [nas] [debug] PDU Session Establishment Accept received
ueransim60    | [2023-03-28 09:13:41.781] [nas] [info] PDU Session establishment is successful PSI[1]
ueransim60    | [2023-03-28 09:13:41.793] [app] [info] Connection setup for PDU session[1] is successful, TUN interface[uesimtun0, 12.1.1.2] is up.

问题解决

问题1

新创建的ueransim80与ueransim90无法成功创建pdu session

首先在服务器A上创建一个ueransim90,发现仍然无法接入核心网3,且无法接入原因与在主机B上接入时的一样,如下截图:

主机B上的错误原因:PDU session establishment reject received
在这里插入图片描述
服务器A上的错误原因:PDU session establishment reject received
在这里插入图片描述
查看SMF日志,原因是 no upf available upf could not be selected for the PDU session
PDU Session Establishment Request :Creat SM Context Request procedure failed

检查ueransim配置文件没有太多与UPF相关的内容,修改imsi号后尝试依旧没用。
检查核心网配置文件docker-compose-basic-vpp-nrf3yaml ,发现了一个地方,在smf配置部分:
在这里插入图片描述
在这里插入图片描述

其中的vpp-upf可能是引发问题的原因,虽然未修改核心网仍然能够启动,但在接入仿真用户时就会报错,将其改为 vpp-upf3

报错成功解决

问题2

核心网0——ueransim0与核心网3——ueransim3两个连接同时开启没有问题,但核心网1——ueransim1的连接一直不成功。
三个核心网同时启动时upf不健康,考虑还是核心网配置文件没有设置到位。

原因分析:其中核心网1使用到了192.168.12.x,而192.168.12.3与192.168.12.33是连接网络所用到的,应该会有冲突,我选择将核心网使用的192.168.1x.x改掉,改为192.168.2x.x

目前还在修改中

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月早十

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值