F5FtpSetting

The F5FtpSetting Custom Resource (CR) defines the FTP profile settings for F5 BIG-IP Local Traffic Manager (LTM) on cloud-native network functions (CNFs). You attach this profile to a virtual server to enable FTP traffic processing.

CR parameters

The tables below describe the F5FtpSetting CR parameters.

metadata

Parameter Description
name The name of the FTP profile. This value is referenced by the traffic management CNF CRs.
namespace Specifies the Kubernetes namespace in which the FTP profile will be installed.

Spec

Field Type Default Description
allowActiveMode Boolean true Enables active mode of FTP data transfer. Set to false to restrict transfers to passive mode only.
allowFtpsMode String Controls FTPS (FTP over TLS) behavior. Accepted values: disallow — resets connections from clients that send AUTH SSL or AUTH TLS. allow — permits explicit FTPS negotiation; after the transition, the virtual server enters pass-through mode and only supports passive-mode data connections. require — requires that both client and server use the STARTTLS exchange for FTP operations.
dataPort Integer 20 Sets the port number for FTP data connections. Change this if your environment uses a non-standard data port.
enforceTlsSessionReuse Boolean false When enabled, the system rejects data connections that don't reuse the TLS session from the control channel. When disabled, the system reuses the server-side TLS session based on client-side TLS session information without enforcing it.
inheritParentProfile Boolean false When enabled, the FTP data channel inherits the TCP profile from the control channel. When disabled, the data channel uses FastL4 only.
inheritVlanList Boolean false Data channel inherits the VLAN interface list from the control channel. If enabled, the data channel is restricted to the same VLANs as the control channel.
translateExtended Boolean true Ensures compatibility between IPv4 and IPv6 clients and servers when they use the FTP protocol. Translates FTP extended commands (EPSV, EPRT) to their standard equivalents (PASV, PORT) and vice versa.

CR Example

apiVersion: "k8s.f5net.com/v1"
kind: F5BigFtpProfile
metadata:
  name: "cnf-ftpprofile"
  namespace: "cnf-gateway"
spec:
  translateExtended: true
  inheritParentProfile: false
  inheritVlanList: false
  dataPort: 20
  allowActiveMode: false
  allowFtpsMode: "disallow"
  enforceTlsSessionReuse: false

Requirements

Ensure you have:

  • Installed the CNF Controller Pods.

  • A Linux based workstation.

Installation

Use the following steps to install the F5BigFtpProfile CR.

  1. Copy the F5BigFtpProfile CR example into a YAML file:

    apiVersion: "k8s.f5net.com/v1"
    kind: F5BigFtpProfile
    metadata:
      name: "cnf-ftpprofile"
      namespace: "cnf-gateway"
    spec:
      translateExtended: true
      inheritParentProfile: false
      inheritVlanList: false
      dataPort: 20
      allowActiveMode: false
      allowFtpsMode: "disallow"
      enforceTlsSessionReuse: false
    
  2. Install the F5BigFtpProfile CR:

    kubectl apply -f cnf-ftpprofile-cr.yaml
    
  3. Reference the F5BigFtpProfile CR from your virtual server CR.

    apiVersion: k8s.f5net.com/v1
    kind: F5VirtualServer
    metadata:
      name: vs-ftp
      namespace: default
    spec:
      destinationAddress: 22.22.22.210
      destinationPort: 21
      protocol: tcp
      protocolProfile:
        clientside: sys-default-tcp
        serverside: sys-default-tcp
      pool: ftp-pool
      snat:
        type: automap
      ftp:
        clientside: cnf-ftpprofile