CIDR-functies voor Bicep
Classless Inter-Domain Routing (CIDR) is een methode voor het toewijzen van IP-adressen en routering van IP-pakketten (Internet Protocol). In dit artikel worden de Bicep-functies beschreven voor het werken met CIDR.
parseCidr
parseCidr(network)
Parseert een IP-adresbereik in CIDR-notatie om verschillende eigenschappen van het adresbereik op te halen.
Naamruimte: sys.
Parameters
Parameter | Vereist | Type | Description |
---|---|---|---|
network | Ja | tekenreeks | Tekenreeks in CIDR-notatie die een IP-adresbereik bevat dat moet worden geconverteerd. |
Retourwaarde
Een object dat verschillende eigenschappen van het adresbereik bevat.
Voorbeelden
In het volgende voorbeeld wordt een IPv4 CIDR-tekenreeks geparseerd:
output v4info object = parseCidr('10.144.0.0/20')
In het voorgaande voorbeeld wordt het volgende object geretourneerd:
{
"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
}
In het volgende voorbeeld wordt een IPv6 CIDR-tekenreeks geparseerd:
output v6info object = parseCidr('fdad:3236:5555::/48')
In het voorgaande voorbeeld wordt het volgende object geretourneerd:
{
"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)
Splitst het opgegeven IP-adresbereik in CIDR-notatie op in subnetten met een nieuwe CIDR-waarde en retourneert het IP-adresbereik van het subnet met de opgegeven index.
Naamruimte: sys.
Parameters
Parameter | Vereist | Type | Description |
---|---|---|---|
network | Ja | tekenreeks | Tekenreeks met een IP-adresbereik dat moet worden geconverteerd in CIDR-notatie. |
newCIDR | Ja | int | Een geheel getal dat de CIDR aangeeft die moet worden gebruikt voor het subnet. Deze waarde moet gelijk zijn aan of groter zijn dan de CIDR-waarde in de network parameter. |
subnetIndex | Ja | int | Index van het gewenste IP-adresbereik van het subnet dat moet worden geretourneerd. |
Retourwaarde
Een tekenreeks van het IP-adresbereik van het subnet met de opgegeven index.
Voorbeelden
In het volgende voorbeeld worden de eerste vijf /24-subnetten berekend van de opgegeven /20:
output v4subnets array = [for i in range(0, 5): cidrSubnet('10.144.0.0/20', 24, i)]
In het voorgaande voorbeeld wordt de volgende matrix geretourneerd:
[
"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"
]
In het volgende voorbeeld worden de eerste vijf /52-subnetten berekend van de opgegeven /48:
output v6subnets array = [for i in range(0, 5): cidrSubnet('fdad:3236:5555::/48', 52, i)]
In het voorgaande voorbeeld wordt de volgende matrix geretourneerd:
[
"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)
Berekent het bruikbare IP-adres van de host met de opgegeven index op het opgegeven IP-adresbereik in CIDR-notatie. In het geval van 192.168.1.0/24
bijvoorbeeld, zijn er gereserveerde IP-adressen: 192.168.1.0
fungeert als het netwerk-id-adres, terwijl 192.168.1.255
deze fungeert als het broadcast-adres. Alleen IP-adressen van 192.168.1.1
tot nu 192.168.1.254
kunnen worden toegewezen aan hosts, waarnaar we verwijzen als 'bruikbare' IP-adressen. Dus, wanneer de functie wordt doorgegeven een hostIndex van 0
, 192.168.1.1
wordt geretourneerd.
In Azure zijn er extra IP-adressen gereserveerd in elk subnet, waaronder de eerste vier en het laatste IP-adres, met in totaal vijf gereserveerde IP-adressen. In het geval van het IP-adresbereik 192.168.1.0/24
zijn bijvoorbeeld de volgende adressen gereserveerd:
192.168.1.0
: netwerkadres.192.168.1.1
: Gereserveerd door Azure voor de standaardgateway.192.168.1.2
, :192.168.1.3
Gereserveerd door Azure om de Azure DNS-IP-adressen toe te wijzen aan de VNet-ruimte.192.168.1.255
: Netwerkuitzendadres.
Naamruimte: sys.
Parameters
Parameter | Vereist | Type | Description |
---|---|---|---|
network | Ja | tekenreeks | Tekenreeks die een IP-netwerk bevat dat moet worden geconverteerd. De opgegeven tekenreeks moet de juiste netwerkindeling hebben. |
hostIndex | Ja | int | De index bepaalt het host-IP-adres dat moet worden geretourneerd. Als u de waarde 0 gebruikt, krijgt u het eerste bruikbare IP-adres voor een niet-Azure-netwerk. Als u echter gebruikt 3 , krijgt u het eerste bruikbare IP-adres voor een Azure-subnet. |
Retourwaarde
Een tekenreeks van het IP-adres.
Voorbeelden
In het volgende voorbeeld worden de eerste vijf bruikbare HOST-IP-adressen berekend van de opgegeven /24 op niet-Azure-netwerken:
output v4hosts array = [for i in range(0, 5): cidrHost('10.144.3.0/24', i)]
In het voorgaande voorbeeld wordt de volgende matrix geretourneerd:
[
"10.144.3.1"
"10.144.3.2"
"10.144.3.3"
"10.144.3.4"
"10.144.3.5"
]
In het volgende voorbeeld worden de eerste vijf bruikbare HOST-IP-adressen berekend van de opgegeven /52 op niet-Azure-netwerken:
output v6hosts array = [for i in range(0, 5): cidrHost('fdad:3236:5555:3000::/52', i)]
In het voorgaande voorbeeld wordt de volgende matrix geretourneerd:
[
"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"
]
Volgende stappen
- Zie De structuur en syntaxis van Bicep-bestanden begrijpen voor een beschrijving van de secties in een Bicep-bestand.