Well, I still have not figured it out. At present IPv6 is working, but only on the private network.
I start the FCOS libvirt with:
#!/bin/bash
# make a local vm from coreos image
set -eu
CONFIG_FILE_NAME=my
# absolute path needed
IMAGE="$HOME/.local/share/libvirt/images/fedora-coreos-33.20210201.3.0-qemu.x86_64.qcow2"
VM_NAME="fcos-33"
VCPUS="4"
RAM_MB="8192"
DISK_GB="20"
STREAM="stable"
fcct -p -s -o "${CONFIG_FILE_NAME}.ign" "${CONFIG_FILE_NAME}.fcc" || exit -1
# absolute path needed
IGNITION_CONFIG=`readlink -f "${CONFIG_FILE_NAME}.ign"`
virt-install --connect="qemu:///system" --name="${VM_NAME}" --vcpus="${VCPUS}" --memory="${RAM_MB}" \
--os-variant="fedora-coreos-$STREAM" --import --graphics=none \
--disk="size=${DISK_GB},backing_store=${IMAGE}" \
--qemu-commandline="-fw_cfg name=opt/com.coreos/config,file=${IGNITION_CONFIG}" \
--network network=default
I’m using the virt default network (that is including ipv6 support):
$ sudo virsh net-dumpxml default
<network connections='1'>
<name>default</name>
<uuid>041ae9e3-1a0d-4299-b0ab-ef382b525f09</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:01:65:9a'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
<ip family='ipv6' address='fd0f:5c5b:f011:d0fb::1' prefix='64'>
<dhcp>
<range start='fd0f:5c5b:f011:d0fb::100' end='fd0f:5c5b:f011:d0fb::1ff'/>
</dhcp>
</ip>
</network>
The relevant part of my.fcc
looks like this:
storage:
files:
- path: /etc/NetworkManager/system-connections/enp1s0.nmconnection
mode: 0600
contents:
inline: |
[connection]
id=enp1s0
type=ethernet
interface-name=enp1s0
[ipv4]
dns-search=
method=auto
[ipv6]
dns=fd00::3681:c4ff:fec9:6d8b
addr-gen-mode=eui64
address1=<public-ipv6>
address2=fe80::4049:b055:c122:abcd
method=auto
From inside the CoreOS VM, the network looks like:
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:e6:d5:70 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.64/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0
valid_lft 2246sec preferred_lft 2246sec
inet6 <public-ipv6>/64 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fd0f:5c5b:f011:d0fb::1d8/128 scope global dynamic noprefixroute
valid_lft 85047sec preferred_lft 85047sec
inet6 fe80::4049:b055:c122:abcd/64 scope link noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fee6:d570/64 scope link noprefixroute
valid_lft forever preferred_lft forever
$ ip -4 r
default via 192.168.122.1 dev enp1s0 proto dhcp metric 100
192.168.122.0/24 dev enp1s0 proto kernel scope link src 192.168.122.64 metric 100
$ ip -6 r
::1 dev lo proto kernel metric 256 pref medium
<public-ipv6>/64 dev enp1s0 proto kernel metric 100 pref medium
fd0f:5c5b:f011:d0fb::1d8 dev enp1s0 proto kernel metric 100 pref medium
fd0f:5c5b:f011:d0fb::/64 dev enp1s0 proto ra metric 100 pref medium
fe80::/64 dev enp1s0 proto kernel metric 100 pref medium
default via fe80::5054:ff:fe01:659a dev enp1s0 proto ra metric 100 pref medium
These are some ping6 tries:
$ ping6 fe80::5054:ff:fe01:659a%enp1s0
PING fe80::5054:ff:fe01:659a%enp1s0(fe80::5054:ff:fe01:659a%enp1s0) 56 data bytes
64 Bytes von fe80::5054:ff:fe01:659a%enp1s0: icmp_seq=1 ttl=64 Zeit=0.058 ms
$ ping6 fd0f:5c5b:f011:d0fb::1
PING fd0f:5c5b:f011:d0fb::1(fd0f:5c5b:f011:d0fb::1) 56 data bytes
64 Bytes von fd0f:5c5b:f011:d0fb::1: icmp_seq=1 ttl=64 Zeit=0.227 ms
# But
$ ping6 google.com
PING google.com(fra16s50-in-x0e.1e100.net (2a00:1450:4001:810::200e)) 56 data bytes
^C
--- google.com ping statistics ---
3 Pakete übertragen, 0 empfangen, 100% packet loss, time 2082ms
Local IPv6 seems to be in place. But public IPv6 didn’t work (certainly, it is working on the dom0 host!).
Any idea how to solve the problem?