On Mon, Jan 29, 2018 at 07:33:47PM +0100, Remi Locherer wrote: > > Problem Description > Local originating traffic leaves the system on the wrong interface > after a more specific route was added. This is problematic for services > like dhcrelay and syslogd. > > I verified this on iced this on OpenBSD 6.1 but do not know how if was with > older versions. The behaviour is still the same with current.
What I wanted to write: I verified this behaviour on OpenBSD 6.1, 6.2 and -current. I do not know if it was different with older releases. > > > Workaround: > Monitor the routing socket and restart affected services when the routing > table changes. > > > How to reproduce: > mistral ~# route -n show -inet > Routing tables > > Internet: > Destination Gateway Flags Refs Use Mtu Prio Iface > default 172.18.35.1 UGS 7 408 - 12 iwm0 > 224/4 127.0.0.1 URS 0 1898 32768 8 lo0 > 127/8 127.0.0.1 UGRS 0 0 32768 8 lo0 > 127.0.0.1 127.0.0.1 UHhl 1 4 32768 1 lo0 > 172.18.35/24 172.18.35.87 UCn 1 634 - 8 iwm0 > 172.18.35.1 cc:4e:24:82:88:42 UHLch 1 312 - 7 iwm0 > 172.18.35.87 5c:e0:c5:1f:ad:c4 UHLl 0 14 - 1 iwm0 > 172.18.35.255 172.18.35.87 UHb 0 633 - 1 iwm0 > 172.30.1/24 192.168.250.18 UGS 0 0 - 8 > vether0 > 192.168.250/24 192.168.250.1 UCn 1 0 - 4 > vether0 > 192.168.250.1 fe:e1:ba:d0:05:e2 UHLl 0 5 - 1 > vether0 > 192.168.250.18 fe:e1:bb:d1:a2:b9 UHLch 2 37 - 3 > vether0 > 192.168.250.255 192.168.250.1 UHb 1 105 - 1 > vether0 > mistral ~# > > $mistral 130 ~$ nc -u 172.30.1.1 9999 > adsfsa > > --> do not press ^C, keep it open to generate traffic over the same > socket after changing routes > > --> as expected traffic leaves on vether0 > 16:24:00.676256 rule 0/(match) match out on vether0: 192.168.250.1.28812 > > 172.30.1.1.9999: udp 7 > > mistral ~# route del 172.30.1.0/24 > > --> now traffic leaves on iwm0. makes sense because of the default route. > 16:24:51.078621 rule 0/(match) match out on iwm0: 192.168.250.1.28812 > > 172.30.1.1.9999: udp 3 > > mistral ~# route add 172.30.1.0/24 192.168.250.18 > > --> traffic still leaves iwm0. expectations: vether0 > 16:28:09.440038 rule 0/(match) match out on iwm0: 192.168.250.1.28812 > > 172.30.1.1.9999: udp 4 > > > > dmesg > > OpenBSD 6.2-current (GENERIC.MP) #107: Tue Jan 16 21:58:15 CET 2018 > r...@mistral.relo.ch:/usr/src/sys/arch/amd64/compile/GENERIC.MP > real mem = 8473632768 (8081MB) > avail mem = 8209895424 (7829MB) > mpath0 at root > scsibus0 at mpath0: 256 targets > mainbus0 at root > bios0 at mainbus0: SMBIOS rev. 2.8 @ 0xe0000 (84 entries) > bios0: vendor Dell Inc. version "A13" date 06/16/2017 > bios0: Dell Inc. XPS 13 9343 > acpi0 at bios0: rev 2 > acpi0: sleep states S0 S3 S4 S5 > acpi0: tables DSDT FACP APIC FPDT FIDT MCFG HPET SSDT UEFI SSDT ASF! SSDT > SSDT SSDT SSDT PCCT SSDT SSDT SSDT SLIC MSDM DMAR CSRT BGRT > acpi0: wakeup devices PEGP(S4) PEG0(S4) PEGP(S4) PEG1(S4) PEGP(S4) PEG2(S4) > PXSX(S4) RP01(S4) PXSX(S4) RP02(S4) PXSX(S4) RP03(S4) PXSX(S4) RP04(S4) > PXSX(S4) RP05(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) Core(TM) i5-5200U CPU @ 2.20GHz, 2494.62 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,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,RDSEED,ADX,SMAP,PT,SENSOR,ARAT > cpu0: 256KB 64b/line 8-way L2 cache > acpitimer0: recalibrated TSC frequency 2194928041 Hz > cpu0: smt 0, core 0, package 0 > mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges > cpu0: apic clock running at 99MHz > cpu0: mwait min=64, max=64, C-substates=0.2.1.2.4.1.1.1, IBE > cpu1 at mainbus0: apid 2 (application processor) > cpu1: Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz, 2494.22 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,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,RDSEED,ADX,SMAP,PT,SENSOR,ARAT > cpu1: 256KB 64b/line 8-way L2 cache > cpu1: smt 0, core 1, package 0 > cpu2 at mainbus0: apid 1 (application processor) > cpu2: Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz, 2494.22 MHz > cpu2: > 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,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,RDSEED,ADX,SMAP,PT,SENSOR,ARAT > cpu2: 256KB 64b/line 8-way L2 cache > cpu2: smt 1, core 0, package 0 > cpu3 at mainbus0: apid 3 (application processor) > cpu3: Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz, 2494.22 MHz > cpu3: > 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,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,RDSEED,ADX,SMAP,PT,SENSOR,ARAT > cpu3: 256KB 64b/line 8-way L2 cache > cpu3: smt 1, core 1, package 0 > ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 40 pins > acpimadt0: bogus nmi for apid 3 > acpimcfg0 at acpi0 addr 0xf8000000, bus 0-63 > acpihpet0 at acpi0: 14318179 Hz > acpihpet0: recalibrated TSC frequency 2194924370 Hz > acpiprt0 at acpi0: bus 0 (PCI0) > acpiprt1 at acpi0: bus -1 (PEG0) > acpiprt2 at acpi0: bus -1 (PEG1) > acpiprt3 at acpi0: bus -1 (PEG2) > acpiprt4 at acpi0: bus 1 (RP01) > acpiprt5 at acpi0: bus -1 (RP02) > acpiprt6 at acpi0: bus -1 (RP03) > acpiprt7 at acpi0: bus 2 (RP04) > acpiprt8 at acpi0: bus -1 (RP05) > acpiprt9 at acpi0: bus -1 (RP06) > acpiprt10 at acpi0: bus -1 (RP07) > acpiprt11 at acpi0: bus -1 (RP08) > acpiec0 at acpi0 > acpicpu0 at acpi0: C3(200@506 mwait.1@0x60), C2(200@148 mwait.1@0x33), > C1(1000@1 mwait.1), PSS > acpicpu1 at acpi0: C3(200@506 mwait.1@0x60), C2(200@148 mwait.1@0x33), > C1(1000@1 mwait.1), PSS > acpicpu2 at acpi0: C3(200@506 mwait.1@0x60), C2(200@148 mwait.1@0x33), > C1(1000@1 mwait.1), PSS > acpicpu3 at acpi0: C3(200@506 mwait.1@0x60), C2(200@148 mwait.1@0x33), > C1(1000@1 mwait.1), PSS > acpipwrres0 at acpi0: PG00, resource for PEG0 > acpipwrres1 at acpi0: PG01, resource for PEG1 > acpipwrres2 at acpi0: PG02, resource for PEG2 > acpitz0 at acpi0: critical temperature is 107 degC > acpipwrres3 at acpi0: FN00, resource for FAN0 > acpipwrres4 at acpi0: FN01, resource for FAN1 > acpipwrres5 at acpi0: FN02, resource for FAN2 > acpipwrres6 at acpi0: FN03, resource for FAN3 > acpipwrres7 at acpi0: FN04, resource for FAN4 > acpitz1 at acpi0: critical temperature is 105 degC > acpitz2 at acpi0: critical temperature is 105 degC > "INT3F0D" at acpi0 not configured > "INT3403" at acpi0 not configured > "INT3403" at acpi0 not configured > "INT3403" at acpi0 not configured > "INT3403" at acpi0 not configured > "DLLK0665" at acpi0 not configured > "DLL0665" at acpi0 not configured > "INTL9C60" at acpi0 not configured > dwiic0 at acpi0: I2C0 addr 0xfe103000/0x1000 irq 7 > iic0 at dwiic0 > dwiic1 at acpi0: I2C1 addr 0xfe105000/0x1000 irq 7 > iic1 at dwiic1 > ihidev0 at iic1 addr 0x2c irq 39, vendor 0x6cb product 0x76ad, DLL0665 > ihidev0: 14 report ids > imt0 at ihidev0: clickpad, 3 contacts > wsmouse0 at imt0 mux 0 > "INT3402" at acpi0 not configured > "PNP0C14" at acpi0 not configured > acpibtn0 at acpi0: LID0 > acpibtn1 at acpi0: PBTN > acpibtn2 at acpi0: SBTN > acpiac0 at acpi0: AC unit offline > acpibat0 at acpi0: BAT0 model "DELL 0DRRP56" serial 154 type LiP oem "Sanyo" > "INT340F" at acpi0 not configured > "INT3400" at acpi0 not configured > "PNP0C0B" at acpi0 not configured > "PNP0C0B" at acpi0 not configured > "PNP0C0B" at acpi0 not configured > "PNP0C0B" at acpi0 not configured > "PNP0C0B" at acpi0 not configured > acpivideo0 at acpi0: GFX0 > acpivout0 at acpivideo0: LCD_ > cpu0: Enhanced SpeedStep 2494 MHz: speeds: 2201, 2200, 2100, 2000, 1800, > 1700, 1600, 1500, 1300, 1200, 1100, 1000, 900, 700, 600, 500 MHz > pci0 at mainbus0 bus 0 > pchb0 at pci0 dev 0 function 0 "Intel Core 5G Host" rev 0x09 > inteldrm0 at pci0 dev 2 function 0 "Intel HD Graphics 5500" rev 0x09 > drm0 at inteldrm0 > inteldrm0: msi > inteldrm0: 1920x1080, 32bpp > wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation) > wsdisplay0: screen 1-5 added (std, vt100 emulation) > azalia0 at pci0 dev 3 function 0 "Intel Core 5G HD Audio" rev 0x09: msi > "Intel Core 5G Thermal" rev 0x09 at pci0 dev 4 function 0 not configured > xhci0 at pci0 dev 20 function 0 "Intel 9 Series xHCI" rev 0x03: msi > usb0 at xhci0: USB revision 3.0 > uhub0 at usb0 configuration 1 interface 0 "Intel xHCI root hub" rev 3.00/1.00 > addr 1 > "Intel 9 Series MEI" rev 0x03 at pci0 dev 22 function 0 not configured > azalia1 at pci0 dev 27 function 0 "Intel 9 Series HD Audio" rev 0x03: msi > azalia1: codecs: Realtek/0x0288 > audio0 at azalia1 > ppb0 at pci0 dev 28 function 0 "Intel 9 Series PCIE" rev 0xe3: msi > pci1 at ppb0 bus 1 > rtsx0 at pci1 dev 0 function 0 "Realtek RTS5249 Card Reader" rev 0x01: msi > sdmmc0 at rtsx0: 4-bit, dma > ppb1 at pci0 dev 28 function 3 "Intel 9 Series PCIE" rev 0xe3: msi > pci2 at ppb1 bus 2 > iwm0 at pci2 dev 0 function 0 "Intel Dual Band Wireless AC 7265" rev 0x59, msi > ehci0 at pci0 dev 29 function 0 "Intel 9 Series USB" rev 0x03: apic 2 int 21 > usb1 at ehci0: USB revision 2.0 > uhub1 at usb1 configuration 1 interface 0 "Intel EHCI root hub" rev 2.00/1.00 > addr 1 > pcib0 at pci0 dev 31 function 0 "Intel 9 Series LPC" rev 0x03 > ahci0 at pci0 dev 31 function 2 "Intel 9 Series AHCI" rev 0x03: msi, AHCI 1.3 > ahci0: port 3: 6.0Gb/s > scsibus1 at ahci0: 32 targets > sd0 at scsibus1 targ 3 lun 0: <ATA, LITEON L8H-256V2, F881> SCSI3 0/direct > fixed t10.ATA_LITEON_L8H-256V2G-11_M.2_2280_256GB_TW0MGNHV5508556A4111 > sd0: 244198MB, 512 bytes/sector, 500118192 sectors, thin > ichiic0 at pci0 dev 31 function 3 "Intel 9 Series SMBus" rev 0x03: apic 2 int > 18 > iic2 at ichiic0 > pchtemp0 at pci0 dev 31 function 6 "Intel 9 Series Thermal" rev 0x03 > 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 > pcppi0 at isa0 port 0x61 > spkr0 at pcppi0 > vmm0 at mainbus0: VMX/EPT > efifb at mainbus0 not configured > uvideo0 at uhub0 port 5 configuration 1 interface 0 "CKFEH41F301030003940 > Integrated_Webcam_HD" rev 2.01/48.14 addr 2 > video0 at uvideo0 > uhub2 at uhub1 port 1 configuration 1 interface 0 "Intel Rate Matching Hub" > rev 2.00/0.03 addr 2 > vscsi0 at root > scsibus2 at vscsi0: 256 targets > softraid0 at root > scsibus3 at softraid0: 256 targets > sd1 at scsibus3 targ 1 lun 0: <OPENBSD, SR CRYPTO, 006> SCSI2 0/direct fixed > sd1: 143359MB, 512 bytes/sector, 293600752 sectors > root on sd1a (ff74af09a40c98e0.a) swap on sd1b dump on sd1b > iwm0: hw rev 0x210, fw ver 16.242414.0, address 5c:e0:c5:1f:ad:c4 > iwm0: could not add phy context 0 (error 35)