Travailler avec des sous-réseaux

Les sous-réseaux permettent à votre trafic réseau de parcourir des chemins plus efficaces de l'origine à la destination. Vous pouvez utiliser des ACL de réseau avec des sous-réseaux pour protéger vos ressources au sein de chaque sous-réseau.

Avant de commencer

Avant de commencer, vous devez disposer d'un ou de plusieurs rôles d'accès IAM qui incluent les actions suivantes, en fonction des conditions répertoriées. Vous pouvez vérifier vos droits d'accès en vous rendant dans Utilisateurs > Utilisateur > Accès.

  • is.subnet.subnet.create
  • is.public-gateway.public-gateway.operate (obligatoire lorsque public_gateway est spécifié)
  • is.network-acl.network-acl.operate

Création de sous-réseaux

Vous pouvez créer des sous-réseaux à l'aide de la console, de l'interface de ligne de commande (CLI) ou de l'API.

Si vous utilisez pour un sous-réseau une plage d'adresses IP ne figurant pas parmi celles définies par la RFC 1918 (10.0.0.0/8, 172.16.0.0/12 ou 192.168.0.0/16), les instances rattachées à ce sous-réseau risquent de ne pas pouvoir accéder à certaines parties d'Internet. Si vous prévoyez de configurer des VPC qui utilisent à la fois des adresses de type « non-RFC-1918 » et qui disposent également d'une connectivité publique (adresses IP flottantes ou passerelles publiques), veillez à configurer une route personnalisée avec l'action « Delegate-VPC ».

Création de sous-réseaux dans la console

Pour créer un sous-réseau dans la console, procédez comme suit :

  1. Dans votre navigateur, ouvrez la consoleIBM Cloud.

  2. Sélectionnez l' icône du menu de navigation, puis cliquez sur l'icône Infrastructure VPC > Réseau > Sous-réseaux.

  3. Cliquez sur Créer dans le tableau de la liste Subnets for VPC.

  4. Dans la section « Lieu », indiquez les informations suivantes :

    • Géographie: indiquez la zone générale dans laquelle vous souhaitez créer le sous-réseau.
    • Région: indiquez la région dans laquelle vous souhaitez créer le sous-réseau.
    • Zone: Indiquez la zone dans laquelle vous souhaitez créer le sous-réseau.
  5. Dans la section « Détails », veuillez fournir les informations suivantes :

    • Nom: entrez un identificateur unique pour le sous-réseau, tel que my-subnet.
    • Groupe de ressources: sélectionnez un groupe de ressources pour le sous-réseau.
    • Balises: Si vous le souhaitez, ajoutez les balises appropriées pour aider à regrouper vos sous-réseaux.
    • Balises de gestion des accès: ajoutez éventuellement des balises de gestion des accès aux ressources pour faciliter l'organisation des relations de contrôle d'accès. key:value est le seul format pris en charge pour les étiquettes de gestion des accès. Pour plus d'informations, voir Contrôle de l'accès aux ressources à l'aide d'étiquettes.
    • Cloud privé virtuel: Sélectionnez le VPC dans lequel vous souhaitez créer le sous-réseau.
  6. Dans la section de sélection de la plage IP, fournissez les informations suivantes :

    • Plage IP: L'emplacement le plus efficace pour votre plage d'adresses IP est calculé automatiquement. Si vous souhaitez personnaliser la plage d'adresses IP au lieu d'accepter la sélection par défaut, sélectionnez un préfixe d'adresse différent, modifiez le nombre d'adresses ou entrez votre plage d'adresses IP manuellement.

    • Préfixe d'adresse: Sélectionnez le préfixe du réseau de base pour votre sous-réseau. Cela détermine la plage IP la plus large à partir de laquelle les adresses IP de votre sous-réseau sont attribuées. Choisissez parmi les préfixes disponibles au sein de votre VPC.

    • Total des adresses IP: Sélectionnez le nombre total d'adresses IPv4 requises.

    • Espace d'adresses: Affiche la plage complète d'adresses IP du préfixe sélectionné dans votre VPC. Cette plage définit les limites à l'intérieur desquelles vous pouvez allouer des plages de sous-réseaux IP.

    • Table de routage: sélectionnez la table de routage que vous souhaitez que le nouveau sous-réseau utilise.

    • Liste de contrôle d'accès au sous-réseau: Sélectionnez la liste de contrôle d'accès que le nouveau sous-réseau doit utiliser.

    • Passerelle publique: indiquez si vous souhaitez que le sous-réseau communique avec l'Internet public en basculant le commutateur sur Connecté.

      L'attachement d'une passerelle publique crée une IP flottante et entraîne un coût.

  7. Dans le panneau Résumé, cliquez sur Créer un sous-réseau.

