diff --git a/pages/reference-architecture/network-concepts/6020-public-floating-ip.rst b/pages/reference-architecture/network-concepts/6020-public-floating-ip.rst index 69ba585a3..7dc0eb3cb 100644 --- a/pages/reference-architecture/network-concepts/6020-public-floating-ip.rst +++ b/pages/reference-architecture/network-concepts/6020-public-floating-ip.rst @@ -22,19 +22,17 @@ are required on your hardware router to connect the two ranges. **Public range with Nova-Network requirements:** - * Each deployed node - requires one IP address from the Public IP range. - - * For HA environments, one extra IP address is required - for the environment's Virtual IP. +* Each deployed node requires one IP address from the Public IP range. + In addition, two extra IP addresses for the environment's Virtual IPs + and one for the default gateway are required. **Floating range with Nova-Network requirements:** - * Every VM (instance) connected to the external network - requires one IP address from the Floating IP range. - These IP addresses are assigned on demand - and may be released from the VM - and returned back to the pool of non-assigned Floating IP addresses. +* Every VM instance connected to the external network + requires one IP address from the Floating IP range. + These IP addresses are assigned on demand + and may be released from the VM + and returned back to the pool of non-assigned Floating IP addresses. Neutron requirements ~~~~~~~~~~~~~~~~~~~~ @@ -46,83 +44,131 @@ Fuel cannot configure Neutron with external workarounds at this time. **Public range with Neutron requirements:** - * Each deployed Controller node and each deployed Zabbix node - requires one IP address from the Public IP range. +* Each deployed Controller node and each deployed Zabbix node + requires one IP address from the Public IP range. This IP address + goes to the node's bridge to the external network ("br-ex"). - * This IP address goes to the node's bridge to the external network ("br-ex"). +* Two additional IP addresses for the environment's Virtual IPs and one for + the default gateway are required. - * For HA environments, an additional IP address is required - for the environment's Virtual IP. +.. note:: -Note the following: + * For 5.1 and later Neutron environments, Public IP addresses can be + allocated either to all nodes or just to Controllers and Zabbix + servers. By default, IP addressess are allocated to Controllers + and Zabbix servers only. To get them allocated to all nodes, + **Public network assignment -> Assign public network to all + nodes** should be selected on the `Settings` tab. -* Public IP addresses can still be allocated to all nodes - in a 5.1 Neutron environment. - This can be enabled under the "Settings" tab - by selecting **Public network assignment -> - Assign public network to all nodes**. - This setting is absent when using Nova-Net - because a public IP address is always allocated to each node. - -* When using Fuel 5.1 to manage 5.0.x environments, + * When using Fuel 6.1 to manage 5.0.x environments, the environment must conform to the 5.0.x practice, - so each target node must have a public IP assigned to it, + so each target node must have a Public IP assigned to it, even when using Neutron. -* Default gateways on nodes that do not have public IP addresses - point to the master node's IP address for Fuel 5.1; - this behavior is expected to change in future releases. + * In Fuel 6.1, nodes that do not have Public IP addresses use Controllers + to reach out the outside networks. There is a virtual router running + on Controller nodes (controlled by Corosync), which utilizes a pair + of Public and Management Virtual IPs to NAT traffic from Management + to Public network. And nodes with no Public IPs assigned have the default + gateway pointed to that Virtual IP from Management network. **Floating range with Neutron requirements:** - * Each defined tenant, including the Admin tenant, - requires one IP address from the Floating range. - * This IP address goes to the virtual interface of the tenant's virtual router. - Therefore, one Floating IP is assigned to the Admin tenant automatically - as part of the OpenStack deployment process. +* Each defined tenant, including the Admin tenant, + requires one IP address from the Floating range. - * Each VM (instance) connected to the external network - requires one IP address from the Floating IP range. - These IP addresses are assigned on demand - and may be released from the VM - and returned back to the pool of non-assigned Floating IP addresses. +* This IP address goes to the virtual interface of the tenant's virtual router. + Therefore, one Floating IP is assigned to the Admin tenant automatically + as part of the OpenStack deployment process. + +* Each VM instance connected to the external network + requires one IP address from the Floating IP range. + These IP addresses are assigned on demand + and may be released from the VM + and returned back to the pool of non-assigned Floating IP addresses. Example ~~~~~~~ -A little example may clarify this. -Consider the following environment: +Calculate the numbers of the required Public and Floating IP addresses using +these formulas: -* You have X Controller nodes, Y Zabbix nodes, - and Z other nodes (Compute, Storage, and MongoDB). -* You want to establish no more than K tenants. -* You want to provide direct external access - to no more than M virtual instances. +**Neutron** -Calculate the required number of Public and Floating IP addresses as follows: - -:Nova-Network with HA: - - The Public range must have [(X+Y+Z) + 2] IP addresses - (one for each node in the environment plus two for the - environment's Virtual IP addresses; the Floating range - must have M IPs. - -:Neutron with HA: - - The Public range must have [(X+Y) +2] IP addresses - (one for each Controller and Zabbix node plus two for - the environment's Virtual IP addresses); the Floating - range must have K+M IP addresses. - -:If you are not using the HA deployment: - You may decrease the Public range by one IP address - (which would be allocated for the Virtual IP in HA mode). +* for the Public IP range: [(X+Y) + N]; +* for the Floating range: [K+M]. -.. note:: All 5.0.x environments and 5.1 Neutron environments - for which **Public network assignment -> Assign public network to all nodes** - is set have the same requirements as those shown for Nova-Network. +**Nova-Network** +* for the Public IP range: [(X+Y+Z) + N]; +* for the Floating IP range: [M]. + +`Where:` + +* Number of nodes: + + * **X** = controller nodes + * **Y** = Zabbix nodes + * **Z** = other nodes (Compute, Storage, and MongoDB) + +* **K** = the number of virtual routers for all the tenants + (on condition all of them are connected to the external network) + +* **M** = the number of virtual instances you want to provide the direct external + access to + +* **N** = the number of extra IP addresses. It is 3 in total for the following: + + * for environment's virtual IP: + + * virtual IP address for a virtual router + * public virtual IP address + + * 1 for the default gateway + +----- + +Lets consider the following environment: + +* X = 3 controller nodes +* Y = 1 Zabbix node +* Z = 10 compute + 5 Ceph OSD + 3 MongoDB nodes +* K = 10 tenants with one router for each tenant connected + to the external network +* M = 100 VM instances with the direct external access required +* N = 3 extra IP addresses + +Your calculations will result in the following number of the required IP +addresses: + ++---------------------+---------------------------+-----------------------------+ +| | **Environment** | | **Neutron** | | **Nova-Network** | +| | **details** | | requirements for | | requirements for | +| +-------------+--------------+------------+---------------+ +| | Public IPs | Floating IPs | Public IPs | Floating IPs | ++---------------------+-------------+--------------+------------+---------------+ +| X = 3 | ✓ | | ✓ | | ++---------------------+-------------+--------------+------------+---------------+ +| Y = 1 | ✓ | | ✓ | | ++---------------------+-------------+--------------+------------+---------------+ +| Z = 18 | ✓* | | ✓ | | ++---------------------+-------------+--------------+------------+---------------+ +| K = 10 | | ✓ | n/a | n/a | ++---------------------+-------------+--------------+------------+---------------+ +| M = 100 | | ✓ | | ✓ | ++---------------------+-------------+--------------+------------+---------------+ +| N = 3 | ✓ | | ✓ | | ++---------------------+-------------+--------------+------------+---------------+ +| **Total:** |**7**/**25***| **110** | **25** | **100** | ++---------------------+-------------+--------------+------------+---------------+ + +.. tip:: + + **✓*** - it is the additional requirement for Public IP range for the 6.1 + Neutron environment with **Public network assignment -> Assign public + network to all nodes** set. In the example, it is [(X+Y+Z) + N] = **25**. + + **n/a** - this value is not applicable to Nova-Network environments.