【debug】分立式网络切片部署

news2024/9/21 20:54:33

文章目录

  • 启动代码
  • 部署全流程
    • 网络配置
      • 配置静态IP
    • 部署核心网
    • 部署基站
      • 部署基站1
      • 部署基站2
      • 部署基站3
      • 查看amf日志
  • 问题
    • routing-config的问题
      • 不加routing-config与加的对比
      • 调查
    • nr-binder功能测试
      • 基站1
      • 基站2
      • ifconfig
      • 路由表方向解决
  • 路由规则

启动代码

  • 启动OAI核心网
#开启数据转发
sudo sysctl net.ipv4.conf.all.forwarding=1
sudo iptables -P FORWARD ACCEPT
#启动核心网
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice1$ docker-compose -f docker-compose-basic-vpp-nrf-slice1.yaml up -d
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice2$ docker-compose -f docker-compose-basic-vpp-nrf-slice2.yaml up -d
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice3$ docker-compose -f docker-compose-basic-vpp-nrf-slice3.yaml up -d
  • 集中式部署启动ueranism基站
#启动ueransim
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice1/gnb-slice$ docker-compose -f ueransim-slice1.yaml up -d
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice2/gnb-slice$ docker-compose -f ueransim-slice2.yaml up -d
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice3/gnb-slice$ docker-compose -f ueransim-slice3.yaml up -d
  • 分立式部署启动ueransim基站
#依次添加路由
sudo ip route add  192.168.10.0/24 via 192.168.16.6 dev ens41
sudo ip route add  192.168.12.0/24 via 192.168.16.6 dev ens41

sudo ip route add  192.168.20.0/24 via 192.168.26.6 dev ens39
sudo ip route add  192.168.22.0/24 via 192.168.26.6 dev ens39

sudo ip route add  192.168.30.0/24 via 192.168.36.6 dev ens40
sudo ip route add  192.168.32.0/24 via 192.168.36.6 dev ens40

#启动ueransim
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice1/gnb-slice$ docker-compose -f ueransim-slice1.yaml up -d
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice2/gnb-slice$ docker-compose -f ueransim-slice2.yaml up -d
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice3/gnb-slice$ docker-compose -f ueransim-slice3.yaml up -d
  • 信息查看
#查看全部容器
docker ps

#查看指定docker-compose启动对应容器
docker-compose -f docker-compose-basic-vpp-nrf-slice1.yaml ps -a
docker-compose -f docker-compose-basic-vpp-nrf-slice2.yaml ps -a
docker-compose -f docker-compose-basic-vpp-nrf-slice3.yaml ps -a

#查看ueransim日志接入信息 仅显示后10行
docker logs ueransim-slice1 2>&1 | tail -10
docker logs ueransim-slice2 2>&1 | tail -10
docker logs ueransim-slice3 2>&1 | tail -10
#查看ueransim日志接入信息 显示全部
docker logs ueransim-slice1

#查看核心网网元amf日志 仅显示后10行
docker logs oai-amf-slice1 2>&1 | tail -20
docker logs oai-amf-slice2 2>&1 | tail -20
docker logs oai-amf-slice3 2>&1 | tail -20

部署全流程

首先我们需要服务器A与主机B,两个机器有三条互相连接的网线分别用于三个切片的通信,两机器应该配置尽量多的RAM(大于12GB)与CPU(核*线程不小于16个)。

网络配置

配置静态IP

需要配置两机器网络,用到三个网段分别用于三个切片。

  • 服务器A
在这里插入代码片
  • 主机B
network:
  version: 2
  renderer: NetworkManager
  ethernets:
          ens39:
                  addresses: [192.168.16.66/24]
                  dhcp4: no
                  gateway4: 192.168.16.1
                  nameservers:
                          addresses: [8.8.8.8,144.144.144.144,255.255.255.255]
          ens41:
                  addresses: [192.168.26.66/24]
                  dhcp4: no
                  gateway4: 192.168.26.1
                  nameservers:
                          addresses: [8.8.8.8,144.144.144.144,255.255.255.255]
          ens40:
                  addresses: [192.168.36.66/24]
                  dhcp4: no
                  gateway4: 192.168.36.1
                  nameservers:
                          addresses: [8.8.8.8,144.144.144.144,255.255.255.255]

配置完后ping进行测试

  • 在主机B上
lab@lab-virtual-machine:/$ ping 192.168.16.6
PING 192.168.16.6 (192.168.16.6) 56(84) bytes of data.
64 bytes from 192.168.16.6: icmp_seq=1 ttl=64 time=2.69 ms
^C
--- 192.168.16.6 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.696/2.696/2.696/0.000 ms
lab@lab-virtual-machine:/$ ping 192.168.26.6
PING 192.168.26.6 (192.168.26.6) 56(84) bytes of data.
64 bytes from 192.168.26.6: icmp_seq=1 ttl=64 time=3.07 ms
^C
--- 192.168.26.6 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 3.077/3.077/3.077/0.000 ms
lab@lab-virtual-machine:/$ ping 192.168.36.6
PING 192.168.36.6 (192.168.36.6) 56(84) bytes of data.
64 bytes from 192.168.36.6: icmp_seq=1 ttl=64 time=0.858 ms
^C
--- 192.168.36.6 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.858/0.858/0.858/0.000 ms

部署核心网

  • 开启数据转发
sudo sysctl net.ipv4.conf.all.forwarding=1
sudo iptables -P FORWARD ACCEPT
  • 部署核心网1
lab@lab-virtual-machine:~/oai-cn5g-fed/5gc-slicing-v1/Slice1$ docker-compose -f docker-compose-basic-vpp-nrf-slice1.yml up -d
Creating network "demo-oai-public-net-slice1" with driver "bridge"
Creating network "oai-public-access-slice1" with the default driver
Creating network "oai-public-core-slice1" with the default driver
Creating oai-nrf-slice1    ... done
Creating mysql-slice1      ... done
Creating oai-ext-dn-slice1 ... done
Creating vpp-upf-slice1    ... done
Creating oai-udr-slice1    ... done
Creating oai-udm-slice1    ... done
Creating oai-ausf-slice1   ... done
Creating oai-amf-slice1    ... done
Creating oai-smf-slice1    ... done
  • 部署核心网2
lab@lab-virtual-machine:~/oai-cn5g-fed/5gc-slicing-v1/Slice2$ docker-compose -f docker-compose-basic-vpp-nrf-slice2.yaml up -d
Creating network "demo-oai-public-net-slice2" with driver "bridge"
Creating network "oai-public-access-slice2" with the default driver
Creating network "oai-public-core-slice2" with the default driver
Creating mysql-slice2      ... done
Creating oai-ext-dn-slice2 ... done
Creating oai-nrf-slice2    ... done
Creating oai-udr-slice2    ... done
Creating vpp-upf-slice2    ... done
Creating oai-udm-slice2    ... done
Creating oai-ausf-slice2   ... done
Creating oai-amf-slice2    ... done
Creating oai-smf-slice2    ... done
  • 部署核心网3
lab@lab-virtual-machine:~/oai-cn5g-fed/5gc-slicing-v1/Slice3$ docker-compose -f docker-compose-basic-vpp-nrf-slice3.yaml up -d
Creating network "demo-oai-public-net-slice3" with driver "bridge"
Creating network "oai-public-access-slice3" with the default driver
Creating network "oai-public-core-slice3" with the default driver
Creating mysql-slice3      ... done
Creating oai-ext-dn-slice3 ... done
Creating oai-nrf-slice3    ... done
Creating vpp-upf-slice3    ... done
Creating oai-udr-slice3    ... done
Creating oai-udm-slice3    ... done
Creating oai-ausf-slice3   ... done
Creating oai-amf-slice3    ... done
Creating oai-smf-slice3    ... done
  • 查看容器运行健康状态
