UPF not forwarding packets received in GTP tunnel with UERANSIM

Hello,

I’m quite new to free5gc and started testing with a more-or-less basic deployment, using UERANSIM to register and deliver traffic to internet using free5gc. I’ve got blocked in the last steps, where UERANSIM traffic received in UPF via GTP tunnel should be forwarded to the free5gc interface connecting with internet. More details are listed below, any help is appreciated.

Free5gc and UERANSIM basic configuration: Ubuntu KVM VMs, using network interfaces in underlying bridges interconnecting them, splitting control and user plane traffic in different network interfaces. Low level details in file attached: free5gc details.txt (45.7 KB).

Regarding traffic forwarding in free5gc vm, it has been validated by delivering traffic to internet from UERANSIM VM to Free5gc VM directly using one of the subnets interconnecting them (details in attached file too), so it seems to be not the problem.

Additionally, traceroute results are also supplied inside the file, indicating that the traffic should follow the expected steps to reach the internet gateway in free5gc vm.

Let me also add the traffic captured in free5gc interfaces once ping is done in UERANSIM towards the IP routed via the GTP tunnel tcpdump captures.zip (1.2 KB)

  • Traffic capture in user plane interface associated to UPF in free5gc VM. The traffic is correctly received, encapsulated in GTP: capture_ens20_dataplane.pcap
  • Traffic capture in free5gc VM’s network interface connecting with internet, where default routing is applied. No traffic is identified. capture_ens22_gatewayNw.pcap

For any reason, it seems that traffic received in free5gc VM’s upfgtp network interface is not forwarded to the final destination using the default route in free5gc VM.

P.D. I’ve seen some similar topics in the forum, but I didn’t found the fix to go forward with my configuration, but maybe I have missed the post that could follow to find a workaround. If it is the case, please indicate.

Thanks in advance and kind regards,
José María

Hi,

Issue seems similar to : Issue with TCP traffic and NAT running Free5GC in OpenStack

Summary: checksum of packets going towards internet is wrong because it was never calculated when they entered the GTP tunnel at UERANSIM. Hence they are dropped as they come out of UPF.

Thanks

Thanks a lot for your feedback @ksr!

Checking your indications and post contents, I still have a couple of questions:

  1. Reviewing the contents of GTP packets captured in free5gc VM’s ens20 interface (associated to UPF userplane), it seems that encapsulated ICMP packets have a correct checksum. Attached screenshoot over previous captures here, after activating wireshark IPv4 checksum validation - https://osqa-ask.wireshark.org/questions/36739/header-checksum-0xdfbb-validation-disabled/-

  2. I’ve been also checking checksum offloading to ethernet card deactivation with ethtool command, but with no positive effect. Can you please confirm that it is required even with the evidences indicated above? If it is the case, what are the interfaces where it has to be configured? userplane interface in UERANSIM? UPF userplane interface in free5gc? free5gc interface with internet gateway?

Thanks a lot for your patience and support!

Regards,
José María

Hello again,

Does anybody have any suggestion about this issue? are there deployment references of last free5gc version redirecting UERANSIM to UPF traffic, when installed in KVM VMs?

Regards,
José María

Hi,

Did you try any other type of traffic (than ICMP) ? Are you getting same issue ?

Regards,
-kartik.

Hello,

Yes, I have tried also with http/https traffic, and also with negative result. Let me also link this issue with the one posted here: https://forum.free5gc.org/t/ue-not-able-to-reach-internet-in-ueransim/1296, it seems to be a similar issue. could it be an issue with the free5gc package versions used? GTP tunnel using IPv6 in UPF side, meanwhile network interfaces are using IPv4?

After additional investigation, I’ve found the issue: posting it here just in case it can help others:

Following free5gc video-tutorials, I had installed gtp5g from https://github.com/PrinzOwO/gtp5g . It didn’t produce any error message when starting free5gc, and brings up the gtp interface, but the traffic simply doesn`t work.

If I remove this gtp5g version, replacing them by the following ones under free5gc directory, it works:

Full set of steps followed inside free5gc directory:
git clone https://github.com/free5gc/libgtp5gnl
cd libgtp5gnl
autoreconf -iv
./configure --prefix=pwd
make
cd …
git clone https://github.com/free5gc/gtp5g
cd gtp5g
make clean && make
sudo make install

I hope it helps. Suggestion to free5gc project owners: please update the video-tutorials (or text versions) to avoid further misunderstandings.