> For the complete documentation index, see [llms.txt](https://docs.ionos.com/cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ionos.com/cloud/tools-cli/subcommands/network-load-balancer/rule/create.md).

# create

Create a Network Load Balancer Forwarding Rule

## Usage

```
ionosctl compute networkloadbalancer rule create [flags]
```

## Aliases

For `networkloadbalancer` command:

```
[nlb]
```

For `rule` command:

```
[r forwardingrule]
```

For `create` command:

```
[c]
```

## Description

Use this command to create a forwarding rule on a Network Load Balancer. The rule listens on --listener-ip (which must be one of the NLB's own IPs) and --listener-port, then balances accepted TCP connections across the targets you later add with `nlb rule target add`.

Pick a balancing algorithm with --algorithm: ROUND\_ROBIN (default), LEAST\_CONNECTION, RANDOM, SOURCE\_IP (client-IP affinity).

The health-check flags tune resilience: --connection-timeout bounds how long a new connection to a target may take, --client-timeout / --target-timeout bound client- and target-side inactivity, and --retries sets how many times to retry a target after a connection failure before considering it down.

Use `--wait` (`-w`) to wait for the resource to reach AVAILABLE state.

Required values to run command:

* Data Center Id
* Network Load Balancer Id
* Listener Ip
* Listener Port

## Options

```
      --algorithm string                Balancing algorithm used to pick a target per connection: ROUND_ROBIN, LEAST_CONNECTION, RANDOM, or SOURCE_IP (client-IP affinity) (default "ROUND_ROBIN")
  -u, --api-url string                  Override default host URL. Preferred over the config file override 'cloud' and env var 'IONOS_API_URL' (default "https://api.ionos.com")
      --client-timeout int              [Health Check] Maximum client-side inactivity, in milliseconds, before the connection is closed (client expected to acknowledge or send data) (default 5000)
      --cols strings                    Set of columns to be printed on output 
                                        Available columns: [ForwardingRuleId Name Algorithm Protocol ListenerIp ListenerPort State ClientTimeout ConnectTimeout TargetTimeout Retries]
  -c, --config string                   Configuration file used for authentication (default "$XDG_CONFIG_HOME/ionosctl/config.yaml")
      --connection-timeout int          [Health Check] Maximum time, in milliseconds, to wait for a connection to a target VM to succeed (default 5000)
      --datacenter-id string            The unique Data Center Id (required)
  -D, --depth int                       Level of detail for response objects (default 1)
  -F, --filters strings                 Limit results to results containing the specified filter:KEY1=VALUE1,KEY2=VALUE2
  -f, --force                           Force command to execute without user input
  -h, --help                            Print usage
      --limit int                       Maximum number of items to return per request (default 50)
      --listener-ip ip                  Inbound IP the rule listens on. Must be one of the NLB's own IPs (--ips) (required)
      --listener-port string            Inbound TCP port the rule listens on. Range: 1 to 65535 (required)
  -n, --name string                     The name for the Forwarding Rule (default "Unnamed Forwarding Rule")
      --networkloadbalancer-id string   The unique NetworkLoadBalancer Id (required)
      --no-headers                      Don't print table headers when table output is used
      --offset int                      Number of items to skip before starting to collect the results
      --order-by string                 Property to order the results by
  -o, --output string                   Desired output format [text|json|api-json] (default "text")
      --query string                    JMESPath query string to filter the output
  -q, --quiet                           Quiet output
      --retries int                     [Health Check] Number of times to retry a target after a connection failure before marking it down. Range: 0 to 65535 (default 3)
      --target-timeout int              [Health Check] Maximum target-side inactivity, in milliseconds, before the connection is closed (default 5000)
  -t, --timeout int                     Timeout in seconds for --wait and other wait operations (default 600)
  -v, --verbose count                   Increase verbosity level [-v, -vv, -vvv]
  -w, --wait                            Wait for the resource to reach AVAILABLE state after the command completes. No-op for list commands
```

## Examples

```
# Create a rule that listens on port 80 (defaults to ROUND_ROBIN)
ionosctl compute networkloadbalancer rule create --datacenter-id DATACENTER_ID --networkloadbalancer-id NETWORKLOADBALANCER_ID --listener-ip 203.0.113.10 --listener-port 80

# Create a rule with client-IP affinity and custom health-check timeouts
ionosctl compute networkloadbalancer rule create --datacenter-id DATACENTER_ID --networkloadbalancer-id NETWORKLOADBALANCER_ID --name "https" --listener-ip 203.0.113.10 --listener-port 443 --algorithm SOURCE_IP --connection-timeout 5000 --retries 5
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ionos.com/cloud/tools-cli/subcommands/network-load-balancer/rule/create.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
