Présentation des configurations utilisant plusieurs interfaces réseau et exemples

Cette page présente les configurations d'instances de machines virtuelles utilisant plusieurs interfaces réseau. Il y est question de leur fonctionnement, et des exemples de configuration y sont présentés. Pour en savoir plus sur la création de configurations utilisant plusieurs interfaces, consultez la section Créer des configurations avec plusieurs interfaces réseau.

Présentation

Par défaut, les réseaux de cloud privé virtuel (VPC) Google Cloud sont des domaines de mise en réseau privé isolés. Les réseaux ont un champ d'application global et contiennent des sous-réseaux régionaux. Les instances de VM dans un réseau VPC peuvent communiquer entre elles via des adresses IP internes, sous réserve que les règles de pare-feu le permettent. Cependant, aucune communication par adresse IP interne n'est autorisée entre les réseaux, sauf si vous mettez en place des systèmes tels qu'un appairage de réseaux VPC ou un réseau Cloud VPN.

Chaque instance d'un réseau VPC possède une interface réseau par défaut. Vous pouvez créer des interfaces réseau supplémentaires en les associant à vos VM. Utiliser plusieurs interfaces réseau vous permet de créer des configurations avec lesquelles une instance se connecte directement à plusieurs réseaux VPC. Chacune des interfaces doit posséder une adresse IP interne et peut aussi disposer d'une adresse IP externe. Chaque instance peut avoir jusqu'à huit interfaces selon le type d'instance. Pour plus d'informations, consultez la section Nombre maximal d'interfaces.

En général, il est nécessaire d'utiliser plusieurs interfaces pour configurer une instance en tant que dispositif réseau assurant l'équilibrage de charge, la détection et la prévention des intrusions (IDS/IPS), l'optimisation WAN entre les réseaux ou servant de pare-feu d'application Web (WAF). L'utilisation de plusieurs interfaces réseau est également utile lorsque des applications exécutées dans une instance nécessitent une séparation du trafic, telle que la séparation du trafic associé au plan de données de celui relevant du plan de gestion.

Cas d'utilisation

Vous pouvez utiliser plusieurs interfaces réseau lorsqu'une instance individuelle a besoin d'accéder à plusieurs réseaux VPC, mais que vous ne souhaitez pas les connecter directement.

  • Fonction réseau et sécurité : l'utilisation de plusieurs interfaces réseau active les fonctions de dispositif réseau virtuel, telles que les équilibreurs de charge, les serveurs de traduction d'adresses de réseau (NAT) et les serveurs proxy configurés avec plusieurs interfaces réseau. Pour en savoir plus, consultez la section Exemple 1 : Dispositifs virtuels de mise en réseau et de sécurité.

  • Isolation du périmètre et de la DMZ : une bonne pratique importante en matière d'architectures réseau à plusieurs niveaux consiste à isoler les services publics du réseau interne avec ses services liés. Utilisez plusieurs interfaces réseau pour créer des configurations dans lesquelles on trouve des interfaces réseau distinctes sur l'instance, l'une d'entre elles acceptant le trafic public et l'autre gérant le trafic backend privé avec des contrôles d'accès plus restrictifs.

    Toutes les ressources accessibles depuis Internet doivent être séparées de votre réseau interne et de ses services. Cela limite considérablement la portée et les dommages qu'une violation de sécurité pourrait causer. Par exemple, vous pouvez placer une seconde interface réseau sur chaque serveur Web qui se connecte à un réseau de niveau intermédiaire sur lequel se trouve un serveur d'applications. Le serveur d'applications peut également être hébergé en double sur un réseau backend sur lequel se trouve le serveur de base de données. Chaque instance à double résidence reçoit et traite les requêtes sur le frontal, initie une connexion au backend, puis envoie des requêtes aux serveurs du réseau backend.

    En configurant des interfaces distinctes, l'une publique et l'autre privée, vous pouvez appliquer à chacune des règles de pare-feu et des contrôles d'accès distincts, et appliquer des fonctions de sécurité pour les communications allant de la partie publique à la partie privée. Pour en savoir plus, consultez la section Exemple 2 : Utiliser des dispositifs tiers dans un scénario de réseau VPC partagé.

