IPv6 trouble at startup in VirtualBox on macOS

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

IPv6 trouble at startup in VirtualBox on macOS

Jason Mader-3
>Synopsis: IPv6 Internet hosts unreachable without a workaround
>Category: system amd64
>Environment:
System      : OpenBSD 6.7
Details     : OpenBSD 6.7 (GENERIC.MP) #182: Thu May  7 11:11:58 MDT 2020
[hidden email]:/usr/src/sys/arch/amd64/compile/GENERIC.MP

Architecture: OpenBSD.amd64
Machine     : amd64
>Description:
OpenBSD 6.7 guest in VirtualBox 6.1.8 on host macOS 10.15.4 where the
VM has an IPv6-only bridge network interface over en0 (MacBook Pro
Wi-Fi), it's not possible to reach hosts beyond the gateway when
OpenBSD is started.

It is possible to secure shell from the host OS to the OpenBSD guest
OS, but any attempt from OpenBSD to reach hosts outside the local
network (dns, ntpd, etc.) fails.
>How-To-Repeat:
On the OpenBSD guest, a `ping6 2607:f8b0:4004:808::2004`
(www.google.com) doesn't have a response. A packet capture on the host
OS shows that the echo packet is going out, and the reply is coming
back. The reply just doesn't seem to register on the OpenBSD guest.

That is, until I trigger the workaround described below.
>Fix:
While looking into this, by happenstance I noticed that right after I
`ping6` the gateway router that networking immediately starts to work
correctly. I tried putting a "!ping6" command in hostname.vio0 but at
the point when this is run the messages show no route to host. So the
workaround I have is to put "ping6 -c 1 $gateway" in /etc/rc right
before "echo -n 'starting early daemons:'" and that is good enough
that the subsequent daemons (like ntpd) will start and be able to
resolve dns and reach destinations.

Of course it could be a problem with VirtualBox, but I wanted to share
this. I also hoped to find a better workaround than editing /etc/rc to
trigger the `ping6` or other helper at a point before networking is
needed.


dmesg:
OpenBSD 6.7 (GENERIC.MP) #182: Thu May  7 11:11:58 MDT 2020
    [hidden email]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 872349696 (831MB)
avail mem = 833351680 (794MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.5 @ 0xe1000 (10 entries)
bios0: vendor innotek GmbH version "VirtualBox" date 12/01/2006
bios0: innotek GmbH VirtualBox
acpi0 at bios0: ACPI 4.0
acpi0: sleep states S0 S5
acpi0: tables DSDT FACP APIC HPET MCFG SSDT
acpi0: wakeup devices
acpitimer0 at acpi0: 3579545 Hz, 32 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz, 2494.59 MHz, 06-46-01
cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,SSSE3,CX16,PCID,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,RDRAND,NXE,RDTSCP,LONG,LAHF,ABM,ITSC,FSGSBASE,AVX2,INVPCID,MD_CLEAR,L1DF,MELTDOWN
cpu0: 256KB 64b/line 8-way L2 cache
cpu0: smt 0, core 0, package 0
mtrr: CPU supports MTRRs but not enabled by BIOS
cpu0: apic clock running at 999MHz
cpu1 at mainbus0: apid 1 (application processor)
cpu1: Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz, 2494.42 MHz, 06-46-01
cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,SSSE3,CX16,PCID,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,RDRAND,NXE,RDTSCP,LONG,LAHF,ABM,ITSC,FSGSBASE,AVX2,INVPCID,MD_CLEAR,L1DF,MELTDOWN
cpu1: 256KB 64b/line 8-way L2 cache
cpu1: smt 0, core 1, package 0
ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 24 pins, remapped
acpihpet0 at acpi0: 14318179 Hz
acpimcfg0 at acpi0
acpimcfg0: addr 0xdc000000, bus 0-63
acpiprt0 at acpi0: bus 0 (PCI0)
acpicpu0 at acpi0: C1(@1 halt!)
acpicpu1 at acpi0: C1(@1 halt!)
acpipci0 at acpi0 PCI0: 0x00000000 0x00000011 0x00000001
acpicmos0 at acpi0
acpibat0 at acpi0: BAT0 model "1" serial 0 type VBOX oem "innotek"
acpiac0 at acpi0: AC unit offline
acpivideo0 at acpi0: GFX0
cpu0: using VERW MDS workaround (except on vmm entry)
pci0 at mainbus0 bus 0
vga1 at pci0 dev 2 function 0 "VMware SVGA II" rev 0x00
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
virtio0 at pci0 dev 3 function 0 "Qumranet Virtio Network" rev 0x00
vio0 at virtio0: address 08:00:27:94:cc:6a
virtio0: apic 2 int 19
"InnoTek VirtualBox Guest Service" rev 0x00 at pci0 dev 4 function 0
not configured
piixpm0 at pci0 dev 7 function 0 "Intel 82371AB Power" rev 0x08: apic 2 int 23
iic0 at piixpm0
pcib0 at pci0 dev 31 function 0 "Intel 82801GBM LPC" rev 0x02
ahci0 at pci0 dev 31 function 2 "Intel 82801HBM AHCI" rev 0x02: apic 2
int 23, AHCI 1.1
ahci0: device on port 0 didn't come ready, TFD: 0x171<ERR>
ahci0: port 0: 3.0Gb/s
ahci0: device on port 1 didn't come ready, TFD: 0x131<ERR>
ahci0: port 1: 3.0Gb/s
scsibus1 at ahci0: 32 targets
sd0 at scsibus1 targ 0 lun 0: <ATA, VBOX HARDDISK, 1.0>
t10.ATA_VBOX_HARDDISK_VBb86f4186-465d288c_
sd0: 4016MB, 512 bytes/sector, 8225280 sectors
cd0 at scsibus1 targ 1 lun 0: <VBOX, CD-ROM, 1.0> removable
isa0 at pcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pckbd0 at pckbc0 (kbd slot)
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
wsmouse0 at pms0 mux 0
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
root on sd0a (24173154c21633fc.a) swap on sd0b dump on sd0b

usbdevs:
usbdevs: no USB controllers found

pcidump:
Domain /dev/pci0:
 0:2:0: VMware SVGA II
0x0000: Vendor ID: 15ad, Product ID: 0405
0x0004: Command: 0007, Status: 0000
0x0008: Class: 03 Display, Subclass: 00 VGA,
Interface: 00, Revision: 00
0x000c: BIST: 00, Header Type: 00, Latency Timer: 00,
Cache Line Size: 00
0x0010: BAR io addr: 0x0000d000/0x0010
0x0014: BAR mem prefetchable 32bit addr: 0xe0000000/0x00800000
0x0018: BAR mem 32bit addr: 0xe0800000/0x00200000
0x001c: BAR empty (00000000)
0x0020: BAR empty (00000000)
0x0024: BAR empty (00000000)
0x0028: Cardbus CIS: 00000000
0x002c: Subsystem Vendor ID: 15ad Product ID: 0405
0x0030: Expansion ROM Base Address: 00000000
0x0038: 00000000
0x003c: Interrupt Pin: 01 Line: 0a Min Gnt: 00 Max Lat: 00
0x0000: 040515ad 00000007 03000000 00000000
0x0010: 0000d001 e0000008 e0800000 00000000
0x0020: 00000000 00000000 00000000 040515ad
0x0030: 00000000 00000000 00000000 0000010a
0x0040: 00000000 00000000 00000000 00000000
0x0050: 00000000 00000000 00000000 00000000
0x0060: 00000000 00000000 00000000 00000000
0x0070: 00000000 00000000 00000000 00000000
0x0080: 00000000 00000000 00000000 00000000
0x0090: 00000000 00000000 00000000 00000000
0x00a0: 00000000 00000000 00000000 00000000
0x00b0: 00000000 00000000 00000000 00000000
0x00c0: 00000000 00000000 00000000 00000000
0x00d0: 00000000 00000000 00000000 00000000
0x00e0: 00000000 00000000 00000000 00000000
0x00f0: 00000000 00000000 00000000 00000000
 0:3:0: Qumranet Virtio Network
0x0000: Vendor ID: 1af4, Product ID: 1000
0x0004: Command: 0005, Status: 0010
0x0008: Class: 02 Network, Subclass: 00 Ethernet,
Interface: 00, Revision: 00
0x000c: BIST: 00, Header Type: 00, Latency Timer: 00,
Cache Line Size: 00
0x0010: BAR io addr: 0x0000d020/0x0020
0x0014: BAR empty (00000000)
0x0018: BAR empty (00000000)
0x001c: BAR empty (00000000)
0x0020: BAR empty (00000000)
0x0024: BAR empty (00000000)
0x0028: Cardbus CIS: 00000000
0x002c: Subsystem Vendor ID: 1af4 Product ID: 0001
0x0030: Expansion ROM Base Address: 00000000
0x0038: 00000000
0x003c: Interrupt Pin: 01 Line: 09 Min Gnt: 00 Max Lat: 00
0x0080: Capability 0x00: Reserved
0x0000: 10001af4 00100005 02000000 00000000
0x0010: 0000d021 00000000 00000000 00000000
0x0020: 00000000 00000000 00000000 00011af4
0x0030: 00000000 00000080 00000000 00000109
0x0040: 00000000 00000000 00000000 00000000
0x0050: 00000000 00000000 00000000 00000000
0x0060: 00000000 00000000 00000000 00000000
0x0070: 00000000 00000000 00000000 00000000
0x0080: 00000000 00000000 00000000 00000000
0x0090: 00000000 00000000 00000000 00000000
0x00a0: 00000000 00000000 00000000 00000000
0x00b0: 00000000 00000000 00000000 00000000
0x00c0: 00000000 00000000 00000000 00000000
0x00d0: 00000000 00000000 00000000 00000000
0x00e0: 00000000 00000000 00000000 00000000
0x00f0: 00000000 00000000 00000000 00000000
 0:4:0: InnoTek VirtualBox Guest Service
0x0000: Vendor ID: 80ee, Product ID: cafe
0x0004: Command: 0003, Status: 0000
0x0008: Class: 08 System, Subclass: 80 Miscellaneous,
Interface: 00, Revision: 00
0x000c: BIST: 00, Header Type: 00, Latency Timer: 00,
Cache Line Size: 00
0x0010: BAR io addr: 0x0000d040/0x0020
0x0014: BAR mem 32bit addr: 0xe0c00000/0x00400000
0x0018: BAR mem prefetchable 32bit addr: 0xe1000000/0x00004000
0x001c: BAR empty (00000000)
0x0020: BAR empty (00000000)
0x0024: BAR empty (00000000)
0x0028: Cardbus CIS: 00000000
0x002c: Subsystem Vendor ID: 0000 Product ID: 0000
0x0030: Expansion ROM Base Address: 00000000
0x0038: 00000000
0x003c: Interrupt Pin: 01 Line: 05 Min Gnt: 00 Max Lat: 00
0x0000: cafe80ee 00000003 08800000 00000000
0x0010: 0000d041 e0c00000 e1000008 00000000
0x0020: 00000000 00000000 00000000 00000000
0x0030: 00000000 00000000 00000000 00000105
0x0040: 00000000 00000000 00000000 00000000
0x0050: 00000000 00000000 00000000 00000000
0x0060: 00000000 00000000 00000000 00000000
0x0070: 00000000 00000000 00000000 00000000
0x0080: 00000000 00000000 00000000 00000000
0x0090: 00000000 00000000 00000000 00000000
0x00a0: 00000000 00000000 00000000 00000000
0x00b0: 00000000 00000000 00000000 00000000
0x00c0: 00000000 00000000 00000000 00000000
0x00d0: 00000000 00000000 00000000 00000000
0x00e0: 00000000 00000000 00000000 00000000
0x00f0: 00000000 00000000 00000000 00000000
 0:7:0: Intel 82371AB Power
0x0000: Vendor ID: 8086, Product ID: 7113
0x0004: Command: 0000, Status: 0280
0x0008: Class: 06 Bridge, Subclass: 80 Miscellaneous,
Interface: 00, Revision: 08
0x000c: BIST: 00, Header Type: 80, Latency Timer: 00,
Cache Line Size: 00
0x0010: BAR empty (00000000)
0x0014: BAR empty (00000000)
0x0018: BAR empty (00000000)
0x001c: BAR empty (00000000)
0x0020: BAR empty (00000000)
0x0024: BAR empty (00000000)
0x0028: Cardbus CIS: 00000000
0x002c: Subsystem Vendor ID: 0000 Product ID: 0000
0x0030: Expansion ROM Base Address: 00000000
0x0038: 00000000
0x003c: Interrupt Pin: 01 Line: 09 Min Gnt: 00 Max Lat: 00
0x0000: 71138086 02800000 06800008 00800000
0x0010: 00000000 00000000 00000000 00000000
0x0020: 00000000 00000000 00000000 00000000
0x0030: 00000000 00000000 00000000 00000109
0x0040: 00004001 00000000 00000000 00000000
0x0050: 00000000 00000000 00000000 00000000
0x0060: 00000000 00000000 00000000 00000000
0x0070: 00000000 00000000 00000000 00000000
0x0080: 00000000 00000000 00000000 00000000
0x0090: 00004101 00000000 00000000 00000000
0x00a0: 00000000 00000000 00000000 00000000
0x00b0: 00000000 00000000 00000000 00000000
0x00c0: 00000000 00000000 00000000 00000000
0x00d0: 00090000 00000000 00000000 00000000
0x00e0: 00000000 00000000 00000000 00000000
0x00f0: 00000000 00000000 00000000 00000000
 0:31:0: Intel 82801GBM LPC
0x0000: Vendor ID: 8086, Product ID: 27b9
0x0004: Command: 0000, Status: 0210
0x0008: Class: 06 Bridge, Subclass: 01 ISA,
Interface: 00, Revision: 02
0x000c: BIST: 00, Header Type: 80, Latency Timer: 00,
Cache Line Size: 00
0x0010: BAR empty (00000000)
0x0014: BAR empty (00000000)
0x0018: BAR empty (00000000)
0x001c: BAR empty (00000000)
0x0020: BAR empty (00000000)
0x0024: BAR empty (00000000)
0x0028: Cardbus CIS: 00000000
0x002c: Subsystem Vendor ID: 8086 Product ID: 7270
0x0030: Expansion ROM Base Address: 00000000
0x0038: 00000000
0x003c: Interrupt Pin: 00 Line: 00 Min Gnt: 00 Max Lat: 00
0x0000: 27b98086 02100000 06010002 00800000
0x0010: 00000000 00000000 00000000 00000000
0x0020: 00000000 00000000 00000000 72708086
0x0030: 00000000 00000000 00000000 00000000
0x0040: 00008001 00000080 00000001 0003004d
0x0050: 00000000 00000000 00000000 00000000
0x0060: 090b090b 00000010 80808080 000000f8
0x0070: 00000080 0c0c0000 00000002 00000000
0x0080: 00000000 00000000 00000000 00000000
0x0090: 00000000 00000000 00000000 00000000
0x00a0: 00000008 00000000 0000000f 0000ef00
0x00b0: 00000000 00000000 00000000 00000000
0x00c0: 00000000 00000000 00000000 00000000
0x00d0: 00000000 00000000 00000000 00be0000
0x00e0: 00000000 00000000 00000000 00000000
0x00f0: fed1c001 00000000 00000000 00000000
 0:31:2: Intel 82801HBM AHCI
0x0000: Vendor ID: 8086, Product ID: 2829
0x0004: Command: 0007, Status: 0010
0x0008: Class: 01 Mass Storage, Subclass: 06 SATA,
Interface: 01, Revision: 02
0x000c: BIST: 00, Header Type: 00, Latency Timer: 00,
Cache Line Size: 00
0x0010: BAR io addr: 0x0000d060/0x0008
0x0014: BAR io addr: 0x0000d068/0x0004
0x0018: BAR io addr: 0x0000d070/0x0008
0x001c: BAR io addr: 0x0000d078/0x0004
0x0020: BAR io addr: 0x0000d080/0x0010
0x0024: BAR mem 32bit addr: 0xe1004000/0x00002000
0x0028: Cardbus CIS: 00000000
0x002c: Subsystem Vendor ID: 0000 Product ID: 0000
0x0030: Expansion ROM Base Address: 00000000
0x0038: 00000000
0x003c: Interrupt Pin: 01 Line: 09 Min Gnt: 00 Max Lat: 00
0x0080: Capability 0x05: Message Signalled Interrupts (MSI)
Enabled: no
0x0070: Capability 0x01: Power Management
State: D0
0x00a8: Capability 0x12: SATA
0x0000: 28298086 00100007 01060102 00000000
0x0010: 0000d061 0000d069 0000d071 0000d079
0x0020: 0000d081 e1004000 00000000 00000000
0x0030: 00000000 00000080 00000000 00000109
0x0040: 00000000 00000000 00000000 00000000
0x0050: 00000000 00000000 00000000 00000000
0x0060: 00000000 00000000 00000000 00000000
0x0070: 0003a801 00000000 00000000 00000000
0x0080: 01007005 00000000 00000000 00000000
0x0090: 03000000 78000180 00000000 00000000
0x00a0: 00000000 00000000 00100012 00000028
0x00b0: 00000000 00000000 00000000 00000000
0x00c0: 00000000 00000000 00000000 00000000
0x00d0: 00000000 00000000 00000000 00000000
0x00e0: 00000000 00000000 00000000 00000000
0x00f0: 00000000 00000000 00000000 00000000

acpidump:
begin-base64 644 APIC.3
QVBJQ1wAAAACTVZCT1ggIFZCT1hBUElDAQAAAEFTTCBhAAAAAADg/gEAAAACCgAAAgAAAAAAAgoA
CQkAAAAPAAAIAAABAAAAAAgBAQEAAAABDAIAAADA/gAAAAA=
====
begin-base64 644 DSDT.2
RFNEVCUjAAAC2FZCT1ggIFZCT1hCSU9TAgAAAElOVEwoBRAgW4BEQkcwAQsAMAoEW4ELREJHMAFE
SEUxCFuBC0RCRzACREhFMhBbgQtEQkcwA0RIRTQgW4ENREJHMAEACERDSFIIFAxIRVhfAXBoREhF
MRQMSEVYMgFwaERIRTIUDEhFWDQBcGhESEU0FAxTTEVOAXBoYKSHYBQkUzJCRglwaGByU0xFTmAB
YAhCVUZGEQJgcGhCVUZGpEJVRkYUEU1JTl8CoAaVaGmkaKEDpGkUSgZTQ01QAnBoYHBTMkJGYGBw
UzJCRmlhcABkcFNMRU5oZXBTTEVOaWZwTUlOX2VmZ6IklWRncIOIYGQAYnCDiGFkAGOgBpRiY6QB
oQigBpViY6T/dWSgBpVkZaQBoQygBpVkZqT/oQOkABQXTVRDSAJwaGBwaWFwU0NNUGBhYqSSYhQq
REJHXwFwaGBwUzJCRmBhcIdhYHZgcABiohBgdmBwg4hhYgBEQ0hSdWIITVNXVv8UQSRNU1dOAKAN
kpNNU1dW/6RNU1dWcABNU1dWREJHXw1fT1M6IABEQkdfX09TX0RCR18NCgCgSRFbEl9PU0kAREJH
Xw1fT1NJIGV4aXN0cwoAoBpfT1NJDVdpbmRvd3MgMjAwMQBwCgRNU1dWoBxfT1NJDVdpbmRvd3Mg
MjAwMS4xAHAKBU1TV1agGl9PU0kNV2luZG93cyAyMDA2AHAKBk1TV1agGl9PU0kNV2luZG93cyAy
MDA5AHAKB01TV1agGl9PU0kNV2luZG93cyAyMDEyAHAKCE1TV1agGl9PU0kNV2luZG93cyAyMDEz
AHAKCU1TV1agGl9PU0kNV2luZG93cyAyMDE1AHAKCk1TV1agPl9PU0kNV2luZG93cyAyMDA2IFNQ
MgBEQkdfDVdpbmRvd3MgMjAwNiBTUDIgc3VwcG9ydGVkCgBwAE1TV1ahQwagJk1UQ0hfT1NfDU1p
Y3Jvc29mdCBXaW5kb3dzIE5UAHAKA01TV1agOU1UQ0hfT1NfDU1pY3Jvc29mdCBXaW5kb3dzTUU6
IE1pbGxlbm5pdW0gRWRpdGlvbgBwCgJNU1dWoEkGWxJfUkVWAERCR18NX1JFVjogAEhFWDRfUkVW
oEsEkJRNU1dWAJRfUkVWCgKgOpVNU1dWCghEQkdfDUFDUEkgcmV2IG1pc21hdGNoLCBub3QgYSBN
aWNyb3NvZnQgT1MKAHAATVNXVkRCR18NRGV0ZXJtaW5lZCBNU1dWOiAASEVYNE1TV1akTVNXVghQ
SUNNABQhX1BJQwFEQkdfDVBpYyBtb2RlOiAASEVYNGhwaFBJQ01bgFNZU0kBC0hACghbgRBTWVNJ
A0lEWDAgREFUMCBbhkgLSURYMERBVDADTUVNTCBVSU9BIFVIUFQgVVNNQyBVRkRDIFNMMkIgU0wy
SSBTTDNCIFNMM0kgUE1OTiBVUlRDIENQVUwgQ1BVQyBDUEVUIENQRVYgTklDQSBIREFBIFBXUlMg
SU9DQSBIQkNBIFBDSUIgUENJTCBTTDBCIFNMMEkgU0wxQiBTTDFJIFBQMEIgUFAwSSBQUDFCIFBQ
MUkgUE1OWCBOVk1BIElOSU4gAEC+VkFJTiAQiI0BX1NCXxRJCF9JTkkAcAzewK0LVkFJTkRCR18N
TUVNTDogAEhFWDRNRU1MREJHXw1VSU9BOiAASEVYNFVJT0FEQkdfDVVIUFQ6IABIRVg0VUhQVERC
R18NVVNNQzogAEhFWDRVU01DREJHXw1VRkRDOiAASEVYNFVGRENEQkdfDVBNTk46IABIRVg0UE1O
TghQUjAwEk9seBINBAz//wIAAExOS0IAEg0EDP//AgABTE5LQwASDgQM//8CAAoCTE5LRAASDgQM
//8CAAoDTE5LQQASDQQM//8DAABMTktDABINBAz//wMAAUxOS0QAEg4EDP//AwAKAkxOS0EAEg4E
DP//AwAKA0xOS0IAEg0EDP//BAAATE5LRAASDQQM//8EAAFMTktBABIOBAz//wQACgJMTktCABIO
BAz//wQACgNMTktDABINBAz//wUAAExOS0EAEg0EDP//BQABTE5LQgASDgQM//8FAAoCTE5LQwAS
DgQM//8FAAoDTE5LRAASDQQM//8GAABMTktCABINBAz//wYAAUxOS0MAEg4EDP//BgAKAkxOS0QA
Eg4EDP//BgAKA0xOS0EAEg0EDP//BwAATE5LQwASDQQM//8HAAFMTktEABIOBAz//wcACgJMTktB
ABIOBAz//wcACgNMTktCABINBAz//wgAAExOS0QAEg0EDP//CAABTE5LQQASDgQM//8IAAoCTE5L
QgASDgQM//8IAAoDTE5LQwASDQQM//8JAABMTktBABINBAz//wkAAUxOS0IAEg4EDP//CQAKAkxO
S0MAEg4EDP//CQAKA0xOS0QAEg0EDP//CgAATE5LQgASDQQM//8KAAFMTktDABIOBAz//woACgJM
TktEABIOBAz//woACgNMTktBABINBAz//wsAAExOS0MAEg0EDP//CwABTE5LRAASDgQM//8LAAoC
TE5LQQASDgQM//8LAAoDTE5LQgASDQQM//8MAABMTktEABINBAz//wwAAUxOS0EAEg4EDP//DAAK
AkxOS0IAEg4EDP//DAAKA0xOS0MAEg0EDP//DQAATE5LQQASDQQM//8NAAFMTktCABIOBAz//w0A
CgJMTktDABIOBAz//w0ACgNMTktEABINBAz//w4AAExOS0IAEg0EDP//DgABTE5LQwASDgQM//8O
AAoCTE5LRAASDgQM//8OAAoDTE5LQQASDQQM//8PAABMTktDABINBAz//w8AAUxOS0QAEg4EDP//
DwAKAkxOS0EAEg4EDP//DwAKA0xOS0IAEg0EDP//EAAATE5LRAASDQQM//8QAAFMTktBABIOBAz/
/xAACgJMTktCABIOBAz//xAACgNMTktDABINBAz//xEAAExOS0EAEg0EDP//EQABTE5LQgASDgQM
//8RAAoCTE5LQwASDgQM//8RAAoDTE5LRAASDQQM//8SAABMTktCABINBAz//xIAAUxOS0MAEg4E
DP//EgAKAkxOS0QAEg4EDP//EgAKA0xOS0EAEg0EDP//EwAATE5LQwASDQQM//8TAAFMTktEABIO
BAz//xMACgJMTktBABIOBAz//xMACgNMTktCABINBAz//xQAAExOS0QAEg0EDP//FAABTE5LQQAS
DgQM//8UAAoCTE5LQgASDgQM//8UAAoDTE5LQwASDQQM//8VAABMTktBABINBAz//xUAAUxOS0IA
Eg4EDP//FQAKAkxOS0MAEg4EDP//FQAKA0xOS0QAEg0EDP//FgAATE5LQgASDQQM//8WAAFMTktD
ABIOBAz//xYACgJMTktEABIOBAz//xYACgNMTktBABINBAz//xcAAExOS0MAEg0EDP//FwABTE5L
RAASDgQM//8XAAoCTE5LQQASDgQM//8XAAoDTE5LQgASDQQM//8YAABMTktEABINBAz//xgAAUxO
S0EAEg4EDP//GAAKAkxOS0IAEg4EDP//GAAKA0xOS0MAEg0EDP//GQAATE5LQQASDQQM//8ZAAFM
TktCABIOBAz//xkACgJMTktDABIOBAz//xkACgNMTktEABINBAz//xoAAExOS0IAEg0EDP//GgAB
TE5LQwASDgQM//8aAAoCTE5LRAASDgQM//8aAAoDTE5LQQASDQQM//8bAABMTktDABINBAz//xsA
AUxOS0QAEg4EDP//GwAKAkxOS0EAEg4EDP//GwAKA0xOS0IAEg0EDP//HAAATE5LRAASDQQM//8c
AAFMTktBABIOBAz//xwACgJMTktCABIOBAz//xwACgNMTktDABINBAz//x0AAExOS0EAEg0EDP//
HQABTE5LQgASDgQM//8dAAoCTE5LQwASDgQM//8dAAoDTE5LRAASDQQM//8eAABMTktCABINBAz/
/x4AAUxOS0MAEg4EDP//HgAKAkxOS0QAEg4EDP//HgAKA0xOS0EAEg0EDP//HwAATE5LQwASDQQM
//8fAAFMTktEABIOBAz//x8ACgJMTktBABIOBAz//x8ACgNMTktCAAhQUjAxEk9deBILBAz//wIA
AAAKEhILBAz//wIAAQAKExIMBAz//wIACgIAChQSDAQM//8CAAoDAAoVEgsEDP//AwAAAAoTEgsE
DP//AwABAAoUEgwEDP//AwAKAgAKFRIMBAz//wMACgMAChYSCwQM//8EAAAAChQSCwQM//8EAAEA
ChUSDAQM//8EAAoCAAoWEgwEDP//BAAKAwAKFxILBAz//wUAAAAKFRILBAz//wUAAQAKFhIMBAz/
/wUACgIAChcSDAQM//8FAAoDAAoQEgsEDP//BgAAAAoWEgsEDP//BgABAAoXEgwEDP//BgAKAgAK
EBIMBAz//wYACgMAChESCwQM//8HAAAAChcSCwQM//8HAAEAChASDAQM//8HAAoCAAoREgwEDP//
BwAKAwAKEhILBAz//wgAAAAKEBILBAz//wgAAQAKERIMBAz//wgACgIAChISDAQM//8IAAoDAAoT
EgsEDP//CQAAAAoREgsEDP//CQABAAoSEgwEDP//CQAKAgAKExIMBAz//wkACgMAChQSCwQM//8K
AAAAChISCwQM//8KAAEAChMSDAQM//8KAAoCAAoUEgwEDP//CgAKAwAKFRILBAz//wsAAAAKExIL
BAz//wsAAQAKFBIMBAz//wsACgIAChUSDAQM//8LAAoDAAoWEgsEDP//DAAAAAoUEgsEDP//DAAB
AAoVEgwEDP//DAAKAgAKFhIMBAz//wwACgMAChcSCwQM//8NAAAAChUSCwQM//8NAAEAChYSDAQM
//8NAAoCAAoXEgwEDP//DQAKAwAKEBILBAz//w4AAAAKFhILBAz//w4AAQAKFxIMBAz//w4ACgIA
ChASDAQM//8OAAoDAAoREgsEDP//DwAAAAoXEgsEDP//DwABAAoQEgwEDP//DwAKAgAKERIMBAz/
/w8ACgMAChISCwQM//8QAAAAChASCwQM//8QAAEAChESDAQM//8QAAoCAAoSEgwEDP//EAAKAwAK
ExILBAz//xEAAAAKERILBAz//xEAAQAKEhIMBAz//xEACgIAChMSDAQM//8RAAoDAAoUEgsEDP//
EgAAAAoSEgsEDP//EgABAAoTEgwEDP//EgAKAgAKFBIMBAz//xIACgMAChUSCwQM//8TAAAAChMS
CwQM//8TAAEAChQSDAQM//8TAAoCAAoVEgwEDP//EwAKAwAKFhILBAz//xQAAAAKFBILBAz//xQA
AQAKFRIMBAz//xQACgIAChYSDAQM//8UAAoDAAoXEgsEDP//FQAAAAoVEgsEDP//FQABAAoWEgwE
DP//FQAKAgAKFxIMBAz//xUACgMAChASCwQM//8WAAAAChYSCwQM//8WAAEAChcSDAQM//8WAAoC
AAoQEgwEDP//FgAKAwAKERILBAz//xcAAAAKFxILBAz//xcAAQAKEBIMBAz//xcACgIAChESDAQM
//8XAAoDAAoSEgsEDP//GAAAAAoQEgsEDP//GAABAAoREgwEDP//GAAKAgAKEhIMBAz//xgACgMA
ChMSCwQM//8ZAAAAChESCwQM//8ZAAEAChISDAQM//8ZAAoCAAoTEgwEDP//GQAKAwAKFBILBAz/
/xoAAAAKEhILBAz//xoAAQAKExIMBAz//xoACgIAChQSDAQM//8aAAoDAAoVEgsEDP//GwAAAAoT
EgsEDP//GwABAAoUEgwEDP//GwAKAgAKFRIMBAz//xsACgMAChYSCwQM//8cAAAAChQSCwQM//8c
AAEAChUSDAQM//8cAAoCAAoWEgwEDP//HAAKAwAKFxILBAz//x0AAAAKFRILBAz//x0AAQAKFhIM
BAz//x0ACgIAChcSDAQM//8dAAoDAAoQEgsEDP//HgAAAAoWEgsEDP//HgABAAoXEgwEDP//HgAK
AgAKEBIMBAz//x4ACgMAChESCwQM//8fAAAAChcSCwQM//8fAAEAChASDAQM//8fAAoCAAoREgwE
DP//HwAKAwAKEghQUlNBEQkKBiMgDhh5AAhQUlNCEQkKBiMgDhh5AAhQUlNDEQkKBiMgDhh5AAhQ
UlNEEQkKBiMgDhh5AFuCT7RQQ0kwCF9ISUQMQdAKAxQLX0FEUgCkSEJDQQhfQkJOAAhfVUlEABRL
B19QUlQAoD2TkFBJQ01VSU9BAERCR18NUkVUVVJOSU5HIFBJQwoAcABeLlNCUkdBUERFcABeLlNC
UkdBUEFEpFBSMDChNURCR18NUkVUVVJOSU5HIEFQSUMKAHAKvl4uU0JSR0FQREVwCu9eLlNCUkdB
UEFEpFBSMDFbgkFpU0JSRxQLX0FEUgCkSU9DQVuAUENJQwIACv9bgRZQQ0lDAQBIVkFQQUQIAEAY
QVBERQhbgkkHXlBDSUUIX0hJRAxB0AwCCF9VSUQKEQhDUlNfEREKDoYJAAAAAADcAAAABHkAFDNf
Q1JTAIpDUlNfCgRCQVMxikNSU18KCExFTjFwUENJQkJBUzFwUENJTExFTjGkQ1JTXxQVX1NUQQCg
CZNQQ0lCAKQAoQSkCg9bgjdQUzJLCF9ISUQMQdADAxQJX1NUQQCkCg8IX0NSUxEYChVHAWAAYAAA
AUcBZABkAAABIgIAeQBbgjVETUFDCF9ISUQMQdACAAhfQ1JTESAKHUcBAAAAAAEQRwGAAIAAARBH
AcAAwAABICoQBXkAW4JOBUZEQzAIX0hJRAxB0AcAFAtfU1RBAKRVRkRDCF9DUlMRGwoYRwHwA/AD
AQZHAfcD9wMBASJAACoEAHkACF9QUlMRGwoYRwHwA/ADAQZHAfcD9wMBASJAACoEAHkAW4InUFMy
TQhfSElEDEHQDwMUCV9TVEEApAoPCF9DUlMRCAoFIgAQeQBbgksLXkxQVDAIX0hJRAxB0AQACF9V
SUQBFBVfU1RBAKAJk1BQMEIApAChBKQKDwhDUlNfERAKDUcBeAN4AwgIIoAAeQAURwdfQ1JTAItD
UlNfCgJQTUkwi0NSU18KBFBNQTCLQ1JTXwoGUEFMMItDUlNfCgdQTEUwi0NSU18KCVBJUTBwUFAw
QlBNSTBwUFAwQlBNQTCgF5MLvANQUDBCcAoEUEFMMHAKBFBMRTB5AVBQMElQSVEwpENSU19bgkwL
XkxQVDEIX0hJRAxB0AQACF9VSUQKAhQVX1NUQQCgCZNQUDFCAKQAoQSkCg8IQ1JTXxEQCg1HAXgC
eAIICCIgAHkAFEcHX0NSUwCLQ1JTXwoCUE1JMYtDUlNfCgRQTUExi0NSU18KBlBBTDGLQ1JTXwoH
UExFMYtDUlNfCglQSVExcFBQMUJQTUkxcFBQMUJQTUExoBeTC7wDUFAxQnAKBFBBTDFwCgRQTEUx
eQFQUDFJUElRMaRDUlNfW4JNCF5TUkwwCF9ISUQMQdAFAQhfVUlEARQVX1NUQQCgCZNTTDBCAKQA
oQSkCg8IQ1JTXxEQCg1HAfgD+AMBCCIQAHkAFEkEX0NSUwCLQ1JTXwoCTUlOMItDUlNfCgRNQVgw
i0NSU18KCUlSUTBwU0wwQk1JTjBwU0wwQk1BWDB5AVNMMElJUlEwpENSU19bgk4IXlNSTDEIX0hJ
RAxB0AUBCF9VSUQKAhQVX1NUQQCgCZNTTDFCAKQAoQSkCg8IQ1JTXxEQCg1HAfgC+AIBCCIIAHkA
FEkEX0NSUwCLQ1JTXwoCTUlOMYtDUlNfCgRNQVgxi0NSU18KCUlSUTFwU0wxQk1JTjFwU0wxQk1B
WDF5AVNMMUlJUlExpENSU19bgk4IXlNSTDIIX0hJRAxB0AUBCF9VSUQKAxQVX1NUQQCgCZNTTDJC
AKQAoQSkCg8IQ1JTXxEQCg1HAegD6AMBCCIIAHkAFEkEX0NSUwCLQ1JTXwoCTUlOMYtDUlNfCgRN
QVgxi0NSU18KCUlSUTFwU0wyQk1JTjFwU0wyQk1BWDF5AVNMMklJUlExpENSU19bgk4IXlNSTDMI
X0hJRAxB0AUBCF9VSUQKBBQVX1NUQQCgCZNTTDNCAKQAoQSkCg8IQ1JTXxEQCg1HAegC6AIBCCII
AHkAFEkEX0NSUwCLQ1JTXwoCTUlOMYtDUlNfCgRNQVgxi0NSU18KCUlSUTFwU0wzQk1JTjFwU0wz
Qk1BWDF5AVNMM0lJUlExpENSU19bgipUSU1SCF9ISUQMQdABAAhfQ1JTERUKEkcBQABAAAAERwFQ
AFAAEAR5AFuCK1BJQ18IX0hJRAtB0AhfQ1JTERgKFUcBIAAgAAACRwGgAKAAAAIiBAB5AFuCLlJU
Q18IX0hJRAxB0AsACF9DUlMRDQoKRwFwAHAAAQJ5ABQLX1NUQQCkVVJUQ1uCRQVIUEVUCF9ISUQM
QdABAwhfQ0lEDEHQDAEIX1VJRAAUC19TVEEApFVIUFQIQ1JTXxEXChQiAQAiAAGGCQABAADQ/gAE
AAB5ABQLX0NSUwCkQ1JTX1uCTQRTTUNfCF9ISUQMBhAAAQhfQ0lEDXNtYy1uYXBhABQLX1NUQQCk
VVNNQwhDUlNfERAKDUcBAAMAAwEgIkAAeQAUC19DUlMApENSU19bgjZTU0QwFAtfQURSAKROVk1B
FBVfU1RBAKAJk05WTUEApAChBKQKD1uCDVBSVDAIX0FEUgv//1uCMUdJR0UIX0hJRAxB0IOQFAtf
QURSAKROSUNBFBVfU1RBAKAJk05JQ0EApAChBKQKD1uCRwdHRlgwCF9BRFIMAAACABQdX1NUQQCg
EZCUTVNXTgCVTVNXTgoIpAChBKQKDxAfXF9HUEUUGF9MMDIAhlwvA19TQl9QQ0kwR0ZYMAqBFAZf
RE9TARQPX0RPRACkEgcBDAABAIBbghBWR0FfFApfQURSCKQLAAFbgkcJSERFRhROBl9EU00EcBIr
BA1sYXlvdXQtaWQAEQcKBAQAAAANUGluQ29uZmlndXJhdGlvbnMAEQIAYKAwk2gREwoQxre1oBgT
HESwyf5pXq+Um6AYk2kBoAyTagBwEQMBA2CkYKAGk2oBpGBwEQMBAGCkYBQLX0FEUgCkSERBQRQV
X1NUQQCgCZNIREFBAKQAoQSkCg9bgkMlQkFUMAhfSElEDEHQDAoIX1VJRAAQMVxfR1BFFCpfTDAw
AIZcLwNfU0JfUENJMEJBVDAKgIZcLwNfU0JfUENJMEFDX18KgFuAQ0JBVAELQEAKCFuBEENCQVQD
SURYMCBEQVQwIFuGRgVJRFgwREFUMANTVEFUIFBSQVQgUkNBUCBQVk9MIFVOSVQgRENBUCBMRkNQ
IEJURUMgRFZPTCBEV1JOIERMT1cgR1JOMSBHUk4yIEJTVEEgQVBTUiAUC19TVEEApEJTVEEIUEJJ
RhIuDQEM////fwz///9/AAz/////AAAKBAoEDTEADTAADVZCT1gADWlubm90ZWsACFBCU1QSEgQA
DP///38M////fwz///9/FE4PX0JJRgBwVU5JVIhQQklGAABwRENBUIhQQklGAQBwTEZDUIhQQklG
CgIAcEJURUOIUEJJRgoDAHBEVk9MiFBCSUYKBABwRFdSTohQQklGCgUAcERMT1eIUEJJRgoGAHBH
Uk4xiFBCSUYKBwBwR1JOMohQQklGCggAREJHXw1fQklGOgoASEVYNIOIUEJJRgAASEVYNIOIUEJJ
RgEASEVYNIOIUEJJRgoCAEhFWDSDiFBCSUYKAwBIRVg0g4hQQklGCgQASEVYNIOIUEJJRgoFAEhF
WDSDiFBCSUYKBgBIRVg0g4hQQklGCgcASEVYNIOIUEJJRgoIAKRQQklGFD1fQlNUAHBTVEFUiFBC
U1QAAHBQUkFUiFBCU1QBAHBSQ0FQiFBCU1QKAgBwUFZPTIhQQlNUCgMApFBCU1RbgkQEQUNfXwhf
SElEDUFDUEkwMDAzAAhfVUlEAAhfUENMEgYBX1NCXxQSX1BTUgCkXl4uQkFUMEFQU1IUCV9TVEEA
pAoPEEUjX1NCXxBOIlBDSTAIQ1JTXxFCBwpuiA0AAgwAAAAAAP8AAAAAAUcB+Az4DAEIiA0AAQwD
AAAAAPcMAAD4DIgNAAEMAwAAAA3//wAAAPOHFwAADAMAAAAAAAAKAP//CwAAAAAAAAACAIcXAAAM
AwAAAAAAAADg/////QAAAAAAAAAeeQAIVE9NXxEzCjCKKwAADAcAAAAAAAAAAAAAAAABAAAA////
/w8AAAAAAAAAAAAAAAAAAAAPAAAAeQAUQAtfQ1JTAIpDUlNfClxSQU1UikNSU18KaFJBTVJwTUVN
TFJBTVR0DAAAAP5SQU1UUkFNUqBGB5KTUE1OTgCgTAaRlU1TV04BlE1TV04KBo9UT01fCg5UTTRO
j1RPTV8KFlRNNFiPVE9NXwomVE00THdQTU5ODAAAAQBUTTROdHdQTU5YDAAAAQAAAVRNNFhydFRN
NFhUTTROAAFUTTRMhENSU19UT01fYqRipENSU18URQxfT1NDBAhTVVBQAAhDVFJMAIprAENEVzGK
awoEQ0RXMoprCghDRFczoEsIk2gREwoQW03bM/cfHECWV3RBwD3XZnBDRFcyU1VQUHBDRFczQ1RS
TERCR18NX09TQzogU1VQUD0ASEVYNFNVUFBEQkdfDSBDVFJMPQBIRVg0Q1RSTERCR18NCgB7Q1RS
TAoPQ1RSTKAWkpNDRFczQ1RSTH1DRFcxChBDRFcxcENUUkxDRFczpGuhDn1DRFcxCgRDRFcxpGsQ
Si5fU0JfW4EnLwNQQ0kwU0JSR1BDSUMBAEAwUElSQQhQSVJCCFBJUkMIUElSRAgIQlVGQREJCgYj
AIAYeQCLQlVGQQFJQ1JTFBZMU1RBAXtoCoBgoAVgpAoJoQSkCgsUF0xDUlMBe2gKD2B5AWBJQ1JT
pEJVRkEUFkxTUlMBi2gBSVNSU4JJU1JTYKR2YBQMTERJUwGkfWgKgABbgkEMTE5LQQhfSElEDEHQ
DA8IX1VJRAEUH19TVEEAREJHXw1MTktBLl9TVEEKAKRMU1RBUElSQRQbX1BSUwBEQkdfDUxOS0Eu
X1BSUwoApFBSU0EUI19ESVMAREJHXw1MTktBLl9ESVMKAHBMRElTUElSQVBJUkEUH19DUlMAREJH
Xw1MTktBLl9DUlMKAKRMQ1JTUElSQRQqX1NSUwFEQkdfDUxOS0EuX1NSUzogAEhFWF9MU1JTaHBM
U1JTaFBJUkFbgkIITE5LQghfSElEDEHQDA8IX1VJRAoCFA9fU1RBAKRMU1RBUElSQhQLX1BSUwCk
UFJTQhQTX0RJUwBwTERJU1BJUkJQSVJCFA9fQ1JTAKRMQ1JTUElSQhQqX1NSUwFEQkdfDUxOS0Iu
X1NSUzogAEhFWF9MU1JTaHBMU1JTaFBJUkJbgkIITE5LQwhfSElEDEHQDA8IX1VJRAoDFA9fU1RB
AKRMU1RBUElSQxQLX1BSUwCkUFJTQxQTX0RJUwBwTERJU1BJUkNQSVJDFA9fQ1JTAKRMQ1JTUElS
QxQqX1NSUwFEQkdfDUxOS0MuX1NSUzogAEhFWF9MU1JTaHBMU1JTaFBJUkNbgkIITE5LRAhfSElE
DEHQDA8IX1VJRAoEFA9fU1RBAKRMU1RBUElSRBQLX1BSUwCkUFJTRBQTX0RJUwBwTERJU1BJUkFQ
SVJEFA9fQ1JTAKRMQ1JTUElSRBQqX1NSUwFEQkdfDUxOS0QuX1NSUzogAEhFWF9MU1JTaHBMU1JT
aFBJUkQIX1MwXxIEAgAAoBN7UFdSUwoCAAhfUzFfEgQCAQGgFXtQV1JTChAACF9TNF8SBgIKBQoF
CF9TNV8SBgIKBQoFFCNfUFRTAURCR18NUHJlcGFyZSB0byBzbGVlcDogAEhFWF9o
====
begin-base64 644 FACP.1
RkFDUPQAAAAEKlZCT1ggIFZCT1hGQUNQAQAAAEFTTCBhAAAAQAL/NDAF/zQAAAkALkQAAKGgAAAA
QAAAAAAAAARAAAAAAAAAAAAAAAhAAAAgQAAAAAAAAAQCAAQCAAAAZQDpAwAAAAAAAAAAAAMAAEEF
AAABCAABUEAAAAAAAAAQAAAAQAL/NAAAAAAwBf80AAAAAAEgAAIAQAAAAAAAAAAAAAAAAAAAAAAA
AAEQAAIEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAMIQAAAAAAAAAEQAAEgQAAA
AAAAAAAAAAAAAAAAAAAAAA==
====
begin-base64 644 HPET.4
SFBFVDgAAAABflZCT1ggIFZCT1hIUEVUAQAAAEFTTCBhAAAAAaKGgABAAAAAAND+AAAAAAAAEAA=
====
begin-base64 644 MCFG.5
TUNGRzwAAAABTlZCT1ggIFZCT1hNQ0ZHAQAAAEFTTCBhAAAAAAAAAAAAAAAAAADcAAAAAAAAAD8A
AAAA
====
begin-base64 644 SSDT.6
U1NEVMwBAAAB4VZCT1ggIFZCT1hDUFVUAgAAAElOVEwoBRAgEEcaXF9QUl9bgwtDUFUwAAAAAAAA
W4MLQ1BVMQEAAAAAAKOjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj
o6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj
o6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj
o6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj
o6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj
o6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj
o6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj
o6Ojow==
====
begin-base64 644 XSDT.0
WFNEVEwAAAABE1ZCT1ggIFZCT1hYU0RUAQAAAEFTTCBhAAAAEAH/NAAAAACAAv80AAAAAOAC/zQA
AAAAIAP/NAAAAABgA/80AAAAAA==
====
begin-base64 644 headers
ClJTRCBQVFI6IENoZWNrc3VtPTQ1LCBPRU1JRD1WQk9YLCBSZXZpc2lvbj0yLCBSc2R0QWRkcmVz
cz0weDM0ZmYwMDAwCglMZW5ndGg9MzYsIFhzZHRBZGRyZXNzPTB4MDAwMDAwMDAzNGZmMDA0MCwg
RXh0ZW5kZWQgQ2hlY2tzdW09MTA1CgoKWFNEVDogTGVuZ3RoPTc2LCBSZXZpc2lvbj0xLCBDaGVj
a3N1bT0xOSwKCU9FTUlEPVZCT1gsIE9FTSBUYWJsZSBJRD1WQk9YWFNEVCwgT0VNIFJldmlzaW9u
PTB4MSwKCUNyZWF0b3IgSUQ9QVNMLCBDcmVhdG9yIFJldmlzaW9uPTB4NjEKCgoJRW50cmllcz17
IDB4MDAwMDAwMDAzNGZmMDExMCwgMHgwMDAwMDAwMDM0ZmYwMjgwLCAweDAwMDAwMDAwMzRmZjAy
ZTAsIDB4MDAwMDAwMDAzNGZmMDMyMCwgMHgwMDAwMDAwMDM0ZmYwMzYwIH0KCgoJRFNEVD0weDM0
ZmYwNTMwCglJTlRfTU9ERUw9UElDCglTQ0lfSU5UPTkKCVNNSV9DTUQ9MHg0NDJlLCBBQ1BJX0VO
QUJMRT0weGExLCBBQ1BJX0RJU0FCTEU9MHhhMCwgUzRCSU9TX1JFUT0weDAKCVBNMWFfRVZUX0JM
Sz0weDQwMDAtMHg0MDAzCglQTTFhX0NOVF9CTEs9MHg0MDA0LTB4NDAwNQoJUE0yX1RNUl9CTEs9
MHg0MDA4LTB4NDAwYgoJUE0yX0dQRTBfQkxLPTB4NDAyMC0weDQwMjEKCVBfTFZMMl9MQVQ9MTAx
bXMsIFBfTFZMM19MQVQ9MTAwMW1zCglGTFVTSF9TSVpFPTAsIEZMVVNIX1NUUklERT0wCglEVVRZ
X09GRlNFVD0wLCBEVVRZX1dJRFRIPTAKCURBWV9BTFJNPTAsIE1PTl9BTFJNPTAsIENFTlRVUlk9
MAoJRmxhZ3M9e1dCSU5WRCxGSVhfUlRDLFRNUl9WQUxfRVhUfQoKCkRTRFQ6IExlbmd0aD04OTk3
LCBSZXZpc2lvbj0yLCBDaGVja3N1bT0yMTYsCglPRU1JRD1WQk9YLCBPRU0gVGFibGUgSUQ9VkJP
WEJJT1MsIE9FTSBSZXZpc2lvbj0weDIsCglDcmVhdG9yIElEPUlOVEwsIENyZWF0b3IgUmV2aXNp
b249MHgyMDEwMDUyOAoKCkFQSUM6IExlbmd0aD05MiwgUmV2aXNpb249MiwgQ2hlY2tzdW09Nzcs
CglPRU1JRD1WQk9YLCBPRU0gVGFibGUgSUQ9VkJPWEFQSUMsIE9FTSBSZXZpc2lvbj0weDEsCglD
cmVhdG9yIElEPUFTTCwgQ3JlYXRvciBSZXZpc2lvbj0weDYxCgoKSFBFVDogTGVuZ3RoPTU2LCBS
ZXZpc2lvbj0xLCBDaGVja3N1bT0xMjYsCglPRU1JRD1WQk9YLCBPRU0gVGFibGUgSUQ9VkJPWEhQ
RVQsIE9FTSBSZXZpc2lvbj0weDEsCglDcmVhdG9yIElEPUFTTCwgQ3JlYXRvciBSZXZpc2lvbj0w
eDYxCgoKTUNGRzogTGVuZ3RoPTYwLCBSZXZpc2lvbj0xLCBDaGVja3N1bT03OCwKCU9FTUlEPVZC
T1gsIE9FTSBUYWJsZSBJRD1WQk9YTUNGRywgT0VNIFJldmlzaW9uPTB4MSwKCUNyZWF0b3IgSUQ9
QVNMLCBDcmVhdG9yIFJldmlzaW9uPTB4NjEKCgpTU0RUOiBMZW5ndGg9NDYwLCBSZXZpc2lvbj0x
LCBDaGVja3N1bT0yMjUsCglPRU1JRD1WQk9YLCBPRU0gVGFibGUgSUQ9VkJPWENQVVQsIE9FTSBS
ZXZpc2lvbj0weDIsCglDcmVhdG9yIElEPUlOVEwsIENyZWF0b3IgUmV2aXNpb249MHgyMDEwMDUy
OAoK
====

Reply | Threaded
Open this post in threaded view
|

Re: IPv6 trouble at startup in VirtualBox on macOS

Claudio Jeker-3
On Wed, May 20, 2020 at 07:00:56PM -0400, Jason Mader wrote:

> >Synopsis: IPv6 Internet hosts unreachable without a workaround
> >Category: system amd64
> >Environment:
> System      : OpenBSD 6.7
> Details     : OpenBSD 6.7 (GENERIC.MP) #182: Thu May  7 11:11:58 MDT 2020
> [hidden email]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
>
> Architecture: OpenBSD.amd64
> Machine     : amd64
> >Description:
> OpenBSD 6.7 guest in VirtualBox 6.1.8 on host macOS 10.15.4 where the
> VM has an IPv6-only bridge network interface over en0 (MacBook Pro
> Wi-Fi), it's not possible to reach hosts beyond the gateway when
> OpenBSD is started.
>
> It is possible to secure shell from the host OS to the OpenBSD guest
> OS, but any attempt from OpenBSD to reach hosts outside the local
> network (dns, ntpd, etc.) fails.
> >How-To-Repeat:
> On the OpenBSD guest, a `ping6 2607:f8b0:4004:808::2004`
> (www.google.com) doesn't have a response. A packet capture on the host
> OS shows that the echo packet is going out, and the reply is coming
> back. The reply just doesn't seem to register on the OpenBSD guest.
>
> That is, until I trigger the workaround described below.
> >Fix:
> While looking into this, by happenstance I noticed that right after I
> `ping6` the gateway router that networking immediately starts to work
> correctly. I tried putting a "!ping6" command in hostname.vio0 but at
> the point when this is run the messages show no route to host. So the
> workaround I have is to put "ping6 -c 1 $gateway" in /etc/rc right
> before "echo -n 'starting early daemons:'" and that is good enough
> that the subsequent daemons (like ntpd) will start and be able to
> resolve dns and reach destinations.
>
> Of course it could be a problem with VirtualBox, but I wanted to share
> this. I also hoped to find a better workaround than editing /etc/rc to
> trigger the `ping6` or other helper at a point before networking is
> needed.
>

This could be an issue with blocking ND packets in pf.conf.
Unlike ARP neighbor discovery uses multicast IPv6 packets which get
filtered by pf.conf. So something like this may help:

# allow IPv6 router side
pass in inet6 proto icmp6 icmp6-type { routersol neighbrsol }
# allow IPv6 client side on external
pass in on external inet6 proto icmp6 icmp6-type { routeradv neighbradv }

--
:wq Claudio

Reply | Threaded
Open this post in threaded view
|

Re: IPv6 trouble at startup in VirtualBox on macOS

Jason Mader-3
On Thu, May 21, 2020 at 3:39 AM Claudio Jeker wrote:

>
> On Wed, May 20, 2020 at 07:00:56PM -0400, Jason Mader wrote:
> > >Synopsis: IPv6 Internet hosts unreachable without a workaround
> > >Category: system amd64
> > >Environment:
> > System      : OpenBSD 6.7
> > Details     : OpenBSD 6.7 (GENERIC.MP) #182: Thu May  7 11:11:58 MDT 2020
> > [hidden email]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> >
> > Architecture: OpenBSD.amd64
> > Machine     : amd64
> > >Description:
> > OpenBSD 6.7 guest in VirtualBox 6.1.8 on host macOS 10.15.4 where the
> > VM has an IPv6-only bridge network interface over en0 (MacBook Pro
> > Wi-Fi), it's not possible to reach hosts beyond the gateway when
> > OpenBSD is started.
> >
> > It is possible to secure shell from the host OS to the OpenBSD guest
> > OS, but any attempt from OpenBSD to reach hosts outside the local
> > network (dns, ntpd, etc.) fails.
> > >How-To-Repeat:
> > On the OpenBSD guest, a `ping6 2607:f8b0:4004:808::2004`
> > (www.google.com) doesn't have a response. A packet capture on the host
> > OS shows that the echo packet is going out, and the reply is coming
> > back. The reply just doesn't seem to register on the OpenBSD guest.
> >
> > That is, until I trigger the workaround described below.
> > >Fix:
> > While looking into this, by happenstance I noticed that right after I
> > `ping6` the gateway router that networking immediately starts to work
> > correctly. I tried putting a "!ping6" command in hostname.vio0 but at
> > the point when this is run the messages show no route to host. So the
> > workaround I have is to put "ping6 -c 1 $gateway" in /etc/rc right
> > before "echo -n 'starting early daemons:'" and that is good enough
> > that the subsequent daemons (like ntpd) will start and be able to
> > resolve dns and reach destinations.
> >
> > Of course it could be a problem with VirtualBox, but I wanted to share
> > this. I also hoped to find a better workaround than editing /etc/rc to
> > trigger the `ping6` or other helper at a point before networking is
> > needed.
> >
>
> This could be an issue with blocking ND packets in pf.conf.
> Unlike ARP neighbor discovery uses multicast IPv6 packets which get
> filtered by pf.conf. So something like this may help:
>
> # allow IPv6 router side
> pass in inet6 proto icmp6 icmp6-type { routersol neighbrsol }
> # allow IPv6 client side on external
> pass in on external inet6 proto icmp6 icmp6-type { routeradv neighbradv }
>

I gave your suggestion a try as,

pass in inet6 proto ipv6-icmp all icmp6-type routersol
pass in inet6 proto ipv6-icmp all icmp6-type neighbrsol
pass in on external inet6 proto ipv6-icmp all icmp6-type routeradv
pass in on external inet6 proto ipv6-icmp all icmp6-type neighbradv
block return all
pass all flags S/SA
block return in on ! lo0 proto tcp from any to any port 6000:6010
block return out log proto tcp all user = 55
block return out log proto udp all user = 55

but it didn't work. I tried booting pf=NO. I also tried that the host
OS has the $gateway in it's address mapping table while the OpenBSD
guest is booting and tried adding a static NDP entry in OpenBSD. But
so far, only `ping6` to the $gateway get's the networking working. I
played with `traceroute6` to destinations beyond the $gateway, but
that doesn't work. The workaround has to be to send something directly
to the $gateway and then everything starts working.

I have noticed some cases where `ping6 $gateway` doesn't work and the
$gateway is in the OpenBSD guest's address mapping table. Deleting the
entry, and then doing the `ping6` will get the network working.
Meanwhile, from the $gateway device I can `ping6` OpenBSD.

Reply | Threaded
Open this post in threaded view
|

Re: IPv6 trouble at startup in VirtualBox on macOS

Jason Mader-3
Another observation as I look into this, when I remove /etc/pf.conf
and use the initial temporary pf RULES set in /etc/rc a couple of
unexpected things happen. The `ping6 $gateway` workaround in /etc/rc
right before 'starting early daemons:' doesn't work, ping6 reports No
route to host. There is no rule echoreq for inet6.

But, after the system is up, I can ssh to it briefly before the ssh
session is frozen and disconnected. Disabling pf (from the console)
when ssh has frozen will immediately unfreeze the ssh session so it
will not disconnect. Is that the expected behavior of these initial
temporary pf RULES? (These initial rules also have the NDP passes that
Claudio suggested.)

block drop all
pass out inet6 proto ipv6-icmp all icmp6-type neighbrsol
pass out inet6 proto ipv6-icmp all icmp6-type routersol
pass out inet6 proto udp from any port = 546 to any port = 547
pass out inet proto icmp all icmp-type echoreq
pass out inet proto udp from any port = 68 to any port = 67
pass out proto tcp from any to any port = 53 flags S/SA
pass out proto udp from any to any port = 53
pass in inet6 proto ipv6-icmp all icmp6-type neighbradv
pass in inet6 proto ipv6-icmp all icmp6-type routeradv
pass in inet6 proto udp from any port = 547 to any port = 546
pass in proto tcp from any to any port = 22 flags S/SA
pass in inet proto udp from any port = 67 to any port = 68
pass on lo0 all flags S/SA
pass in proto carp all keep state (no-sync)
pass out proto carp all !received-on any keep state (no-sync)

Reply | Threaded
Open this post in threaded view
|

Re: IPv6 trouble at startup in VirtualBox on macOS

Jason Mader-3
In reply to this post by Jason Mader-3
On Wed, May 20, 2020 at 7:00 PM Jason Mader wrote:

>
> >Synopsis: IPv6 Internet hosts unreachable without a workaround
> >Category: system amd64
> >Environment:
> System      : OpenBSD 6.7
> Details     : OpenBSD 6.7 (GENERIC.MP) #182: Thu May  7 11:11:58 MDT 2020
> [hidden email]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
>
> Architecture: OpenBSD.amd64
> Machine     : amd64
> >Description:
> OpenBSD 6.7 guest in VirtualBox 6.1.8 on host macOS 10.15.4 where the
> VM has an IPv6-only bridge network interface over en0 (MacBook Pro
> Wi-Fi), it's not possible to reach hosts beyond the gateway when
> OpenBSD is started.
>
> It is possible to secure shell from the host OS to the OpenBSD guest
> OS, but any attempt from OpenBSD to reach hosts outside the local
> network (dns, ntpd, etc.) fails.
> >How-To-Repeat:
> On the OpenBSD guest, a `ping6 2607:f8b0:4004:808::2004`
> (www.google.com) doesn't have a response. A packet capture on the host
> OS shows that the echo packet is going out, and the reply is coming
> back. The reply just doesn't seem to register on the OpenBSD guest.
>
> That is, until I trigger the workaround described below.
> >Fix:
> While looking into this, by happenstance I noticed that right after I
> `ping6` the gateway router that networking immediately starts to work
> correctly. I tried putting a "!ping6" command in hostname.vio0 but at
> the point when this is run the messages show no route to host. So the
> workaround I have is to put "ping6 -c 1 $gateway" in /etc/rc right
> before "echo -n 'starting early daemons:'" and that is good enough
> that the subsequent daemons (like ntpd) will start and be able to
> resolve dns and reach destinations.
>
> Of course it could be a problem with VirtualBox, but I wanted to share
> this. I also hoped to find a better workaround than editing /etc/rc to
> trigger the `ping6` or other helper at a point before networking is
> needed.

Another workaround is to add `-autoconfprivacy` to the hostname.vio0
configuration. Then no `ping6 $gateway` is required, and the network
is working.