What other information can I provide on this?

-HKS

On Tue, Oct 21, 2008 at 3:13 PM, (private) HKS <[EMAIL PROTECTED]> wrote:
> OpenBSD 4.3.
>
> I'm trying to get a couple IPSec VPNs up and am running into
> increasingly bizarre behavior in my test environment. The current
> issue is that packets are being sent encoded with the wrong SPI.
>
> Router A has two interfaces: 10.123.0.46/24 and 10.100.0.1/16.
> Router B has one interface: 10.123.0.48/24.
>
> I can get A and B encrypting traffic between 10.123.0.46 and
> 10.123.0.48 with no problem, but when I add flows for 10.100.0.0/16
> the SPIs start getting mixed up. Specifically, pings from 10.123.0.46
> (A) to 10.123.0.48 (B) use the wrong SPII am using manual keying to
> eliminate isakmpd as a source of other issues (that were probably my
> fault somehow). The keys are the defaults included in the ipsec.conf
> example since this is a test environment.
>
> Here is router A's ipsec.conf:
> --
> flow esp from 10.123.0.46 to 10.123.0.48 local 10.123.0.46 peer
> 10.123.0.48 type require
> esp tunnel from 10.123.0.46 to 10.123.0.48 spi 0x00010002:0x00020001
> authkey 
> 0x54f79f479a32814347bb768d3e01b2b58e49ce674ec6e2d327b63408c56ef4e8:0x7f48ee352c626cdc2a731b9d90bd63e29db2a9c683044b70b2f4441521b622d6
> enckey 0xb341aa065c3850edd6a61e150d6a5fd3:0xf7795f6bdd697a43a4d28dcf1b79062d
>
> flow esp from 10.100.0.0/16 to 10.123.0.48 peer 10.123.0.48 type require
> esp tunnel from 10.100.0.0/16 to 10.123.0.48 spi 0x00010004:0x00040001
> authkey 
> 0x54f79f479a32814347bb768d3e01b2b58e49ce674ec6e2d327b63408c56ef4e8:0x7f48ee352c626cdc2a731b9d90bd63e29db2a9c683044b70b2f4441521b622d6
> enckey 0xb341aa065c3850edd6a61e150d6a5fd3:0xf7795f6bdd697a43a4d28dcf1b79062d
> --
>
> Output from router A's ipsecctl -sa looks like you would expect:
> --
> FLOWS:
> flow esp in from 10.123.0.48 to 10.100.0.0/16 peer 10.123.0.48 type require
> flow esp out from 10.100.0.0/16 to 10.123.0.48 peer 10.123.0.48 type require
> flow esp in from 10.123.0.48 to 10.123.0.46 local 10.123.0.46 peer
> 10.123.0.48 type require
> flow esp out from 10.123.0.46 to 10.123.0.48 local 10.123.0.46 peer
> 10.123.0.48 type require
>
> SAD:
> esp tunnel from 10.123.0.46 to 10.123.0.48 spi 0x00010002 auth
> hmac-sha2-256 enc aes
> esp tunnel from 10.100.0.0 to 10.123.0.48 spi 0x00010004 auth
> hmac-sha2-256 enc aes
> esp tunnel from 10.123.0.48 to 10.123.0.46 spi 0x00020001 auth
> hmac-sha2-256 enc aes
> esp tunnel from 10.123.0.48 to 10.100.0.0 spi 0x00040001 auth
> hmac-sha2-256 enc aes
> --
>
> Attempting to ping 10.123.0.48 from 10.123.0.46 gets no response, and
> tcpdump -i enc0 shows this:
> --
> tcpdump: listening on enc0, link-type ENC
> 09:15:11.230658 (authentic,confidential): SPI 0x00010004: 10.123.0.46
>> 10.123.0.48: icmp: echo request (encap)
> 09:15:12.240381 (authentic,confidential): SPI 0x00010004: 10.123.0.46
>> 10.123.0.48: icmp: echo request (encap)
> 09:15:13.250028 (authentic,confidential): SPI 0x00010004: 10.123.0.46
>> 10.123.0.48: icmp: echo request (encap)
> 09:15:14.260702 (authentic,confidential): SPI 0x00010004: 10.123.0.46
>> 10.123.0.48: icmp: echo request (encap)
> --
>
> Which is clearly the wrong SPI. If I try to ping in the reverse
> direction, B sends its packets with the correct SPI while the replies
> are encoded for 0x00010004. Removing the subnet lines from ipsec.conf
> corrects this issue.
>
> Is this a bug in IPsec or something I'm doing wrong?
>
> Thanks for the help. dmesg follows.
>
> -HKS
>
>
> OpenBSD 4.3 (GENERIC) #698: Wed Mar 12 11:07:05 MDT 2008
>    [EMAIL PROTECTED]:/usr/src/sys/arch/i386/compile/GENERIC
> cpu0: Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33GHz ("GenuineIntel"
> 686-class) 2.33 GHz
> cpu0: 
> FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,SSE3,DS-CPL
> real mem  = 267939840 (255MB)
> avail mem = 251031552 (239MB)
> mainbus0 at root
> bios0 at mainbus0: AT/286+ BIOS, date 12/06/06, BIOS32 rev. 0 @
> 0xfd880, SMBIOS rev. 2.31 @ 0xe0010 (45 entries)
> bios0: vendor Phoenix Technologies LTD version "6.00" date 12/06/2006
> bios0: VMware, Inc. VMware Virtual Platform
> apm0 at bios0: Power Management spec V1.2
> apm0: AC on, battery charge unknown
> acpi at bios0 function 0x0 not configured
> pcibios0 at bios0: rev 2.1 @ 0xfd880/0x780
> pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xfdf30/176 (9 entries)
> pcibios0: PCI Interrupt Router at 000:07:0 ("Intel 82371FB ISA" rev 0x00)
> pcibios0: PCI bus #2 is the last bus
> bios0: ROM list: 0xc0000/0x8000 0xc8000/0x1000 0xc9000/0x1000
> 0xdc000/0x4000! 0xe0000/0x4000!
> cpu0 at mainbus0
> pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
> pchb0 at pci0 dev 0 function 0 "Intel 82443BX AGP" rev 0x01
> ppb0 at pci0 dev 1 function 0 "Intel 82443BX AGP" rev 0x01
> pci1 at ppb0 bus 1
> piixpcib0 at pci0 dev 7 function 0 "Intel 82371AB PIIX4 ISA" rev 0x08
> pciide0 at pci0 dev 7 function 1 "Intel 82371AB IDE" rev 0x01: DMA,
> channel 0 configured to compatibility, channel 1 configured to
> compatibility
> wd0 at pciide0 channel 0 drive 0: <VMware Virtual IDE Hard Drive>
> wd0: 64-sector PIO, LBA, 8192MB, 16777216 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: <HC2281Q, NCF700G, 1.01> SCSI0 5/cdrom removable
> cd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 2
> uhci0 at pci0 dev 7 function 2 "Intel 82371AB USB" rev 0x00: irq 9
> piixpm0 at pci0 dev 7 function 3 "Intel 82371AB Power" rev 0x08: SMBus 
> disabled
> vga1 at pci0 dev 15 function 0 "VMware Virtual SVGA II" rev 0x00
> wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
> wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
> mpi0 at pci0 dev 16 function 0 "Symbios Logic 53c1030" rev 0x01: irq 11
> scsibus1 at mpi0: 16 targets
> ppb1 at pci0 dev 17 function 0 "VMware Virtual PCI-PCI bridge" rev 0x01
> pci2 at ppb1 bus 2
> vic0 at pci2 dev 0 function 0 "AMD 79c970 PCnet-PCI" rev 0x10: irq 10,
> address 00:0c:29:a3:72:c2
> eap0 at pci2 dev 1 function 0 "Ensoniq AudioPCI97" rev 0x02: irq 9
> ac97: codec id 0x43525913 (Cirrus Logic CS4297A rev 3)
> audio0 at eap0
> midi0 at eap0: <AudioPCI MIDI UART>
> ehci0 at pci2 dev 2 function 0 "VMware Virtual EHCI" rev 0x00: irq 5
> usb0 at ehci0: USB revision 2.0
> uhub0 at usb0 "VMware EHCI root hub" rev 2.00/1.00 addr 1
> vic1 at pci2 dev 3 function 0 "AMD 79c970 PCnet-PCI" rev 0x10: irq 11,
> address 00:0c:29:a3:72:cc
> isa0 at piixpcib0
> isadma0 at isa0
> pckbc0 at isa0 port 0x60/5
> pckbd0 at pckbc0 (kbd slot)
> pckbc0: using irq 1 for kbd slot
> wskbd0 at pckbd0: console keyboard, using wsdisplay0
> pmsi0 at pckbc0 (aux slot)
> pckbc0: using irq 12 for aux slot
> wsmouse0 at pmsi0 mux 0
> pcppi0 at isa0 port 0x61
> midi1 at pcppi0: <PC speaker>
> spkr0 at pcppi0
> lpt0 at isa0 port 0x378/4 irq 7
> npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
> pccom0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
> pccom1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
> fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
> fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
> usb1 at uhci0: USB revision 1.0
> uhub1 at usb1 "Intel UHCI root hub" rev 1.00/1.00 addr 1
> biomask eb65 netmask ef65 ttymask ffe7
> mtrr: Pentium Pro MTRR support
> softraid0 at root
> root on wd0a swap on wd0b dump on wd0b
> nd6_na_input: duplicate IP6 address fe80:0005::0200:5eff:fe00:0101
> nd6_na_input: duplicate IP6 address fe80:0006::0200:5eff:fe00:0102
> nd6_na_input: duplicate IP6 address fe80:0005::0200:5eff:fe00:0101
> nd6_na_input: duplicate IP6 address fe80:0006::0200:5eff:fe00:0102
> nd6_na_input: duplicate IP6 address fe80:0005::0200:5eff:fe00:0101
> nd6_na_input: duplicate IP6 address fe80:0006::0200:5eff:fe00:0102
> nd6_na_input: duplicate IP6 address fe80:0006::0200:5eff:fe00:0102
> nd6_na_input: duplicate IP6 address fe80:0006::0200:5eff:fe00:0102
> nd6_na_input: duplicate IP6 address fe80:0006::0200:5eff:fe00:0102
> nd6_na_input: duplicate IP6 address fe80:0005::0200:5eff:fe00:0101

Reply via email to