Sdílet prostřednictvím


Funkce CIDR pro šablony ARM

Tento článek popisuje funkce pro práci s CIDR v šabloně Azure Resource Manageru (šablona ARM).

Tip

Doporučujeme Bicep, protože nabízí stejné možnosti jako šablony ARM a syntaxe se snadněji používá. Další informace najdete v tématu Funkce cidr .

parseCidr

parseCidr(network)

Parsuje rozsah IP adres v zápisu CIDR za účelem získání různých vlastností rozsahu adres.

V Bicep použijte funkci parseCidr .

Parametry

Parametr Požaduje se Type Popis
síť Ano string Řetězec v zápisu CIDR obsahující rozsah IP adres, který se má převést.

Vrácená hodnota

Objekt, který obsahuje různé vlastnosti rozsahu adres.

Příklady

Následující příklad analyzuje řetězec CIDR IPv4:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v4info": {
      "type": "object",
      "value": "[parseCidr('10.144.0.0/20')]"
    }
  }
}

Předchozí příklad vrátí následující objekt:

{
  "network":"10.144.0.0",
  "netmask":"255.255.240.0",
  "broadcast":"10.144.15.255",
  "firstUsable":"10.144.0.1",
  "lastUsable":"10.144.15.254",
  "cidr":20
}

Následující příklad analyzuje řetězec CIDR IPv6:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v6info": {
      "type": "object",
      "value": "[parseCidr('fdad:3236:5555::/48')]"
    }
  }
}

Předchozí příklad vrátí následující objekt:

{
  "network":"fdad:3236:5555::",
  "netmask":"ffff:ffff:ffff::",
  "firstUsable":"fdad:3236:5555::",
  "lastUsable":"fdad:3236:5555:ffff:ffff:ffff:ffff:ffff",
  "cidr":48
}

cidrSubnet

cidrSubnet(network, newCIDR, subnetIndex)

Rozdělí zadaný rozsah IP adres v zápisu CIDR do podsítí s novou hodnotou CIDR a vrátí rozsah IP adres podsítě se zadaným indexem.

V Bicep použijte funkci cidrSubnet .

Parametry

Parametr Požaduje se Type Popis
síť Ano string Řetězec obsahující rozsah IP adres pro převod v zápisu CIDR
newCIDR Ano int Celé číslo představující CIDR, které se má použít k podsíti. Tato hodnota by měla být rovna nebo větší než hodnota CIDR v parametru network .
subnetIndex Ano int Index rozsahu IP adres požadované podsítě, který se má vrátit.

Vrácená hodnota

Řetězec rozsahu IP adres podsítě se zadaným indexem.

Příklady

Následující příklad vypočítá prvních pět rozsahů podsítě /24 ze zadaného /20:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v4subnets": {
      "type": "array",
      "copy": {
        "count": "[length(range(0, 5))]",
        "input": "[cidrSubnet('10.144.0.0/20', 24, range(0, 5)[copyIndex()])]"
      }
    }
  }
}

Předchozí příklad vrátí následující pole:

[
  "10.144.0.0/24",
  "10.144.1.0/24",
  "10.144.2.0/24",
  "10.144.3.0/24",
  "10.144.4.0/24"
]

Následující příklad vypočítá prvních pět rozsahů podsítě /52 ze zadaného /48:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v6subnets": {
      "type": "array",
      "copy": {
        "count": "[length(range(0, 5))]",
        "input": "[cidrSubnet('fdad:3236:5555::/48', 52, range(0, 5)[copyIndex()])]"
      }
    }
  }
}

Předchozí příklad vrátí následující pole:

[
  "fdad:3236:5555::/52"
  "fdad:3236:5555:1000::/52"
  "fdad:3236:5555:2000::/52"
  "fdad:3236:5555:3000::/52"
  "fdad:3236:5555:4000::/52"
]

cidrHost

cidrHost(network, hostIndex)

Vypočítá použitelnou IP adresu hostitele se zadaným indexem zadaného rozsahu IP adres v zápisu CIDR. Například v případě 192.168.1.0/24, že jsou vyhrazené IP adresy: 192.168.1.0 slouží jako adresa identifikátoru sítě, zatímco 192.168.1.255 funguje jako adresa všesměrového vysílání. Hostitelům, kterým se říká "použitelné" IP adresy, se dají přiřadit jenom IP adresy, od 192.168.1.1 kterých 192.168.1.254 se dá přiřadit. Takže, když je funkce předána hostIndex of 0, 192.168.1.1 je vrácena.

V Bicep použijte funkci cidrHost .

Parametry

Parametr Požaduje se Type Popis
síť Ano string Řetězec obsahující síť IP k převodu (musí být správný formát sítě).
hostIndex Ano int Index IP adresy hostitele, která se má vrátit.

Vrácená hodnota

Řetězec IP adresy.

Příklady

Následující příklad vypočítá prvních pět použitelných IP adres hostitele ze zadaného /24:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v4hosts": {
      "type": "array",
      "copy": {
        "count": "[length(range(0, 5))]",
        "input": "[cidrHost('10.144.3.0/24', range(0, 5)[copyIndex()])]"
      }
    }
  }
}

Předchozí příklad vrátí následující pole:

[
  "10.144.3.1"
  "10.144.3.2"
  "10.144.3.3"
  "10.144.3.4"
  "10.144.3.5"
]

Následující příklad vypočítá prvních pět použitelných IP adres hostitele ze zadaného /52:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v6hosts": {
      "type": "array",
      "copy": {
        "count": "[length(range(0, 5))]",
        "input": "[cidrHost('fdad:3236:5555:3000::/52', range(0, 5)[copyIndex()])]"
      }
    }
  }
}

Předchozí příklad vrátí následující pole:

[
  "fdad:3236:5555:3000::1"
  "fdad:3236:5555:3000::2"
  "fdad:3236:5555:3000::3"
  "fdad:3236:5555:3000::4"
  "fdad:3236:5555:3000::5"
]

Další kroky