Exemples de configuration

Cette section examine différents exemples courants d'utilisation de plusieurs interfaces réseau.

Exemple 1 : Dispositifs virtuels de mise en réseau et de sécurité

Les dispositifs virtuels de mise en réseau et de sécurité, tels que les WAF, les pare-feu de sécurité au niveau applicatif et les accélérateurs WAN, sont généralement configurés avec plusieurs interfaces virtuelles. Chacune des interfaces est configurée avec sa propre adresse IP privée et éventuellement avec sa propre adresse IP publique.

La figure suivante décrit une configuration typique. Dans ce cas spécifique, vous configurez un dispositif de réseau virtuel sur le chemin de la connectivité entre la partie publique et la partie privée. De cette manière, le trafic ne peut atteindre un réseau VPC privé depuis un client externe public que via un point d'application de pare-feu virtualisé au niveau de l'application. Ce pare-feu au niveau de l'application est appliqué en surcouche des machines virtuelles.

Cas d'utilisation 1 : Provisionner et configurer des instances utilisant plusieurs interfaces (cliquez pour agrandir)
Cas d'utilisation 1 : Provisionner et configurer des instances utilisant plusieurs interfaces (cliquez pour agrandir)

Provisionner et configurer des instances pour l'exemple 1

Le code suivant suppose que subnet0, subnet1 et subnet2 existent déjà, avec des plages d'adresses IP qui ne se chevauchent pas. Pour configurer l'instance vm-appliance dans cet exemple, utilisez la commande suivante.

gcloud compute instances create vm-appliance \
        --network-interface subnet=subnet0,no-address \
        --network-interface subnet=subnet1 \
        --network-interface subnet=subnet2,no-address \
        --machine-type n1-standard-4
    

Cette commande crée une instance avec trois interfaces réseau :

  • nic0 est associée au sous-réseau subnet0 et n'a pas d'adresse IP publique.
  • nic1 est associée au sous-réseau subnet1 et a une adresse IP publique éphémère.
  • nic2 est associée au sous-réseau subnet2 et n'a pas d'adresse IP publique.

Exemple 2 : Utiliser des dispositifs tiers dans un scénario de réseau VPC partagé

Cette configuration est utile lorsque vous souhaitez partager un ensemble unique de dispositifs tiers centralisés pour des charges de travail ou des applications hébergées dans différents projets. Dans l'exemple ci-dessous, quatre applications distinctes, App1, App2, App3 et App4, sont hébergées dans différents projets de service. Vous voulez les protéger de tout le trafic entrant en provenance d'Internet, et vous souhaitez que le trafic de sortie soit inspecté et filtré par un dispositif tiers situé au centre du projet hôte de VPC partagé.

Cas d'utilisation 2 : Exemple de VPC partagé avec un dispositif tiers (cliquez pour agrandir)
Cas d'utilisation 2 : Exemple de VPC partagé avec un dispositif tiers (cliquez pour agrandir)

Provisionner et configurer la VM et les interfaces réseau pour l'exemple 2

Pour créer la VM et les interfaces réseau dans cet exemple, utilisez les commandes suivantes.

Pour créer l'instance vm-appliance :

gcloud compute instances create VM-appliance \
        --network-interface subnet=subnet-dmz,address='reserved-address' \
        --network-interface subnet=subnet-1,no-address \
        --network-interface subnet=subnet-2,no-address \
        --network-interface subnet=subnet-3,no-address \
        --network-interface subnet=subnet-4,no-address \
        --machine-type=n1-standard-4
    

Cela crée une instance avec cinq interfaces réseau :

  • nic0 est associée au sous-réseau subnet-dmz, qui fait partie de network-dmz, avec une adresse IP statique "reserved-address".
  • nic1 est associée au sous-réseau subnet-1, qui fait partie de network-1, sans adresse IP publique.
  • nic2 est associée au sous-réseau subnet-2, qui fait partie de network-2, sans adresse IP publique.
  • nic3 est associée au sous-réseau subnet-3, qui fait partie de network-3, sans adresse IP publique.
  • nic4 est associée au sous-réseau subnet-4, qui fait partie de network-4, sans adresse IP publique.

