Lessons in IPv6 Deployment in OpenStack Environments
Lessons in IPv6 Deployment in OpenStack Environments
environments
May 8, 2017
Akihiro Motoki
OSS Promotion Center, NEC
Why IPv6?
▌What we need?
Subnet 1
Subnet Pool 203.0.113.0/26
Pool Prefixes
203.0.113.0/24
Subnet 2
203.0.113.128/25
Prefix Length
default: 26 Subnet 3
Max: 25, Min: 28 203.0.113.64/27
▌SLACC
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
▌DHCPv6 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
▌DHCPv6 stateful
All information is configured based on DHCPv6
There is information that GW is not configured properly.
A lot of combinations.
What does each mode mean?
“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.
▌IPv6 RA mode
Specifies how neutron router sends RA
▌“slaac”
▌“dhcpv6-stateless”
▌“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
Neutron Neutron
network network
Managed by Managed by
OpenStack OpenStack
VM VM
▌Simplest case!
▌Tenant router is implemented as neutron router
L3 agent (reference implementation)
Other 3rd party L3 plugin (if you use)
▌Neutron provides both RA and DHCPv6
Ref implementation: RA = radvd, DCHPv6 = dnsmasq
▌If 3rd party L3 plugin is provided, the behavior needs to be checked
Upstream
Router NW infra
▌(SLAAC)
Not many VNF supports DNS option in RA message
▌(DHCPv6-stateless)
Neutron DHCPv6-stateless does not provide DNS.. Needs investigation
Some VNFs support SLAAC only. Cannot configure RA flags.
Self Service
Router1 Network 1
2001:0DB8:1:/64
Provider
Self Service
Upstream Network
Router2 Network 2
Router (router: 2001:0DB8:2:/64
external)
Self Service
Router3 Network 3
Internet 2001:0DB8:3:/64
▌Dynamic Routing
BGP
OSPF
▌IPv6 Prefix Delegation
AS 4321
Provider
Self Service
Upstream Network
Router2 Network 2
Router (router: 2001:0DB8:2:/64
external)
Self Service
Router3 Network 3
Internet 2001:0DB8:3:/64
http://docs.openstack.org/newton/networking-guide/config-bgp-dynamic-routing.html
25 © NEC Corporation 2017
Dynamic routing : OSPF
▌OSPF can be used for dynamic routing
▌Create router relationships between tenant and upstream routers
when a tenant router is created
▌Once a relationship is established, a route to a tenant network is
configured to the upstream router
▌Useful for small network where BGP is not preferred
▌Most VNF router supports OSPF
▌No neutron integration
AS 4321
Provider
Self Service
Upstream Network Router2
Network 2
Router (router: (VNF)
2001:0DB8:2:/64
external)
Internet
http://docs.openstack.org/newton/networking-guide/config-bgp-dynamic-routing.html
26 © NEC Corporation 2017
IPv6 Prefix Delegation (PD)
▌Upstream router is a PD (prefix delegation) server and this manages
IPv6 address ranges to be assigned to OpenStack tenant networks
▌PD server assigns CIDR (normally /64 prefix) to PD client
▌Neutron router acts as a PD client
▌Upstream router sets up a route to PD client when assigning a prefix
The upstream router knows an external IP address of Neutron router (PD client)
LLA (Link local address) can be used as IP address of PD client
▌Neutron integration
PD Client
Assign CIDR Self Service
Router1 Network 1
2001:0DB8:1:/64
PD Server
Provider
Self Service
Upstream Network
Router2 Network 2
Router (router: 2001:0DB8:2:/64
external)
Self Service
Router3 Network 3
Internet 2001:0DB8:3:/64
http://docs.openstack.org/newton/networking-guide/config-ipv6.html#prefix-delegation
27 © NEC Corporation 2017
Comparison
▌Dynamic routing (BGP)
Neutron integration
Depending on network policy of upstream network
Some operators does not use BGP inside their network
One AS is required for OpenStack deployment
▌Dynamic routing (OSPF)
No neutron integration
OSPF is used for smaller deployment
Most VNF router supports OSPF
▌Prefix delegation
Neutron integration
Only simple topology is supported.
Cannot handle nested tenant router
Not a small number of VNF does not support prefix delegation
▌In IPv6, global unique addresses are assigned to tenants from the
predefined ranges.
▌Address Scope
Concept to define which IP addresses can directly communicate each other
Subnet pool is associated to some address Scope
Router allows traffic among a same address scope
• Router identifies an address scope of each router interface
Networks on a same
address scope can Subnet Address
communicate pool 1 Scope 1
Net1 Net2
Subnet Address
R
pool 2 Scope 2
Net3
or CIDR (If CIDR is specified,
“Implicit Address
Scope” is used)
Networks in different
address scope cannot
communicate
Networks on a same
address scope can Subnet Address
communicate pool 1 Scope 1
External Network
Ext-Net Net2
Subnet Address
R
pool 2 Scope 2
Networks in different Net3
address scope cannot (or CIDR)
communicate
▌All IPv6 modes cannot be used necessarily, but neutron exposes all
Some mechanism to expose available IPv6 mode to users