Linux ip subnet mask-セグメント分析
【基本紹介】
ネットワークセグメントの分析は、2つのローカルドメインアドレスが相互接続できるかどうか、linuxプラットフォームのiptablesでipセグメントをブロックし、webサーバが特定のipセグメントへのアクセスを許可するなどを表示するのに役立ちます.
【基本概念】
IPセグメント
AクラスIPセグメント0.0.0.0~127.255.255.255
BクラスIPセグメント128.0.0.0から191.255.255.255
CクラスIPセグメント192.0.0から223.255.2555.255
サブネットマスク
デフォルトで割り当てられたサブネットマスクは、各セグメント255または0のみです.
Aクラスのデフォルトサブネットマスク255.0.0.0サブネットは最大1677万台以上のパソコンを収容できる
Bクラスのデフォルトサブネットマスク255.255.0.0サブネットは最大6万台のパソコンを収容できる
Cクラスのデフォルトサブネットマスク255.255.255.255.0サブネットは最大254台のコンピュータを収容できる
サブネットマスクをバイナリに切り替えると、すべてのサブネットマスクは連続する1と連続する0からなる(合計4セグメント、各セグメント8ビット、合計32ビット数).
255.0.0.0 11111111.00000000.00000000.00000000
255.255.0.0 11111111.11111111.00000000.00000000
255.255.255.0 11111111.11111111.11111111.00000000
ネットワーク識別子およびセグメント
同じセグメントでネットワークIDを同じにするには、ネットワークIDはどのように計算しますか?各種類のIPのネットワーク識別アルゴリズムはすべて異なっています.A類のものは、第1段のみです.B類は、第一、二段のみです.Cクラスは、第一、二、三段です.
アルゴリズムはIPとサブネットマスクのビット数ANDだけでよい.
AND方法:0及び1=0 0及び0=0 1及び1=1
例えば、And 192.168.0.1255.255.255.255.0は、まずバイナリに変換され、ANDは各ビット
IP 11000000.10101000.00000000.00000001
サブネットマスク11111.11111111.11111111111.11111.00000000
AND結果110000.10101000.00000000.0000000
10進数192.168.0.0に変換されます.これがネットワークIDです.
サブネットマスクは、IP ANDと
その結果、10進数(0.0.0.1)に変換され、
この0.0.0.1がホストIDです.同じセグメントにするには、ネットワークIDのようにする必要があります.
Mask
2進数ネットワーク識別子の右側の最初の1からの桁数を取得します.
IP 11000000.10101000.00000000.00000001
サブネットマスク11111.11111111.11111111111.11111.00000000
AND結果を出す
11000000.10101000.00000000.00000000
192.168.0.0/13
【判断シナリオ】
【参考】
http://www.cnblogs.com/henryhappier/archive/2010/01/25/1656174.html
http://www.techopedia.com/6/28587/internet/8-steps-to-understanding-ip-subnetting/5
http://wenku.baidu.com/link?url=pgr7H0BlaSZAWv459g8N0AmdunNP4easONKg_HC2s67SO-F9C_kcFzrpjX18bey-P8PMC3K-P4zpPyNO3OqLkX33np_PrkiyJ6rs4-dDf6y
ネットワークセグメントの分析は、2つのローカルドメインアドレスが相互接続できるかどうか、linuxプラットフォームのiptablesでipセグメントをブロックし、webサーバが特定のipセグメントへのアクセスを許可するなどを表示するのに役立ちます.
【基本概念】
IPセグメント
AクラスIPセグメント0.0.0.0~127.255.255.255
BクラスIPセグメント128.0.0.0から191.255.255.255
CクラスIPセグメント192.0.0から223.255.2555.255
サブネットマスク
デフォルトで割り当てられたサブネットマスクは、各セグメント255または0のみです.
Aクラスのデフォルトサブネットマスク255.0.0.0サブネットは最大1677万台以上のパソコンを収容できる
Bクラスのデフォルトサブネットマスク255.255.0.0サブネットは最大6万台のパソコンを収容できる
Cクラスのデフォルトサブネットマスク255.255.255.255.0サブネットは最大254台のコンピュータを収容できる
サブネットマスクをバイナリに切り替えると、すべてのサブネットマスクは連続する1と連続する0からなる(合計4セグメント、各セグメント8ビット、合計32ビット数).
255.0.0.0 11111111.00000000.00000000.00000000
255.255.0.0 11111111.11111111.00000000.00000000
255.255.255.0 11111111.11111111.11111111.00000000
ネットワーク識別子およびセグメント
同じセグメントでネットワークIDを同じにするには、ネットワークIDはどのように計算しますか?各種類のIPのネットワーク識別アルゴリズムはすべて異なっています.A類のものは、第1段のみです.B類は、第一、二段のみです.Cクラスは、第一、二、三段です.
アルゴリズムはIPとサブネットマスクのビット数ANDだけでよい.
AND方法:0及び1=0 0及び0=0 1及び1=1
例えば、And 192.168.0.1255.255.255.255.0は、まずバイナリに変換され、ANDは各ビット
IP 11000000.10101000.00000000.00000001
サブネットマスク11111.11111111.11111111111.11111.00000000
AND結果110000.10101000.00000000.0000000
10進数192.168.0.0に変換されます.これがネットワークIDです.
サブネットマスクは、IP ANDと
その結果、10進数(0.0.0.1)に変換され、
この0.0.0.1がホストIDです.同じセグメントにするには、ネットワークIDのようにする必要があります.
Mask
2進数ネットワーク識別子の右側の最初の1からの桁数を取得します.
IP 11000000.10101000.00000000.00000001
サブネットマスク11111.11111111.11111111111.11111.00000000
AND結果を出す
11000000.10101000.00000000.00000000
192.168.0.0/13
【判断シナリオ】
>>> from netaddr import IPAddress , IPNetwork
>>> print IPAddress('192.169.1.255') in IPNetwork('192.168.0.0/13')
True
>>> print IPAddress('192.169.255.255') in IPNetwork('192.168.0.0/13')
True
>>> print IPAddress('192.169.255.1') in IPNetwork('192.168.0.0/13')
True
【参考】
http://www.cnblogs.com/henryhappier/archive/2010/01/25/1656174.html
http://www.techopedia.com/6/28587/internet/8-steps-to-understanding-ip-subnetting/5
http://wenku.baidu.com/link?url=pgr7H0BlaSZAWv459g8N0AmdunNP4easONKg_HC2s67SO-F9C_kcFzrpjX18bey-P8PMC3K-P4zpPyNO3OqLkX33np_PrkiyJ6rs4-dDf6y