Les routeurs
Un routeur Openstack est un composant essentiel permettant de connecter et transférer des paquets entre différents réseaux disponibles sur Openstack. Cela peut concerner tout aussi bien des réseaux self-services que les réseaux providers.
Depuis l'interface Brane🔗
Depuis la CLI🔗
Création du routeur🔗
Il faut d'abord créer le routeur.
$ openstack router create brane-doc-router
- Il est ensuite possible d'effectuer un certain nombres d'opèration sur le routeur:
Activer/Désactiver le NAT🔗
$ openstack router set --enable-snat/--disable-snat brane-doc-router
Ajout d'un sous-réseau🔗
$ openstack router add subnet brane-doc-router brane-doc-self-service-subnet
Suppression d'un sous-réseau🔗
$ openstack router remove subnet brane-doc-router brane-doc-self-service-subnet
Ajout d'un réseau externe🔗
On peut aussi préciser de manière optionnelle le réseau de sortie par défaut. C'est typiquement dans ce type de cas que l'on connecte un routeur à un réseau provider externe et permettant ainsi à des instances de joindre des ressources hors Openstack.
$ openstack router set --external-gateway <network> brane-doc-router
Ajout de routes dans la table de routage🔗
$ openstack router set --route destination=<subnet>,gateway=<ip-address>
Avec Terraform🔗
resource "openstack_networking_network_v2" "brane-doc-self-service" {
name = "brane-doc-self-service"
admin_state_up = "true"
shared = "false"
}
resource "openstack_networking_subnet_v2" "brane-doc-self-service-subnet" {
name = "brane-doc-self-service-subnet"
network_id = "${openstack_networking_network_v2.brane-doc-self-service.id}"
cidr = "172.27.0.0/24"
ip_version = 4
gateway_ip = "172.27.0.254"
allocation_pool {
start = "172.27.0.10"
end = "172.27.0.199"
}
}
resource "openstack_networking_router_v2" "brane-doc-router_1" {
name = "brane-doc-router"
admin_state_up = true
external_network_id = "f67f0d72-0ddf-11e4-9d95-e1f29f417e2f"
}
resource "openstack_networking_router_v2" "router_1" {
name = "my_router"
external_network_id = "f67f0d72-0ddf-11e4-9d95-e1f29f417e2f"
}
resource "openstack_networking_router_interface_v2" "brane-doc-router-interface_1" {
router_id = "${openstack_networking_router_v2.brne-doc-router_1.id}"
subnet_id = "${openstack_networking_subnet_v2.brane-doc-self-service-subnet.id}"
}