free5gc / free5gc

Open source 5G core network based on 3GPP R15
https://free5gc.org
Apache License 2.0
1.91k stars 624 forks source link

gtp5g module incorrectly delivering packets to userspace process when src IP is not within 60.60.0/24 #55

Closed dcamps closed 4 years ago

dcamps commented 4 years ago

Dear support team,

I am working with a modified version of the N3IWF test where I want to route packets from behind the UE to the data network behind the UPF, i.e. the UE is acting as a router.

The following image describes the setup I am working with:

image

In this setup I can successfully ping between the UE namespaces and the data network, e.g. between 60.60.0.1 and 60.60.0.101. However, ping fails when I do it from 10.0.1.2. What happens is that the packet is correctly routed by the UE into the N3IWF tunnel, and the N3IWF correctly binds the packet into a GTP tunnel towards the UPF. In the UPF namespace I can see the packet on veth1 but it is not delivered to upfgtp0.

What is happening is that the gtp5g kernel module does not match on the packets coming from 10.0.1.2 with destination 60.60.0.101, and instead delivers the packets to the free5GC UPF process, which fails because this process cannot handle GTP transport PDUs (header type 255).

I attach an image from a pcap captured between the N3IWF and the UPF, where you see the ICMP echo request from 10.0.1.2 towards 60.60.0.101.

image

The question is why is the UPF not routing correctly the packets from 10.0.1/24 but it behaves correctly with the packets that come from 60.60.0/24? This is the upfcfg.yaml file that I use in the test:

info:
  version: 1.0.0
  description: UPF configuration

configuration:
  debugLevel: info

  pfcp:
    - addr: 10.200.200.101

  gtpu:
    - addr: 10.200.200.102

  apn_list:
    - apn: internet
      cidr: 60.60.0.0/24

Can I modify this file to enable routing from UE subnets different than 60.60.0/24?

As I mentioned earlier my test is based on the N3IWF test script so there is no SMF sending rules to the UPF.

Another related question is if there is any command line tool I can use to dump the rules installed in the gtp5g kernel module?

Thanks for you support

BR

Daniel

free5gc-org commented 4 years ago

Dear Daniel,

For questions and support please use the official forum. The issue list of this repo is exclusively for bug reports and feature requests.

Also, please provide the pcap file and configure file of your issue so that we can check what the problem is caused by.

Thanks a lot.

dcamps commented 4 years ago

Thanks, I posted the issue in the forum here: https://forum.free5gc.org/t/gtp5g-module-incorrectly-delivering-packets-to-userspace-process-when-src-ip-is-not-within-60-60-0-24/49

I proceed to close this one

BR

Daniel