Onglet Ressources jointes

L'onglet Ressources attachées répertorie toutes les ressources attachées au sous-réseau et permet de créer des ressources :

  • Instances
  • Serveurs bare metal
  • Modèles d'instance
  • Groupes d'instances
  • Équilibreurs de charge
  • Passerelles VPN
  • Passerelles de points d'extrémité virtuels
  • Serveurs VPN

Cliquez sur Créer dans le tableau de la liste des ressources de la ressource que vous souhaitez créer. Vous êtes redirigé vers le workflow de création de ressource correspondant, où vous pouvez commencer le processus de création de la ressource.

Onglet IP réservées

L'onglet IP réservées répertorie toutes les adresses IP réservées pour le sous-réseau. Pour plus d'informations, voir Gestion des adresses IP.

Création de sous-réseaux à partir de l'interface de ligne de commande

Pour créer des sous-réseaux à partir de l'interface de ligne de commande, exécutez la commande suivante :

ibmcloud is subnet-create SUBNET_NAME VPC ((--zone ZONE_NAME --ipv4-address-count ADDR_COUNT) | --ipv4-cidr-block CIDR_BLOCK) [--acl ACL] [--pgw PGW] [--rt RT] [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] {} [--output JSON] [-q, --quiet]

Où :

SUBNET_NAME
Nom du sous-réseau.
VPC
ID ou nom du cloud privé virtuel.
--ipv4-cidr-block
Plage IPv4 du sous-réseau. Cette option est incompatible avec l'option « --ipv4-address-count ».
--ipv4-address-count
Le nombre total IPv4 d'adresses requises doit être une puissance de 2 et la valeur minimale est 8. Cette option est incompatible avec l'option « --ipv4-cidr-block ».
--zone
Nom de la zone.
--acl
ID ou nom de la liste de contrôle d'accès réseau.
--pgw
ID ou nom de la passerelle publique.
--rt
ID ou nom de la table de routage. Cette option prend également en charge le nom de la ressource en nuage (CRN) de la table de routage.
--resource-group-id
ID du groupe de ressources. Cet identifiant est incompatible avec celui de --resource-group-name.
--resource-group-name
Nom du groupe de ressources. Ce nom est incompatible avec celui de --resource-group-id.
--output
Spécifiez le format de sortie, seul JSON est pris en charge. Un parmi : JSON.
-q, --quiet
Supprimer la sortie prolixe.

Création de sous-réseaux à l'aide de l'API

Suivez ces instructions pour créer des sous-réseaux à l'aide de l'API :

  1. Configurez votre environnement d'API.
  2. Enregistrez toutes les variables supplémentaires qui seront utilisées dans les commandes API.
