Après avoir créé le routeur, vous devez configurer le réseau externe. Au moyen de la passerelle du réseau externe, les utilisateurs des réseaux internes du cloud peuvent se connecter à Internet.
La figure suivante illustre comment un seul routeur prend en charge les communications réseau des projets du cloud.
Figure 3 Routeur de fournisseur avec modèle de réseaux privés
La figure présente les éléments suivants :
Deux projets (Locataire A et Locataire B)
Quatre machines virtuelles (VM1, VM2, VM3 et VM4)
Quatre sous-réseaux (HR, ENG, IT et ACCT)
Routeur
Réseau externe
Quand vous fournissez un accès de réseau interne au réseau externe, l'adresse IP de la machine virtuelle est mappée à l'une des adresses flottantes que vous affectez au réseau externe.
Cette procédure explique comment créer un réseau virtuel qui représente un réseau externe. Ce réseau virtuel n'utilise pas DHCP. A la place, les adresses IP flottantes sont créées et affectées aux projets et utilisées par les instances de machine virtuelle Nova sous ces projets. Ces étapes créent un type de réseau VLAN, mais la procédure s'applique à la création d'autres types de réseau, tels qu'un réseau plat.
Vous pouvez créer le réseau externe indépendamment de la création des réseaux internes.
Avant de commencer
Terminez la configuration du commutateur virtuel élastique. Pour plus d'informations, reportez-vous à la section Installation et configuration de Neutron, notamment aux étapes de la configuration EVS.
controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=service-password controller# export OS_PROJECT_NAME=service controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0
controller# evsadm show-controlprop -p vlan-range
controller# neutron net-create --provider:network_type=vlan \ --provider:segmentation_id=VLAN-nbr \ --router:external network-name
Cette étape suppose qu'un réseau VLAN a été créé en suivant la procédure indiquée à la section Installation et configuration de Neutron. segmentation_id est l'ID de VLAN du réseau VLAN, dont la plage a été définie lors de la configuration d'EVS.
Le pool d'allocation se compose d'une plage d'adresses IP flottantes qui est affectée au sous-réseau.
controller# neutron subnet-create --name subnet-name --disable-dhcp \ --allocation-pool start=start-IP,end=end-IP \ network-name subnet-IP
controller# neutron router-gateway-set router-name ext-network-ID
controller# neutron router-show router-name
Cet exemple explique comment créer le réseau externe pour le préparer à l'utilisation par des réseaux internes dans le cloud.
Pour créer un réseau plat, reportez-vous à l'exemple fourni dans la section 2 de https://blogs.oracle.com/openstack/tags/juno.
controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=service-password controller# export OS_PROJECT_NAME=service controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0 controller# evsadm show-controlprop -p vlan-range PROPERTY PERM VALUE DEFAULT HOST vlan-range rw 1,200-300 -- -- controller# neutron net-create --router:external \ --provider:network_type=vlan --provider:segmentation_id=1 ext_network Created a new network: +--------------------------+--------------------------------------+ | Field | Value | +--------------------------+--------------------------------------+ | admin_state_up | True | | id | 08cf49c8-f28f-49c1-933d-bdb1017e0294 | | name | ext_network | | provider:network_type | vlan | | provider:segmentation_id | 1 | | router:external | True | | shared | False | | status | ACTIVE | | subnets | | | project_id | 7d1caf0854b24becb28df5c5cabf72cc | +--------------------------+--------------------------------------+ controller# neutron subnet-create --name ext_subnet --disable-dhcp \ --allocation-pool start=10.134.10.8,end=10.134.10.254 \ ext_network 10.134.10.0/24 Created a new subnet: +-------------------+---------------------------------------------------+ | Field | Value | +-------------------+---------------------------------------------------+ | allocation_pools | {"start": "10.134.10.8", "end": "10.134.10.254"} | | cidr | 10.134.10.0/24 | | dns_nameservers | | | enable_dhcp | False | | gateway_ip | 10.134.13.1 | | host_routes | | | id | fce503ff-f483-4024-b122-f2524e3edae1 | | ip_version | 4 | | ipv6_address_mode | | | ipv6_ra_mode | | | name | ext_subnet | | network_id | 08cf49c8-f28f-49c1-933d-bdb1017e0294 | | project_id | 7d1caf0854b24becb28df5c5cabf72cc | +-------------------+---------------------------------------------------+ controller# neutron router-gateway-set ext-router 08cf49c8-f28f-49c1-933d-bdb1017e0294 Set gateway for router ext-router controller# neutron router-show ext-router +-----------------------+-------------------------------------------------------+ | Field | Value | +-----------------------+-------------------------------------------------------+ | admin_state_up | True | | external_gateway_info | {"network_id": "08cf49c8-f28f-49c1-933d-bdb1017e0294",| | | "enable_snat": true, | | | "external_fixed_ips": | | |[{"subnet_id": "fce503ff-f483-4024-b122-f2524e3edae1", | | |"ip_address": "10.134.10.8"}]} | | | id | f89b24ed-42dd-48b0-8f4b-fd41887a3370 | | name | ext-router | | status | ACTIVE | | project_id | 7d1caf0854b24becb28df5c5cabf72cc | +-----------------------+-------------------------------------------------------+
Voir aussi
Utilisez cette procédure pour activer un réseau interne pour accéder au réseau public étendu. Cette procédure suppose que des réseaux internes existent déjà pour des projets spécifiques. Pour créer un réseau interne de projet à l'aide du tableau de nord, reportez-vous à la section Création de réseaux internes pour les projets.
Avant de commencer
Avant de poursuivre, obtenez le nom du sous-réseau qui nécessite l'accès public.
controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=service-password controller# export OS_PROJECT_NAME=service controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0
controller# neutron subnet-list | grep subnet-name
controller# neutron router-list
controller# neutron router-interface-add router-name subnetID
Cet exemple utilise le réseau interne HR qui a été créé dans la section Configuration d'un réseau pour un projet. Le réseau HR, dont le sous-réseau est HR_Subnet, requiert un accès au réseau public.
controller# neutron subnet-list | grep HR_Subnet | b6feff42-36aa-4235- | HR_Subnet | 10.132.30.0/24 | {"start": "10.132.30.2", | | 9fe0-ac5de6b43af3 | | | "end": "10.132.30.254"} | controller# neutron router-list +--------------------- +------------+--------------------------------+ | id | name | external_gateway_info | +--------------------- +------------+--------------------------------+ | f89b24ed-42dd-48b0- | ext-router | {"network_id": "6c4c1823-a203- | | 8f4b-fd41887a3370 | | 43b1-9674-ddb5ff4185fc", | | | | "enable_snat": true, | | | | "external_fixed_ips": | | | | [{"subnet_id": "83d9b40f-cc61- | | | | 4696-b22e-b4cbc2aa3872", | | | | "ip_address": "10.132.10.8"}]} | +---------- -----------+------------+--------------------------------+ controller# neutron router-interface-add ext-router b6feff42-36aa-4235-9fe0-ac5de6b43af3 Added interface b6feff42-36aa-4235-9fe0-ac5de6b43af3 to router ext-router.
Vous pouvez utiliser des commandes de filtre IP, telles que ipf, ippool, et ipnat et des commandes de mise en réseau , telles que dladm et ipadm pour respecter et résoudre les problèmes de la configuration effectuée par neutron-l3-agent.
network# dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VIDS l3i7843841e_0_0 net1 1000 2:8:20:42:ed:22 fixed 200 l3i89289b8e_0_0 net1 1000 2:8:20:7d:87:12 fixed 201 l3ed527f842_0_0 net0 100 2:8:20:9:98:3e fixed 0
network# ipadm NAME CLASS/TYPE STATE UNDER ADDR l3ed527f842_0_0 ip ok -- -- l3ed527f842_0_0/v4 static ok -- 10.134.10.8/24 l3ed527f842_0_0/v4a static ok -- 10.134.10.9/32 l3i7843841e_0_0 ip ok -- -- l3i7843841e_0_0/v4 static ok -- 192.168.100.1/24 l3i89289b8e_0_0 ip ok -- -- l3i89289b8e_0_0/v4 static ok -- 192.168.101.1/24
network# ipfstat -io empty list for ipfilter(out) block in quick on l3i7843841e_0_0 from 192.168.100.0/24 to pool/4386082 block in quick on l3i89289b8e_0_0 from 192.168.101.0/24 to pool/8226578 network# ippool -l table role = ipf type = tree number = 8226578 { 192.168.100.0/24; }; table role = ipf type = tree number = 4386082 { 192.168.101.0/24; };
network# ipnat -l List of active MAP/Redirect filters: bimap l3ed527f842_0_0 192.168.101.3/32 -> 10.134.13.9/32 List of active sessions: BIMAP 192.168.101.3 22 <- -> 10.134.13.9 22 [10.132.146.13 36405]