On 2021/01/03 18:36, Siavash Safi wrote:
> wgaip address are ignored by ifconfig on ARM architecture and only the CIDR
> is stored.
> Upon handshake the missing address is replaced by the client's public IP
> with CIDR still intact!
> So for example if wgaip is set to 10.0.0.2/32 it will result in /32 and
> then <public ip>/32 upon handshake.
> This is not just a status display error by ifconfig, the actual network
> configuration is broken since all the traffic sent by the client is dropped.
> I tried to investigate further by looking at ifconfig.c and can confirm
> that setwgpeeraip() seems to be working as expected so I assume the issue
> is probably in the kernel.
> 
> Also I was not able to reproduce this issue on amd64 architecture.

FWIW, wg(4) works as expected (including wgaip) on aarch64.
And I haven't done a full test with actually making a wg tunnel
on i386, but wgaip is set as expected there too.

Not sure if this will give anyone a clue though...

> # Create wg0
> ifconfig wg0 create wgkey "$(openssl rand -base64 32)" wgport 51820
> ifconfig wg0 10.0.0.1/24
> 
> # Add a peer
> ifconfig wg0 wgpeer <pubkey> wgaip 10.0.0.2/32
> 
> # Run ifconfig to confirm the peer settings were applied
> ifconfig wg0
> ...
> wgpeer <pubkey>
> wgaip /32 <== IPv4 must be 10.0.0.2 but is missing!
> ...
> 
> # Configure the connection on the peer side and connect, then check the
> connection status on server side again
> 
> ifconfig wg0
> ...
> wgpeer <pubkey>
> wgaip 1.2.3.4/32 <== IPv4 must be 10.0.0.2 but is set to client's public IP!
> # Try to send traffic from the client side and monitor the traffic using
> tcpdum, all packets are dropped.
> 
> 
> dmesg:
> OpenBSD 6.8-current (GENERIC) #361: Fri Jan  1 00:06:44 MST 2021
>     [email protected]:/usr/src/sys/arch/armv7/compile/GENERIC
> real mem  = 2094546944 (1997MB)
> avail mem = 2043539456 (1948MB)
> random: good seed from bootblocks
> mainbus0 at root: SolidRun Cubox-i Dual/Quad (1.5som)
> cpu0 at mainbus0 mpidr 0: ARM Cortex-A9 r2p10
> cpu0: 32KB 32b/line 4-way L1 VIPT I-cache, 32KB 32b/line 4-way L1 D-cache
> cortex0 at mainbus0
> amptimer0 at cortex0: tick rate 396000 KHz
> armliicc0 at cortex0: rtl 7 waymask: 0x0000000f
> imxtemp0 at mainbus0simplebus0 at mainbus0: "soc"
> ampintc0 at simplebus0 nirq 160, ncpu 4: "interrupt-controller"
> "dma-apbh" at simplebus0 not configured
> "hdmi" at simplebus0 not configured
> "gpu" at simplebus0 not configured
> "gpu" at simplebus0 not configured
> "timer" at simplebus0 not configured
> "l2-cache" at simplebus0 not configured
> simplebus1 at simplebus0: "bus"
> imxccm0 at simplebus1
> imxanatop0 at simplebus1
> syscon0 at simplebus1: "snvs"
> imxrtc0 at syscon0
> "snvs-lpgpr" at syscon0 not configured
> imxsrc0 at simplebus1
> syscon1 at simplebus1: "iomuxc-gpr"
> "mux-controller" at syscon1 not configured
> "ipu1_csi0_mux" at syscon1 not configured
> "ipu2_csi1_mux" at syscon1 not configured
> imxiomuxc0 at simplebus1
> simplebus2 at simplebus1: "spba-bus"
> "spdif" at simplebus2 not configured
> imxuart0 at simplebus2: console
> "asrc" at simplebus2 not configured
> "vpu" at simplebus1 not configured
> "pwm" at simplebus1 not configured
> "timer" at simplebus1 not configured
> imxgpio0 at simplebus1
> imxgpio1 at simplebus1
> imxgpio2 at simplebus1
> imxgpio3 at simplebus1
> imxgpio4 at simplebus1
> imxgpio5 at simplebus1
> imxgpio6 at simplebus1
> imxdog0 at simplebus1
> "usbphy" at simplebus1 not configured
> "usbphy" at simplebus1 not configured
> imxgpc0 at simplebus1
> "sdma" at simplebus1 not configured
> simplebus3 at simplebus0: "bus"
> syscon2 at simplebus3: "ocotp-ctrl"
> "crypto" at simplebus3 not configured
> imxehci0 at simplebus3
> usb0 at imxehci0: USB revision 2.0
> uhub0 at usb0 configuration 1 interface 0 "i.MX EHCI root hub" rev
> 2.00/1.00 addr 1
> imxehci1 at simplebus3
> usb1 at imxehci1: USB revision 2.0
> uhub1 at usb1 configuration 1 interface 0 "i.MX EHCI root hub" rev
> 2.00/1.00 addr 1
> "usbmisc" at simplebus3 not configured
> fec0 at simplebus3
> fec0: address 00:00:00:00:00:00
> atphy0 at fec0 phy 4: AR8035 10/100/1000 PHY, rev. 2
> imxesdhc0 at simplebus3
> imxesdhc0: 198 MHz base clock
> sdmmc0 at imxesdhc0: 4-bit, sd high-speed, mmc high-speed, dma
> imxesdhc1 at simplebus3
> imxesdhc1: 198 MHz base clock
> sdmmc1 at imxesdhc1: 4-bit, sd high-speed, mmc high-speed, dma
> imxiic0 at simplebus3
> iic0 at imxiic0
> imxiic1 at simplebus3
> iic1 at imxiic1
> pcfrtc0 at iic1 addr 0x68: battery ok
> "memory-controller" at simplebus3 not configured
> "vdoa" at simplebus3 not configured
> imxuart1 at simplebus3
> "ipu" at simplebus0 not configured
> "sram" at simplebus0 not configured
> imxahci0 at simplebus0: AHCI 1.3
> imxahci0: port 0: 3.0Gb/s
> scsibus0 at imxahci0: 32 targets
> sd0 at scsibus0 targ 0 lun 0: <ATA, CT240BX500SSD1, M6C>
> naa.0000000000000000
> sd0: 228936MB, 512 bytes/sector, 468862128 sectors, thin
> "gpu" at simplebus0 not configured
> "ipu" at simplebus0 not configured
> scsibus1 at sdmmc1: 2 targets, initiator 0
> sd1 at scsibus1 targ 1 lun 0: <SD/MMC, 00000, 0010> removable
> sd1: 29939MB, 512 bytes/sector, 61315072 sectors
> bwfm0 at sdmmc0 function 1
> bwfm0: SoC interconnect SB not implemented
> bwfm0: cannot attach chip
> manufacturer 0x02d0, product 0x4329 at sdmmc0 function 2 not configured
> manufacturer 0x02d0, product 0x4329 at sdmmc0 function 3 not configured
> uftdi0 at uhub1 port 1 configuration 1 interface 0 "FTDI FT230X Basic UART"
> rev 2.00/10.00 addr 2
> ucom0 at uftdi0 portno 1
> vscsi0 at root
> scsibus2 at vscsi0: 256 targets
> softraid0 at root
> scsibus3 at softraid0: 256 targets
> bootfile: sd0a:/bsd
> boot device: sd0
> root on sd0a (94ae9aec9a91eaa7.a) swap on sd0b dump on sd0b
> 
> usbdevs:
> Controller /dev/usb0:
> addr 01: 0000:0000 i.MX, EHCI root hub
> high speed, self powered, config 1, rev 1.00
> driver: uhub0
> Controller /dev/usb1:
> addr 01: 0000:0000 i.MX, EHCI root hub
> high speed, self powered, config 1, rev 1.00
> driver: uhub1
> addr 02: 0403:6015 FTDI, FT230X Basic UART
> high speed, power 90 mA, config 1, rev 10.00, iSerial DN001U4C
> driver: uftdi0
> cp: /var/db/acpi/*: No such file or directory
> b64encode: *: No such file or directory
> 
> pcidump:
> 
> acpidump:

Reply via email to