cncf / cnf-testbed

ARCHIVED: 🧪🛏️Cloud-native Network Function (CNF) Testbed --> See LFN Cloud Native Telecom Initiative https://wiki.lfnetworking.org/pages/viewpage.action?pageId=113213592

Home Page:https://wiki.lfnetworking.org/pages/viewpage.action?pageId=113213592

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Create a POC local address-only version of the single-node flat network GoEPC user plane

taylor opened this issue · comments

Containerized, flat network version of the Go-GTP-based minimal user plane EPC use case

Purpose:

  • research how the go-gtp CNFs can run on K8s with a flat network
  • Document results
  • see what the next steps for a flat network version using normal K8s assigned container/pod IPs.

Goal:

  • minimal changes and effort with existing NFs. Eg. use local addresses as that is what's used in the host-only version
  • validate traffic goes through the SGW and PGW as seen in the host-only

GW Tester emulates the minimal required behavior of surrounding nodes to perform a quick and simple testing on S/P-GW to an external end point all running on Kubernetes.

image

Prereqs:

  • Containerized P-GW (#313)
  • Containerized S-GW (#314)
  • Containerized Pseudo ENB (#315 )
  • Containerized Pseudo MME (#316)

Tasks:

  • Create example folder under https://github.com/cncf/cnf-testbed/tree/master/examples/use_case (eg. go-gtp-containerized-epc)
  • Reuse manifest files from containerized components (P-GW, S-GW, ENB and MME)
  • Create config map for each component for connectivity info, etc
  • Create script to deploy each component using the config maps
  • Create tests procedure and any needed scripts
    • Define expected successful results
  • Script setup of external HTTP end point
  • Document setup of external HTTP end point
  • Document example/use case (See existing use cases)

Testing:

  • Deploy K8s cluster to Packet
  • Deploy HTTP end point
  • Deploy minimal EPC example
  • Run test

Expectations:

  • Packets to HTTP server are 100% received

  • [ ]

Multus will be added in #327

Status as of 2020-01-31

GoGTP K8s flat-network implementation

  • Deploys GoGTP EPC
    • Endpoints not included in this example
  • Uses shared "localhost" interface to communicate between containers
    • No separation between networks
  • No useful way of testing EPC functionality in example
    • Also likely wont work due to IPv4 forwarding being disabled. See details in K8s Multus below
  • Runs as unprivileged, but with NET_ADMIN capability
    • GoGTP code starts as expected
    • Likely wont work due to IPv4 forwarding being disabled. See details in K8s Multus below
  • Not sure if it makes sense to keep this implementation
    • Mainly useful for reference
    • Due to shared/flat network testing is difficult

This served it's purpose in research. New ticket will be opened to plan the flat network with normal K8s IPs.