This document discusses deploying IPv6 on OpenStack. It provides an overview of IPv6, including that IPv6 addresses the shortage of IPv4 addresses by providing a vastly larger 128-bit address space. It describes IPv6 address types and allocation methods. It also discusses IPv6 configuration modes in OpenStack, including stateless address autoconfiguration (SLAAC) and DHCPv6 stateless and stateful modes. Additionally, it covers deployment options for IPv6 on OpenStack like dual stack, NAT64/DNS64, and network tunnels. It provides details on IPv6 address and router advertisement configuration in OpenStack.
Agenda ● IPv6 Overview ●IPv6 address management ● IPv6 deployments options and consideration points in OpenStack ● Deploying and Troubleshooting
3.
IPv4: Running Outof Addresses - Short term solutions included: + NAT (Network Address Translation) + Private address space + CIDR (Classless Inter-Domain Routing) - Long-term solution: IPv6
4.
Introducing IPv6 ● Nota “new” protocol. ● Developed mid to late 1990s. ● Much learned from IPv4. ● 128-bit address space, written in hexadecimal. ● This gives us 340 undecillion addresses!
IPv6 Overview ● IPv6is not just about more addresses: ○ Stateless autoconfiguration ○ End-to-end reachability without private addresses and NAT ○ Better support for mobility ○ Peer-to-peer networking easier to create and maintain, and services such as VoIP and Quality of Service (QoS) become more robust. ○ Security ○ Routing
The configuration modeis determined based on RA flag: ● M (Managed) => 0 (RA/DHCPv6 stateless), 1 (DHCPv6 stateful ● O (Other) => 0 (SLAAC), 1 (use DHCPv6)
12.
SLAAC (Stateless AddressAutoconfiguration) ● IPv6 address of a client is configured based on RA (Router advertisement) ● Gateway is also configured. ● Optionally, DNS information(if RFC6106), MTU and so on can be configured. ● Only /64 prefix is used
13.
DHCP v6 Stateless ●IPv6 address is configured based on RA ● Other information is retrieved via DHCPv6 ● Looks used most commonly ● Only way to distribute DNS info before RFC6106
14.
DHCP v6 Stateful ●All information is configured based on DHCPv6 ● There is information that GW is not configured properly.
IPv6 on Openstack Twoattributes related to IPv6 address configuration: - Ipv6_address_mode: Control of how addressing is handled by OpenStack - Ipv6_ra_mode: Control of router advertisements for a subnet There are constraints between two modes - OpenStacknetworking guide - https://docs.openstack.org/ocata/networking-guide/config-ipv6 .html - https://access.redhat.com/documentation/en-us/red_hat_opens tack_platform/9/html/networking_guide/sec-ipv6
20.
● IPv6 addressmode: Specifies how IPv6 address is generated and assigned, IPAM is mainly involved in it and Also controls if the reference DHCP implementation serves ● “Slaac”: Neutron generates a port address based on MAC address (EUI-64) ● “Dhcpv6-stateless”: - Neutron generates a port address based on MAC address (EUI-64) - Neutron provides DHCP options for port ● “Dhcpv6-stateful” - Any address can be configured - Perhaps non-/64 prefix can be used ● Not Specified (N/S) - (Backward compatibility) - Any static address can be configured.
21.
● IPv6 RAmode: Specifies how neutron router sends RA ● "slaac" ● "dhcpv6-stateles" ● "dhcpv6-stateful" - Neutron setup radvd on a router and provides RA - RA flags are set accordingly ● Not Specified (N/S) - Neutron does nothing. - radvd on a router is not setup
22.
The behavior ofthe neutron router for IPv6 - Internal router ports, that act as default gateway ports for a network, will share a common port for all IPv6 subnets associated with the network. - Neutron tenant networks that are assigned Global Unicast Address (GUA) prefixes and addresses don’t require NAT on the neutron router external gateway port to access the outside world - GUA IPv6 subnet prefix is not necessarily needed for the neutron external network. By default, a IPv6 LLA associated with the external gateway port can be used for routing purposes.
Changelog on images(glance) RHEL / CentOS / Oracle Linux Edit the file /etc/sysconfig/network and add the following parameter: NETWORKING_IPV6=yes Edit the file /etc/sysconfig/network-scripts/ifcfg-eth0 and add the following two parameters: IPV6INIT=yes DHCPV6C=yes
26.
Changelog on images(glance) Ubuntu Edit the file /etc/dhcp/dhclient6.conf and add the following line: timeout 10; Edit the network configuration for the eth0 interface with the following configuration: Edit the file /etc/network/interfaces iface eth0 inet6 dhcp
27.
Changelog on images(glance) Windows netsh interface ipv6 set interface 15 routerdiscovery=disabled netsh interface ipv6 set interface 15 managedaddress=enabled netsh interface ipv6 set interface 15 otherstateful=enabled https://support.microsoft.com/en-us/help/961433/how-to-configure-a-windo ws-vista-client-to-obtain-an-ipv6-dhcp-address