2017-04-20 7 views
-1

私はCIDRブロックのアドレス範囲を持つ紺碧の仮想ネットワークを作成したというシナリオを持っています。 10.0.0.0/24の場合、同様のCIDRブロック内のアドレス範囲を有するデフォルトのサブネットを作成する必要がある。 10.1.0.0/16。私は、サブネットアドレス範囲が仮想ネットワークアドレス範囲にあるべきであることを検証する必要があります。つまり、10.1.0.0/16が10.0.0.0/24の範囲にあるかどうかを確認する必要があるのですか?vnetアドレス範囲の下の検証サブネットアドレス範囲#

私はインターネット上で検索しますが、CIDRブロックの下でのみIPアドレスの検証を行いますが、仮想ネットワークとサブネットを作成中にazureポータルで行われた検証のように、CIDRブロックが他のCIDRブロックの範囲内にあることを検証します。どんな助けもありがとう。おかげ

+0

これまでに何を試しましたか?あなたのコードのどの部分にエラーがありますか? – astaykov

+0

実際に私はcidr範囲の下でcidr範囲を検証するコードを見つけませんでした。私が見つけたコードそれはCIDRの範囲の下でCIDRの範囲の下のCIDRの範囲ではなく、IPだけを検証します。 –

答えて

0

しかし、私はしたいが、CIDRブロックは、CIDR範囲比較のために

を仮想ネットワークとサブネットを作成しながら、紺碧のポータル上で行う検証のような他のCIDRブロックの下の範囲である検証することですが、私は仮定しました次のようにIPNetworkからIPNetwork.Contains方法を活用することができます:

IPNetwork addressSpaceRange = IPNetwork.Parse("172.20.0.0/24"); 
IPNetwork subnetAddressRange = IPNetwork.Parse("172.20.0.0/25"); 

Console.WriteLine($"Address space [{addressSpaceRange.ToString()}]:"); 
Console.WriteLine($"FirstUsable address:{addressSpaceRange.FirstUsable}"); 
Console.WriteLine($"LastUsable address:{addressSpaceRange.LastUsable}\r\n"); 

Console.WriteLine($"Subnet address range [{subnetAddressRange.ToString()}]:"); 
Console.WriteLine($"FirstUsable address:{subnetAddressRange.FirstUsable}"); 
Console.WriteLine($"LastUsable address:{subnetAddressRange.LastUsable}\r\n"); 

Console.WriteLine("addressSpaceRange contains subnetAddressRange:" + IPNetwork.Contains(addressSpaceRange, subnetAddressRange)); 

出力

enter image description here

enter image description here

enter image description here

また、私のテストごとに、この方法は、唯一のサブネットアドレス範囲がアドレス空間に含まれているかどうかを確認し、私は検証がサブネットアドレスとアドレスのチェックと仮定Azure側で処理されます。

+0

ありがとうブルースそれは動作します –