Bicep için CIDR işlevleri

Sınıfsız Inter-Domain Yönlendirme (CIDR), IP adreslerini ayırmanın ve İnternet Protokolü (IP) paketlerini yönlendirmenin bir yöntemidir. Bu makalede CIDR ile çalışmaya yönelik Bicep işlevleri açıklanmaktadır.

parseCidr

parseCidr(network)

Adres aralığının çeşitli özelliklerini almak için bir IP adresi aralığını CIDR gösteriminde ayrıştırıyor.

Ad alanı: sys.

Parametreler

Parametre Gerekli Tür Açıklama
network Yes string Dönüştürülecek IP adresi aralığını içeren CIDR gösterimindeki dize.

Döndürülen değer

Adres aralığının çeşitli özelliklerini içeren bir nesne.

Örnekler

Aşağıdaki örnek bir IPv4 CIDR dizesini ayrıştırmaktadır:

output v4info object = parseCidr('10.144.0.0/20')

Yukarıdaki örnek aşağıdaki nesneyi döndürür:

{
  "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
}

Aşağıdaki örnek bir IPv6 CIDR dizesini ayrıştırmaktadır:

output v6info object = parseCidr('fdad:3236:5555::/48')

Yukarıdaki örnek aşağıdaki nesneyi döndürür:

{
  "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)

CIDR gösteriminde belirtilen IP adresi aralığını yeni bir CIDR değeri olan alt ağlara böler ve belirtilen dizine sahip alt ağın IP adresi aralığını döndürür.

Ad alanı: sys.

Parametreler

Parametre Gerekli Tür Açıklama
network Yes string CIDR gösteriminde dönüştürülecek IP adresi aralığını içeren dize.
newCIDR Yes int Alt ağ için kullanılacak CIDR'yi temsil eden bir tamsayı. Bu değer, parametresindeki CIDR değerinden network eşit veya daha büyük olmalıdır.
subnetIndex Yes int döndürülecek istenen alt ağ IP adresi aralığının dizini.

Döndürülen değer

Belirtilen dizine sahip alt ağın IP adresi aralığının dizesi.

Örnekler

Aşağıdaki örnek, belirtilen /20 aralığındaki ilk beş /24 alt ağ aralığını hesaplar:

output v4subnets array = [for i in range(0, 5): cidrSubnet('10.144.0.0/20', 24, i)]

Yukarıdaki örnek aşağıdaki diziyi döndürür:

[
  "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"
]

Aşağıdaki örnek, belirtilen /48 aralığındaki ilk beş /52 alt ağ aralığını hesaplar:

output v6subnets array = [for i in range(0, 5): cidrSubnet('fdad:3236:5555::/48', 52, i)]

Yukarıdaki örnek aşağıdaki diziyi döndürür:

[
  "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)

CIDR gösteriminde belirtilen IP adresi aralığında belirtilen dizine sahip konağın kullanılabilir IP adresini hesaplar. Örneğin, durumunda 192.168.1.0/24ayrılmış IP adresleri vardır: 192.168.1.0 ağ tanımlayıcı adresi olarak görev yaparken 192.168.1.255 yayın adresi olarak işlev görür. "Kullanılabilir" IP adresleri olarak adlandırdığımız konaklara yalnızca ile arasında değişen 192.168.1.1192.168.1.254 IP adresleri atanabilir. Bu nedenle, işleve geçirildiğinde bir hostIndex değeri 0192.168.1.1 döndürülür.

Azure'da her alt ağda ayrılmış ek IP adresleri vardır ve bunlar ilk dört ve son IP adresidir ve toplam beş ayrılmış IP adresi içerir. Örneğin, IP adresi aralığı 192.168.1.0/24söz konusu olduğunda, aşağıdaki adresler ayrılmıştır:

  • 192.168.1.0 : Ağ adresi.
  • 192.168.1.1 : Varsayılan ağ geçidi için Azure tarafından ayrılmıştır.
  • 192.168.1.2, 192.168.1.3 : Azure DNS IP'lerini sanal ağ alanına eşlemek için Azure tarafından ayrılmıştır.
  • 192.168.1.255 : Ağ yayın adresi.

Ad alanı: sys.

Parametreler

Parametre Gerekli Tür Açıklama
network Yes string Dönüştürülecek BIR IP ağı içeren dize. Sağlanan dize doğru ağ biçiminde olmalıdır.
hostIndex Yes int Dizin, döndürülecek ana bilgisayar IP adresini belirler. değerini 0kullanırsanız, Azure olmayan bir ağ için ilk kullanılabilir IP adresini verir. Ancak kullanırsanız 3, bir Azure alt ağı için ilk kullanılabilir IP adresini sağlar.

Döndürülen değer

IP adresinin dizesi.

Örnekler

Aşağıdaki örnek, Azure dışı ağlarda belirtilen /24'ten ilk beş kullanılabilir ana bilgisayar IP adresini hesaplar:

output v4hosts array = [for i in range(0, 5): cidrHost('10.144.3.0/24', i)]

Yukarıdaki örnek aşağıdaki diziyi döndürür:

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

Aşağıdaki örnek, Azure dışı ağlarda belirtilen /52'den ilk beş kullanılabilir ana bilgisayar IP adresini hesaplar:

output v6hosts array = [for i in range(0, 5): cidrHost('fdad:3236:5555:3000::/52', i)]

Yukarıdaki örnek aşağıdaki diziyi döndürür:

[
  "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"
]

Sonraki adımlar