Hello, thanks for looking! On Tue, Aug 11, 2020 at 11:52:46PM -0400, Laine Stump wrote: > > The first problem I hit was trying to start that network: > > > > error: internal error: Check the host setup: enabling IPv6 forwarding > > with RA routes without accept_ra set to 2 is likely to cause routes > > loss. Interfaces to look at: wlp4s0 > > > I can see 3 possibilities: > > 3) try to make libvirt's code intelligent, and look for clues that RAs are > handled elsewhere (someone would need to figure out what those "clues" are). Perhaps my proposal at [1] falls into this category. The theory is to only warn when an interface is already set to 1 [2] because that seems to be when you would be expecting the interface to accept RA's, but enabling forwarding would inhibit it. From sysctl docs: Possible values are: 0 Do not accept Router Advertisements. 1 Accept Router Advertisements if forwarding is disabled. 2 Overrule forwarding behaviour. Accept Router Advertisements even if forwarding is enabled. > > The other thing that I'd like to expand the documentation on, if I can > > get some clarity, is the choice of network. It seems like it has to > > be a /64, and it seems like the best choice is within fc00::/7, or at > > least that is what has been assigned for private networks like this > > [3]? > > "locally assigned" addresses in IPv6 are... different. I've been trying to > figure this out myself (in order to *automatically* assign a network address > to a libvirt virtual network, as Dan suggested in the cover letter for the > IPv6 NAT patches), and I *think* you need to at least set the lowest bit of > the first byte of the address (that's the "locally assigned" bit). So that > would mean that all networks should be somewhere within FD00::/8 (but please > correct me if I'm wrong!) ... different ... indeed! :) I've proposed [3] with what I've found out. Yes I agree it seems the intent of FD00::/8 is to be somewhat analogous to 192.168 ... but you know of course it's IPv6 so there's a page worth of details in the RFC on how to generate 40 random bits ... > > The only problem with this is that I think glibc filters this range so > > nothing prefers IPv6. > > What?? Exactly what isn't preferring IPv6? Do you mean outbound connections > that would be to an IPv6 address will be nixed in favor of an IPv4 address > if the source IP of the connection was going to be in FC00::/7? Or something > else? Do you have a reference for this? > The man page for gai.conf *implies* that glibc is following the preference > rules suggested in RFC3484, which was written prior to RFC4193, so it seems > strange that it would give any special treatment to addresses in that range. > Does it behave in the same way if you use FD00::... instead of FC00::...? > (probably, but worth checking) Yeah, on my Fedora 32 host I have to override gai.conf to prefer ipv6 (there is no default /etc/gai.conf) with what I took directly from RFC3484 --- label ::1/128 0 label ::/0 1 label 2002::/16 2 label ::/96 3 label ::ffff:0:0/96 4 precedence ::1/128 50 precedence ::/0 40 precedence 2002::/16 30 precedence ::/96 20 precedence ::ffff:0:0/96 10 --- I think the gai.conf it is actually using is reflected in /usr/share/doc/glibc-common/gai.conf; which has this comment: # This default differs from the tables given in RFC 3484 by handling # (now obsolete) site-local IPv6 addresses and Unique Local Addresses. # The reason for this difference is that these addresses are never # NATed while IPv4 site-local addresses most probably are. Given # the precedence of IPv6 over IPv4 (see below) on machines having only # site-local IPv4 and IPv6 addresses a lookup for a global address would # see the IPv6 be preferred. The result is a long delay because the # site-local IPv6 addresses cannot be used while the IPv4 address is # (at least for the foreseeable future) NATed. We also treat Teredo # tunnels special. (it must be compiled in defaults?) So; it seems a choice made by the practicalities of basically people having these addresses that *weren't* routable and having a terrible experience. Of course, now legitimate use is collateral damage. Perhaps we should raise this with the distro -- but I expect if they update it, they might be back in the position of people reporting "why is my website taking 30 seconds to load" :/ Of course I'm sure other distros have made other choices too. > (BTW, he was playing around with defining an IPv6 libvirt network that used > the same network as the host's physical interface, then turning on > ndp-proxy, and finally adding a host route for each guest IP; this permits > the guests to all be on the same IPv6 network as the host; if we can get all > of those steps automated in a libvirt virtual network, it will be even > better than IPv6 NAT!) I just want to access ipv6 only clouds on my laptop from my work VM over wifi and plugged into the docking station :) That might be similar to what VirtualBox does? That allows a guest to have a NIC bridged to a wifi card, that seems to get an address (RA makes it in?) but no packets flow for me. Apparently with some wireless NICs it might work, but not mine I guess. -i [1] https://www.redhat.com/archives/libvir-list/2020-August/msg00437.html [2] https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt [3] https://www.redhat.com/archives/libvir-list/2020-August/msg00438.html