Détails opérationnels supplémentaires

Plusieurs interfaces réseau dans un environnement VPC partagé

Le VPC partagé vous permet de partager des réseaux VPC entre des projets dans votre organisation Cloud.

Il vous permet de créer des instances associées à un réseau VPC partagé hébergé dans un projet hôte de VPC partagé centralisé. Consultez la section Provisionner un VPC partagé pour en savoir plus sur la configuration des réseaux VPC partagés.

Lorsque vous créez des instances utilisant plusieurs interfaces réseau, il est possible que vos instances ou modèles d'instances aient des interfaces associées à des sous-réseaux propres au projet, et d'autres interfaces associées à des réseaux VPC partagés.

Pour créer des instances avec une ou plusieurs interfaces associées à des réseaux VPC partagés, vous devez disposer du rôle compute.networkUser dans le projet hôte de VPC partagé.

Résolution DNS avec plusieurs interfaces réseau

Lorsqu'une requête DNS interne est effectuée avec le nom d'hôte de l'instance, elle se résout au niveau de l'interface principale (nic0) de l'instance. Si l'interface nic0 de l'instance appartient à un réseau VPC différent du réseau VPC de l'instance émettant la requête DNS interne, la requête échoue.

Les enregistrements DNS privés de Compute Engine ne sont pas générés pour chaque interface.

Comportement DHCP avec plusieurs interfaces réseau

Dans une configuration par défaut comportant plusieurs interfaces, le système d'exploitation est configuré pour utiliser le protocole DHCP. Le comportement de DHCP et d'ARP pour chacune des interfaces est identique à celui de DHCP et d'ARP dans une instance dotée d'une interface unique.

Dans une instance avec plusieurs interfaces utilisant DHCP, chaque interface obtient une route vers le sous-réseau auquel elle appartient. En outre, l'instance obtient une route unique par défaut associée à l'interface principale eth0. Sauf configuration manuelle différente, tout trafic quittant une instance pour une destination autre qu'un sous-réseau directement connecté quittera l'instance via la route par défaut sur eth0.

Dans cet exemple, l'interface principale eth0 obtient la route par défaut default via 10.138.0.1 dev eth0, et les deux interfaces eth0 et eth1 obtiennent une route pour leurs sous-réseaux respectifs.

    instance-1:~$ ip route
    default via 10.138.0.1 dev eth0
    10.137.0.0/20 via 10.137.0.1 dev eth1
    10.137.0.1 dev eth1 scope link
    10.138.0.0/20 via 10.138.0.1 dev eth0
    10.138.0.1 dev eth0 scope link
    

Pour plus d'informations, consultez la section Configurer une liaison de règle.

Routes statiques personnalisées et interfaces réseau multiples

Lorsqu'une instance de VM possède plusieurs interfaces ainsi qu'un tag réseau, ce tag ne s'applique pas nécessairement à la totalité des interfaces de la VM. Le tag réseau d'une VM a une incidence sur une interface si celle-ci fait partie d'un réseau VPC qui contient une route statique personnalisée marquée par un tag correspondant.

Exemple :

  1. Une VM possède deux interfaces : nic0 et nic1. L'interface nic0 fait partie du réseau vpc-net-a. L'interface nic1 fait partie du réseau vpc-net-b. La VM possède un tag réseau appelé vpn-ok. Le tag est un attribut appliqué à l'instance, et non à une interface spécifique.
  2. Le réseau vpc-net-a dispose d'une route statique personnalisée avec un tag appelé vpn-ok.
  3. Le réseau vpc-net-b dispose d'une route statique personnalisée avec un tag appelé vpn-123.

Ces étapes numérotées correspondent aux numéros utilisés comme légendes dans le diagramme suivant :

Routes statiques personnalisées et interfaces réseau multiples (cliquez pour agrandir)
Routes statiques personnalisées et interfaces réseau multiples (cliquez pour agrandir)

Dans le cas du réseau vpc-net-a, du fait qu'il possède une route ayant un tag en commun avec la VM, le tag vpn-ok de la VM s'applique à l'interface nic0 de la VM dans le réseau vpc-net-a. En revanche, comme le réseau vpc-net-b ne possède pas de route statique associée au tag vpn-ok, le tag réseau vpn-ok de la VM est ignoré sur l'interface nic1 de la VM.

