img

Ping IPv6 IP Address With ping6 Command

September 8, 2019

I‘m unable to ping an IPv6 address. I’m getting error:

ping 2001:db8::1428:57ab
ping: unknown host 2001:db8::1428:57ab

My network and Linux based operating system is configured for IPv6 IP address. How do I ping an IPv6 address on Linux?

Regular ping command only works with IPv4 address. Use ping6 command to send ICMPv6 ECHO_REQUEST packets to network hosts from a host or gateway. This command uses the ICMPv6 protocol’s mandatory ICMP6_ECHO_REQUEST datagram to elicit an ICMP6_ECHO_REPLY from a host or gateway. ICMP6_ECHO_REQUEST datagrams (pings) have an IPv6 header, and ICMPv6 header formatted as documented in RFC2463. The ping6 command available on Linux, BSD, Apple OS X and other Unix-like operating systems. MS-Widows user can use ping -6 command as described here.

ping to IPv6 host example

Type the command as follows:
$ ping6 localhost
$ ping6 host.domain.com
$ ping6 IPv6-address
$ ping6 2001:4860:b002::68

The best way is to ping global website such as ipv6.google.com, enter:
$ ping6 ipv6.google.com
Sample outputs:

ping6 ipv6.google.com
PING ipv6.google.com(2001:4860:b002::68) 56 data bytes
64 bytes from 2001:4860:b002::68: icmp_seq=0 ttl=59 time=58.4 ms
64 bytes from 2001:4860:b002::68: icmp_seq=1 ttl=59 time=56.4 ms
64 bytes from 2001:4860:b002::68: icmp_seq=2 ttl=59 time=62.1 ms
64 bytes from 2001:4860:b002::68: icmp_seq=3 ttl=59 time=56.8 ms
64 bytes from 2001:4860:b002::68: icmp_seq=4 ttl=59 time=56.5 ms
64 bytes from 2001:4860:b002::68: icmp_seq=5 ttl=59 time=59.5 ms

--- ipv6.google.com ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5002ms
rtt min/avg/max/mdev = 56.443/58.329/62.150/2.045 ms, pipe 2

ping by an IPv6 IP address

First, use the host command to find out IPv6 address for sxi.io, type:
$ host -t AAAA sxi.io
Sample outputs:

sxi.io has IPv6 address 2607:f0d0:1002:51::4

Type the following command:
$ ping6 2607:f0d0:1002:51::4
Sample outputs:

PING 2607:f0d0:1002:51::4(2607:f0d0:1002:51::4) 56 data bytes
64 bytes from 2607:f0d0:1002:51::4: icmp_seq=1 ttl=64 time=0.056 ms
64 bytes from 2607:f0d0:1002:51::4: icmp_seq=2 ttl=64 time=0.027 ms
64 bytes from 2607:f0d0:1002:51::4: icmp_seq=3 ttl=64 time=0.021 ms
64 bytes from 2607:f0d0:1002:51::4: icmp_seq=4 ttl=64 time=0.023 ms
^C
--- 2607:f0d0:1002:51::4 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3831ms
rtt min/avg/max/mdev = 0.021/0.031/0.056/0.015 ms

One more example:
$ host -t AAAA www.google.com
$ ping6 -c 4 2607:f8b0:4000:805::1010

Sample outputs:

Fig.01: ping6 command in action

How do I confirm that IPv6 is configured or working on my Linux based system?

Type the following commands (see How To Test Linux Operating System for IPv6 Networking Support for more info):

[ -f /proc/net/if_inet6 ] && echo 'IPv6 ready system!' || echo 'No IPv6 support found! Compile the kernel!!'

[ -f /proc/net/if_inet6 ] && echo ‘IPv6 ready system!’ || echo ‘No IPv6 support found! Compile the kernel!!’

And

lsmod | grep -qw ipv6 && echo "IPv6 kernel driver loaded and configured." || echo "IPv6 not configured and/or driver loaded on the system."

lsmod | grep -qw ipv6 && echo "IPv6 kernel driver loaded and configured." || echo "IPv6 not configured and/or driver loaded on the system."

Sample outputs:

Fig.02: Verifying Linux IPv6 support.

A note about MS-Windows XP/7/8/server users

You can test an IPv6 connection by using the ping command. At a command prompt, type:
ping -6 sxi.io
ping -6 2607:f0d0:1002:51::4

References

Read ping6 man page for more information:
$ man 8 ping6

Posted by: SXI ADMIN

The author is the creator of SXI LLC and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Article Tags:
Article Categories:
How To

Comments are closed.