I've been thinking about this for a little while now. There seems to be something different about floating IP subnets and other (I'll call them static in this context) subnets in some use cases.
- On an external network where operators wish to use private IPs for router ports (and DVR FIP ports) and public for floating IPs.
- Enable using floating IPs on provider networks without routers [1]. This has come up a lot. In many cases, operators want them to be public while the static ones are private.
- On routed networks where VM instance and router ports need IPs from their segments but floating IPs can be routed more flexibly.
These boil down to two ways I see to differentiate subnets:
- public vs private
- L2 bound vs routed
We could argue the definitions of public and private but I don't think that's necessary. Public could mean globally routable or routable within some organization. Private would mean not public.
An L2 bound subnet is one used on a segment where arp is expected to work. The opposite type can be routed by some L3 mechanism.
One possible way to make this distinction might be to mark certain subnets as floating subnets. The rules, roughly would be as follows:
- When allocating floating IPs, prefer floating subnets. (fallback to non-floating to support backward compatibility?)
- Don't allocate non-floating IP ports from floating subnets.
I've been thinking about this for a little while now. There seems to be something different about floating IP subnets and other (I'll call them static in this context) subnets in some use cases.
- On an external network where operators wish to use private IPs for router ports (and DVR FIP ports) and public for floating IPs.
- Enable using floating IPs on provider networks without routers [1]. This has come up a lot. In many cases, operators want them to be public while the static ones are private.
- On routed networks where VM instance and router ports need IPs from their segments but floating IPs can be routed more flexibly.
These boil down to two ways I see to differentiate subnets:
- public vs private
- L2 bound vs routed
We could argue the definitions of public and private but I don't think that's necessary. Public could mean globally routable or routable within some organization. Private would mean not public.
An L2 bound subnet is one used on a segment where arp is expected to work. The opposite type can be routed by some L3 mechanism.
One possible way to make this distinction might be to mark certain subnets as floating subnets. The rules, roughly would be as follows:
- When allocating floating IPs, prefer floating subnets. (fallback to non-floating to support backward compatibility?)
- Don't allocate non-floating IP ports from floating subnets.
[1] http:// lists.openstack .org/pipermail/ openstack- operators/ 2016-February/ 009551. html