Sorry, I guess I should have simply create an issue on bugs.dragonflybsd.org. Just did so.
But while here, is it a correct way to add a route the way I did? I mean this: route add -inet6 fe80::201:71ff:fe0c:f607 -iface vke0 (The address is a link-local address of the second vkernel.) Thanks. -- Aleksej Lebedev On Sun, Mar 8, 2020, at 16:44, Aleksej Lebedev wrote: > Hi, > > I got a kernel panic on my vkernel trying to ping6 another vkernel on > the same host. > I might have done an incorrect network configuration, but I guess it > shouldn't panic anyway. > > Here is what I've done. > > Two fresh vkernels with ipv6_enable=yes in rc.conf started with: > > /boot/kernel/kernel -m 1g -r /vhost/vm0.img -I /var/run/vknet > > and > > /boot/kernel/kernel -m 1g -r /vhost/vm1.img -I /var/run/vknet > > vknetd is executed as "/usr/sbin/vknetd -U -t tap0". > > I run the following version of DragonFly (on all three machines: host > and both vkernels): > > # uname -a > DragonFly 5.8-RELEASE DragonFly v5.8.0rc1.28.g3e3e37-RELEASE #2: Sun > Mar 1 17:46:44 CET 2020 > [email protected]:/usr/obj/usr/src/sys/VKERNEL64 x86_64 > > On one of the vkernels I first check that I can ping the other one: > > # ping6 fe80::201:71ff:fe0c:f607%vke0 > PING6(56=40+8+8 bytes) fe80::201:68ff:fef8:f5f8%vke0 --> > fe80::201:71ff:fe0c:f607%vke0 > 16 bytes from fe80::201:71ff:fe0c:f607%vke0, icmp_seq=1 hlim=64 > time=0.371 ms > 16 bytes from fe80::201:71ff:fe0c:f607%vke0, icmp_seq=2 hlim=64 > time=0.262 ms > ^C > --- fe80::201:71ff:fe0c:f607%vke0 ping6 statistics --- > 3 packets transmitted, 2 packets received, 33.3% packet loss > round-trip min/avg/max/std-dev = 0.262/0.317/0.371/0.054 ms > > Then do the following to get the panic: > > # route add -inet6 fe80::201:71ff:fe0c:f607 -iface vke0 > add host fe80::201:71ff:fe0c:f607: gateway vke0 > > # ping6 fe80::201:71ff:fe0c:f607 > PING6(56=40+8+8 bytes) fe80::201:68ff:fef8:f5f8%vke0 --> > fe80::201:71ff:fe0c:f607 > panic: assertion "sdl->sdl_family == AF_LINK && sdl->sdl_alen != 0" > failed in nd6_resolve at /usr/src/sys/netinet6/nd6.c:2031 > cpuid = 0 > Trace beginning at frame 0x8026783680 > nd6_resolve() at 0x60ab55 > nd6_resolve() at 0x60ab55 > ether_output_frame() at 0x59427c > ip6_output() at 0x6026a1 > rip6_output() at 0x610e9f > rip6_output() at 0x611446 > Debugger("panic") > > CPU0 stopping CPUs: 0x0000000000000002 > stopped > Stopped at 0x70bde9: movb $0,0xa0c83c(%rip) > db> trace > Debugger() at 0x70bde9 > panic() at 0x4c7710 > nd6_resolve() at 0x60ab55 > ether_output_frame() at 0x59427c > ip6_output() at 0x6026a1 > rip6_output() at 0x610e9f > rip6_output() at 0x611446 > netmsg_sync_handler() at 0x5a1739 > > -- > Aleksej Lebedev >
