Tools to manipulate IPv6 addresses : sipcalc
Install in debian 7.x :
apt-get install sipcalc
Usage :
sipcalc -h sipcalc 1.1.5 Usage: sipcalc [OPTIONS]... <[ADDRESS]... [INTERFACE]... | [-]> Global options: -a, --all All possible information. -d, --resolve Enable name resolution. -h, --help Display this help. -I, --addr-int=INT Added an interface. -n, --subnets=NUM Display NUM extra subnets (starting from the current subnet). Will display all subnets in the current /24 if NUM is 0. -u, --split-verbose Verbose split. -v, --version Version information. -4, --addr-ipv4=ADDR Add an ipv4 address. -6, --addr-ipv6=ADDR Add an ipv6 address. IPv4 options: -b, --cidr-bitmap CIDR bitmap. -c, --classfull-addr Classfull address information. -i, --cidr-addr CIDR address information. (default) -s, --v4split=MASK Split the current network into subnets of MASK size. -w, --wildcard Display information for a wildcard (inverse mask). -x, --classfull-bitmap Classfull bitmap. IPv6 options: -e, --v4inv6 IPv4 compatible IPv6 information. -r, --v6rev IPv6 reverse DNS output. -S, --v6split=MASK Split the current network into subnets of MASK size. -t, --v6-standard Standard IPv6. (default) Address must be in the "standard" dotted quad format. Netmask can be given in three different ways: - Number of bits [/nn] - Dotted quad [nnn.nnn.nnn.nnn] - Hex [0xnnnnnnnn | nnnnnnnn] Interface must be a valid network interface on the system. If this options is used an attempt will be made to gain the address and netmask from the specified interface. Replacing address/interface with '-' will use stdin for reading further arguments.
Example :
#sipcalc 2001:db8:: -[ipv6 : 2001:db8::] - 0 [IPV6 INFO] Expanded Address - 2001:0db8:0000:0000:0000:0000:0000:0000 Compressed address - 2001:db8:: Subnet prefix (masked) - 2001:db8:0:0:0:0:0:0/128 Address ID (masked) - 0:0:0:0:0:0:0:0/128 Prefix address - ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff Prefix length - 128 Address type - Aggregatable Global Unicast Addresses Network range - 2001:0db8:0000:0000:0000:0000:0000:0000 - 2001:0db8:0000:0000:0000:0000:0000:0000
Very nice for IPv6 reverse :
# sipcalc -r 2001:db8::1 -[ipv6 : 2001:db8::1] - 0 [IPV6 DNS] Reverse DNS (ip6.arpa) - 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.
Very useful if you want subnet for point-to-point subnet /126 :
#sipcalc -S 126 2001:db8:0:1::/64 -[ipv6 : 2001:db8:0:1::/64] - 0 [Split network] Network - 2001:0db8:0000:0001:0000:0000:0000:0000 - 2001:0db8:0000:0001:0000:0000:0000:0003 Network - 2001:0db8:0000:0001:0000:0000:0000:0004 - 2001:0db8:0000:0001:0000:0000:0000:0007 Network - 2001:0db8:0000:0001:0000:0000:0000:0008 - 2001:0db8:0000:0001:0000:0000:0000:000b Network - 2001:0db8:0000:0001:0000:0000:0000:000c - 2001:0db8:0000:0001:0000:0000:0000:000f Network - 2001:0db8:0000:0001:0000:0000:0000:0010 - 2001:0db8:0000:0001:0000:0000:0000:0013 ...