Ipv6

From wikinotes
Revision as of 15:11, 1 April 2019 by Will (talk | contribs) (→‎ipv6-icmp =)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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


WARNING:

Not all ISPs DNS servers will use ipv6. Before testing if an ipv6 interface is available, make sure your configured nameserver can use ipv6.

You can confirm this using https://test-ipv6.com


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