Skip to content

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}"
}

Liens vers des documentations🔗