IPv6 Configuration inside the project
OpenStack users have the option to utilize a public IPv6 network pool. Instances connected to the IPv6 network do not require floating addresses since this addressing is public, and traffic is routed externally using the BGP protocol. This means that each instance with an IPv6 address becomes immediately visible on the Internet, and it is necessary to secure incoming traffic through appropriate security rules. By default, security rules block all external traffic.
Creating Networks and Subnets¶
When configuring the IPv6 network, ensure that the subnet is configured as follows:
- Source network address: assigning a network address from the pool
- Address pool: bgp-vlan92-pub0v6-pool1
In the "subnet details" tab, select the IPv6 address configuration mode.
- SLAAC: Address is discovered from the OpenStack router
In this mode, the address is assigned by the router (Router Advertisement type SLAAC). Routing and address are assigned automatically. The DNS server may not work in this mode, and it must be configured manually.
- SLAAC: Address discovered from an external router
This mode does not work in our network.
- DHCPv6 stateful
Address, gateway, and DNS are configured by the DHCP service (Router Advertisement is performed by the DHCP service).
- DHCPv6 stateless
The address is assigned by the router (Router Advertisement as in SLAAC mode), other data via DHCP.
CLI Commands¶
Creating a network (example name net-ipv6):¶
openstack network create net-ipv6
Creating a subnet (you can use the option --use-default-subnet-pool instead of naming the pool bgp-vlan92-pub0v6-pool1):¶
- slaac mode
openstack subnet create --ip-version 6 --ipv6-ra-mode slaac --ipv6-address-mode slaac --use-default-subnet-pool --network net-ipv6 net-ipv6-subnet1
openstack subnet create --ip-version 6 --ipv6-ra-mode dhcpv6-stateful --ipv6-address-mode dhcpv6-stateful --use-default-subnet-pool --network net-ipv6 net-ipv6-subnet1
openstack subnet create --ip-version 6 --ipv6-ra-mode dhcpv6-stateless --ipv6-address-mode dhcpv6-stateless --use-default-subnet-pool --network net-ipv6 net-ipv6-subnet1
Creating a router and connecting the IPv6 network¶
openstack router create router1` `openstack router set --external-gateway PCSS-LABITAAS-IPV6-PUB0 router1` `openstack router add subnet router1 net-ipv6-subnet1
Creating a New Instance or Connecting an IPv6 Network to an Existing Instance¶
It is possible to create an instance that operates solely on an IPv6 network. However, metadata servers do not work in IPv6 mode, so cloud images supported by cloud-init will not configure the instance after its creation using network autoconfiguration (assigning a name, injecting SSH keys, running scripts, etc.). Therefore, one of two options must be used if instance configuration is to take place:
- Create an instance on the IPv4 network and add the IPv6 network as a second interface.
- Connect a configuration disk to the instance if using the IPv6 network as the only network used: