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.createis.public-gateway.public-gateway.operate(obligatoire lorsquepublic_gatewayest 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 :
-
Dans votre navigateur, ouvrez la consoleIBM Cloud.
-
Sélectionnez l'
menu de navigation, puis cliquez sur l'icône Infrastructure
> Réseau > Sous-réseaux.
-
Cliquez sur Créer dans le tableau de la liste Subnets for VPC.
-
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.
-
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:valueest 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.
- Nom: entrez un identificateur unique pour le sous-réseau, tel que
-
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.
-
-
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 :
- Configurez votre environnement d'API.
- Enregistrez toutes les variables supplémentaires qui seront utilisées dans les commandes API.
| Paramètres de requête | Informations |
|---|---|
versionExigé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}$ |
generationObligatoire int32 |
La génération des infrastructures. Valeurs possibles : 2 |
| Corps de la demande requis |
L'objet prototype de sous-réseau. |
vpcExigée string |
Le VPC dans lequel ce sous-réseau réside. L'un des suivants : VPCIdentityById, VPCIdentityByCRN, VPCIdentityByHref |
ip_versionstring |
La version IP à prendre en charge pour ce sous-réseau. Valeurs autorisées : [ipv4] |
nameExigé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_aclstring |
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_gatewaystring |
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_groupResourceGroupIdentityById |
Le groupe de ressources à utiliser. Si aucune indication n'est fournie, le groupe de ressources par défaut du compte est utilisé. |
routing_tablestring |
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 |
SubnetByTotalCountint 64ou SubnetByCIDRstring |
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 :
| Corps de réponse | Détails |
|---|---|
available_ipv4_address_countToujours 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_atToujours inclus date-time |
La date et l'heure de création de ce sous-réseau. |
crnToujours 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 |
hrefToujours 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 |
idToujours 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_versionToujours inclus string |
Les versions IP prises en charge par ce sous-réseau. Valeurs possibles : [ipv4] |
ipv4_cidr_blockToujours 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 |
nameToujours 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 inclusNetworkACLReference |
resource_groupToujours inclus ResourceGroupReference |
Le groupe de ressources pour ce sous-réseau. |
resource_typeToujours 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_tableToujours inclus RoutingTableReference |
La table de routage pour ce sous-réseau. |
statusToujours inclus string |
Le statut du sous-réseau. Valeurs possibles : available,deleting,failed, pending |
total_ipv4_address_countToujours inclus int64 |
|
vpcToujours inclus VPCReference |
Le VPC dans lequel ce sous-réseau réside. |
zoneToujours inclus ZoneReference |
La zone dans laquelle se trouve ce sous-réseau. |
public_gatewayPublicGatewayReference |
Passerelle publique à utiliser pour le trafic Internet destiné à ce sous-réseau. |
| 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:
- Configurez votre environnement d'API.
- Enregistrez toutes les variables supplémentaires qui seront utilisées dans les commandes API.
| Paramètres de requête | Informations |
|---|---|
idExigé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_]+$ |
versionExigé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}$ |
generationExigée int32 |
La génération des infrastructures. Valeurs autorisées : 2 |
- 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 :
| Corps de réponse | Détails |
|---|---|
available_ipv4_address_countToujours 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_atToujours inclus date-heure |
La date et l'heure de création de ce sous-réseau. |
crnToujours 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 |
hrefToujours 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 |
idToujours 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_versionToujours inclus string |
Les versions IP prises en charge par ce sous-réseau. Valeurs possibles : [ipv4] |
ipv4_cidr_blockToujours 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 |
nameToujours 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_groupToujours inclus ResourceGroupReference |
Le groupe de ressources pour ce sous-réseau. |
resource_typeToujours 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_tableToujours inclus RoutingTableReference |
La table de routage pour ce sous-réseau. |
statusToujours inclus string |
Le statut du sous-réseau. Valeurs possibles : available,deleting,failed, pending |
total_ipv4_address_countToujours inclus int64 |
|
vpcToujours inclus VPCReference |
Le VPC dans lequel ce sous-réseau réside. |
zoneToujours inclus ZoneReference |
La zone dans laquelle se trouve ce sous-réseau. |
public_gatewayPublicGatewayReference |
Passerelle publique à utiliser pour le trafic Internet destiné à ce sous-réseau. |
| 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.