Ipv6

From wikinotes

ipv6 was created to address a need for a larger address space.

Test ipv6 routing support

Not all ISPs DNS servers support ipv6 routing.

Test your network's ability to reach IPV6 using one of google's DNS servers.
See wikipedia for addresses.

nc -6 -vz 2001:4860:4860::8888 53

Usage

ipv6 uses the same default ports (80 for http, 443 for https).

::1                                          # ipv6 loopback address
w3m '[2604:a660:bdg:f0::abc:d001]/api/test'  # ipv6-addr in URI must be within brackets
ip6tables -L                                 # iptables for ipv6
ping -6 domain.com                           # ping using ipv6 only
ping6 '2604:a660:bdg:f0::abc:d001'           # another variation of ipv6 ping

Abbreviation

IPV6 addresses may be abbreviated. Non-Abbreviated IPV6 addresses may not be routable (AWS's route53 at least is unable to route them).

1. one or more leading zeros from any group are removed

FFFF.000F.FFFF.FFFF:00AB:FFFF.FFFF.FFFF #-> FFFF.F.FFFF.FFFF:AB:FFFF.FFFF.FFFF

2. consecutive hextets consisting fully of zeros are replaced with a ::

FFFF.0000.0000.FFFF:FFFF:FFFF.FFFF.FFFF #-> FFFF::FFFF:FFFF:FFFF.FFFF.FFFF
FFFF.0000.0000.0000:0000:FFFF.FFFF.FFFF #-> FFFF::FFFF.FFFF.FFFF
0000.0000.0000.0000:0000:0000.0000.0001 #-> ::1

You can use python's ipaddress module to facilitate abbreviating ip addresses.

Tips/Traps

ipv6-icmp

firewalls can be configured to accept icmp packets over ipv6 explicitly.

ip6tables -A OUTPUT -p ipv6-icmp -j ACCEPT    # allow ipv6-icmp output
ip6tables -A INPUT  -p ipv6-icmp -j ACCEPT    # allow ipv6-icmp input