Dies ist der dritte Teil der Konfiguration von Neutron (Networking) unter Ubuntu 14.04. Sie können den vorherigen Artikel zu Configure Neutron #1 und Configure Neutron #2 durchgehen, in dem wir Netzwerkkomponenten auf Controller und Compute-Knoten installiert und konfiguriert haben.
Hier erstellen wir ein erstes Netzwerk, das erstellt werden muss, bevor eine VM-Instanz/en gestartet werden.
Das obige Diagramm verwendet beispielhafte IP-Adressbereiche. Sie müssen sie an Ihre spezielle Umgebung anpassen.
Da wir Self-Service-Netzwerke verwenden , müssen wir sowohl öffentliche als auch private virtuelle Netzwerke erstellen.
Öffentliches Anbieternetzwerk erstellen:
Die Instanz verwendet ein virtuelles Netzwerk eines öffentlichen Anbieters, das über Bridging/Switching mit der physischen Netzwerkinfrastruktur verbunden ist. Dieses Netzwerk enthält einen DHCP-Server, der Netzwerkressourcen (IP-Adresse, Subnetz, Gateway und andere) für Instanzen bereitstellt.
Anmeldeinformationen auf dem Controller-Knoten laden.
# source admin-openrc.sh
das Netzwerk erstellen.
# neutron net-create public --shared --provider:physical_network public --provider:network_type flat Created a new network: +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | id | 25109c9a-0d9c-498f-8a8a-9004219ee85a | | 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 | fe858f6a43f84c26b994f0be74c928e6 | +---------------------------+--------------------------------------+
Erstellen Sie ein Subnetz im öffentlichen Netzwerk.
Verwenden Sie beispielsweise 192.168.0.0/24 mit dem Floating-IP-Adressbereich 192.168.0.200 bis 192.168.0.250 mit dem physischen Gateway 192.168.0.1 mit 8.8.4.4 als primärem DNS-Server. Dieses Gateway sollte dem physischen Netzwerk zugeordnet sein
# neutron subnet-create public 192.168.0.0/24 --name public --allocation-pool start=192.168.0.200,end=192.168.0.250 --dns-nameserver 8.8.4.4 --gateway 192.168.0.1 Created a new subnet: +-------------------+----------------------------------------------------+ | Field | Value | +-------------------+----------------------------------------------------+ | allocation_pools | {"start": "192.168.0.200", "end": "192.168.0.250"} | | cidr | 192.168.0.0/24 | | dns_nameservers | 8.8.4.4 | | enable_dhcp | True | | gateway_ip | 192.168.0.1 | | host_routes | | | id | 3cee40a7-e241-4f9e-8033-cdc03fc58d76 | | ip_version | 4 | | ipv6_address_mode | | | ipv6_ra_mode | | | name | public | | network_id | 25109c9a-0d9c-498f-8a8a-9004219ee85a | | subnetpool_id | | | tenant_id | fe858f6a43f84c26b994f0be74c928e6 | +-------------------+----------------------------------------------------+
Privates Projektnetzwerk erstellen:
Erstellen Sie ein virtuelles Netzwerk für ein privates Projekt, um die physische Netzwerkinfrastruktur über Layer-3 (Routing) und NAT zu verbinden. Dieses private Projektnetzwerk enthält einen DHCP-Server, der IP-Adressen für Instanzen bereitstellt. Eine Instanz in diesem Netzwerk kann Zugriff auf das Internet haben. Für den Zugriff auf eine Instanz in diesem Netzwerk über das Internet ist jedoch eine Floating-IP-Adresse erforderlich.
Erstellen Sie das private Netzwerk (privat).
# neutron net-create private Created a new network: +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | id | 1b03eacd-e737-473b-8c0d-a16052f6505b | | mtu | 0 | | name | private | | port_security_enabled | True | | provider:network_type | vxlan | | provider:physical_network | | | provider:segmentation_id | 65 | | router:external | False | | shared | False | | status | ACTIVE | | subnets | | | tenant_id | fe858f6a43f84c26b994f0be74c928e6 | +---------------------------+--------------------------------------+
Erstellen Sie ein Subnetz im internen Netzwerk. Verwenden Sie beispielsweise das Netzwerk 192.168.100.0/24 mit dem virtuellen Gateway 192.168.0.1 mit 8.84.4. als primärer DNS-Server. Ein DHCP-Server weist jeder Instanz eine IP-Adresse von 192.168.100.2 bis 192.168.100.254
zu# neutron subnet-create private 192.168.100.0/24 --name private --dns-nameserver 8.8.4.4 --gateway 192.168.100.1 Created a new subnet: +-------------------+------------------------------------------------------+ | Field | Value | +-------------------+------------------------------------------------------+ | allocation_pools | {"start": "192.168.100.2", "end": "192.168.100.254"} | | cidr | 192.168.100.0/24 | | dns_nameservers | 8.8.4.4 | | enable_dhcp | True | | gateway_ip | 192.168.100.1 | | host_routes | | | id | 5b986d39-7f60-4c14-ad68-9aa797fc2487 | | ip_version | 4 | | ipv6_address_mode | | | ipv6_ra_mode | | | name | private | | network_id | 1b03eacd-e737-473b-8c0d-a16052f6505b | | subnetpool_id | | | tenant_id | fe858f6a43f84c26b994f0be74c928e6 | +-------------------+------------------------------------------------------+
Erstellen Sie den virtuellen Router.
Private Projektnetzwerke verbinden sich über einen virtuellen Router mit Netzwerken öffentlicher Anbieter, der den Netzwerkverkehr zwischen zwei oder mehr virtuellen Netzwerken weiterleitet (zu oder von privat / öffentlich). In unserem Fall müssen wir einen Router erstellen und ihn mit privaten und öffentlichen Netzwerken verbinden.
# neutron router-create router Created a new router: +-----------------------+--------------------------------------+ | Field | Value | +-----------------------+--------------------------------------+ | admin_state_up | True | | external_gateway_info | | | id | e217d03c-ad34-4d64-bce8-0190e0eef6ca | | name | router | | routes | | | status | ACTIVE | | tenant_id | b558b39292b247b7a346678b80ed71e0 | +-----------------------+--------------------------------------+
Fügen Sie die Option router:external dem Netzwerk des öffentlichen Anbieters hinzu.
# neutron net-update public --router:external Updated network: public
Verbinden Sie den Router mit dem privaten Subnetz.
# neutron router-interface-add router private Added interface 74748304-cbfb-4c53-bc6e-d12271bbcdd1 to router router.
Verbinden Sie den Router mit dem öffentlichen Netzwerk, indem Sie ihn als Gateway festlegen.
# neutron router-gateway-set router public Set gateway for router router
Überprüfen:
Listen Sie die Netzwerk-Namespaces auf, die Ausgabe sollte einen qrouter haben und zwei qdhcp Namensräume.
# ip netns qrouter-e217d03c-ad34-4d64-bce8-0190e0eef6ca qdhcp-1b03eacd-e737-473b-8c0d-a16052f6505b qdhcp-25109c9a-0d9c-498f-8a8a-9004219ee85a
Sie können die Konnektivität überprüfen, indem Sie 192.168.0.200 vom externen physischen Netzwerk aus anpingen. Dies liegt daran, dass wir das Subnetz 192.168.0.0/24 verwendet haben, Floating-IP-Bereiche von 192.168.0.200 – 250, das Mieter-Router-Gateway sollte die niedrigste IP-Adresse im Floating-IP-Adressbereich belegen, dh 192.168.0.200
C:\>ping 192.168.0.200 Pinging 192.168.0.200 with 32 bytes of data: Reply from 192.168.0.200: bytes=32 time=1ms TTL=64 Reply from 192.168.0.200: bytes=32 time=2ms TTL=64 Reply from 192.168.0.200: bytes=32 time=1ms TTL=64 Reply from 192.168.0.200: bytes=32 time=1ms TTL=64 Ping statistics for 192.168.0.200: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 1ms, Maximum = 2ms, Average = 1ms
Das ist alles!!! Sie haben erfolgreich erste Netzwerke zum Starten einer Instanz erstellt.
Referenz:OpenStack-Handbuch.