lab@lab-virtual-machine:~/oai-cn5g-fed/5gc-slicing-v1/Slice3$ docker ps
WARNING: Error loading config file: /home/lab/.docker/config.json: open /home/lab/.docker/config.json: permission denied
CONTAINER ID   IMAGE                                     COMMAND                  CREATED       STATUS                   PORTS                          NAMES
2416217e8828   oaisoftwarealliance/oai-smf:v1.5.0        "python3 /openair-sm…"   2 hours ago   Up 2 hours (healthy)     80/tcp, 8080/tcp, 8805/udp     oai-smf-slice3
3af71b6090fc   oaisoftwarealliance/oai-amf:v1.5.0        "python3 /openair-am…"   2 hours ago   Up 2 hours (healthy)     80/tcp, 9090/tcp, 38412/sctp   oai-amf-slice3
b9043ebb3d65   oaisoftwarealliance/oai-ausf:v1.5.0       "python3 /openair-au…"   2 hours ago   Up 2 hours (healthy)     80/tcp                         oai-ausf-slice3
4f303272e239   oaisoftwarealliance/oai-udm:v1.5.0        "python3 /openair-ud…"   2 hours ago   Up 2 hours (healthy)     80/tcp                         oai-udm-slice3
a62d8727acac   oaisoftwarealliance/oai-upf-vpp:v1.5.0    "/openair-upf/bin/en…"   2 hours ago   Up 2 hours (healthy)     2152/udp, 8085/udp             vpp-upf-slice3
c0ef896af335   oaisoftwarealliance/oai-udr:v1.5.0        "python3 /openair-ud…"   2 hours ago   Up 2 hours (healthy)     80/tcp                         oai-udr-slice3
daceb5ae81e4   oaisoftwarealliance/trf-gen-cn5g:latest   "/bin/bash -c ' ipta…"   2 hours ago   Up 2 hours (unhealthy)                                  oai-ext-dn-slice3
cbfcc6385cc6   oaisoftwarealliance/oai-nrf:v1.5.0        "python3 /openair-nr…"   2 hours ago   Up 2 hours (healthy)     80/tcp, 9090/tcp               oai-nrf-slice3
0f0f4351db76   mysql:8.0                                 "docker-entrypoint.s…"   2 hours ago   Up 2 hours (healthy)     3306/tcp, 33060/tcp            mysql-slice3
c1a3ca606b80   oaisoftwarealliance/oai-smf:v1.5.0        "python3 /openair-sm…"   2 hours ago   Up 2 hours (healthy)     80/tcp, 8080/tcp, 8805/udp     oai-smf-slice2
8ca8d2d2cfa8   oaisoftwarealliance/oai-amf:v1.5.0        "python3 /openair-am…"   2 hours ago   Up 2 hours (healthy)     80/tcp, 9090/tcp, 38412/sctp   oai-amf-slice2
687c77bc6103   oaisoftwarealliance/oai-ausf:v1.5.0       "python3 /openair-au…"   2 hours ago   Up 2 hours (healthy)     80/tcp                         oai-ausf-slice2
a58f9d114ea5   oaisoftwarealliance/oai-udm:v1.5.0        "python3 /openair-ud…"   2 hours ago   Up 2 hours (healthy)     80/tcp                         oai-udm-slice2
d810ee1b0f45   oaisoftwarealliance/oai-upf-vpp:v1.5.0    "/openair-upf/bin/en…"   2 hours ago   Up 2 hours (healthy)     2152/udp, 8085/udp             vpp-upf-slice2
692c9157f4fc   oaisoftwarealliance/oai-udr:v1.5.0        "python3 /openair-ud…"   2 hours ago   Up 2 hours (healthy)     80/tcp                         oai-udr-slice2
10d432d29973   oaisoftwarealliance/trf-gen-cn5g:latest   "/bin/bash -c ' ipta…"   2 hours ago   Up 2 hours (unhealthy)                                  oai-ext-dn-slice2
d34b0df56ac1   mysql:8.0                                 "docker-entrypoint.s…"   2 hours ago   Up 2 hours (healthy)     3306/tcp, 33060/tcp            mysql-slice2
13a8e6724d4b   oaisoftwarealliance/oai-nrf:v1.5.0        "python3 /openair-nr…"   2 hours ago   Up 2 hours (healthy)     80/tcp, 9090/tcp               oai-nrf-slice2
438fe8754cac   oaisoftwarealliance/oai-smf:v1.5.0        "python3 /openair-sm…"   2 hours ago   Up 2 hours (healthy)     80/tcp, 8080/tcp, 8805/udp     oai-smf-slice1
3ac2880593bf   oaisoftwarealliance/oai-amf:v1.5.0        "python3 /openair-am…"   2 hours ago   Up 2 hours (healthy)     80/tcp, 9090/tcp, 38412/sctp   oai-amf-slice1
2a44d8f8bb28   oaisoftwarealliance/oai-ausf:v1.5.0       "python3 /openair-au…"   2 hours ago   Up 2 hours (healthy)     80/tcp                         oai-ausf-slice1
647f75191241   oaisoftwarealliance/oai-udm:v1.5.0        "python3 /openair-ud…"   2 hours ago   Up 2 hours (healthy)     80/tcp                         oai-udm-slice1
7857b089316b   oaisoftwarealliance/oai-udr:v1.5.0        "python3 /openair-ud…"   2 hours ago   Up 2 hours (healthy)     80/tcp                         oai-udr-slice1
dd3081176d02   oaisoftwarealliance/oai-upf-vpp:v1.5.0    "/openair-upf/bin/en…"   2 hours ago   Up 2 hours (healthy)     2152/udp, 8085/udp             vpp-upf-slice1
2ca1dc7042ed   mysql:8.0                                 "docker-entrypoint.s…"   2 hours ago   Up 2 hours (healthy)     3306/tcp, 33060/tcp            mysql-slice1
2194f145d27c   oaisoftwarealliance/oai-nrf:v1.5.0        "python3 /openair-nr…"   2 hours ago   Up 2 hours (healthy)     80/tcp, 9090/tcp               oai-nrf-slice1
a0be657d37e0   oaisoftwarealliance/trf-gen-cn5g:latest   "/bin/bash -c ' ipta…"   2 hours ago   Up 2 hours (unhealthy)                                  oai-ext-dn-slice1

部署基站