Paramètres pour la création d'un sous-réseau
Paramètres de requête Informations
version
Exigée
string
Demande la version de l'API à une date donnée, au format YYYY-MM-DD. Toute date jusqu'à la date actuelle peut être fournie. Indiquez la date actuelle pour demander la version la plus récente.
Valeurs possibles : La valeur doit correspondre à l'expression régulière ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
generation
Obligatoire
int32
La génération des infrastructures.
Valeurs possibles : 2
Corps de la demande
requis
L'objet prototype de sous-réseau.
vpc
Exigée
string
Le VPC dans lequel ce sous-réseau réside.
L'un des suivants : VPCIdentityById, VPCIdentityByCRN, VPCIdentityByHref
ip_version
string
La version IP à prendre en charge pour ce sous-réseau. Valeurs autorisées : [ipv4]
name
Exigée
string
Le nom de ce sous-réseau. Ce nom ne doit pas être utilisé par un autre sous-réseau au sein du VPC. Si rien n'est spécifié, le nom sera une liste de mots sélectionnés au hasard et séparés par des tirets.
Valeurs possibles : 1 ≤ longueur ≤ 63, La valeur doit correspondre à l'expression régulière ([a-z]|[a-z][-a-z0-9]*[a-z0-9])$
Exemple : my-subnet
network_acl
string
La liste de contrôle d'accès réseau (ACL) à utiliser pour ce sous-réseau. Si aucune spécification n'est fournie, l'ACL réseau par défaut pour le VPC est utilisée.
L'un des suivants : NetworkACLIdentityById, NetworkACLIdentityByCRN, NetworkACLIdentityHref
public_gateway
string
Passerelle publique à utiliser pour le trafic Internet destiné à ce sous-réseau. Si cela n'est pas spécifié, le sous-réseau ne sera pas connecté à une passerelle publique.
L'un des suivants : PublicGatewayIdentityById, PublicGatewayIdentityByCRN, PublicGatewayIdentityByHref
resource_group
ResourceGroupIdentityById
Le groupe de ressources à utiliser. Si aucune indication n'est fournie, le groupe de ressources par défaut du compte est utilisé.
routing_table
string
Table de routage à utiliser pour ce sous-réseau. S'il n'est pas spécifié, la table de routage par défaut du VPC est utilisée. Les propriétés de la table route_direct_link_ingress de routage, route_internet_ingress, route_transit_gateway_ingress, et route_vpc_zone_ingress doivent être false.
L'un des suivants : RoutingTableIdentityById, RoutingTableIdentityByCRN, RoutingTableIdentityByHref
SubnetByTotalCount
int 64
ou
SubnetByCIDR
string
Pour SubnetByTotalCount, indiquez le nombre total IPv4 d'adresses nécessaires. Pour SubnetByCIDR, spécifiez la IPv4 plage du sous-réseau, exprimée au format CIDR. Les deux options nécessitent un zone pour le sous-réseau à créer.

Une fois toutes les variables initiées, soumettez la demande.

Voir l'exemple suivant :

curl -X POST
"$vpc_api_endpoint/v1/subnets?version=2022-10-31&generation=2"
-H "Authorization: Bearer $iam_token"
-d '{
      "name": "my-subnet-1",
      "ipv4_cidr_block": "10.0.1.0/24",
      "ip_version": "ipv4",
      "zone": { "name": "us-south-1" },
      "vpc": { "id": "a0819609-0997-4f92-9409-86c95ddf59d3" }
    }'

La réponse suivante s'affiche une fois la requête lancée :

