Skip to content

Commit 5aed961

Browse files
Apply suggestions from code review
Co-authored-by: Jessica <[email protected]>
1 parent 425a484 commit 5aed961

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

pages/instances/how-to/use-flexips.mdx

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ This page provides guidance on using [flexible IP addresses](/instances/concepts
1717

1818
When creating an Instance, you have options for network connectivity:
1919

20-
- **Flexible Routed IPv4 addresses**: These are public IPv4 addresses routed directly to your Instance.
21-
- **Flexible Routed IPv6 addresses**: These are public IPv6 prefixes routed directly to your Instance.
20+
- **Flexible routed IPv4 addresses**: public IPv4 addresses routed directly to your Instance.
21+
- **Flexible routed IPv6 addresses**: public IPv6 prefixes routed directly to your Instance.
2222

2323
Flexible IP addresses can be managed independently of any Instance. You can attach and detach them from any of your Instances and maintain multiple flexible IP addresses in your account simultaneously. They facilitate [live migration of IP addresses between your Instances](/instances/how-to/migrate-instances/).
2424

@@ -86,17 +86,17 @@ When you no longer want one of your existing flexible IP addresses, you can dele
8686

8787
### About routed IPv6
8888

89-
Since [mid 2023](https://www.scaleway.com/en/blog/ip-mobility-removing-nat/), we built a new network stack for Scaleway Instances to enable new features. One of those is the ability to have Flexible/Reserved IPv6 whose main purpose is to allow to keep the same IPv6 whenever you stop/start your Instance.
89+
Since [mid 2023](https://www.scaleway.com/en/blog/ip-mobility-removing-nat/), we built a new network stack for Scaleway Instances to enable new features. One of those is the ability to have flexible/reserved IPv6 whose main purpose is to allow to keep the same IPv6 whenever you stop/start your Instance.
9090

91-
Prior to routed IPs, IPv6 addresses were statically routed to the Hypervisors, which means your IP changed depending on which Hypervisor your Instance was running on.
91+
Before routed IPs, IPv6 addresses were statically routed to the hypervisors, which means your IP changed depending on which hypervisor your Instance was running on.
9292

9393
### IPv6 prefix and SLAAC
9494

95-
Now let's dive into the routed IPv6. Whenever you book a `routed_ipv6` IP type, you get assigned a full IPv6 prefix of 64bits length. According to the [section 2.4](https://datatracker.ietf.org/doc/html/rfc4291#section-2.4) of the RFC4291, except a few prefixes, anything is a Global Unicast address type. Today's [best practice](https://www.ripe.net/publications/docs/ripe-690/#4-1-1---64-prefix-from-a-dedicated-pool-of-ipv6-prefixes) is to provide a /64 prefix.
95+
Now, let's dive into the routed IPv6. Whenever you book a `routed_ipv6` IP type, you get assigned a full IPv6 prefix of 64 bits in length. According to [section 2.4](https://datatracker.ietf.org/doc/html/rfc4291#section-2.4) of the RFC4291, except for a few prefixes, anything is a Global Unicast address type. Today's [best practice](https://www.ripe.net/publications/docs/ripe-690/#4-1-1---64-prefix-from-a-dedicated-pool-of-ipv6-prefixes) is to provide a /64 prefix.
9696

9797
Another reason we decided to provide you with a /64 prefix is to be able to use [SLAAC](https://datatracker.ietf.org/doc/html/rfc4862) as the configuration mechanism. But SLAAC has been designed to work [exclusively with /64 prefixes](https://notes.networklessons.com/ipv6-prefix-length-used-for-slaac).
9898

99-
We chose SLAAC over DHCPv6 because it doesn't require any client-side configuration in most of the cases, allowing the feature to work with old instances too.
99+
We chose SLAAC over DHCPv6 because it doesn't require any client-side configuration in most cases, allowing the feature to work with old Instances too.
100100

101101
### Limitations
102102

@@ -121,7 +121,7 @@ The first one is that, in order not to break already deployed SDKs, or CLIs, we
121121
}
122122
```
123123

124-
On the other hand, the `/servers/<id>` endpoint provides the `public_ip` (deprecated) field and its replacement `public_ips`. This struct also contain an address field of type IP that doesn't accept a prefix:
124+
On the other hand, the `/servers/<id>` endpoint provides the `public_ip` (deprecated) field and its replacement `public_ips`. This struct also contains an address field of type IP that does not accept a prefix:
125125

126126
```
127127
[
@@ -142,28 +142,27 @@ On the other hand, the `/servers/<id>` endpoint provides the `public_ip` (deprec
142142

143143
Instead, we return the SLAAC address based on the EUI-64 of the interface.
144144

145-
One consequence is that, if you move your `routed_ipv6` **prefix** to another instance (hence, with another MAC address), the `public_ips` list will show you a **different** address because its EUI-64 will differ.
145+
One consequence is that, if you move your `routed_ipv6` **prefix** to another Instance (hence, with another MAC address), the `public_ips` list will show you a **different** address because its EUI-64 will differ.
146146

147147
## Workaround
148148

149-
Since the whole /64 prefix is routed to your Instance, it is possible to define a second IPv6 address within the prefix that may be used to reach your instance. However, this requires some custom settings.
149+
Since the whole /64 prefix is routed to your Instance, it is possible to define a second IPv6 address within the prefix that may be used to reach your Instance. However, this requires some custom settings.
150150

151151
In order to do that, we will use the **cloud-init** mechanism to define the second IPv6 address.
152152

153153
Let's say your prefix is: `2025:bd8:911::/64`
154154

155-
We will use the following /128 address within this range: `2025:bd8:911:a7f1::1/128`
155+
We will use the following /128 address within this range: `2025:bd8:911:a7f1::1/128`.
156156

157157
The cloud-init configuration can be uploaded with the Scaleway CLI:
158158

159-
160159
```
161160
scw instance server update <SERVER_UUID> [email protected]
162161
```
163162

164163
### Debian >= 11 and Ubuntu >= 20.04
165164

166-
First of all, create a file with the following content
165+
First of all, create a file with the following content:
167166

168167
```
169168
cat << EOF > ipv6-cloud-init.txt
@@ -187,7 +186,7 @@ This cloud-init configuration file will add the `netplan` definition of a second
187186

188187
### CentOS Stream 9, AlmaLinux >= 8 and RockyLinux >= 8
189188

190-
For CentOS Stream 9, AlmaLinux >= 8 and RockyLinux >= 8 you need to interact with `NetworkManager` instead of `netplan`.
189+
For CentOS Stream 9, AlmaLinux >= 8, and RockyLinux >= 8, you must interact with `NetworkManager` instead of `netplan`.
191190

192191
```
193192
cat << EOF > ipv6-cloud-init.txt

0 commit comments

Comments
 (0)