Utiliser des tags avec les routes dans des instances avec plusieurs interfaces réseau

Si vous choisissez d'utiliser des tags avec les routes, notez qu'ils sont appliqués au niveau de l'instance et que, par conséquent, ils s'appliquent à toutes les interfaces d'une instance de machine virtuelle. Si ce n'est pas ce que vous souhaitez, définissez votre configuration de sorte que seuls certains tags soient utilisés dans les routes d'un réseau VPC donné, garantissant ainsi que ces tags ne s'appliquent qu'aux interfaces associées au réseau VPC spécifique.

Équilibreurs de charge et interfaces réseau multiples

Sauf dans le contexte de l'équilibrage de charge TCP/UDP interne, tous les équilibreurs de charge Google Cloud ne distribuent le trafic que vers la première interface (nic0) d'une instance backend.

Règles de pare-feu et interfaces réseau multiples

Chaque réseau VPC possède son propre ensemble de règles de pare-feu. Si l'interface d'une instance se trouve dans un réseau VPC donné, les règles de pare-feu de ce réseau s'appliquent à cette interface.

Par exemple, supposons qu'une instance de VM possède deux interfaces :

  • nic0 dans le réseau VPC network-1
  • nic1 dans le réseau VPC network-2

Les règles de pare-feu que vous créez pour le réseau network-1 s'appliquent à nic0. Les règles de pare-feu que vous créez pour le réseau network-2 s'appliquent à nic1.

Pour en savoir plus, consultez la page Présentation des règles de pare-feu.

Utiliser des pare-feu sur des instances avec plusieurs interfaces réseau

  • Les règles de pare-feu d'entrée peuvent utiliser des tags réseau ou des comptes de service pour identifier les sources, les cibles (destinations) ou les deux.

  • Les règles de pare-feu de sortie peuvent utiliser des tags réseau ou des comptes de service pour identifier des cibles (sources).

Pour en savoir plus, consultez la section Filtrage source et cible par compte de service.

Les tags réseau et les comptes de service identifient des instances, et non des interfaces spécifiques. Gardez à l'esprit que les règles de pare-feu sont associées à un réseau VPC unique et que chaque interface d'une instance à plusieurs cartes d'interface réseau doit se trouver dans un réseau VPC unique.

L'exemple suivant montre comment utiliser efficacement les tags sources pour les règles de pare-feu autorisant le trafic entrant (allow). L'instance vm1 comporte deux interfaces réseau :

  • nic0 dans le réseau network-1
  • nic1 dans le réseau network-2

Supposons que vous ayez besoin d'autoriser le trafic suivant depuis vm1 :

  • Trafic SSH provenant de vm1 à destination de n'importe quelle instance dans le réseau network-1
  • Trafic HTTP et HTTPS provenant de vm1 à destination de n'importe quelle instance dans le réseau network-2

Pour mettre en place cette configuration, procédez comme suit :

  1. Attribuez deux tags réseau à vm1 : vm1-network1 et vm1-network2

  2. Créez une règle de pare-feu autorisant le trafic entrant (allow) pour le réseau network-1. Les composants suivants permettent d'autoriser le trafic SSH provenant de vm1 vers toutes les VM du réseau network-1 :

    • Action : allow
    • Direction : ingress
    • Sources : VM ayant le tag vm1-network1
    • Cibles : toutes les instances du réseau VPC
    • Protocoles et ports : tcp:22
  3. Créez une règle de pare-feu autorisant le trafic entrant pour le réseau network-2. Les composants suivants permettent d'autoriser le trafic HTTP et HTTPS provenant de vm1 vers toutes les VM du réseau network-2 :

    • Action : allow
    • Direction : ingress
    • Sources : VM ayant le tag vm1-network2
    • Cibles : toutes les instances du réseau VPC
    • Protocoles et ports : tcp:80,443

Le diagramme suivant illustre cet exemple de configuration de pare-feu :

Règles de pare-feu (cliquez pour agrandir)
Règles de pare-feu (cliquez pour agrandir)

Étape suivante