Exemple de réponse API
Corps de réponse Détails
available_ipv4_address_count
Toujours inclus
int64
Le nombre d'adresses IPv4 dans ce sous-réseau qui ne sont pas utilisées et qui ne sont pas réservées par l'utilisateur ou le fournisseur.
Exemple : 15
created_at
Toujours inclus
date-time
La date et l'heure de création de ce sous-réseau.
crn
Toujours inclus
string
Le CRN pour ce sous-réseau.
Valeurs possibles : 9 ≤ longueur ≤ 512
Exemple : crn:v1:bluemix:public:is:us-south-1:a/123456::subnet:7ec86020-1c6e-4889-b3f0-a15f2e50f87e
href
Toujours inclus*
string
Le URL pour ce sous-réseau
Valeurs possibles : 10 ≤ longueur ≤ 8000, La valeur doit correspondre à l'expression régulière ^http(s)?://([^/?#]*)([^?#]*)(?([^#]*))?(#(.*))?$
Exemple : https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e
id
Toujours inclus
string
L'identifiant unique de ce sous-réseau
Valeurs possibles : 1 ≤ length ≤ 64, La valeur doit correspondre à l'expression régulière ^[-0-9a-z_]+$
Exemple : 7ec86020-1c6e-4889-b3f0-a15f2e50f87e
ip_version
Toujours inclus
string
Les versions IP prises en charge par ce sous-réseau.
Valeurs possibles : [ipv4]
ipv4_cidr_block
Toujours inclus
string
La plage IPv4 du sous-réseau, exprimée au format CIDR.
Valeurs possibles : 9 ≤ longueur ≤ 18, La valeur doit correspondre à l'expression régulière ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(/(3[0-2]|[1-2][0-9]|[0-9]))$
Exemple : 10.0.0.0/24
name
Toujours inclus
string
Le nom de ce sous-réseau. Le nom est unique dans tous les sous-réseaux du VPC.
Valeurs possibles : 1 ≤ longueur ≤ 63, La valeur doit correspondre à l'expression régulière ^-?([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$
Exemple : my-subnet
network_acl Toujours inclus
NetworkACLReference
resource_group
Toujours inclus
ResourceGroupReference
Le groupe de ressources pour ce sous-réseau.
resource_type
Toujours inclus
string
Type de ressource.
Valeurs possibles : 1 ≤ length ≤ 128, La valeur doit correspondre à l'expression régulière ^[a-z][a-z0-9]*(_[a-z0-9]+)*$
Exemple : subnet
routing_table
Toujours inclus
RoutingTableReference
La table de routage pour ce sous-réseau.
status
Toujours inclus
string
Le statut du sous-réseau.
Valeurs possibles : available,deleting,failed, pending
total_ipv4_address_count
Toujours inclus
int64
vpc
Toujours inclus
VPCReference
Le VPC dans lequel ce sous-réseau réside.
zone
Toujours inclus
ZoneReference
La zone dans laquelle se trouve ce sous-réseau.
public_gateway
PublicGatewayReference
Passerelle publique à utiliser pour le trafic Internet destiné à ce sous-réseau.
Créer des codes d'état
Code de statut Signification
201 Le sous-réseau a été créé.
400 Un objet prototype de sous-réseau non valide a été fourni.
409 L'objet prototype de sous-réseau entre en conflit avec un autre sous-réseau dans le VPC ou spécifie un bloc CIDR en dehors des préfixes d'adresse du VPC.

Pour plus d'informations (y compris des exemples Java, Node, Python et Go), consultez la méthode create a subnet dans la référence API VPC.

Visualisation des sous-réseaux

Vous pouvez afficher les détails d'un sous-réseau dans votre VPC à l'aide de l'interface utilisateur, de l'API ou de l'interface de ligne de commande.

Affichage des sous-réseaux dans la console

Une fois le sous-réseau créé, il apparaît dans la liste Sous-réseaux pour VPC.

Pour afficher les détails d'un sous-réseau dans la liste de la console, cliquez sur le lien du sous-réseau dans la colonne Nom. L'onglet Aperçu affiche les informations que vous avez utilisées lors de la création du sous-réseau.

Affichage des sous-réseaux depuis l'interface de ligne de commande

Pour afficher les détails d'un sous-réseau dans VPC à partir de l'interface CLI, exécutez la commande suivante :

ibmcloud is subnet SUBNET [--vpc VPC] [--show-attached] [--output JSON] [-q, --quiet]

Où :

SUBNET
ID ou nom du sous-réseau.
--vpc
ID ou nom du cloud privé virtuel. Il est requis uniquement pour spécifier la ressource unique à l'aide de son nom dans ce cloud privé virtuel.
--show-attached
Voir les détails des ressources (instances, équilibreurs de charge, passerelles VPN) connectées au sous-réseau.
--output
Spécifiez le format de sortie, seul JSON est pris en charge. Valeur admise : JSON.
-q, --quiet
Supprimer la sortie prolixe.

Affichage des sous-réseaux via l'API

Pour appeler cette méthode, vous devez avoir un ou plusieurs rôles d'accès IAM incluant l'action suivante. Vous pouvez vérifier vos droits d'accès en vous rendant dans Utilisateurs > Utilisateur > Accès.

  • is.subnet.subnet.read

Suivez ces instructions pour extraire un sous-réseau dans votre VPC à l'aide de l'API:

  1. Configurez votre environnement d'API.
  2. Enregistrez toutes les variables supplémentaires qui seront utilisées dans les commandes API.
