この質問は最近インタビューで尋ねられました。与えられたサブネットをあらかじめ定義された数の小さなサブネットに細分するためのbashスクリプトを書く
質問:所定のサブネットをあらかじめ定義された数の小さなサブネットに細分するためのbashスクリプトを作成します。
分割後のIPアドレスを無駄にするべきではありません。つまり、分割したサブネットを累積して分割したサブネットを構成する必要があります。
すべてのサブネットには、3つのIPアドレスが予約されており、ホストでは使用できません(ネットワーク、ブロードキャスト、ゲートウェイ)。
ネットワーク/ブロードキャストアドレス、ホスト数を表示し、ゲートウェイを割り当てます。ゲートウェイは、分割されたサブネットで最初に使用可能なIPである必要があります。例:
INPUT:./subnetter.sh 192.168.0.0/24 3
OUTPUT:
subnet=192.168.0.0/25 network=192.168.0.0 broadcast=192.168.0.127 gateway=192.168.0.1 hosts=125
subnet=192.168.0.128/26 network=192.168.0.128 broadcast=192.168.0.191 gateway=192.168.0.129 hosts=61
subnet=192.168.0.192/26 network=192.168.0.192 broadcast=192.168.0.255 gateway=192.168.0.193 hosts=61
INPUT:./subnetter.sh 192.168.0.0/24 4
OUTPUT:
subnet=192.168.0.0/26 network=192.168.0.0 broadcast=192.168.0.63 gateway=192.168.0.1 hosts=61
subnet=192.168.0.64/26 network=192.168.0.64 broadcast=192.168.0.127 gateway=192.168.0.65 hosts=61
subnet=192.168.0.128/26 network=192.168.0.128 broadcast=192.168.0.191 gateway=192.168.0.129 hosts=61
subnet=192.168.0.192/26 network=192.168.0.192 broadcast=192.168.0.255 gateway=192.168.0.193 hosts=61
INPUT:./subnetter.sh 10.55.10.64/28 2
OUTPUT:すべての
subnet=10.55.10.64/29 network=10.55.10.64 broadcast=10.55.10.71 gateway=10.55.10.65 hosts=5
subnet=10.55.10.72/29 network=10.55.10.72 broadcast=10.55.10.79 gateway=10.55.10.73 hosts=5
まず、私はサブネットを分割するために使用されているもののロジックを分析しようとしています。 第2に、私は出力を得るためにipcalc
コマンドを使用しようとしていますが、運はありません。
おかげで
は、SOコードの書き込みはありませんが、SO、あなたのコーディングの努力を表示してくださいへようこそサービス。 – Cyrus
私はこの問題についてお手伝いしますが、 '192.168.0.0/24 3 'の最初の出力には同意しません。しかし、最後の2つの出力は良いです – RomanPerekhrest
@RomanPerekhrest私は質問への答えが比較的簡単な分裂征服の再帰アルゴリズムであることを意図していると思われます:入力を2つの部分に分割し、さらに細分化する。 a/24の3つの部分への最も均等な分割は、85,85、および86のアドレスからなり、最初の85のアドレスは/ 26、a/28、a/30およびa/32で記述されます。 – chepner