トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

subnet-mask

 サブネットマスクの換算表

local ip(private ip)
CIDR サブネットマスク IP数(利用可能) 開始値
クラスA 10.0.0.0 - 10.255.255.255
/8 255.0.0.0 16777216
/9 255.128.0.0 8388608
/10 255.192.0.0 4194304
/11 255.224.0.0 2097152
/12 255.240.0.0 1048576
/13 255.248.0.0 524288
/14 255.252.0.0 262144
/15 255.254.0.0 131072
CGN 100.64.0.0/10
クラスB 172.16.0.0 - 172.31.255.255
/16 255.255.0.0 65536
/17 255.255.128.0 32768 (128C)
/18 255.255.192.0 16384 (64C)
/19 255.255.224.0 8192 (32C)
/20 255.255.240.0 4096 (16C)
/21 255.255.248.0 2048 (8C)
/22 255.255.252.0 1024 (4C)
/23 255.255.254.0 512 (2C)
クラスC 192.168.0.0 - 192.168.255.255
/24 255.255.255.0 256 0
/25 255.255.255.128 128 128
/26 255.255.255.192 64 64 ↑ 192
/27 255.255.255.224 32 32 ↑ 96 ↑ 160 ↑224
/28 255.255.255.240 16 (14) 16 ↑ 48 ↑ 80 ↑ 112 ↑ 144 ↑ 176 ↑ 208 ↑ 240
/29 255.255.255.248 8 (6) 8 ↑ 24 ↑ 40 ↑ 56 ↑ 72 ↑ 88 ↑ 104 ↑ 120 ↑ 136 ↑ 152 ↑ 168 ↑ 184 ↑ 200 ↑ 216 ↑ 232 ↑ 248 ( 8で割り切れる )
/30 255.255.255.252 4 (2) 4で割り切れる数値
/31 255.255.255.254 2 偶数 ( Cクラスでは使えない )
/32 255.255.255.255 1 (端末のみでの使用)

使用可能なローカルIP(プライベートIP)の一覧

#   10.0.0.0    / 255.0.0.0   = 10.0.0.0     - 10.255.255.255
#   172.16.0.0  / 255.240.0.0 = 172.16.0.0   - 172.31.255.255
#   192.168.0.0 / 255.255.0.0 = 192.168.0.0  - 192.168.255.255

ネットマスクとホストIPアドレスの確認方法

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# https://docs.python.org/ja/3.6/library/ipaddress.html
import ipaddress 

ipnets = "192.168.2.8/29"

print ("check network" + ipnets )

try :
   #### networks = ipaddress.IPv4Network(ipnets)
   networks = ipaddress.ip_network(ipnets,strict=False)
except ValueError:
   print('address/netmask is invalid for IPv4:', ipnets )
   exit()

print ("Subnet_mask" + str(networks.with_netmask ) )
print ( "number of address: " + str ( networks.num_addresses ) )

print ("hosts ip address")

IPL = list(networks.hosts())

if len(IPL) < 12 :
  for i in IPL :
      print (i)
else :
  for i in range(5) :
      print (IPL[i]) 
  print ("...")
  for i in range(5) :
      print (IPL[-i])

結果

> python3.7 ./get_netmasks.py 
check network192.168.2.0/29
Subnet_mask
192.168.2.0/255.255.255.248
hosts ip address
192.168.2.1
192.168.2.2
192.168.2.3
192.168.2.4
192.168.2.5
192.168.2.6

MACアドレスのローカル使用

先頭オクテットのビット0x02がグローバルアドレスとローカルアドレスを識別するビットで、GLビットと呼ばれる。OFFであればグローバルアドレス、ONであればローカルアドレスであることを示している。

また、先頭オクテットのビット0x01がユニキャストとマルチキャストを識別するビットで、IGビットと呼ばれる。
02:xx:xx:xx:xx:xx

1オクテット目が x2/x6/xA/xE が プライベート・MACアドレス
x2:xx:xx:xx:xx:xx
x6:xx:xx:xx:xx:xx
xA:xx:xx:xx:xx:xx
xE:xx:xx:xx:xx:xx

https://en.wikipedia.org/wiki/MAC_address#Address_details

 IPアドレスの国名の一覧

http://ftp.apnic.net/stats/apnic/delegated-apnic-latest

#!/usr/bin/perl
while (<STDIN>){
   next unless /^apnic\|JP\|ipv4\|(.+)\|(.+)\|\d+\|allocated/;
   print "$1/".(32-log($2)/log(2))."\n";
}
割当のリスト
##  wget http://ftp.apnic.net/stats/iana/delegated-iana-latest
国名のリスト
##  wget http://ftp.apnic.net/stats/apnic/delegated-apnic-latest
##  wget http://ftp.apnic.net/stats/ripe-ncc/delegated-ripencc-latest
##  wget http://ftp.apnic.net/stats/afrinic/delegated-afrinic-latest
##  wget http://ftp.apnic.net/stats/arin/delegated-arin-extended-latest
##  wget http://ftp.apnic.net/stats/lacnic/delegated-lacnic-latest
CVS データ
https://dev.maxmind.com/geoip/geoip2/geolite2/

AS番号( private as )

3.2 プライベートAS番号の利用 (JPNIC)
 有限の資源空間であるAS番号の中にはICANN によって予約されている空間があります。
そのうち 64512(0.64512)〜65534(0.65534)の範囲の AS番号はプライベートASとして使用されます。
 プライベートAS番号は、自AS外に、 AS_PATH属性にプライベートAS番号が付加されたまま経路情報を流してはいけません。
プライベートAS番号が利用されるのは、 インターネットに接続されない実験網などの場合、 BGPコンフェデレーションなど自律ネットワークの内部で利用される場合などが考えられます。
いずれにしても、 内部的に利用されたプライベートAS番号を AS_PATH属性に含んだままインターネットに広告してはいけません。 

キャリアグレードNAT (Carrier Grade NAT)

ラージスケールNAT(Large Scale Network Address Translator、LSN)
100.64.0.0/10

https://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%AA%E3%82%A2%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89NAT