- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!サブネットマスクの換算表
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())
for i in IPL :
print (i)
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アドレスのローカル使用|macaddress]]
先頭オクテットのビット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