Réseau self-service¶
Si vous choisissez le réseau option 2, vous pouvez aussi créer un réseau self-service (privé) qui se connecte à l’infrastructure réseau physique via NAT. Ce réseau inclut un serveur DHCP qui fournit des adresses IP aux instances. Une instance sur ce réseau peut accèder automatiquement aux réseaux externes comme internet. Néanmoins, l’accès à une instance de ce réseau à partir d’un réseau externe comme internet nécessite une adresse IP flottante.
L’utilisateur demo
ou tout autre utilisateur sans privilèges peut créer ce réseau parce qu’il fournit la connectivité uniquement aux instances du projet demo
.
Avertissement
Vous devez créer le réseau fournisseur avant le réseau self-service.
Note
Les instructions et diagrammes suivants utilisent des exemples de plages d’adresses IP. Vous devez ajuster ces plages à votre environnement.
Créer le réseau self-service¶
Sur le nœud contrôleur, sourcer les credentials
demo
pour obtenir l’accès aux commandes en ligne simple-utilisateur :$ . demo-openrc
Créer le réseau :
$ openstack network create selfservice Created a new network: +-------------------------+--------------------------------------+ | Field | Value | +-------------------------+--------------------------------------+ | admin_state_up | UP | | availability_zone_hints | | | availability_zones | | | created_at | 2016-11-04T18:20:59Z | | description | | | headers | | | id | 7c6f9b37-76b4-463e-98d8-27e5686ed083 | | ipv4_address_scope | None | | ipv6_address_scope | None | | mtu | 1450 | | name | selfservice | | port_security_enabled | True | | project_id | 3828e7c22c5546e585f27b9eb5453788 | | project_id | 3828e7c22c5546e585f27b9eb5453788 | | revision_number | 3 | | router:external | Internal | | shared | False | | status | ACTIVE | | subnets | | | tags | [] | | updated_at | 2016-11-04T18:20:59Z | +-------------------------+--------------------------------------+
Les utilisateurs sans privilège ne peuvent en général pas fournir de paramètres supplémentaires à cette commande. Le service choisit automatiquement les paramètres en utilisant les informations des fichiers suivants :
ml2_conf.ini
:[ml2] tenant_network_types = vxlan [ml2_type_vxlan] vni_ranges = 1:1000
Créer un sous-réseau sur le réseau :
$ openstack subnet create --network selfservice \ --dns-nameserver DNS_RESOLVER --gateway SELFSERVICE_NETWORK_GATEWAY \ --subnet-range SELFSERVICE_NETWORK_CIDR selfservice
Remplacer
DNS_RESOLVER
par l’adresse IP d’un DNS. Dans la plupart des cas, vous pouvez utiliser un des serveurs DNS du fichier/etc/resolv.conf
du host.Remplacer
SELFSERVICE_NETWORK_GATEWAY
par la passerelle que vous voulez utiliser sur le réseau self-service, généralement l’adresse IP en « .1 ».Remplacer
SELFSERVICE_NETWORK_CIDR
par le sous-réseau que vous voulez utiliser sur le réseau self-service. Vous pouvez utiliser n’importe quelle valeur arbitraire, bien que nous recommandions un réseau de la RFC 1918.Exemple
Le réseau self-service utilise 172.16.1.0/24 avec la passerelle sur 172.16.1.1. Un serveur DHCP attribue à chaque instance une adresse IP entre 172.16.1.2 et 172.16.1.254. Toutes les instances utilisent 8.8.4.4 pour la résolution DNS.
$ openstack subnet create --network selfservice \ --dns-nameserver 8.8.4.4 --gateway 172.16.1.1 \ --subnet-range 172.16.1.0/24 selfservice Created a new subnet: +-------------------+--------------------------------------+ | Field | Value | +-------------------+--------------------------------------+ | allocation_pools | 172.16.1.2-172.16.1.254 | | cidr | 172.16.1.0/24 | | created_at | 2016-11-04T18:30:54Z | | description | | | dns_nameservers | 8.8.4.4 | | enable_dhcp | True | | gateway_ip | 172.16.1.1 | | headers | | | host_routes | | | id | 5c37348e-e7da-439b-8c23-2af47d93aee5 | | ip_version | 4 | | ipv6_address_mode | None | | ipv6_ra_mode | None | | name | selfservice | | network_id | b9273876-5946-4f02-a4da-838224a144e7 | | project_id | 3828e7c22c5546e585f27b9eb5453788 | | project_id | 3828e7c22c5546e585f27b9eb5453788 | | revision_number | 2 | | service_types | [] | | subnetpool_id | None | | updated_at | 2016-11-04T18:30:54Z | +-------------------+--------------------------------------+
Créer un routeur¶
Les réseaux self-service se connecte aux réseaux fournisseur via un routeur virtuel qui en général effectue du NAT bidirectionnel. Chaque routeur possède une interface dans au moins un réseau self-service et une passerelle sur un réseau fournisseur.
Le réseau fournisseur doit inclure l’option router: external
pour permettre aux routeurs libre-service de l’utiliser pour se connecter aux réseaux externes comme Internet. L’utilisateur admin
ou un autre utilisateur à privilèges doit inclure cette option lors de la création du réseau ou l’ajouter plus tard. Dans ce cas, l’option router:external
a été définie en utilisant le paramètre --external
lors de la création du réseau fournisseur
.
Sur le nœud contrôleur, sourcer les credentials
demo
pour obtenir l’accès aux commandes en ligne simple-utilisateur :$ . demo-openrc
Créer le routeur :
$ openstack router create router Created a new router: +-------------------------+--------------------------------------+ | Field | Value | +-------------------------+--------------------------------------+ | admin_state_up | UP | | availability_zone_hints | | | availability_zones | | | created_at | 2016-11-04T18:32:56Z | | description | | | external_gateway_info | null | | flavor_id | None | | headers | | | id | 67324374-396a-4db6-9443-c70be167a42b | | name | router | | project_id | 3828e7c22c5546e585f27b9eb5453788 | | project_id | 3828e7c22c5546e585f27b9eb5453788 | | revision_number | 2 | | routes | | | status | ACTIVE | | updated_at | 2016-11-04T18:32:56Z | +-------------------------+--------------------------------------+
Ajouter le sous-réseau du réseau self-service comme interface du routeur :
$ openstack router add subnet router selfservice
Définir une passerelle sur le réseau fournisseur sur le routeur :
$ openstack router set router --external-gateway provider
Vérifier le fonctionnement¶
Il est recommandé de vérifier le fonctionnement et régler les problèmes avant de poursuivre. Les étapes suivantes utilisent les plages d’adresses IP des exemples de création de réseau et sous-réseau.
Sur le nœud contrôleur, sourcer les credentials
admin
pour obtenir l’accès aux commandes en ligne réservées à l’administrateur :$ . admin-openrc
Lister les espaces de nommage réseau. Vous devriez voir un espace de nommage
qrouter
et deux espaces de nommageqdhcp
.$ ip netns qrouter-89dd2083-a160-4d75-ab3a-14239f01ea0b qdhcp-7c6f9b37-76b4-463e-98d8-27e5686ed083 qdhcp-0e62efcd-8cee-46c7-b163-d8df05c3c5ad
Lister les ports sur le routeur pour déterminer l’adresse IP de la passerelle sur le réseau fournisseur :
$ openstack port list --router router +--------------------------------------+------+-------------------+-------------------------------------------------------------------------------+--------+ | ID | Name | MAC Address | Fixed IP Addresses | Status | +--------------------------------------+------+-------------------+-------------------------------------------------------------------------------+--------+ | bff6605d-824c-41f9-b744-21d128fc86e1 | | fa:16:3e:2f:34:9b | ip_address='172.16.1.1', subnet_id='3482f524-8bff-4871-80d4-5774c2730728' | ACTIVE | | d6fe98db-ae01-42b0-a860-37b1661f5950 | | fa:16:3e:e8:c1:41 | ip_address='203.0.113.102', subnet_id='5cc70da8-4ee7-4565-be53-b9c011fca011' | ACTIVE | +--------------------------------------+------+-------------------+-------------------------------------------------------------------------------+--------+
Pinguer cette adresse IP à partir du nœud contrôleur ou de tout autre host sur le réseau fournisseur physique.
$ ping -c 4 203.0.113.102 PING 203.0.113.102 (203.0.113.102) 56(84) bytes of data. 64 bytes from 203.0.113.102: icmp_req=1 ttl=64 time=0.619 ms 64 bytes from 203.0.113.102: icmp_req=2 ttl=64 time=0.189 ms 64 bytes from 203.0.113.102: icmp_req=3 ttl=64 time=0.165 ms 64 bytes from 203.0.113.102: icmp_req=4 ttl=64 time=0.216 ms --- 203.0.113.102 ping statistics --- rtt min/avg/max/mdev = 0.165/0.297/0.619/0.187 ms
Retourner à Lancer une instance - Créer des réseaux virtuels.