SOII address changed after upgrading

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

SOII address changed after upgrading

Sebastien Marie-3
Hi,

I upgraded several hosts (i386 and amd64) and the stable ipv6 address
generated using soii (Semantically Opaque Interface Identifiers)
changed... (which is relatively annoying as I mostly use ipv6 on my
local network per default but there are double-stack hosts, so I was
still able to connect to them).

As side note, I think the fact default ipv6 address changed from
previous-SOII world (MAC based address) to with-SOII world (SOII based
address) deserve an entry in current.html, in order to let people
anticipates some connectivity issue if they use only ipv6 to connect to
hosts.


I have a changed address on:
 - two i386 hosts (OpenBSD 6.2-current (GENERIC) #405: Tue Feb 27 14:48:56 MST 2018 to OpenBSD 6.3-beta (GENERIC) #435: Sun Mar 11 18:46:33 MDT 2018)
 - one amd64 host (OpenBSD 6.3-beta (GENERIC.MP) #25: Fri Mar  2 14:41:23 MST 2018 to OpenBSD 6.3-beta (GENERIC.MP) #49: Sun Mar 11 18:36:26 MDT 2018)


Here the configuration of one of i386 host (full dmesg below).

# cat /etc/hostname.fxp0
dhcp
inet6 autoconf

# ifconfig fxp0
fxp0: flags=208843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6> mtu 1500
        lladdr 00:50:8b:a1:41:b1
        index 1 priority 0 llprio 3
        groups: egress
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet 192.168.92.20 netmask 0xffffff00 broadcast 192.168.92.255
        inet6 fe80::63c6:bbd3:6c92:e885%fxp0 prefixlen 64 scopeid 0x1
        inet6 2001:41d0:fe39:c05c:7d0:2d69:fde8:5140 prefixlen 64 autoconf pltime 604712 vltime 2591912
        inet6 2001:41d0:fe39:c05c:3bce:3130:727b:826c prefixlen 64 autoconf autoconfprivacy pltime 85316 vltime 603752


The soii.key didn't changed: it is still the same file across upgrades.

# ls -l /etc/soii.key
-rw-------  1 root  wheel  33 Feb 17 06:57 /etc/soii.key


Network output from daily (before upgrading):

Name    Mtu   Network     Address              Ipkts Ierrs    Opkts Oerrs Colls
lo0     32768 <Link>                               0     0        0     0     0
lo0     32768 ::1/128     ::1                      0     0        0     0     0
lo0     32768 fe80::%lo0/64 fe80::1%lo0              0     0        0     0     0
lo0     32768 127/8       127.0.0.1                0     0        0     0     0
fxp0    1500  <Link>      00:50:8b:a1:41:b1   197236     0    16540     0     0
fxp0    1500  192.168.92/24 192.168.92.20       197236     0    16540     0     0
fxp0    1500  fe80::%fxp0/64 fe80::63c6:bbd3:6c92:e885%fxp0   197236     0    16540     0     0
fxp0    1500  2001:41d0:fe39:c05c::/64 2001:41d0:fe39:c05c:2626:1515:408d:6b80   197236     0    16540     0     0
fxp0    1500  2001:41d0:fe39:c05c::/64 2001:41d0:fe39:c05c:b8c1:c165:d91:6678   197236     0    16540     0     0
fxp0    1500  2001:41d0:fe39:c05c::/64 2001:41d0:fe39:c05c:88da:ddc8:ad5f:fe5b   197236     0    16540     0     0
fxp0    1500  2001:41d0:fe39:c05c::/64 2001:41d0:fe39:c05c:1c38:428d:d2c3:121d   197236     0    16540     0     0
fxp0    1500  2001:41d0:fe39:c05c::/64 2001:41d0:fe39:c05c:ac38:395d:d1d0:8b34   197236     0    16540     0     0
fxp0    1500  2001:41d0:fe39:c05c::/64 2001:41d0:fe39:c05c:863:207f:bd05:9376   197236     0    16540     0     0
fxp0    1500  2001:41d0:fe39:c05c::/64 2001:41d0:fe39:c05c:8c01:665c:b1ad:9796   197236     0    16540     0     0
fxp0    1500  2001:41d0:fe39:c05c::/64 2001:41d0:fe39:c05c:d8b4:cbc8:7939:7f9b   197236     0    16540     0     0
enc0*   0     <Link>                               0     0        0     0     0
pflog0  33172 <Link>                               0     0    72191     0     0


The previous SOII address was 2001:41d0:fe39:c05c:2626:1515:408d:6b80


Network output from daily (after upgrading):

network:
Name    Mtu   Network     Address              Ipkts Ierrs    Opkts Oerrs Colls
lo0     32768 <Link>                               0     0        0     0     0
lo0     32768 ::1/128     ::1                      0     0        0     0     0
lo0     32768 fe80::%lo0/64 fe80::1%lo0              0     0        0     0     0
lo0     32768 127/8       127.0.0.1                0     0        0     0     0
fxp0    1500  <Link>      00:50:8b:a1:41:b1      310     0       92     0     0
fxp0    1500  192.168.92/24 192.168.92.20          310     0       92     0     0
fxp0    1500  fe80::%fxp0/64 fe80::63c6:bbd3:6c92:e885%fxp0      310     0       92     0     0
fxp0    1500  2001:41d0:fe39:c05c::/64 2001:41d0:fe39:c05c:7d0:2d69:fde8:5140      310     0       92     0     0
fxp0    1500  2001:41d0:fe39:c05c::/64 2001:41d0:fe39:c05c:3bce:3130:727b:826c      310     0       92     0     0
enc0*   0     <Link>                               0     0        0     0     0
pflog0  33172 <Link>                               0     0       35     0     0


The new SOII address is 2001:41d0:fe39:c05c:7d0:2d69:fde8:5140

I tried to reboot to see if some uninitialized data could have altered
the generated address (as it is a hash), but the host keep the new SOII
address across reboot (and due to KARL, it is a new kernel that was
booted).


dmesg (with buffer showing previous dmesg GENERIC #405, RAMDISK_CD #432,
GENERIC #435, GENERIC #435)

OpenBSD 6.2-current (GENERIC) #405: Tue Feb 27 14:48:56 MST 2018
    [hidden email]:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Intel Pentium III ("GenuineIntel" 686-class, 512KB L2 cache) 449 MHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PSE36,MMX,FXSR,SSE,PERF
real mem  = 200818688 (191MB)
avail mem = 183250944 (174MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: date 02/10/99, BIOS32 rev. 0 @ 0xec700, SMBIOS rev. 2.1 @ 0xf1941 (48 entries)
bios0: vendor Compaq version "686T5" date 02/10/99
bios0: Compaq Deskpro EN Series SFF
acpi0 at bios0: rev 0
acpi0: sleep states S0 S1 S4 S5, can't enable ACPI
bios0: ROM list: 0xc0000/0x8000 0xe0000/0x8000!
cpu0 at mainbus0: (uniprocessor)
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
pci0 at mainbus0 bus 0: configuration mode 1 (bios)
pchb0 at pci0 dev 0 function 0 "Intel 82443BX AGP" rev 0x03
intelagp0 at pchb0
agp0 at intelagp0: aperture at 0x44000000, size 0x4000000
ppb0 at pci0 dev 1 function 0 "Intel 82443BX AGP" rev 0x03
pci1 at ppb0 bus 1
vga1 at pci1 dev 0 function 0 "ATI Rage Pro" rev 0x5c
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
fxp0 at pci0 dev 10 function 0 "Intel 8255x" rev 0x05, i82558: irq 11, address 00:50:8b:a1:41:b1
inphy0 at fxp0 phy 1: i82555 10/100 PHY, rev. 0
piixpcib0 at pci0 dev 20 function 0 "Intel 82371AB PIIX4 ISA" rev 0x02
pciide0 at pci0 dev 20 function 1 "Intel 82371AB IDE" rev 0x01: DMA, channel 0 wired to compatibility, channel 1 wired to compatibility
wd0 at pciide0 channel 0 drive 0: <WDC WD100BA>
wd0: 16-sector PIO, LBA, 9541MB, 19541088 sectors
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2
atapiscsi0 at pciide0 channel 1 drive 0
scsibus1 at atapiscsi0: 2 targets
cd0 at scsibus1 targ 0 lun 0: <COMPAQ, CD-ROM CRN-8241B, 2.15> ATAPI 5/cdrom removable
cd0(pciide0:1:0): using PIO mode 4, DMA mode 2
uhci0 at pci0 dev 20 function 2 "Intel 82371AB USB" rev 0x01: irq 11
piixpm0 at pci0 dev 20 function 3 "Intel 82371AB Power" rev 0x02: SMI
iic0 at piixpm0
admtemp0 at iic0 addr 0x4c: adm1021
spdmem0 at iic0 addr 0x50: 64MB SDRAM non-parity PC100CL2
spdmem1 at iic0 addr 0x51: 128MB SDRAM non-parity PC133CL2
isa0 at piixpcib0
isadma0 at isa0
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
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
sb0 at isa0 port 0x220/24 irq 5 drq 1: dsp v3.01
midi0 at sb0: <SB MIDI UART>
audio0 at sb0
opl at sb0 not configured
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
usb0 at uhci0: USB revision 1.0
uhub0 at usb0 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 addr 1
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
root on wd0a (27bd8f55e67324d4.a) swap on wd0b dump on wd0b
fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
syncing disks... done
rebooting...
OpenBSD 6.3-beta (RAMDISK_CD) #432: Sun Mar 11 19:00:59 MDT 2018
    [hidden email]:/usr/src/sys/arch/i386/compile/RAMDISK_CD
cpu0: Intel Pentium III ("GenuineIntel" 686-class, 512KB L2 cache) 449 MHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PSE36,MMX,FXSR,SSE,PERF
real mem  = 200863744 (191MB)
avail mem = 188051456 (179MB)
mainbus0 at root
bios0 at mainbus0: date 02/10/99, BIOS32 rev. 0 @ 0xec700, SMBIOS rev. 2.1 @ 0xf1941 (48 entries)
bios0: vendor Compaq version "686T5" date 02/10/99
bios0: Compaq Deskpro EN Series SFF
acpi0 at bios0: rev 0, can't enable ACPI
bios0: ROM list: 0xc0000/0x8000 0xe0000/0x8000!
cpu0 at mainbus0: (uniprocessor)
pci0 at mainbus0 bus 0: configuration mode 1 (bios)
pchb0 at pci0 dev 0 function 0 "Intel 82443BX AGP" rev 0x03
ppb0 at pci0 dev 1 function 0 "Intel 82443BX AGP" rev 0x03
pci1 at ppb0 bus 1
vga1 at pci1 dev 0 function 0 "ATI Rage Pro" rev 0x5c
vga1: aperture needed
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
fxp0 at pci0 dev 10 function 0 "Intel 8255x" rev 0x05, i82558: irq 11, address 00:50:8b:a1:41:b1
inphy0 at fxp0 phy 1: i82555 10/100 PHY, rev. 0
pcib0 at pci0 dev 20 function 0 "Intel 82371AB PIIX4 ISA" rev 0x02
pciide0 at pci0 dev 20 function 1 "Intel 82371AB IDE" rev 0x01: DMA, channel 0 wired to compatibility, channel 1 wired to compatibility
wd0 at pciide0 channel 0 drive 0: <WDC WD100BA>
wd0: 16-sector PIO, LBA, 9541MB, 19541088 sectors
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2
atapiscsi0 at pciide0 channel 1 drive 0
scsibus0 at atapiscsi0: 2 targets
cd0 at scsibus0 targ 0 lun 0: <COMPAQ, CD-ROM CRN-8241B, 2.15> ATAPI 5/cdrom removable
cd0(pciide0:1:0): using PIO mode 4, DMA mode 2
uhci0 at pci0 dev 20 function 2 "Intel 82371AB USB" rev 0x01: irq 11
"Intel 82371AB Power" rev 0x02 at pci0 dev 20 function 3 not configured
isa0 at pcib0
isadma0 at isa0
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pckbd0 at pckbc0 (kbd slot)
wskbd0 at pckbd0: console keyboard, using wsdisplay0
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
usb0 at uhci0: USB revision 1.0
uhub0 at usb0 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 addr 1
softraid0 at root
scsibus1 at softraid0: 256 targets
root on rd0a swap on rd0b dump on rd0b
fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
syncing disks... done
rebooting...
OpenBSD 6.3-beta (GENERIC) #435: Sun Mar 11 18:46:33 MDT 2018
    [hidden email]:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Intel Pentium III ("GenuineIntel" 686-class, 512KB L2 cache) 449 MHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PSE36,MMX,FXSR,SSE,PERF
real mem  = 200818688 (191MB)
avail mem = 183238656 (174MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: date 02/10/99, BIOS32 rev. 0 @ 0xec700, SMBIOS rev. 2.1 @ 0xf1941 (48 entries)
bios0: vendor Compaq version "686T5" date 02/10/99
bios0: Compaq Deskpro EN Series SFF
acpi0 at bios0: rev 0
acpi0: sleep states S0 S1 S4 S5, can't enable ACPI
bios0: ROM list: 0xc0000/0x8000 0xe0000/0x8000!
cpu0 at mainbus0: (uniprocessor)
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
pci0 at mainbus0 bus 0: configuration mode 1 (bios)
pchb0 at pci0 dev 0 function 0 "Intel 82443BX AGP" rev 0x03
intelagp0 at pchb0
agp0 at intelagp0: aperture at 0x44000000, size 0x4000000
ppb0 at pci0 dev 1 function 0 "Intel 82443BX AGP" rev 0x03
pci1 at ppb0 bus 1
vga1 at pci1 dev 0 function 0 "ATI Rage Pro" rev 0x5c
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
fxp0 at pci0 dev 10 function 0 "Intel 8255x" rev 0x05, i82558: irq 11, address 00:50:8b:a1:41:b1
inphy0 at fxp0 phy 1: i82555 10/100 PHY, rev. 0
piixpcib0 at pci0 dev 20 function 0 "Intel 82371AB PIIX4 ISA" rev 0x02
pciide0 at pci0 dev 20 function 1 "Intel 82371AB IDE" rev 0x01: DMA, channel 0 wired to compatibility, channel 1 wired to compatibility
wd0 at pciide0 channel 0 drive 0: <WDC WD100BA>
wd0: 16-sector PIO, LBA, 9541MB, 19541088 sectors
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2
atapiscsi0 at pciide0 channel 1 drive 0
scsibus1 at atapiscsi0: 2 targets
cd0 at scsibus1 targ 0 lun 0: <COMPAQ, CD-ROM CRN-8241B, 2.15> ATAPI 5/cdrom removable
cd0(pciide0:1:0): using PIO mode 4, DMA mode 2
uhci0 at pci0 dev 20 function 2 "Intel 82371AB USB" rev 0x01: irq 11
piixpm0 at pci0 dev 20 function 3 "Intel 82371AB Power" rev 0x02: SMI
iic0 at piixpm0
admtemp0 at iic0 addr 0x4c: adm1021
spdmem0 at iic0 addr 0x50: 64MB SDRAM non-parity PC100CL2
spdmem1 at iic0 addr 0x51: 128MB SDRAM non-parity PC133CL2
isa0 at piixpcib0
isadma0 at isa0
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
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
sb0 at isa0 port 0x220/24 irq 5 drq 1: dsp v3.01
midi0 at sb0: <SB MIDI UART>
audio0 at sb0
opl at sb0 not configured
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
usb0 at uhci0: USB revision 1.0
uhub0 at usb0 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 addr 1
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
root on wd0a (27bd8f55e67324d4.a) swap on wd0b dump on wd0b
fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
syncing disks... done
rebooting...
OpenBSD 6.3-beta (GENERIC) #435: Sun Mar 11 18:46:33 MDT 2018
    [hidden email]:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Intel Pentium III ("GenuineIntel" 686-class, 512KB L2 cache) 449 MHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PSE36,MMX,FXSR,SSE,PERF
real mem  = 200818688 (191MB)
avail mem = 183242752 (174MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: date 02/10/99, BIOS32 rev. 0 @ 0xec700, SMBIOS rev. 2.1 @ 0xf1941 (48 entries)
bios0: vendor Compaq version "686T5" date 02/10/99
bios0: Compaq Deskpro EN Series SFF
acpi0 at bios0: rev 0
acpi0: sleep states S0 S1 S4 S5, can't enable ACPI
bios0: ROM list: 0xc0000/0x8000 0xe0000/0x8000!
cpu0 at mainbus0: (uniprocessor)
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
pci0 at mainbus0 bus 0: configuration mode 1 (bios)
pchb0 at pci0 dev 0 function 0 "Intel 82443BX AGP" rev 0x03
intelagp0 at pchb0
agp0 at intelagp0: aperture at 0x44000000, size 0x4000000
ppb0 at pci0 dev 1 function 0 "Intel 82443BX AGP" rev 0x03
pci1 at ppb0 bus 1
vga1 at pci1 dev 0 function 0 "ATI Rage Pro" rev 0x5c
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
fxp0 at pci0 dev 10 function 0 "Intel 8255x" rev 0x05, i82558: irq 11, address 00:50:8b:a1:41:b1
inphy0 at fxp0 phy 1: i82555 10/100 PHY, rev. 0
piixpcib0 at pci0 dev 20 function 0 "Intel 82371AB PIIX4 ISA" rev 0x02
pciide0 at pci0 dev 20 function 1 "Intel 82371AB IDE" rev 0x01: DMA, channel 0 wired to compatibility, channel 1 wired to compatibility
wd0 at pciide0 channel 0 drive 0: <WDC WD100BA>
wd0: 16-sector PIO, LBA, 9541MB, 19541088 sectors
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2
atapiscsi0 at pciide0 channel 1 drive 0
scsibus1 at atapiscsi0: 2 targets
cd0 at scsibus1 targ 0 lun 0: <COMPAQ, CD-ROM CRN-8241B, 2.15> ATAPI 5/cdrom removable
cd0(pciide0:1:0): using PIO mode 4, DMA mode 2
uhci0 at pci0 dev 20 function 2 "Intel 82371AB USB" rev 0x01: irq 11
piixpm0 at pci0 dev 20 function 3 "Intel 82371AB Power" rev 0x02: SMI
iic0 at piixpm0
admtemp0 at iic0 addr 0x4c: adm1021
spdmem0 at iic0 addr 0x50: 64MB SDRAM non-parity PC100CL2
spdmem1 at iic0 addr 0x51: 128MB SDRAM non-parity PC133CL2
isa0 at piixpcib0
isadma0 at isa0
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
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
sb0 at isa0 port 0x220/24 irq 5 drq 1: dsp v3.01
midi0 at sb0: <SB MIDI UART>
audio0 at sb0
opl at sb0 not configured
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
usb0 at uhci0: USB revision 1.0
uhub0 at usb0 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 addr 1
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
root on wd0a (27bd8f55e67324d4.a) swap on wd0b dump on wd0b
fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec


Thanks.
--
Sebastien Marie

Reply | Threaded
Open this post in threaded view
|

Re: SOII address changed after upgrading

Florian Obser-2
On Mon, Mar 12, 2018 at 11:12:51AM +0100, Sebastien Marie wrote:
> Hi,
>
> I upgraded several hosts (i386 and amd64) and the stable ipv6 address
> generated using soii (Semantically Opaque Interface Identifiers)
> changed... (which is relatively annoying as I mostly use ipv6 on my
> local network per default but there are double-stack hosts, so I was
> still able to connect to them).

It's rev 1.22 of slaacd/engine.c. I didn't have time for any intensive
staring at the code, yet. The address should not have changed. And I
though I checked that before ok'ing phessler's change. Sorry. Your
address will change once more :(

>
> As side note, I think the fact default ipv6 address changed from
> previous-SOII world (MAC based address) to with-SOII world (SOII based
> address) deserve an entry in current.html, in order to let people
> anticipates some connectivity issue if they use only ipv6 to connect to
> hosts.

That is true. There is a - rather cryptic - entry in current.html. I
wanted to improve on that on completely forgot about it.

        2018/02/10 - RFC 7217 style IPv6 addresses enabled by default

Let me first figure out why your IPs changed and then improve the
current.html entry.

[...]

> Thanks.
> --
> Sebastien Marie
>

--
I'm not entirely sure you are real.

Reply | Threaded
Open this post in threaded view
|

Re: SOII address changed after upgrading

Sebastien Marie-3
On Mon, Mar 12, 2018 at 03:26:12PM +0100, Florian Obser wrote:

> On Mon, Mar 12, 2018 at 11:12:51AM +0100, Sebastien Marie wrote:
> > Hi,
> >
> > I upgraded several hosts (i386 and amd64) and the stable ipv6 address
> > generated using soii (Semantically Opaque Interface Identifiers)
> > changed... (which is relatively annoying as I mostly use ipv6 on my
> > local network per default but there are double-stack hosts, so I was
> > still able to connect to them).
>
> It's rev 1.22 of slaacd/engine.c.

hep. reverting to 1.21 makes the old SOII address to come back, so I
confirm it is the origin of the change. I was searching in kernel code,
not in userland.

> I didn't have time for any intensive staring at the code, yet. The
> address should not have changed. And I though I checked that before
> ok'ing phessler's change. Sorry. Your address will change once more :(

no problem. I mostly use ipv6 locally for catching such breakage :)

thanks.
--
Sebastien Marie

Reply | Threaded
Open this post in threaded view
|

Re: SOII address changed after upgrading

Florian Obser-2
On Mon, Mar 12, 2018 at 04:05:00PM +0100, Sebastien Marie wrote:

> On Mon, Mar 12, 2018 at 03:26:12PM +0100, Florian Obser wrote:
> > On Mon, Mar 12, 2018 at 11:12:51AM +0100, Sebastien Marie wrote:
> > > Hi,
> > >
> > > I upgraded several hosts (i386 and amd64) and the stable ipv6 address
> > > generated using soii (Semantically Opaque Interface Identifiers)
> > > changed... (which is relatively annoying as I mostly use ipv6 on my
> > > local network per default but there are double-stack hosts, so I was
> > > still able to connect to them).
> >
> > It's rev 1.22 of slaacd/engine.c.
>
> hep. reverting to 1.21 makes the old SOII address to come back, so I
> confirm it is the origin of the change. I was searching in kernel code,
> not in userland.
>
> > I didn't have time for any intensive staring at the code, yet. The
> > address should not have changed. And I though I checked that before
> > ok'ing phessler's change. Sorry. Your address will change once more :(
>
> no problem. I mostly use ipv6 locally for catching such breakage :)
>
> thanks.
> --
> Sebastien Marie
>

So the address will change once more to a different address, not to the
old one.

original rfc 7217 implementation:
         511         447   383       127       63          0
        +-+-[...]-+-+-[...]-+-+-[...]-+-+-[...]-+-+-[...]-+-+
        |               512 bit sha512 digest               |
        +-+-[...]-+-+-[...]-+-+-[...]-+-+-[...]-+-+-[...]-+-+

 127     63          0
+-+-[...]-+-+-[...]-+-+
|  IPv6 address       |
+-+-[...]-+-+-[...]-+-+


after phessler's change (i.e. rev 1.22 of engine.c)

 511     447       383       127       63          0
+-+-[...]-+-+-[...]-+-+-[...]-+-+-[...]-+-+-[...]-+-+
|               512 bit sha512 digest               |
+-+-[...]-+-+-[...]-+-+-[...]-+-+-[...]-+-+-[...]-+-+

 127     63        0
+-+-[...]-+-+-[...]-+
|  IPv6 address     |
+-+-[...]-+-+-[...]-+


In section 5, page 9 RFC 7217 states:

   2.  The Interface Identifier is finally obtained by taking as many
       bits from the RID value (computed in the previous step) as
       necessary, starting from the least significant bit.

So it should have looked like:

 511     447       383       127       63          0
+-+-[...]-+-+-[...]-+-+-[...]-+-+-[...]-+-+-[...]-+-+
|               512 bit sha512 digest               |
+-+-[...]-+-+-[...]-+-+-[...]-+-+-[...]-+-+-[...]-+-+

                             127       63          0
                            +-+-+-[...]-+-+-[...]-+-+
                            |  IPv6 address         |
                            +-+-+-[...]-+-+-[...]-+-+

While it doesn't really matter, now is the right time to change it one
last time. I don't see a reason to be different here. Even though it's
not needed for interop. The RFC is not specific enough that one could
expect to move from one implementation to another and get the same
IPs, but still...

OK? (I shall come up with a better entry for current.html this time
around)

p.s. if I had originally copied the correct part of the digest the
address would not have changed in rev 1.22.

diff --git sbin/slaacd/engine.c sbin/slaacd/engine.c
index f473e3d0b80..e41a7c31751 100644
--- sbin/slaacd/engine.c
+++ sbin/slaacd/engine.c
@@ -1239,6 +1239,8 @@ gen_addr(struct slaacd_iface *iface, struct radv_prefix *prefix, struct
  int dad_counter = 0; /* XXX not used */
  u_int8_t digest[SHA512_DIGEST_LENGTH];
 
+ memset(&iid, 0, sizeof(iid));
+
  /* from in6_ifadd() in nd6_rtr.c */
  /* XXX from in6.h, guarded by #ifdef _KERNEL   XXX nonstandard */
 #define s6_addr32 __u6_addr.__u6_addr32
@@ -1275,7 +1277,8 @@ gen_addr(struct slaacd_iface *iface, struct radv_prefix *prefix, struct
     sizeof(addr_proposal->soiikey));
  SHA512Final(digest, &ctx);
 
- memcpy(&iid.s6_addr, digest, sizeof(iid.s6_addr));
+ memcpy(&iid.s6_addr, digest + (sizeof(digest) -
+    sizeof(iid.s6_addr)), sizeof(iid.s6_addr));
  } else {
  /* This is safe, because we have a 64 prefix len */
  memcpy(&iid.s6_addr, &iface->ll_address.sin6_addr,
diff --git sys/netinet6/in6_ifattach.c sys/netinet6/in6_ifattach.c
index 0aa10fad94b..e2a4ab1dd92 100644
--- sys/netinet6/in6_ifattach.c
+++ sys/netinet6/in6_ifattach.c
@@ -244,7 +244,7 @@ in6_get_soii_ifid(struct ifnet *ifp, struct in6_addr *in6)
  SHA512Update(&ctx, ip6_soiikey, sizeof(ip6_soiikey));
  SHA512Final(digest, &ctx);
 
- bcopy(digest, &in6->s6_addr[8], 8);
+ bcopy(digest + (sizeof(digest) - 8), &in6->s6_addr[8], 8);
 
  return 0;
 }


--
I'm not entirely sure you are real.