# Floating IPs

Floating IPs are public IP addresses that you can allocate and associate with instances. They provide external connectivity, allowing traffic from the internet to reach your instances inside a VPC.

**Command:** `ace floating-ip` **Alias:** `ace fip`

## Create (Allocate) a Floating IP

Allocate a new floating IP from an external network.

```bash
ace fip create --network <external-network-id> [flags]
```

### Flags

| Flag             | Required | Default  | Description                            |
| ---------------- | -------- | -------- | -------------------------------------- |
| `--network`      | Yes      |          | External network UUID to allocate from |
| `--billing-type` | No       | `hourly` | Billing type                           |

### Example

```bash
ace fip create --network c3d4e5f6-a7b8-9012-cdef-234567890abc
```

### Sample Output

```
Floating IP allocated.
  ID:              a1b2c3d4-e5f6-7890-abcd-ef1234567890
  IP Address:      45.194.47.108
  Status:          DOWN
```

A newly allocated floating IP has a status of `DOWN` until it is associated with an instance.

***

## List Floating IPs

```bash
ace fip list
```

**Alias:** `ace fip ls`

### Sample Output

```
ID                                     FLOATING IP        STATUS     FIXED IP           PORT ID
a1b2c3d4-e5f6-7890-abcd-ef1234567890  45.194.47.108      ACTIVE     10.0.0.15          b2c3d4e5f6a7...
b2c3d4e5-f6a7-8901-bcde-f12345678901  45.194.47.109      DOWN       -                  -
```

### JSON Output

```bash
ace fip list -o json
```

***

## Get Floating IP Details

Look up a single floating IP by ID or by IP address.

```bash
ace fip get <fip-id|ip-address>
```

### Examples

```bash
# By ID
ace fip get a1b2c3d4-e5f6-7890-abcd-ef1234567890

# By IP address
ace fip get 45.194.47.108
```

### Sample Output

```
  ID:              a1b2c3d4-e5f6-7890-abcd-ef1234567890
  Floating IP:     45.194.47.108
  Status:          ACTIVE
  Fixed IP:        10.0.0.15
  Port ID:         b2c3d4e5-f6a7-8901-bcde-f12345678901
  Instance:        web-server-01
  Created:         2026-05-18T10:30:00Z
```

***

## Associate a Floating IP

Associate a floating IP with an instance to make the instance reachable from the internet.

```bash
ace fip associate --ip <floating-ip-address> --instance <instance-id> [flags]
```

### Flags

| Flag         | Required | Description                                      |
| ------------ | -------- | ------------------------------------------------ |
| `--ip`       | Yes      | Floating IP address (e.g. `45.194.47.108`)       |
| `--instance` | Yes      | Instance UUID to associate with                  |
| `--fixed-ip` | No       | Fixed IP address (if instance has multiple NICs) |

### Examples

Basic association:

```bash
ace fip associate --ip 45.194.47.108 --instance a1b2c3d4-e5f6-7890-abcd-ef1234567890
```

With a specific fixed IP (multi-NIC instance):

```bash
ace fip associate --ip 45.194.47.108 \
  --instance a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  --fixed-ip 10.0.0.15
```

### Sample Output

```
Floating IP 45.194.47.108 associated with instance a1b2c3d4-e5f6-7890-abcd-ef1234567890.
```

***

## Disassociate a Floating IP

Remove the association between a floating IP and an instance. The floating IP is retained in your account but no longer routes traffic to the instance.

```bash
ace fip disassociate --ip <floating-ip-address> --instance <instance-id>
```

### Flags

| Flag         | Required | Description                        |
| ------------ | -------- | ---------------------------------- |
| `--ip`       | Yes      | Floating IP address                |
| `--instance` | Yes      | Instance UUID to disassociate from |

### Example

```bash
ace fip disassociate --ip 45.194.47.108 --instance a1b2c3d4-e5f6-7890-abcd-ef1234567890
```

### Sample Output

```
Floating IP 45.194.47.108 disassociated from instance a1b2c3d4-e5f6-7890-abcd-ef1234567890.
```

***

## Delete (Release) Floating IPs

Release one or more floating IPs back to the pool.

```bash
ace fip delete <fip-id> [fip-id...]
```

**Alias:** `ace fip rm`

Disassociate a floating IP from its instance before deleting it. Deleting a floating IP releases the address permanently -- you cannot reclaim the same IP.

### Example

```bash
# Release a single floating IP
ace fip delete a1b2c3d4-e5f6-7890-abcd-ef1234567890

# Release multiple floating IPs
ace fip delete <fip-id-1> <fip-id-2>
```

### Sample Output

```
Released 1 floating IP(s).
```

***

## Common Patterns

### Expose a Web Server

```bash
# 1. Allocate a floating IP
ace fip create --network <external-network-id>

# 2. Associate it with your instance
ace fip associate --ip 45.194.47.108 --instance <instance-id>

# 3. Ensure the security group allows HTTP/HTTPS
ace sg rule-add --sg <sg-id> --protocol http
ace sg rule-add --sg <sg-id> --protocol https
```

### Move a Floating IP Between Instances

```bash
# Disassociate from the old instance
ace fip disassociate --ip 45.194.47.108 --instance <old-instance-id>

# Associate with the new instance
ace fip associate --ip 45.194.47.108 --instance <new-instance-id>
```

***

## Command Summary

| Command                | Description                                 |
| ---------------------- | ------------------------------------------- |
| `ace fip create`       | Allocate a new floating IP                  |
| `ace fip list`         | List all floating IPs                       |
| \`ace fip get \<id     | ip>\`                                       |
| `ace fip associate`    | Associate a floating IP with an instance    |
| `ace fip disassociate` | Disassociate a floating IP from an instance |
| `ace fip delete <id>`  | Release floating IP(s)                      |


---

# Agent Instructions: 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:

```
GET https://docs.acecloud.ai/knowledge-base/cli/networking/floating-ips.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
