F5BigFwPolicy

The F5BigFwPolicy Custom Resource (CR) applies industry-standard firewall rules to the Traffic Management Microkernel (TMM), ensuring that only connections initiated by trusted clients will be accepted. When applying a new F5BigFwPolicy CR configuration, firewall rules are first sent to the Application Firewall Management (AFM) Pod to be compiled into a binary large object (BLOB), improving processing performance. Once the firewall BLOB is compiled, it is sent to the TMM Pod to begin inspecting and filtering network packets.

CR parameters

The tables below describe the F5BigFwPolicy CR parameters

metadata

Parameter Description
name The name of the Firewall Policy. This value is referenced by BIG-IP Next for Kubernetes Traffic Management CRs.
namespace The namespace of Kubernetes in with firewall policy is installed.

spec

Parameter Description Default
targetRefs.group
string
Specifies the group of referent. The maximum length of the string is 255 and the allowed pattern is "^[0-9a-zA-Z._-]+$". gateway.networking.k8s.io
targetRefs.name
string
Specifies the name of the resource. The maximum length of the string is 255 and the allowed pattern is "^[0-9a-zA-Z._-]+$".
Note: You must specify this field.
targetRefs.kind
string
Specifies the kind of ‌reference. Possible enum values are [GatewayClass, Gateway].
Note: You must specify this field.
targetRefs.sectionName
_string
Specifies the sectionName. The maximum length of the string is 255 and the allowed pattern is "^$ ^[0-9a-zA-Z._-]+$".
rule.name The name of the firewall rule. A policy can contain multiple firewall rules. Note: You must specify this field.
rule.ipProtocol Specifies the IP protocol against which the packet will be compared. The F5BigFwPolicy IP Protocols document contains the full list of supported protocols. any
rule.action Specifies the action that will be applied to packet that matches ACL rule: "accept", "drop", or "reject".
rule.logging
boolean
Enables ACL rule match logging false
rule.source.addresses Specifies a list of IPv4 or IPv6 source addresses against which the packet will be compared: host 2002::10:10:10:1, subnet 2002::10:10:0:0/96, or range 2002::10:10:10:1-2002::10:10:10:20.
rule.source.addressLists Specifies the F5BigCneAddressList by metadata.name against which the packet will be compared. See the Address and Port Lists section in this guide. The ACL/NAT rule is disabled internally and is not used for matching traffic while:
- This attribute is specifying one or more addressLists and
- All of these addressLists are empty or do not exist (soft-reference case) and
- The rule does not specify any direct source address
rule.source.ports Specifies a list of source service ports or port ranges against which the packet will be compared. Port 0 is a valid value, that functions as a service port, not as a wildcard.
rule.source.portLists Specifies the F5BigCnePortList by metadata.name against which the packet will be compared. See the Address and Port Lists section in this guide. The ACL/NAT rule is disabled internally and is not used for matching traffic while:
- This attribute is specifying one or more portLists and
- All of these portLists are empty or do not exist (soft-reference case) and
- The rule does not specify any direct source port
rule.source.vlans Specifies a list of F5BigNetVlans in an array. []
rule.destination.addresses Specifies a list of IPv4 or IPv6 destination addresses against which the packet will be compared: host 2002::10:10:10:1, subnet 2002::10:10:0:0/96, or range 2002::10:10:10:1-2002::10:10:10:20.
rule.destination.ports Specifies a list of destination service ports or port ranges against which the packet will be compared. Port 0 is a valid value, that functions as a service port, not as a wildcard.
rule.destination.addressLists Specifies the F5BigCneAddressList by metadata.name against which the packet will be compared. See the Address and Port Lists section below. The ACL/NAT rule is disabled internally and is not used for matching traffic while:
- This attribute specifies one or more addressLists and
- All of these addressLists are empty or do not exist (soft-reference case) and
- The rule does not specify any direct destination address
rule.destination.portLists Specifies the F5BigCnePortList by metadata.name against which the packet will be compared. See the Address and Port Lists section in this guide. The ACL/NAT rule is disabled internally and is not used for matching traffic while:
- This attribute specifies one or more portLists and
- All of these portLists are empty or do not exist (soft-reference case) and
- The rule does not specify any direct destination port
rule.ruleList Specifies the firewall rule list name this rule references.

To add, modify, or delete the firewall rules easily, you need to break the firewall rules list into multiple smaller units and store them in F5BigFwRulelist CR.

CR Example

This section provides the sample CRs of F5BigFwPolicy use cases. For more details to apply the CRs, see Firewall policy in Gateway API

F5BigFwPolicy CR with ACLs attached to GatewayClass

Following is an example F5BigFwPolicy CR with ACLs attached to GatewayClass:

apiVersion: "k8s.f5net.com/v1"
kind: F5BigFwPolicy
metadata:
  name: firewallpolicy-gateway-class
  namespace: alpha
spec:
  targetRefs:
  - group: gateway.networking.k8s.io
    name: f5-gateway-class
    kind: GatewayClass
  rule:
  - name: sc-rule-tcp-inress-1
    ipProtocol: any
    source:
      addresses:
      - 11.19.10.9
    logging: true
    action: drop

F5BigFwPolicy with ACLs attached to Gateway

Following is an example F5BigFwPolicy CR with ACLs attached to Gateway:

apiVersion: "k8s.f5net.com/v1"
kind: F5BigFwPolicy
metadata:
  name: firewallpolicy-gateway
  namespace: app-ns
spec:
  targetRefs:
  - group: gateway.networking.k8s.io
    name: my-l4route-tcp-gateway
    kind: Gateway
  rule:
  - name: sc-rule-tcp-inress-1
    ipProtocol: any
    source:
      addresses:
      - 11.19.10.9
    logging: true
    action: drop

F5BigFwPolicy with ACLs attached to Listeners

Following is an example F5BigFwPolicy CR with ACLs attached to Listeners:

apiVersion: "k8s.f5net.com/v1"
kind: F5BigFwPolicy
metadata:
  name: firewallpolicy-listener
  namespace: app-ns
spec:
  targetRefs:
  - group: gateway.networking.k8s.io
    name: my-l4route-tcp-gateway
    kind: Gateway
    sectionName: l4-nginx-tcp
  rule:
  - name: sc-rule-tcp-inress-1
    ipProtocol: any
    source:
      addresses:
      - 11.19.10.9
    logging: true
    action: drop