部署基站1

  • 添加路由
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice1$ sudo ip route add  192.168.10.0/24 via 192.168.16.6 dev ens39
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice1$ sudo ip route add  192.168.12.0/24 via 192.168.16.6 dev ens39
  • 测试是否成功与核心网网段及amf网元通信
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice1$ ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.
64 bytes from 192.168.10.1: icmp_seq=1 ttl=64 time=2.58 ms
^C
--- 192.168.10.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.581/2.581/2.581/0.000 ms
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice1$ ping 192.168.10.132
PING 192.168.10.132 (192.168.10.132) 56(84) bytes of data.
64 bytes from 192.168.10.132: icmp_seq=1 ttl=63 time=2.70 ms
^C
--- 192.168.10.132 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.704/2.704/2.704/0.000 ms
  • 部署ueransim-slice1
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice1/gnb-slice$ docker-compose -f ueransim-slice1.yaml up -d
WARNING: Found orphan containers (ueransim1) 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 ueransim-slice1 ... done
  • 查看ueransim-slice1容器状态
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice1/gnb-slice$ docker ps
WARNING: Error loading config file: /home/lab/.docker/config.json: open /home/lab/.docker/config.json: permission denied
CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS                    PORTS     NAMES
f540b53ad748   ueransim:latest   "/ueransim/bin/entry…"   17 seconds ago   Up 16 seconds (healthy)             ueransim-slice1
  • 查看ueransim-slice1日志
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice1/gnb-slice$ docker logs ueransim-slice1 2>&1 | tail -10
[2023-05-13 03:09:41.188] [nas] [debug] Registration accept received
[2023-05-13 03:09:41.188] [nas] [info] UE switches to state [MM-REGISTERED/NORMAL-SERVICE]
[2023-05-13 03:09:41.188] [nas] [debug] Sending Registration Complete
[2023-05-13 03:09:41.188] [nas] [info] Initial Registration is successful
[2023-05-13 03:09:41.188] [nas] [debug] Sending PDU Session Establishment Request
[2023-05-13 03:09:41.188] [nas] [debug] UAC access attempt is allowed for identity[0], category[MO_sig]
[2023-05-13 03:09:41.410] [ngap] [info] PDU session resource(s) setup for UE[1] count[1]
[2023-05-13 03:09:41.411] [nas] [debug] PDU Session Establishment Accept received
[2023-05-13 03:09:41.411] [nas] [info] PDU Session establishment is successful PSI[1]
[2023-05-13 03:09:41.430] [app] [info] Connection setup for PDU session[1] is successful, TUN interface[uesimtun0, 12.1.1.2] is up.

部署基站2

  • 添加路由
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice2$ sudo ip route add  192.168.20.0/24 via 192.168.26.6 dev ens41
[sudo] password for lab: 
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice2$ sudo ip route add  192.168.22.0/24 via 192.168.26.6 dev ens41
  • 测试是否成功与核心网网段及amf网元通信
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice2$ ping 192.168.20.1
PING 192.168.20.1 (192.168.20.1) 56(84) bytes of data.
64 bytes from 192.168.20.1: icmp_seq=1 ttl=64 time=2.86 ms
^C
--- 192.168.20.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.867/2.867/2.867/0.000 ms
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice2$ ping 192.168.20.132
PING 192.168.20.132 (192.168.20.132) 56(84) bytes of data.
64 bytes from 192.168.20.132: icmp_seq=1 ttl=63 time=2.98 ms
^C
--- 192.168.20.132 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.987/2.987/2.987/0.000 ms
  • 部署ueransim-slice2
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice2/gnb-slice$ docker-compose -f ueransim-slice2.yaml up -d
WARNING: Found orphan containers (ueransim-slice1, ueransim1) 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 ueransim-slice2 ... done
  • 查看ueransim-slice2容器状态
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice2/gnb-slice$ docker-compose -f ueransim-slice2.yaml ps
     Name                   Command                State       Ports
--------------------------------------------------------------------
ueransim-slice2   /ueransim/bin/entrypoint.sh   Up (healthy)        
  • 查看ueransim-slice2日志

部署基站3

  • 添加路由
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice3$ sudo ip route add  192.168.30.0/24 via 192.168.36.6 dev ens40
[sudo] password for lab: 
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice3$ sudo ip route add  192.168.32.0/24 via 192.168.36.6 dev ens40
  • 测试是否成功与核心网网段及amf网元通信
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice3$ ping 192.168.30.1
PING 192.168.30.1 (192.168.30.1) 56(84) bytes of data.
64 bytes from 192.168.30.1: icmp_seq=1 ttl=64 time=1.69 ms
^C
--- 192.168.30.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.699/1.699/1.699/0.000 ms
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice3$ ping 192.168.30.132
PING 192.168.30.132 (192.168.30.132) 56(84) bytes of data.
64 bytes from 192.168.30.132: icmp_seq=1 ttl=63 time=0.934 ms
^C
--- 192.168.30.132 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.934/0.934/0.934/0.000 ms
  • 部署ueransim-slice3
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice3/gnb-slice$ docker-compose -f ueransim-slice3.yaml up -d
WARNING: Found orphan containers (ueransim-slice1, ueransim-slice2, ueransim1) 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 ueransim-slice3 ... done
  • 查看ueransim-slice2容器状态
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice3/gnb-slice$ docker-compose -f ueransim-slice3.yaml ps
     Name                   Command                State       Ports
--------------------------------------------------------------------
ueransim-slice3   /ueransim/bin/entrypoint.sh   Up (healthy)       
  • 查看ueransim-slice2日志

查看amf日志

lab@lab-virtual-machine:~/oai-cn5g-fed/5gc-slicing-v1/Slice3$ docker logs oai-amf-slice1 2>&1 | tail -10
[2023-05-13T07:24:13.345119] [AMF] [amf_app] [info ] |    Index    |      Status      |       Global ID       |       gNB Name       |               PLMN             |
[2023-05-13T07:24:13.345128] [AMF] [amf_app] [info ] |      1      |    Connected     |         0x1       |         UERANSIM-gnb-208-95-1        |            208, 95             | 
[2023-05-13T07:24:13.345132] [AMF] [amf_app] [info ] |----------------------------------------------------------------------------------------------------------------|
[2023-05-13T07:24:13.345135] [AMF] [amf_app] [info ] 
[2023-05-13T07:24:13.345138] [AMF] [amf_app] [info ] |----------------------------------------------------------------------------------------------------------------|
[2023-05-13T07:24:13.345141] [AMF] [amf_app] [info ] |----------------------------------------------------UEs' information--------------------------------------------|
[2023-05-13T07:24:13.345144] [AMF] [amf_app] [info ] | Index |      5GMM state      |      IMSI        |     GUTI      | RAN UE NGAP ID | AMF UE ID |  PLMN   |Cell ID|
[2023-05-13T07:24:13.345154] [AMF] [amf_app] [info ] |      1|       5GMM-REGISTERED|   208950000000031|               |               1|          1| 208, 95 |    256|
[2023-05-13T07:24:13.345157] [AMF] [amf_app] [info ] |----------------------------------------------------------------------------------------------------------------|
[2023-05-13T07:24:13.345160] [AMF] [amf_app] [info ] 

问题

第二个基站无法接入,TUN接口生成有点问题,在核心网可以看见基站与用户的接入

