Testing Connections
Linux
On Linux, log into your instance and execute the following command:
$ ping6 2001:4860:4860::8888
PING 2001:4860:4860::8888(2001:4860:4860::8888) 56 data bytes
64 bytes from 2001:4860:4860::8888: icmp_seq=1 ttl=51 time=4.60 ms
64 bytes from 2001:4860:4860::8888: icmp_seq=2 ttl=51 time=4.08 ms
64 bytes from 2001:4860:4860::8888: icmp_seq=3 ttl=51 time=4.13 ms
64 bytes from 2001:4860:4860::8888: icmp_seq=4 ttl=51 time=4.12 ms
^C
--- 2001:4860:4860::8888 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 4.085/4.237/4.607/0.214 ms
If you get an error, check if the IPv6 address is correctly assigned on the first interface:
$ ip -6 a l dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 2a04:c43:c00:12f:491:58ff:fe00:79/64 scope global mngtmpaddr dynamic
valid_lft 86360sec preferred_lft 14360sec
inet6 fe80::480:58ff:fe00:79/64 scope link
valid_lft forever preferred_lft forever
In addition to the fe80::
address prefix, you should get an address starting with 2a04::
. If you do not have the fe80::
address prefix, IPv6 is disabled on your system. You can enable it with:
$ sysctl -w net.ipv6.conf.all.disable_ipv6=0`
If you do not have the 2a04::
address prefix, the auto-configuration mechanism failed. This might be because of a locally configured firewall, or because IPv6 auto-configuration has been disabled. You can enable IPv6 auto-configuration with:
$ sysctl net.ipv6.conf.eth0.autoconf=1
If the addresses are present, check if:
- you do not have a local firewall (check
ip6tables-save
), - you are not using egress rules in your security groups, and
- you do not use privacy extensions (check
sysctl net.ipv6.conf.eth0.use_tempaddr
, it should be 0).
Windows
On Windows, you need to disable privacy extensions. You can disable privacy extensions by issuing the following commands in an administrative PowerShell session:
PS> Set-NetIPv6Protocol -RandomizeIdentifiers Disabled
PS> Set-NetIPv6Protocol -UseTemporaryAddresses Disabled
Then, you can test with ping6
:
PS> ping6 2001:4860:4860::8888
Pinging 2001:4860:4860::8888 with 32 bytes of data:
Reply from 2001:4860:4860::8888: time<1ms
Reply from 2001:4860:4860::8888: time<1ms
Reply from 2001:4860:4860::8888: time=1ms
Reply from 2001:4860:4860::8888: time=1ms
Ping statistics for 2001:4860:4860::8888:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 1ms, Average = 0ms
If this does not work, use ipconfig /all
to check if you have an IPv6 address:
PS> ipconfig /all
[…]
Ethernet adapter Ethernet:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Red Hat VirtIO Ethernet Adapter
Physical Address. . . . . . . . . : 06-6B-EA-00-00-36
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IPv6 Address. . . . . . . . . . . : 2a04:c46:c00:12f:46b:eaff:fe00:36(Preferred)
Link-local IPv6 Address . . . . . : fe80::46b:eaff:fe00:36%5(Preferred)
IPv4 Address. . . . . . . . . . . : 89.145.160.49(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.252.0
Lease Obtained. . . . . . . . . . : mardi, 17 avril 2018 14:10:14
Lease Expires . . . . . . . . . . : vendredi, 24 mai 2154 20:45:03
Default Gateway . . . . . . . . . : fe80::fc6b:eaff:fe00:36%5
89.145.160.1
DHCP Server . . . . . . . . . . . : 89.145.160.1
DHCPv6 IAID . . . . . . . . . . . : 55727104
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-22-67-9C-42-06-6B-EA-00-00-36
DNS Servers . . . . . . . . . . . : 89.145.160.136
89.145.161.109
185.150.8.225
NetBIOS over Tcpip. . . . . . . . : Enabled
Also check if you got a default route:
PS> route print ::/0
[…]
IPv6 Route Table
===========================================================================
Active Routes:
If Metric Network Destination Gateway
5 271 ::/0 fe80::fc6b:eaff:fe00:36
===========================================================================
Persistent Routes:
None
OpenBSD
On OpenBSD, you need to disable Semantically Opaque Interface Identifiers and privacy extensions. Add the following lines in /etc/hostname.vio0
:
-soii
-autoconfprivacy
As of OpenBSD version 6.9 autoconfprivacy
option has been deprecated and replaced by temporary
. Make sure you specify inet6 autoconf
options in /etc/hostname.vio0
in a single line:
$ inet6 autoconf -soii -temporary
Then, use sh /etc/netstart vio0
to reload the configuration. You can test if it works correctly with ping6
:
$ ping6 2001:4860:4860::8888
PING 2001:4860:4860::8888 (2001:4860:4860::8888): 56 data bytes
64 bytes from 2001:4860:4860::8888: icmp_seq=0 hlim=61 time=1.296 ms
64 bytes from 2001:4860:4860::8888: icmp_seq=1 hlim=61 time=1.294 ms
64 bytes from 2001:4860:4860::8888: icmp_seq=2 hlim=61 time=1.218 ms
64 bytes from 2001:4860:4860::8888: icmp_seq=3 hlim=61 time=1.171 ms
64 bytes from 2001:4860:4860::8888: icmp_seq=4 hlim=61 time=1.345 ms
64 bytes from 2001:4860:4860::8888: icmp_seq=5 hlim=61 time=1.117 ms
^C
--- 2001:4860:4860::8888 ping statistics ---
6 packets transmitted, 6 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.117/1.240/1.345/0.079 ms
If this does not work, check that you got an IPv6 with ifconfig
:
$ ifconfig vio0
vio0: flags=648843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,INET6_NOPRIVACY,AUTOCONF6,INET6_NOSOII> mtu 1500
lladdr 06:6b:ea:00:00:36
index 1 priority 0 llprio 3
groups: egress
media: Ethernet autoselect
status: active
inet 89.145.160.49 netmask 0xfffffc00 broadcast 89.145.163.255
inet6 fe80::46b:eaff:fe00:36%vio0 prefixlen 64 scopeid 0x1
inet6 2a04:c46:c00:12f:46b:eaff:fe00:36 prefixlen 64 autoconf pltime 14350 vltime 86350
Also, check if you got the default gateway:
$ route -n show | grep default | tail -1
default fe80::fc6b:eaff:fe00:36%vio0 UGS 0 3 - 56 vio0
Fedora CoreOS
On Fedora CoreOS (FCOS), Network manager default configuration is set to stable-privacy
. Eui64
mode is required to get IPv6 operational. It can be switched using the following command:
$ nmcli connection modify 'Wired connection 1' ipv6.addr-gen-mode default-or-eui64
A reboot is required for the change to take effect.