2015-09-08 13:38:37 -05:00
|
|
|
.. _launch-instance-networks-public:
|
|
|
|
|
|
|
|
Public provider network
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
Before launching an instance, you must create the necessary virtual network
|
|
|
|
infrastructure. For networking option 1, an instance uses a public provider
|
|
|
|
virtual network that connects to the physical network infrastructure
|
|
|
|
via layer-2 (bridging/switching). This network includes a DHCP server that
|
|
|
|
provides IP addresses to instances.
|
|
|
|
|
|
|
|
The ``admin`` or other privileged user must create this network because it
|
|
|
|
connects directly to the physical network infrastructure.
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
The following instructions and diagrams use example IP address ranges. You
|
|
|
|
must adjust them for your particular environment.
|
|
|
|
|
|
|
|
.. figure:: figures/network1-overview.png
|
|
|
|
:alt: Networking Option 1: Provider networks - Overview
|
|
|
|
|
|
|
|
**Networking Option 1: Provider networks - Overview**
|
|
|
|
|
|
|
|
.. figure:: figures/network1-connectivity.png
|
|
|
|
:alt: Networking Option 1: Provider networks - Connectivity
|
|
|
|
|
|
|
|
**Networking Option 2: Provider networks - Connectivity**
|
|
|
|
|
|
|
|
Create the public network
|
|
|
|
-------------------------
|
|
|
|
|
|
|
|
#. On the controller node, source the ``admin`` credentials to gain access to
|
|
|
|
admin-only CLI commands:
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
$ source admin-openrc.sh
|
|
|
|
|
|
|
|
#. Create the network:
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
$ neutron net-create public --shared --provider:physical_network public \
|
|
|
|
--provider:network_type flat
|
|
|
|
Created a new network:
|
|
|
|
+---------------------------+--------------------------------------+
|
|
|
|
| Field | Value |
|
|
|
|
+---------------------------+--------------------------------------+
|
|
|
|
| admin_state_up | True |
|
|
|
|
| id | 0e62efcd-8cee-46c7-b163-d8df05c3c5ad |
|
|
|
|
| mtu | 0 |
|
|
|
|
| name | public |
|
|
|
|
| port_security_enabled | True |
|
|
|
|
| provider:network_type | flat |
|
|
|
|
| provider:physical_network | public |
|
|
|
|
| provider:segmentation_id | |
|
|
|
|
| router:external | False |
|
|
|
|
| shared | True |
|
|
|
|
| status | ACTIVE |
|
|
|
|
| subnets | |
|
|
|
|
| tenant_id | d84313397390425c8ed50b2f6e18d092 |
|
|
|
|
+---------------------------+--------------------------------------+
|
|
|
|
|
|
|
|
The ``--shared`` option allows all projects to use the virtual network.
|
|
|
|
|
|
|
|
The ``--provider:physical_network public`` and
|
|
|
|
``--provider:network_type flat`` options connect the flat virtual network
|
|
|
|
to the flat (native/untagged) public physical network on the ``eth1``
|
|
|
|
interface on the host using information from the following files:
|
|
|
|
|
|
|
|
``ml2_conf.ini``:
|
|
|
|
|
|
|
|
.. code-block:: ini
|
|
|
|
|
|
|
|
[ml2_type_flat]
|
|
|
|
flat_networks = public
|
|
|
|
|
|
|
|
``linuxbridge_agent.ini``:
|
|
|
|
|
|
|
|
.. code-block:: ini
|
|
|
|
|
|
|
|
[linux_bridge]
|
|
|
|
physical_interface_mappings = public:eth1
|
|
|
|
|
|
|
|
#. Create a subnet on the network:
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
$ neutron subnet-create public PUBLIC_NETWORK_CIDR --name public \
|
|
|
|
--allocation-pool start=START_IP_ADDRESS,end=END_IP_ADDRESS\
|
2015-10-22 11:31:10 -06:00
|
|
|
--dns-nameserver DNS_RESOLVER --gateway PUBLIC_NETWORK_GATEWAY
|
2015-09-08 13:38:37 -05:00
|
|
|
|
|
|
|
Replace ``PUBLIC_NETWORK_CIDR`` with the subnet on the public physical
|
|
|
|
network in CIDR notation.
|
|
|
|
|
|
|
|
Replace ``START_IP_ADDRESS`` and ``END_IP_ADDRESS`` with the first and
|
|
|
|
last IP address of the range within the subnet that you want to allocate
|
|
|
|
for instances. This range must not include any existing active IP
|
|
|
|
addresses.
|
|
|
|
|
2015-10-22 11:31:10 -06:00
|
|
|
Replace ``DNS_RESOLVER`` with the IP address of a DNS resolver. In
|
|
|
|
most cases, you can use one from the ``/etc/resolv.conf`` file on
|
|
|
|
the host.
|
|
|
|
|
2015-09-08 13:38:37 -05:00
|
|
|
Replace ``PUBLIC_NETWORK_GATEWAY`` with the gateway IP address on the
|
|
|
|
public physical network, typically the ".1" IP address.
|
|
|
|
|
|
|
|
**Example**
|
|
|
|
|
2015-10-22 11:31:10 -06:00
|
|
|
The public network uses 203.0.113.0/24 with a gateway on 203.0.113.1.
|
|
|
|
A DHCP server assigns each instance an IP address from 203.0.113.101
|
|
|
|
to 203.0.113.200. All instances use 8.8.4.4 as a DNS resolver.
|
2015-09-08 13:38:37 -05:00
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
$ neutron subnet-create public 203.0.113.0/24 --name public \
|
|
|
|
--allocation-pool start=203.0.113.101,end=203.0.113.200 \
|
2015-10-22 11:31:10 -06:00
|
|
|
--dns-nameserver 8.8.4.4 --gateway 203.0.113.1
|
2015-09-08 13:38:37 -05:00
|
|
|
Created a new subnet:
|
|
|
|
+-------------------+----------------------------------------------------+
|
|
|
|
| Field | Value |
|
|
|
|
+-------------------+----------------------------------------------------+
|
|
|
|
| allocation_pools | {"start": "203.0.113.101", "end": "203.0.113.200"} |
|
|
|
|
| cidr | 203.0.113.0/24 |
|
2015-10-22 11:31:10 -06:00
|
|
|
| dns_nameservers | 8.8.4.4 |
|
2015-09-08 13:38:37 -05:00
|
|
|
| enable_dhcp | True |
|
|
|
|
| gateway_ip | 203.0.113.1 |
|
|
|
|
| host_routes | |
|
|
|
|
| id | 5cc70da8-4ee7-4565-be53-b9c011fca011 |
|
|
|
|
| ip_version | 4 |
|
|
|
|
| ipv6_address_mode | |
|
|
|
|
| ipv6_ra_mode | |
|
|
|
|
| name | public |
|
|
|
|
| network_id | 0e62efcd-8cee-46c7-b163-d8df05c3c5ad |
|
|
|
|
| subnetpool_id | |
|
|
|
|
| tenant_id | d84313397390425c8ed50b2f6e18d092 |
|
|
|
|
+-------------------+----------------------------------------------------+
|
|
|
|
|
|
|
|
Return to :ref:`Launch an instance - Create virtual networks
|
|
|
|
<launch-instance-networks>`.
|