is allowed for identity[0], category[MO_sig]
ueransim-slice2    | [2023-05-13 08:21:40.652] [ngap] [info] PDU session resource(s) setup for UE[1] count[1]
ueransim-slice2    | [2023-05-13 08:21:40.653] [nas] [debug] PDU Session Establishment Accept received
ueransim-slice2    | [2023-05-13 08:21:40.653] [nas] [info] PDU Session establishment is successful PSI[1]
ueransim-slice2    | RTNETLINK answers: File exists
ueransim-slice2    | [2023-05-13 08:21:40.677] [app] [error] TUN configuration failure [Command execution failed. The command was: ip route add default dev uesimtun1 table rt_uesimtun1. The output is: 'Command execution failure]
S

我估计问题出现的原因是网络接口生成时出现冲突,集中部署没有问题是因为没有使用host,容器内部网络互不干扰,而这里在生成uesimtun的时候,新生成的接口与第一个生成的接口有冲突
ueransim使用
https://github.com/aligungr/UERANSIM/issues/402
在这里插入图片描述
在这里插入图片描述
应该就是在生成uesimtun接口时会添加一个默认路由,而这个默认路由与之前添加的路由之间有冲突

uesimtun0: flags=369<UP,POINTOPOINT,NOTRAILERS,RUNNING,PROMISC>  mtu 1400
        inet 12.1.1.2  netmask 255.255.255.255  destination 12.1.1.2
        inet6 fe80::a207:9689:3a4e:1f27  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12  bytes 688 (688.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

uesimtun1: flags=369<UP,POINTOPOINT,NOTRAILERS,RUNNING,PROMISC>  mtu 1400
        inet 12.1.1.14  netmask 255.255.255.255  destination 12.1.1.14
        inet6 fe80::1f8a:cd75:c43e:bfef  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

uesimtun2: flags=369<UP,POINTOPOINT,NOTRAILERS,RUNNING,PROMISC>  mtu 1400
        inet 12.1.1.6  netmask 255.255.255.255  destination 12.1.1.6
        inet6 fe80::52a0:6b1f:4656:b89f  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

routing-config的问题

  • 不加路由规则启动ue
docker exec -it ueransim-slice1 /bin/bash
root@lab-virtual-machine:/ueransim/bin# /ueransim/bin/nr-ue --no-routing-config -c /ueransim/etc/custom-ue.yaml

不加routing-config与加的对比

root@lab-virtual-machine:/ueransim/bin# /ueransim/bin/nr-ue  -c /ueransim/etc/custom-ue.yaml   
UERANSIM v3.2.5
[2023-05-13 12:02:03.052] [nas] [info] UE switches to state [MM-DEREGISTERED/PLMN-SEARCH]
[2023-05-13 12:02:03.052] [rrc] [debug] New signal detected for cell[1], total [1] cells in coverage
[2023-05-13 12:02:03.053] [nas] [info] Selected plmn[208/95]
[2023-05-13 12:02:03.053] [rrc] [info] Selected cell plmn[208/95] tac[40960] category[SUITABLE]
[2023-05-13 12:02:03.053] [nas] [info] UE switches to state [MM-DEREGISTERED/PS]
[2023-05-13 12:02:03.053] [nas] [info] UE switches to state [MM-DEREGISTERED/NORMAL-SERVICE]
[2023-05-13 12:02:03.053] [nas] [debug] Initial registration required due to [MM-DEREG-NORMAL-SERVICE]
[2023-05-13 12:02:03.053] [nas] [debug] UAC access attempt is allowed for identity[0], category[MO_sig]
[2023-05-13 12:02:03.053] [nas] [debug] Sending Initial Registration
[2023-05-13 12:02:03.053] [nas] [info] UE switches to state [MM-REGISTER-INITIATED]
[2023-05-13 12:02:03.053] [rrc] [debug] Sending RRC Setup Request
[2023-05-13 12:02:03.055] [rrc] [info] RRC connection established
[2023-05-13 12:02:03.055] [rrc] [info] UE switches to state [RRC-CONNECTED]
[2023-05-13 12:02:03.055] [nas] [info] UE switches to state [CM-CONNECTED]
[2023-05-13 12:02:03.080] [nas] [debug] Authentication Request received
[2023-05-13 12:02:03.100] [nas] [debug] Security Mode Command received
[2023-05-13 12:02:03.100] [nas] [debug] Selected integrity[1] ciphering[1]
[2023-05-13 12:02:03.111] [nas] [debug] Registration accept received
[2023-05-13 12:02:03.111] [nas] [info] UE switches to state [MM-REGISTERED/NORMAL-SERVICE]
[2023-05-13 12:02:03.111] [nas] [debug] Sending Registration Complete
[2023-05-13 12:02:03.112] [nas] [info] Initial Registration is successful
[2023-05-13 12:02:03.112] [nas] [debug] Sending PDU Session Establishment Request
[2023-05-13 12:02:03.112] [nas] [debug] UAC access attempt is allowed for identity[0], category[MO_sig]
root@lab-virtual-machine:/ueransim/bin# /ueransim/bin/nr-ue --no-routing-config -c /ueransim/etc/custom-ue.yaml
UERANSIM v3.2.5
[2023-05-13 12:02:13.339] [nas] [info] UE switches to state [MM-DEREGISTERED/PLMN-SEARCH]
[2023-05-13 12:02:13.340] [rrc] [debug] New signal detected for cell[1], total [1] cells in coverage
[2023-05-13 12:02:13.341] [nas] [info] Selected plmn[208/95]
[2023-05-13 12:02:13.341] [rrc] [info] Selected cell plmn[208/95] tac[40960] category[SUITABLE]
[2023-05-13 12:02:13.341] [nas] [info] UE switches to state [MM-DEREGISTERED/PS]
[2023-05-13 12:02:13.341] [nas] [info] UE switches to state [MM-DEREGISTERED/NORMAL-SERVICE]
[2023-05-13 12:02:13.341] [nas] [debug] Initial registration required due to [MM-DEREG-NORMAL-SERVICE]
[2023-05-13 12:02:13.341] [nas] [debug] UAC access attempt is allowed for identity[0], category[MO_sig]
[2023-05-13 12:02:13.341] [nas] [debug] Sending Initial Registration
[2023-05-13 12:02:13.341] [nas] [info] UE switches to state [MM-REGISTER-INITIATED]
[2023-05-13 12:02:13.341] [rrc] [debug] Sending RRC Setup Request
[2023-05-13 12:02:13.342] [rrc] [info] RRC connection established
[2023-05-13 12:02:13.342] [rrc] [info] UE switches to state [RRC-CONNECTED]
[2023-05-13 12:02:13.342] [nas] [info] UE switches to state [CM-CONNECTED]
[2023-05-13 12:02:13.367] [nas] [debug] Authentication Request received
[2023-05-13 12:02:13.387] [nas] [debug] Security Mode Command received
[2023-05-13 12:02:13.388] [nas] [debug] Selected integrity[1] ciphering[1]
[2023-05-13 12:02:13.398] [nas] [debug] Registration accept received
[2023-05-13 12:02:13.398] [nas] [info] UE switches to state [MM-REGISTERED/NORMAL-SERVICE]
[2023-05-13 12:02:13.398] [nas] [debug] Sending Registration Complete
[2023-05-13 12:02:13.398] [nas] [info] Initial Registration is successful
[2023-05-13 12:02:13.398] [nas] [debug] Sending PDU Session Establishment Request
[2023-05-13 12:02:13.398] [nas] [debug] UAC access attempt is allowed for identity[0], category[MO_sig]
[2023-05-13 12:02:13.633] [nas] [debug] PDU Session Establishment Accept received
[2023-05-13 12:02:13.633] [nas] [info] PDU Session establishment is successful PSI[1]
[2023-05-13 12:02:13.635] [app] [info] Connection setup for PDU session[1] is successful, TUN interface[uesimtun2, 12.1.1.3] is up.

可以看到,不加–no-routing-config,即使用路由规则,无法手动生成tun,而加了–no-routing-config可以成功生成
需要测试这样生成tun接口的功能

调查

ueransim配置文件中添加路由区分配置
https://github.com/aligungr/UERANSIM/pull/611
https://github.com/aligungr/UERANSIM/pull/611/commits/fd565dbac77d4501e0a0de1d4e072e2efcd168a4

routingIndicator=0000

在这里插入图片描述

修改后无用

ueransim仅保证生成tun,不保证路由
https://github.com/aligungr/UERANSIM/issues/425
在这里插入图片描述
出现相似报错的回答
https://github.com/aligungr/UERANSIM/issues/257
在这里插入图片描述

nr-binder功能测试

基站1

lab@lab-virtual-machine:~/5gc-slicing-v1/Slice1/gnb-slice$ docker-compose -f ueransim-slice1.yaml up
WARNING: Found orphan containers (ueransim-slice2, ueransim1) 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.
Recreating ueransim-slice1 ... done
Attaching to ueransim-slice1
ueransim-slice1    | 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@'
ueransim-slice1    | 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@'
ueransim-slice1    | Done setting the configuration
ueransim-slice1    | ### Running ueransim ###
ueransim-slice1    | Running gnb
ueransim-slice1    | UERANSIM v3.2.5
ueransim-slice1    | [2023-05-13 11:37:47.954] [sctp] [info] Trying to establish SCTP connection... (192.168.10.132:38412)
ueransim-slice1    | [2023-05-13 11:37:47.962] [sctp] [info] SCTP connection established (192.168.10.132:38412)
ueransim-slice1    | [2023-05-13 11:37:47.962] [sctp] [debug] SCTP association setup ascId[35]
ueransim-slice1    | [2023-05-13 11:37:47.962] [ngap] [debug] Sending NG Setup Request
ueransim-slice1    | [2023-05-13 11:37:47.967] [ngap] [debug] NG Setup Response received
ueransim-slice1    | [2023-05-13 11:37:47.967] [ngap] [info] NG Setup procedure is successful
ueransim-slice1    | Running ue
ueransim-slice1    | UERANSIM v3.2.5
ueransim-slice1    | [2023-05-13 11:37:48.954] [nas] [info] UE switches to state [MM-DEREGISTERED/PLMN-SEARCH]
ueransim-slice1    | [2023-05-13 11:37:48.954] [rrc] [debug] UE[1] new signal detected
ueransim-slice1    | [2023-05-13 11:37:48.955] [rrc] [debug] New signal detected for cell[1], total [1] cells in coverage
ueransim-slice1    | [2023-05-13 11:37:48.955] [nas] [info] Selected plmn[208/95]
ueransim-slice1    | [2023-05-13 11:37:48.955] [rrc] [info] Selected cell plmn[208/95] tac[40960] category[SUITABLE]
ueransim-slice1    | [2023-05-13 11:37:48.955] [nas] [info] UE switches to state [MM-DEREGISTERED/PS]
ueransim-slice1    | [2023-05-13 11:37:48.955] [nas] [info] UE switches to state [MM-DEREGISTERED/NORMAL-SERVICE]
ueransim-slice1    | [2023-05-13 11:37:48.955] [nas] [debug] Initial registration required due to [MM-DEREG-NORMAL-SERVICE]
ueransim-slice1    | [2023-05-13 11:37:48.955] [nas] [debug] UAC access attempt is allowed for identity[0], category[MO_sig]
ueransim-slice1    | [2023-05-13 11:37:48.955] [nas] [debug] Sending Initial Registration
ueransim-slice1    | [2023-05-13 11:37:48.955] [nas] [info] UE switches to state [MM-REGISTER-INITIATED]
ueransim-slice1    | [2023-05-13 11:37:48.956] [rrc] [debug] Sending RRC Setup Request
ueransim-slice1    | [2023-05-13 11:37:48.956] [rrc] [info] RRC Setup for UE[1]
ueransim-slice1    | [2023-05-13 11:37:48.957] [rrc] [info] RRC connection established
ueransim-slice1    | [2023-05-13 11:37:48.957] [rrc] [info] UE switches to state [RRC-CONNECTED]
ueransim-slice1    | [2023-05-13 11:37:48.957] [nas] [info] UE switches to state [CM-CONNECTED]
ueransim-slice1    | [2023-05-13 11:37:48.957] [ngap] [debug] Initial NAS message received from UE[1]
ueransim-slice1    | [2023-05-13 11:37:48.995] [nas] [debug] Authentication Request received
ueransim-slice1    | [2023-05-13 11:37:49.018] [nas] [debug] Security Mode Command received
ueransim-slice1    | [2023-05-13 11:37:49.018] [nas] [debug] Selected integrity[1] ciphering[1]
ueransim-slice1    | [2023-05-13 11:37:49.028] [ngap] [debug] Initial Context Setup Request received
ueransim-slice1    | [2023-05-13 11:37:49.029] [nas] [debug] Registration accept received
ueransim-slice1    | [2023-05-13 11:37:49.029] [nas] [info] UE switches to state [MM-REGISTERED/NORMAL-SERVICE]
ueransim-slice1    | [2023-05-13 11:37:49.029] [nas] [debug] Sending Registration Complete
ueransim-slice1    | [2023-05-13 11:37:49.029] [nas] [info] Initial Registration is successful
ueransim-slice1    | [2023-05-13 11:37:49.029] [nas] [debug] Sending PDU Session Establishment Request
ueransim-slice1    | [2023-05-13 11:37:49.029] [nas] [debug] UAC access attempt is allowed for identity[0], category[MO_sig]
ueransim-slice1    | [2023-05-13 11:37:49.266] [ngap] [info] PDU session resource(s) setup for UE[1] count[1]
ueransim-slice1    | [2023-05-13 11:37:49.266] [nas] [debug] PDU Session Establishment Accept received
ueransim-slice1    | [2023-05-13 11:37:49.266] [nas] [info] PDU Session establishment is successful PSI[1]
ueransim-slice1    | [2023-05-13 11:37:49.290] [app] [info] Connection setup for PDU session[1] is successful, TUN interface[uesimtun0, 12.1.1.2] is up.

基站2

lab@lab-virtual-machine:~/5gc-slicing-v1/Slice2/gnb-slice$ docker-compose -f ueransim-slice2.yaml up
WARNING: Found orphan containers (ueransim-slice1, ueransim1) 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.
Recreating ueransim-slice2 ... done
Attaching to ueransim-slice2
ueransim-slice2    | 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@'
ueransim-slice2    | 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@'
ueransim-slice2    | Done setting the configuration
ueransim-slice2    | ### Running ueransim ###
ueransim-slice2    | Running gnb
ueransim-slice2    | UERANSIM v3.2.5
ueransim-slice2    | [2023-05-13 11:38:04.364] [sctp] [info] Trying to establish SCTP connection... (192.168.20.132:38412)
ueransim-slice2    | [2023-05-13 11:38:04.374] [sctp] [info] SCTP connection established (192.168.20.132:38412)
ueransim-slice2    | [2023-05-13 11:38:04.374] [sctp] [debug] SCTP association setup ascId[36]
ueransim-slice2    | [2023-05-13 11:38:04.375] [ngap] [debug] Sending NG Setup Request
ueransim-slice2    | [2023-05-13 11:38:04.381] [ngap] [debug] NG Setup Response received
ueransim-slice2    | [2023-05-13 11:38:04.381] [ngap] [info] NG Setup procedure is successful
ueransim-slice2    | Running ue
ueransim-slice2    | UERANSIM v3.2.5
ueransim-slice2    | [2023-05-13 11:38:05.365] [nas] [info] UE switches to state [MM-DEREGISTERED/PLMN-SEARCH]
ueransim-slice2    | [2023-05-13 11:38:05.366] [rrc] [debug] UE[1] new signal detected
ueransim-slice2    | [2023-05-13 11:38:05.366] [rrc] [debug] New signal detected for cell[1], total [1] cells in coverage
ueransim-slice2    | [2023-05-13 11:38:05.367] [nas] [info] Selected plmn[208/95]
ueransim-slice2    | [2023-05-13 11:38:05.367] [rrc] [info] Selected cell plmn[208/95] tac[40960] category[SUITABLE]
ueransim-slice2    | [2023-05-13 11:38:05.367] [nas] [info] UE switches to state [MM-DEREGISTERED/PS]
ueransim-slice2    | [2023-05-13 11:38:05.367] [nas] [info] UE switches to state [MM-DEREGISTERED/NORMAL-SERVICE]
ueransim-slice2    | [2023-05-13 11:38:05.367] [nas] [debug] Initial registration required due to [MM-DEREG-NORMAL-SERVICE]
ueransim-slice2    | [2023-05-13 11:38:05.367] [nas] [debug] UAC access attempt is allowed for identity[0], category[MO_sig]
ueransim-slice2    | [2023-05-13 11:38:05.367] [nas] [debug] Sending Initial Registration
ueransim-slice2    | [2023-05-13 11:38:05.367] [nas] [info] UE switches to state [MM-REGISTER-INITIATED]
ueransim-slice2    | [2023-05-13 11:38:05.367] [rrc] [debug] Sending RRC Setup Request
ueransim-slice2    | [2023-05-13 11:38:05.368] [rrc] [info] RRC Setup for UE[1]
ueransim-slice2    | [2023-05-13 11:38:05.368] [rrc] [info] RRC connection established
ueransim-slice2    | [2023-05-13 11:38:05.368] [rrc] [info] UE switches to state [RRC-CONNECTED]
ueransim-slice2    | [2023-05-13 11:38:05.368] [nas] [info] UE switches to state [CM-CONNECTED]
ueransim-slice2    | [2023-05-13 11:38:05.369] [ngap] [debug] Initial NAS message received from UE[1]
ueransim-slice2    | [2023-05-13 11:38:05.398] [nas] [debug] Authentication Request received
ueransim-slice2    | [2023-05-13 11:38:05.423] [nas] [debug] Security Mode Command received
ueransim-slice2    | [2023-05-13 11:38:05.423] [nas] [debug] Selected integrity[1] ciphering[1]
ueransim-slice2    | [2023-05-13 11:38:05.432] [ngap] [debug] Initial Context Setup Request received
ueransim-slice2    | [2023-05-13 11:38:05.433] [nas] [debug] Registration accept received
ueransim-slice2    | [2023-05-13 11:38:05.433] [nas] [info] UE switches to state [MM-REGISTERED/NORMAL-SERVICE]
ueransim-slice2    | [2023-05-13 11:38:05.433] [nas] [debug] Sending Registration Complete
ueransim-slice2    | [2023-05-13 11:38:05.433] [nas] [info] Initial Registration is successful
ueransim-slice2    | [2023-05-13 11:38:05.433] [nas] [debug] Sending PDU Session Establishment Request
ueransim-slice2    | [2023-05-13 11:38:05.433] [nas] [debug] UAC access attempt is allowed for identity[0], category[MO_sig]
ueransim-slice2    | [2023-05-13 11:38:05.661] [ngap] [info] PDU session resource(s) setup for UE[1] count[1]
ueransim-slice2    | [2023-05-13 11:38:05.662] [nas] [debug] PDU Session Establishment Accept received
ueransim-slice2    | [2023-05-13 11:38:05.662] [nas] [info] PDU Session establishment is successful PSI[1]
ueransim-slice2    | RTNETLINK answers: File exists
ueransim-slice2    | [2023-05-13 11:38:05.685] [app] [error] TUN configuration failure [Command execution failed. The command was: ip route add default dev uesimtun1 table rt_uesimtun1. The output is: 'Command execution failure]

ifconfig

lab@lab-virtual-machine:~/5gc-slicing-v1/Slice1/gnb-slice$ ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:f7:40:5e:5a  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.19.66  netmask 255.255.255.0  broadcast 192.168.19.255
        inet6 fe80::20c:29ff:fe90:987d  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:90:98:7d  txqueuelen 1000  (Ethernet)
        RX packets 9816  bytes 2279431 (2.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 32311  bytes 1948266 (1.9 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens39: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.16.66  netmask 255.255.255.0  broadcast 192.168.16.255
        inet6 fe80::20c:29ff:fe90:98af  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:90:98:af  txqueuelen 1000  (Ethernet)
        RX packets 39061  bytes 3507517 (3.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3082  bytes 278862 (278.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens40: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.36.66  netmask 255.255.255.0  broadcast 192.168.36.255
        inet6 fe80::20c:29ff:fe90:989b  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:90:98:9b  txqueuelen 1000  (Ethernet)
        RX packets 42861  bytes 3680074 (3.6 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 19757  bytes 1342275 (1.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens41: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.26.66  netmask 255.255.255.0  broadcast 192.168.26.255
        inet6 fe80::20c:29ff:fe90:98a5  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:90:98:a5  txqueuelen 1000  (Ethernet)
        RX packets 7829  bytes 1256394 (1.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 19866  bytes 1363935 (1.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 259322  bytes 18925066 (18.9 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 259322  bytes 18925066 (18.9 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

uesimtun0: flags=369<UP,POINTOPOINT,NOTRAILERS,RUNNING,PROMISC>  mtu 1400
        inet 12.1.1.2  netmask 255.255.255.255  destination 12.1.1.2
        inet6 fe80::72a3:65fe:7691:1418  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10  bytes 628 (628.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

uesimtun1: flags=369<UP,POINTOPOINT,NOTRAILERS,RUNNING,PROMISC>  mtu 1400
        inet 12.1.1.2  netmask 255.255.255.255  destination 12.1.1.2
        inet6 fe80::5968:5197:a58:37f3  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

居然生成了同ip的uesimtun0

考虑核心网上将三个核心网分配的ue ip区分

#切片1
DNN_RANGE2=12.1.1.2 - 12.1.1.50
#切片2
DNN_RANGE2=12.1.1.51 - 12.1.1.99
#切片3
DNN_RANGE2=12.1.1.101 - 12.1.1.150

然后进行同样的操作:

uesimtun0: flags=369<UP,POINTOPOINT,NOTRAILERS,RUNNING,PROMISC>  mtu 1400
        inet 12.1.1.2  netmask 255.255.255.255  destination 12.1.1.2
        inet6 fe80::a9c1:e01:a55b:4ed2  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7  bytes 448 (448.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

uesimtun1: flags=369<UP,POINTOPOINT,NOTRAILERS,RUNNING,PROMISC>  mtu 1400
        inet 12.1.1.51  netmask 255.255.255.255  destination 12.1.1.51
        inet6 fe80::b182:5544:dbb7:25fb  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

按照修改生成了ip,但错误依旧有

  • ueransim-slice1
ueransim-slice1    | [2023-05-13 11:46:53.128] [ngap] [info] PDU session resource(s) setup for UE[1] count[1]
ueransim-slice1    | [2023-05-13 11:46:53.129] [nas] [debug] PDU Session Establishment Accept received
ueransim-slice1    | [2023-05-13 11:46:53.129] [nas] [info] PDU Session establishment is successful PSI[1]
ueransim-slice1    | [2023-05-13 11:46:53.148] [app] [info] Connection setup for PDU session[1] is successful, TUN interface[uesimtun0, 12.1.1.2] is up.
  • ueransim-slice2
Establishment Accept received
ueransim-slice2    | [2023-05-13 11:47:00.213] [nas] [info] PDU Session establishment is successful PSI[1]
ueransim-slice2    | RTNETLINK answers: File exists
ueransim-slice2    | [2023-05-13 11:47:00.232] [app] [error] TUN configuration failure [Command execution failed. The command was: ip route add default dev uesimtun1 table rt_uesimtun1. The output is: 'Command execution failure]

看样子不是这么简单的问题

路由表方向解决

https://github.com/aligungr/UERANSIM/issues/425

lab@lab-virtual-machine:~/5gc-slicing-v1/Slice3$ cat /etc/iproute2/rt_tables
#
# reserved values
#
255	local
254	main
253	default
0	unspec
#
# local
#
#1	inr.ruhep

1000	rt_uesimtun0
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice3$ ip rule show table rt_uesimtun0
32737:	from 12.1.1.51 lookup rt_uesimtun0 
32738:	from 12.1.1.2 lookup rt_uesimtun0 
32739:	from 12.1.1.21 lookup rt_uesimtun0 
32740:	from 12.1.1.10 lookup rt_uesimtun0 
32741:	from 12.1.1.20 lookup rt_uesimtun0 
32742:	from 12.1.1.9 lookup rt_uesimtun0 
32743:	from 12.1.1.8 lookup rt_uesimtun0 
32744:	from 12.1.1.19 lookup rt_uesimtun0 
32747:	from 12.1.1.6 lookup rt_uesimtun0 
32748:	from 12.1.1.14 lookup rt_uesimtun0 
32757:	from 12.1.1.5 lookup rt_uesimtun0 
32758:	from 12.1.1.4 lookup rt_uesimtun0 
32759:	from 12.1.1.3 lookup rt_uesimtun0 

不同基站生成ue都到了同一个rt_uesimtun1上,而不是有各自的路由

  • tun+route
    https://github.com/search?q=repo%3Aaligungr%2FUERANSIM%20%20route&type=code
    https://github.com/aligungr/UERANSIM/blob/3a96298fa284b0da261a60439b21c1adf1677aea/src/ue/tun/config.cpp#L154

  • tun
    https://github.com/aligungr/UERANSIM/tree/3a96298fa284b0da261a60439b21c1adf1677aea/src/ue/tun

路由规则

未启动路由:

lab@lab-virtual-machine:~/5gc-slicing-v1/Slice1/gnb-slice$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.3.1     0.0.0.0         UG    104    0        0 ens37
0.0.0.0         192.168.19.1    0.0.0.0         UG    20100  0        0 ens33
0.0.0.0         192.168.16.1    0.0.0.0         UG    20101  0        0 ens39
0.0.0.0         192.168.36.1    0.0.0.0         UG    20102  0        0 ens40
0.0.0.0         192.168.26.1    0.0.0.0         UG    20103  0        0 ens41
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 ens33
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.3.0     0.0.0.0         255.255.255.0   U     104    0        0 ens37
192.168.10.0    192.168.16.6    255.255.255.0   UG    0      0        0 ens39
192.168.12.0    192.168.16.6    255.255.255.0   UG    0      0        0 ens39
192.168.16.0    0.0.0.0         255.255.255.0   U     101    0        0 ens39
192.168.19.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.20.0    192.168.26.6    255.255.255.0   UG    0      0        0 ens41
192.168.22.0    192.168.26.6    255.255.255.0   UG    0      0        0 ens41
192.168.26.0    0.0.0.0         255.255.255.0   U     103    0        0 ens41
192.168.30.0    192.168.36.6    255.255.255.0   UG    0      0        0 ens40
192.168.32.0    192.168.36.6    255.255.255.0   UG    0      0        0 ens40
192.168.36.0    0.0.0.0         255.255.255.0   U     102    0        0 ens40

启动slice1:

[2023-05-15 10:17:00.740] [app] [info] Connection setup for PDU session[1] is successful, TUN interface[uesimtun0, 12.1.1.10] is up.
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice1/gnb-slice$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.3.1     0.0.0.0         UG    104    0        0 ens37
0.0.0.0         192.168.19.1    0.0.0.0         UG    20100  0        0 ens33
0.0.0.0         192.168.16.1    0.0.0.0         UG    20101  0        0 ens39
0.0.0.0         192.168.36.1    0.0.0.0         UG    20102  0        0 ens40
0.0.0.0         192.168.26.1    0.0.0.0         UG    20103  0        0 ens41
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 ens33
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.3.0     0.0.0.0         255.255.255.0   U     104    0        0 ens37
192.168.10.0    192.168.16.6    255.255.255.0   UG    0      0        0 ens39
192.168.12.0    192.168.16.6    255.255.255.0   UG    0      0        0 ens39
192.168.16.0    0.0.0.0         255.255.255.0   U     101    0        0 ens39
192.168.19.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.20.0    192.168.26.6    255.255.255.0   UG    0      0        0 ens41
192.168.22.0    192.168.26.6    255.255.255.0   UG    0      0        0 ens41
192.168.26.0    0.0.0.0         255.255.255.0   U     103    0        0 ens41
192.168.30.0    192.168.36.6    255.255.255.0   UG    0      0        0 ens40
192.168.32.0    192.168.36.6    255.255.255.0   UG    0      0        0 ens40
192.168.36.0    0.0.0.0         255.255.255.0   U     102    0        0 ens40

启动slice2

lab@lab-virtual-machine:~/5gc-slicing-v1/Slice2/gnb-slice$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.3.1     0.0.0.0         UG    104    0        0 ens37
0.0.0.0         192.168.19.1    0.0.0.0         UG    20100  0        0 ens33
0.0.0.0         192.168.16.1    0.0.0.0         UG    20101  0        0 ens39
0.0.0.0         192.168.36.1    0.0.0.0         UG    20102  0        0 ens40
0.0.0.0         192.168.26.1    0.0.0.0         UG    20103  0        0 ens41
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 ens33
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.3.0     0.0.0.0         255.255.255.0   U     104    0        0 ens37
192.168.10.0    192.168.16.6    255.255.255.0   UG    0      0        0 ens39
192.168.12.0    192.168.16.6    255.255.255.0   UG    0      0        0 ens39
192.168.16.0    0.0.0.0         255.255.255.0   U     101    0        0 ens39
192.168.19.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.20.0    192.168.26.6    255.255.255.0   UG    0      0        0 ens41
192.168.22.0    192.168.26.6    255.255.255.0   UG    0      0        0 ens41
192.168.26.0    0.0.0.0         255.255.255.0   U     103    0        0 ens41
192.168.30.0    192.168.36.6    255.255.255.0   UG    0      0        0 ens40
192.168.32.0    192.168.36.6    255.255.255.0   UG    0      0        0 ens40
192.168.36.0    0.0.0.0         255.255.255.0   U     102    0        0 ens40

两种情况路由表一致

  • traceroute 查看到一个ip的路由
    -q 只追踪一次 -s x.x.x.x 设置源地址
traceroute -q 1 192.168.20.132 -s 12.1.1.52
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice2/gnb-slice$ traceroute -q 1 192.168.20.132
traceroute to 192.168.20.132 (192.168.20.132), 30 hops max, 60 byte packets
 1  192.168.26.6 (192.168.26.6)  2.760 ms
 2  192.168.20.132 (192.168.20.132)  2.610 ms
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice2/gnb-slice$ traceroute -q 1 192.168.20.132 -s 12.1.1.51
traceroute to 192.168.20.132 (192.168.20.132), 30 hops max, 60 byte packets
bind: Cannot assign requested address
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice2/gnb-slice$ traceroute -q 1 192.168.20.132 -s 12.1.1.52
traceroute to 192.168.20.132 (192.168.20.132), 30 hops max, 60 byte packets
 1  *
 2  *
 3  192.168.23.1 (192.168.23.1)  75.157 ms
 4  *
 5  *
 6  *
 7  *
 8  *
 9  *
10  *
11  *
12  *
13  *
14  *
15  *
16  *
17  *
18  *
19  *
20  *
21  *
22  *
23  *
24  *
25  *
26  *
27  *
28  *
29  *
30  *
lab@lab-virtual-machine:~/5gc-slicing-v1/Slice2/gnb-slice$ traceroute -q 1 192.168.20.1 -s 12.1.1.52
traceroute to 192.168.20.1 (192.168.20.1), 30 hops max, 60 byte packets
 1  *
 2  192.168.23.135 (192.168.23.135)  5.352 ms
 3  192.168.20.1 (192.168.20.1)  5.371 ms

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/536119.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WebAssembly--执行与内存模型

前言 在WebAssembly初探中&#xff0c;我们已经了解了WebAssembly的发展和标准演进过程&#xff0c;并简单地体验了一把Wasm的应用&#xff0c;本篇文章会通过对比WASM和JS的执行流程&#xff0c;WebAssembly的内存模型深入分析&#xff0c;带大家理解下WebAssembly部分核心原…

IOC/DI注解开发管理第三方bean

文章目录 1 环境准备2 注解开发管理第三方bean步骤1:导入对应的jar包步骤2:在配置类中添加一个方法步骤3:在方法上添加Bean注解步骤4:从IOC容器中获取对象并打印 3 引入外部配置类3.1 使用包扫描引入步骤1:在Spring的配置类上添加包扫描步骤2:在JdbcConfig上添加配置注解步骤3:…

谷歌浏览器F请求解析说明

请求 Queued at 0s&#xff1a;表示该请求加入到请求队列中的时刻&#xff0c;请求队列在打开F12后第一次发送请求的时候创建&#xff0c;直到关闭控制台的时候销毁。 Started at 7.14s&#xff1a;表示请求开始处理的时刻。 Queueing&#xff1a;表示请求从加入到请求队列…

LeetCode 107. 二叉树的层序遍历 II

107. 二叉树的层序遍历 II 描述 给你二叉树的根节点 root &#xff0c;返回其节点值 自底向上的层序遍历 。 &#xff08;即按从叶子节点所在层到根节点所在的层&#xff0c;逐层从左向右遍历&#xff09; 示例 示例1 输入&#xff1a;root [3,9,20,null,null,15,7] 输出…

Alibaba(一)项目环境合理选择

在学习以及开始使微服务架构前&#xff0c;我们需要先选择各各模块适配的版本。以此来避免生产过程或者学习过程出现令人头疼的版本问题&#xff0c;避免花费大量时间去找更正这些版本错误&#xff0c;导致耽误学习&#xff0c;影响项目进度。 项目源码&#xff0c;及源文档地址…

XPATH 使用备忘

xpath的基础使用 一.xpath简介 XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。 XPath 使用路径表达式在 XML 文档中进行导航XPath 包含一个标准函数库XPath 是 XSLT 中的主要元素XPath 是一个 W3C 标准 节点 在 XPath 中&…

【Linux】有名管道介绍及使用

目录 有名管道有名管道使用 橙色 有名管道 有名管道(FIFO)和匿名管道(pipe)有一些特点是相同的,不一样的地方在于: FIFO在文件系统中作为一个特殊文件存在&#xff0c;但文件中是没有内容的&#xff0c; FIFO中的内容存放在内存中。当使用FIFO的进程退出后&#xff0c; FIFO文…

在离散混合制造环境中应用制造运营模型

介绍 本文所描述的所有制造过程、场景、操作模式和技术应用目前都在一个成熟的离散和离散/批量混合制造企业中使用&#xff0c;该企业生产和维修复杂的机器。该企业生产的产品范围从从棒材加工的简单零件到复杂的机械装配&#xff1b;最终产品包括许多内部和第三方提供的子装配…

5.2————运算符重载

对于基本的数据类型&#xff0c;C提供来许多预先定义的运算符&#xff0c;如“&#xff0c;-&#xff0c;*&#xff0c;/”等&#xff0c;他们的运用大家应该已经很熟悉了。那么我们引入运算符重载的概念到底是为什么&#xff0c;比如是我们的加号可以完成基本数据类型的相加&a…

mysql 修改最大连接数max_connections

mysql 修改最大连接数max_connections 1、编辑mysql service文件2、编辑mysql 配置文件3、重启MySQL服务4、查看max_connections 1、编辑mysql service文件 查找mysql service文件 find / -name mysql*.service先备份再编辑 cp /usr/lib/systemd/system/mysqld.service /usr…

【C++ STL】 那年我双手插兜,学会了stackqueuepriority_queue基础知识及其模拟实现【对话情景版】

文章目录 &#x1f4cd;前言C STL 之 stack&queue基础知识及其模拟实现&#x1f4cd;容器适配器&#x1f388;什么是适配器&#xff1f;&#x1f388;STL标准库中stack和queue的底层结构&#x1f388;deque的简单介绍(了解)&#x1f4cc;deque的原理介绍&#x1f4cc;deque…

基于SSM的书画拍卖网站

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

软件系统外包开发流程及注意事项

当企业发展到一定规模后&#xff0c;市场上通用的软件系统往往就无法满足自身的业务需要&#xff0c;这时就需要企业开发属于自己软件系统。软件系统是一项比较复杂的系统工程&#xff0c;从需求分析、代码开发到最后的上线需要比较长的时间&#xff0c;需要有系统的管理方法才…

问题记录:Datax+Datax-web2.1.2的一系列问题

问题1&#xff1a;DataX报错解决办法 - 在有总bps限速条件下&#xff0c;单个channel的bps值不能为空&#xff0c;也不能为非正数 问题原因&#xff1a; 正如中文字面上所说&#xff0c;DataX的配置有问题&#xff0c;单个channel的bps值不能为空&#xff0c;也不能为非正数。…

教你怎么翻译英语语音

在当今全球化的时代&#xff0c;跨语言交流是一种常态。无论你是在国外旅游时无法理解当地人说的英文意思&#xff0c;还是因为职业需要与国外客户、供应商进行交流&#xff0c;这时候通过翻译英文语音就可以帮助你获取对话内容&#xff0c;缩短沟通时间和提升工作效率。那对于…

【windows批处理batch】.bat文件循环判断语句

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化 &#x1f449;专__注&#x1f448;&#xff1a;专注主流机器人、人工智能等相关领域的开发、…

计算机毕业论文内容参考|基于java的学生成绩分析系统的设计与实现

文章目录 导文摘要前言课题背景国内外现状与趋势课题内容相关技术与方法介绍技术分析技术设计系统架构设计数据库设计安全认证设计数据可视化设计技术实现后端实现安全认证实现数据可视化实现总结与展望本文总结后续工作展望导文 基于java的学生成绩分析

【逆向工程核心原理:TLS回调函数】

TLS 代码逆向分析领域中&#xff0c;TLS&#xff08;Thread Local Storage&#xff0c;线程局部存储&#xff09;回调函数&#xff08;Callback Function&#xff09;常用反调试。TLS回调函数的调用运行要先于EP代码的执行&#xff0c;该特征使它可以作为一种反调试技术的使用…

【经验总结】你想知道的BGA焊接问题都在这里

BGA是一种芯片封装的类型&#xff0c;英文 (Ball Grid Array)的简称&#xff0c;封装引脚为球状栅格阵列在封装底部&#xff0c;引脚都成球状并排列成一个类似于格子的图案&#xff0c;由此命名为BGA。 主板控制芯片诸多采用此类封装技术&#xff0c;采用BGA技术封装的内存&am…

聚焦 TimescaleDB VS TDengine 性能对比报告,五大场景全面分析写入与查询

基于第三方基准性能测试平台 TSBS&#xff08;Time Series Benchmark Suite&#xff09; 标准数据集&#xff0c;TDengine 团队分别就 TSBS 指定的 DevOps 中 cpu-only 五个场景&#xff0c;对时序数据库&#xff08;Time Series Database&#xff0c;TSDB&#xff09;Timescal…