Paramètres pour récupérer un sous-réseau
Paramètres de requête Informations
id
Exigée
string
L'identifiant du sous-réseau.
Valeurs possibles : 1 ≤ longueur ≤ 64. La valeur doit correspondre à l'expression régulière. ^[-0-9a-z_]+$
version
Exigée
string
Demande la version de l'API à une date donnée, au format YYYY-MM-DD. Toute date jusqu'à la date actuelle peut être fournie. Indiquez la date actuelle pour demander la version la plus récente.
Valeurs possibles : La valeur doit correspondre à l'expression régulière ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
generation
Exigée
int32
La génération des infrastructures.
Valeurs autorisées : 2
  1. Une fois toutes les variables initialisées, exécutez la commande.

Voir l'exemple suivant :

curl -X GET "$vpc_api_endpoint/v1/subnets/$subnet_id?version=2022-10-31&generation=2"
-H "Authorization: Bearer $iam_token"

La réponse suivante s'affiche une fois la requête lancée :

Exemple de réponse initiale
Corps de réponse Détails
available_ipv4_address_count
Toujours inclus
int64
Le nombre d'adresses IPv4 dans ce sous-réseau qui ne sont pas utilisées et qui ne sont pas réservées par l'utilisateur ou le fournisseur.
Exemple : 15
created_at
Toujours inclus
date-heure
La date et l'heure de création de ce sous-réseau.
crn
Toujours inclus
string
Le CRN de ce sous-réseau
Valeurs possibles : 9 ≤ longueur ≤ 512
Exemple : crn:v1:bluemix:public:is:us-south-1:a/123456::subnet:7ec86020-1c6e-4889-b3f0-a15f2e50f87e
href
Toujours inclus*
string
Le URL pour ce sous-réseau
Valeurs possibles : 10 ≤ longueur ≤ 8000, La valeur doit correspondre à l'expression régulière ^http(s)?://([^/?#]*)([^?#]*)(?([^#]*))?(#(.*))?$
Exemple : https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e
id
Toujours inclus
string
L'identifiant unique de ce sous-réseau
Valeurs possibles : 1 ≤ length ≤ 64, La valeur doit correspondre à l'expression régulière ^[-0-9a-z_]+$
Exemple : 7ec86020-1c6e-4889-b3f0-a15f2e50f87e
ip_version
Toujours inclus
string
Les versions IP prises en charge par ce sous-réseau.
Valeurs possibles : [ipv4]
ipv4_cidr_block
Toujours inclus
string
La plage d' IPv4 s du sous-réseau, exprimée au format CIDR.
Valeurs possibles : 9 ≤ longueur ≤ 18, La valeur doit correspondre à l'expression régulière ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(/(3[0-2]|[1-2][0-9]|[0-9]))$
Exemple : 10.0.0.0/24
name
Toujours inclus
string
Le nom de ce sous-réseau. Le nom est unique dans tous les sous-réseaux du VPC.
Valeurs possibles : 1 ≤ longueur ≤ 63, La valeur doit correspondre à l'expression régulière ^-?([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$
Exemple : my-subnet
network_acl Toujours inclus
NetworkACLReference
resource_group
Toujours inclus
ResourceGroupReference
Le groupe de ressources pour ce sous-réseau.
resource_type
Toujours inclus
string
Type de ressource.
Valeurs possibles : 1 ≤ length ≤ 128, La valeur doit correspondre à l'expression régulière ^[a-z][a-z0-9]*(_[a-z0-9]+)*$
Exemple : subnet
routing_table
Toujours inclus
RoutingTableReference
La table de routage pour ce sous-réseau.
status
Toujours inclus
string
Le statut du sous-réseau.
Valeurs possibles : available,deleting,failed, pending
total_ipv4_address_count
Toujours inclus
int64
vpc
Toujours inclus
VPCReference
Le VPC dans lequel ce sous-réseau réside.
zone
Toujours inclus
ZoneReference
La zone dans laquelle se trouve ce sous-réseau.
public_gateway
PublicGatewayReference
Passerelle publique à utiliser pour le trafic Internet destiné à ce sous-réseau.
Récupérer les codes d'état
Code de statut Signification
200 Le sous-réseau a été récupéré avec succès.
404 Impossible de trouver un sous-réseau correspondant à l'identifiant indiqué.

Pour plus d'informations (y compris des exemples Java en Node,, Python et Go), consultez la section « Récupérer un sous-réseau » dans la référence API VPC.