IP ACL Configuration

In addition to the existing ACL parameter available for use with the lbcli create volume or update volume command, there is also the IP ACL parameter.

IP ACL allows support for restricted/non-restricted access to a cluster. In restricted mode (ipacl_explicit_allow), the Lightbits cluster will maintain an allowed list of IPs per volume that allows clients to access this volume. In unrestricted mode, any IP address can be used. This configuration can only be set up during installation.

  • Refer to the Configuring Global Variables in Ansible section of the Lightbits Installation Guide for additional information on the enable ipacl_explicit_allow flag.
  • All server-level firewalls except for iptables should be disabled in this mode.

When ipacl_explicit_allow mode is enabled, the following rules are applied:

  • During installation, Lightbits will block all data-related traffic (nvme/tcp and discovery service ports).
  • Traffic to the above ports will only be allowed to IPs that are on the allowed list (IPACL).
  • IO client servers can only connect to access volumes for which their IP is on the allowed list (IPACL).
  • IO client servers can access all the servers in the cluster if their IP is on at least one volume's allowed list (IPACL).
  • ipacl_explicit_allow replaces the former enable_iptables configuration.
  • Upgrading from enable_iptables to ipacl_explicit_allow is not supported.

It is your responsibility to manage the access to the rest of the ports required for the correct operation of the cluster. See the Lightbits Installation Guide for a list of all required ports.

There are two APIs that can cause additional ports to be opened:

  • Create an admin endpoint. This adds an allow rule in iptables based on the given origin IP address and destination port in the API. For example, it can be used to add rules for other servers to have access to admin ports (REST, gRPC, Exporter).
  • Create (or update) a volume with the IP ACL flag. The allowed IPs will have access to the NVMe/TCP ports (default: 4420/4421) on the nodes on which the volume data is stored (but not to other cluster nodes), and discovery service port (8009) on all servers in the cluster.

Examples

Create Endpoint

Bash
Copy

Update Endpoint

Bash
Copy

Create Volume

Bash
Copy

A -J flag after lbcli indicates that the JWT is not stored in the lbcli configuration file.

Update Volume

Bash
Copy

A -J flag after lbcli indicates that the JWT is not stored in the lbcli configuration file.

Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard