>Synopsis:      rtadvd does not detect dynamic changes to monitored
interface
>Category:      system
>Environment:
        System      : OpenBSD 5.8
        Details     : OpenBSD 5.8 (GENERIC.MP) #1: Mon Nov  2 11:58:21
EST 2015
                        
r...@d2500.midnightnetworks.com:/usr/src/sys/arch/amd64/compile/GENERIC.MP

        Architecture: OpenBSD.amd64
        Machine     : amd64
>Description:
        rtadvd is designed to detect and automatically determine which
prefixes are local to a specific link when it is fired up without
        a configuration file and just started with an interface
identifier as a command line argument.

        It is able to detect automatically when an IPv6 address is added
to the monitored interface and discern the prefix on it's own
        and start sending out Advertisements with the prefix on that
same interface announcing itself as the default gateway for that
        prefix.

        Starting with about OpenBSD 5.5 or 5.6 I noticed the daemon
would pickup the available prefixes on the monitored interface
        upon startup, but not detect when an address was either removed
or added.  Addresses removed, continued to have the
        prefix advertised, and addresses added would not be advertised
until the daemon was restarted.

        The delay in reporting this was because the daemon does pickup
the information initially upon startup and thus does mostly work.
        And since IPv6 addressing changes on my network are not frequent
I didn't have a way to easily confirm if my initial suspicions
        were reproducible without affecting my network with testing. 
But now some other change in the boot process or the other
        software I use to provision my IPv6 connectivity (or my ISP now
responds slower), it won't even detect the first address added
        to the monitored interface after boot up, because the rtadvd
daemon has already started way before my other dhcpv6 client
        has had the opportunity to ask for and receive a delegated
prefix.  So after my firewall box reboots, I have to login and manually
        restart rtadvd after I confirm I have a valid IPv6 address on
the internal interface I run rtadvd on before hosts on my internal
        network can gain IPv6 connectivity.
>How-To-Repeat:
        Install a recent version of OpenBSD 5.8 and enable IPv6 on at
least 1 interface.
        Load rtadvd with that interface identifier as the sole command
line argument.
        Now add an IPv6 address to that interface and then proceed to
send a SIGUSR1 signal to it's PID, and check /var/log/daemon and
        notice it does not have knowledge of the newly added IPv6
address and it's prefix.

        Restart daemon and send another -SIGUSR1 and now notice it is
aware of the prefix.
        Delete that address and send yet another -SIGUSR1 and notice it
still thinks it should be advertising for that prefix that was removed.
>Fix:
        I do not know what method rtadvd employs to detect changes in
the monitored interface's addressing.
        A member of the mailing list who also has some experience with
IPv6 suggested it monitors the routing table for changes to routes
        on that interface.  But I am not sure.

        Only available work around is to restart daemon every time there
is an IPv6 addressing change on that interface.


dmesg:
OpenBSD 5.8 (GENERIC.MP) #1: Mon Nov  2 11:58:21 EST 2015
   
r...@d2500.midnightnetworks.com:/usr/src/sys/arch/amd64/compile/GENERIC.MP
RTC BIOS diagnostic error 80<clock_battery>
real mem = 4259938304 (4062MB)
avail mem = 4126941184 (3935MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.7 @ 0xeb940 (27 entries)
bios0: vendor Intel Corp. version "CCCDT10N.86A.0040.2014.0520.1400"
date 05/20/2014
bios0: Intel Corporation D2500CC
acpi0 at bios0: rev 2
acpi0: sleep states S0 S3 S4 S5
acpi0: tables DSDT FACP SSDT APIC MCFG HPET
acpi0: wakeup devices SLT1(S4) PS2M(S4) PS2K(S4) UAR1(S3) UAR2(S3)
UAR3(S4) UAR4(S4) USB0(S3) USB1(S3) USB2(S3) USB3(S3) USB7(S3) PXSX(S4)
RP01(S4) PXSX(S4) RP02(S4) [...]
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Atom(TM) CPU D2500 @ 1.86GHz, 1867.00 MHz
cpu0:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,DTES64,MWAIT,DS-CPL,TM2,SSSE3,CX16,xTPR,PDCM,MOVBE,NXE,LONG,LAHF,PERF,ITSC,SENSOR,ARAT
cpu0: 512KB 64b/line 8-way L2 cache
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 7 var ranges, 88 fixed ranges
cpu0: apic clock running at 133MHz
cpu0: mwait min=64, max=64, C-substates=0.1, IBE
cpu1 at mainbus0: apid 1 (application processor)
cpu1: Intel(R) Atom(TM) CPU D2500 @ 1.86GHz, 1866.74 MHz
cpu1:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,DTES64,MWAIT,DS-CPL,TM2,SSSE3,CX16,xTPR,PDCM,MOVBE,NXE,LONG,LAHF,PERF,ITSC,SENSOR,ARAT
cpu1: 512KB 64b/line 8-way L2 cache
cpu1: smt 0, core 1, package 0
ioapic0 at mainbus0: apid 8 pa 0xfec00000, version 20, 24 pins
ioapic0: misconfigured as apic 0, remapped to apid 8
acpimcfg0 at acpi0 addr 0xe0000000, bus 0-63
acpihpet0 at acpi0: 14318179 Hz
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus 3 (P0P1)
acpiprt2 at acpi0: bus 2 (RP01)
acpiprt3 at acpi0: bus 1 (RP02)
acpiprt4 at acpi0: bus -1 (RP03)
acpiprt5 at acpi0: bus -1 (RP04)
acpicpu0 at acpi0: C1(@1 halt!)
acpicpu1 at acpi0: C1(@1 halt!)
acpibtn0 at acpi0: PWRB
acpibtn1 at acpi0: SLPB
acpivideo0 at acpi0: GFX0
acpivout0 at acpivideo0: DD02
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel Atom D2000/N2000 Host" rev 0x04
vga1 at pci0 dev 2 function 0 "Intel Atom D2000/N2000 Video" rev 0x0b
intagp at vga1 not configured
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
ppb0 at pci0 dev 28 function 0 "Intel 82801GB PCIE" rev 0x02: msi
pci1 at ppb0 bus 2
em0 at pci1 dev 0 function 0 "Intel 82574L" rev 0x00: msi, address
00:22:4d:b4:1e:76
ppb1 at pci0 dev 28 function 1 "Intel 82801GB PCIE" rev 0x02: msi
pci2 at ppb1 bus 1
em1 at pci2 dev 0 function 0 "Intel 82574L" rev 0x00: msi, address
00:22:4d:b4:1e:7a
uhci0 at pci0 dev 29 function 0 "Intel 82801GB USB" rev 0x02: apic 8 int 23
uhci1 at pci0 dev 29 function 1 "Intel 82801GB USB" rev 0x02: apic 8 int 19
uhci2 at pci0 dev 29 function 2 "Intel 82801GB USB" rev 0x02: apic 8 int 18
uhci3 at pci0 dev 29 function 3 "Intel 82801GB USB" rev 0x02: apic 8 int 16
ehci0 at pci0 dev 29 function 7 "Intel 82801GB USB" rev 0x02: apic 8 int 23
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
ppb2 at pci0 dev 30 function 0 "Intel 82801BAM Hub-to-PCI" rev 0xe2
pci3 at ppb2 bus 3
em2 at pci3 dev 0 function 0 "Intel 82541GI" rev 0x05: apic 8 int 20,
address 00:1b:21:4e:d4:a2
pcib0 at pci0 dev 31 function 0 "Intel NM10 LPC" rev 0x02
ahci0 at pci0 dev 31 function 2 "Intel 82801GR AHCI" rev 0x02: msi, AHCI 1.1
ahci0: port 0: 3.0Gb/s
scsibus1 at ahci0: 32 targets
sd0 at scsibus1 targ 0 lun 0: <ATA, KINGSTON SV100S2, 1205> SCSI3
0/direct fixed t10.ATA_KINGSTON_SV100S232G_50026B722601482B_
sd0: 30533MB, 512 bytes/sector, 62533296 sectors, thin
ichiic0 at pci0 dev 31 function 3 "Intel 82801GB SMBus" rev 0x02: apic 8
int 19
iic0 at ichiic0
lm1 at iic0 addr 0x2d: W83627DHG
spdmem0 at iic0 addr 0x51: 4GB DDR3 SDRAM PC3-10600 SO-DIMM
usb1 at uhci0: USB revision 1.0
uhub1 at usb1 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb2 at uhci1: USB revision 1.0
uhub2 at usb2 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb3 at uhci2: USB revision 1.0
uhub3 at usb3 "Intel UHCI root hub" rev 1.00/1.00 addr 1
usb4 at uhci3: USB revision 1.0
uhub4 at usb4 "Intel UHCI root hub" rev 1.00/1.00 addr 1
isa0 at pcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
wbsio0 at isa0 port 0x2e/2: W83627UHG rev 0x32
lm2 at wbsio0 port 0x290/8: W83627DHG
lm1: disabling sensors due to alias with lm2
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
root on sd0a (2864f309e4ec4b06.a) swap on sd0b dump on sd0b

usbdevs:
Controller /dev/usb0:
addr 1: high speed, self powered, config 1, EHCI root hub(0x0000),
Intel(0x8086), rev 1.00
 port 1 powered
 port 2 powered
 port 3 powered
 port 4 powered
 port 5 powered
 port 6 powered
 port 7 powered
 port 8 powered
Controller /dev/usb1:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000),
Intel(0x8086), rev 1.00
 port 1 powered
 port 2 powered
Controller /dev/usb2:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000),
Intel(0x8086), rev 1.00
 port 1 powered
 port 2 powered
Controller /dev/usb3:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000),
Intel(0x8086), rev 1.00
 port 1 powered
 port 2 powered
Controller /dev/usb4:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000),
Intel(0x8086), rev 1.00
 port 1 powered
 port 2 powered


Reply via email to