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
先頭オクテットのビット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