hi,
do you have more details, like the tested relayd.conf lines, about the
'check send' problem?
reyk
On Wed, Aug 05, 2009 at 02:54:58PM +0200, Nice Daemon wrote:
> Hi list,
>
> I'm setting up a replacement for a customers' current Alteon Load
> Balancers, using OpenBSD, pf, and relayd.
>
> First of all: Thanks, guys, this is faboulous stuff! Having
> experiences with Linux' LVS and stuff, this is like a very nice, fresh
> breeze... I remember the Haiku that was posted when pf was born. :)
>
> Now, the setup I have has some noteworthinesses. First, I have to
> create about 600 tables (one for each VIP) that in turn redirect to
> about 2,200 IPs in the backend (those are not real hosts, most of the
> hosts have several inet aliases set due to Alteon config necessities).
>
> In the meanwhile I tuned relayd.conf massively using parenting, so
> that there are no unnecessary checks being done (most of them are
> relatively 'expensive', e.g. 'check ssl' or 'check script', with
> scripts doing RADIUS logins, etc).
>
> The interval is set to 10 seconds, what works for me at a load of
> about 4 (yes, I read the recent discussion on this). Is that 'too
> high'? The machine is mostly idling, vmstat output below.
>
> There's a problem that 'check send' does not seem to work correctly,
> for instance. Thusly, I had to code some scripts that check for POP,
> IMAP, or FTP banners and give an appropriate return code, the same was
> done for SSL wrapped services.
>
> When I use 'check send' [ssl] for one defined service and look at the
> tcpdump, I can see that it works correctly, i.e. the request is sent
> to the client and the answer of the client (FTP banner, e.g.) is
> received by the OpenBSD machine, but relayd says that the check didn't
> work correctly. Using shell scripts, it works like a charm, but is
> expensive.
>
> For SSL checks (using a shell script that invokes OpenSSL's s_client)
> I get the following error message (watching 'relayd -v -n')
>
> 21415:error:0906D06C:PEM routines:PEM_read_bio:no start
> line:/usr/src/lib/libssl/src/crypto/pem/pem_lib.c:650:Expecting:
> TRUSTED CERTIFICATE
>
> The script itself is:
>
> POP3S_SERVER=$1
>
> POP3S_OKAY=`echo "GET /" | openssl s_client -connect $1:995 2>/dev/null | \
> awk '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/{ print }' | \
> openssl x509 -text -noout | grep Issuer | wc -l`
>
> if [ $POP3S_OKAY -eq 1 ]
> then
> exit 1
> else
> exit 0
> fi
>
> The certificate is okay, and the test also succeeds. So, this is more
> a 'cosmetic' question...
>
> Any hints?
>
> Thank in advance and best regards,
>
> Joe
>
> vstat -m:
>
> Memory statistics by bucket size
> Size In Use Free Requests HighWater Couldfree
> 16 2761 3383 15390751 1280 102
> 32 308 332 4576010 640 0
> 64 1666 1534 1336669 320 95100
> 128 1148 36 697939 160 10000
> 256 208 224 3219368 80 15826
> 512 273 151 1343754 40 24349
> 1024 245 35 561499 20 55420
> 2048 1220 4 534068 10 49136
> 4096 25 3 18484 5 0
> 8192 6 1 15069580 5 0
> 16384 6 0 23 5 0
> 32768 2 0 3 5 0
> 65536 1 0 1 5 0
>
> Memory usage type by bucket size
> Size Type(s)
> 16 devbuf, pcb, routetbl, sysctl, vnodes, UFS mount, dirhash, ACPI,
> in_multi, exec, xform_data, VM swap, UVM amap, UVM aobj, temp
> 32 devbuf, pcb, routetbl, ifaddr, UFS mount, sem, dirhash, ACPI, proc,
> VFS cluster, in_multi, ether_multi, xform_data, VM swap, UVM amap,
> temp
> 64 devbuf, pcb, routetbl, vnodes, sem, dirhash, ACPI, in_multi,
> pfkey data, UVM amap, NDP, temp
> 128 devbuf, routetbl, ifaddr, iov, vnodes, dirhash, ACPI, NFS srvsock,
> ttys, inodedep, UVM amap, NDP, temp
> 256 devbuf, routetbl, ifaddr, sysctl, ioctlops, iov, vnodes, shm, VM
> map,
> dirhash, file desc, NFS daemon, exec, newblk, UVM amap, temp
> 512 devbuf, pcb, ifaddr, ioctlops, iov, UFS mount, shm, dirhash,
> file desc, proc, ttys, exec, UVM amap, temp
> 1024 devbuf, ioctlops, iov, mount, ACPI, ttys, exec, UVM amap, UVM aobj,
> crypto data, temp
> 2048 devbuf, ifaddr, ioctlops, iov, namecache, UFS mount, proc, VM swap,
> UVM amap, temp
> 4096 devbuf, ioctlops, iov, pagedep, UVM amap, memdesc, temp
> 8192 devbuf, iov, MSDOSFS mount, temp
> 16384 NFS node, namecache, UFS quota, UFS mount, ISOFS mount, inodedep,
> indirdep
> 32768 devbuf
> 65536 namecache
>
> Memory statistics by type Type Kern
> Type InUse MemUse HighUse Limit Requests Limit Limit Size(s)
> devbuf 2019 2324K 2324K 39322K 2090 0 0
> 16,32,64,128,256,512,1024,2048,4096,8192,32768
> pcb 38 4K 5K 39322K 65124 0 0 16,32,64,512
> routetbl 865 98K 107K 39322K 25779 0 0
> 16,32,64,128,256
> ifaddr 72 14K 14K 39322K 73 0 0
> 32,128,256,512,2048
> sysctl 2 1K 1K 39322K 2 0 0 16,256
> ioctlops 0 0K 4K 39322K 173421 0 0
> 256,512,1024,2048,4096
> iov 0 0K 8K 39322K 61642 0 0
> 128,256,512,1024,2048,4096,8192
> mount 4 4K 4K 39322K 4 0 0 1024
> NFS node 1 16K 16K 39322K 1 0 0 16384
> vnodes 49 8K 97K 39322K 5894 0 0 16,64,128,256
> namecache 3 82K 82K 39322K 3 0 0
> 2048,16384,65536
> UFS quota 1 16K 16K 39322K 1 0 0 16384
> UFS mount 17 35K 35K 39322K 17 0 0
> 16,32,512,2048,16384
> shm 2 1K 1K 39322K 2 0 0 256,512
> VM map 2 1K 1K 39322K 2 0 0 256
> sem 2 1K 1K 39322K 2 0 0 32,64
> dirhash 186 35K 43K 39322K 447 0 0
> 16,32,64,128,256,512
> ACPI 701 41K 45K 39322K 2540 0 0
> 16,32,64,128,1024
> file desc 1 1K 3K 39322K 53838 0 0 256,512
> proc 12 5K 5K 39322K 12 0 0 32,512,2048
> VFS cluster 0 0K 1K 39322K 34 0 0 32
> NFS srvsock 1 1K 1K 39322K 1 0 0 128
> NFS daemon 1 1K 1K 39322K 1 0 0 256
> in_multi 43 2K 2K 39322K 43 0 0 16,32,64
> ether_multi 12 1K 1K 39322K 12 0 0 32
> ISOFS mount 1 16K 16K 39322K 1 0 0 16384
> MSDOSFS mount 1 8K 8K 39322K 1 0 0 8192
> ttys 414 259K 259K 39322K 414 0 0 128,512,1024
> exec 0 0K 2K 39322K 729130 0 0
> 16,256,512,1024
> pfkey data 1 1K 1K 39322K 2 0 0 64
> xform_data 0 0K 1K 39322K 156310 0 0 16,32
> pagedep 1 4K 4K 39322K 1 0 0 4096
> inodedep 1 16K 17K 39322K 34 0 0 128,16384
> newblk 1 1K 1K 39322K 1 0 0 256
> indirdep 0 0K 16K 39322K 17 0 0 16384
> VM swap 1 1K 3K 39322K 4 0 0 16,32,2048
> UVM amap 2988 167K 387K 39322K 21333380 0 0
> 16,32,64,128,256,512,1024,2048,4096
> UVM aobj 2 2K 2K 39322K 2 0 0 16,1024
> memdesc 1 4K 4K 39322K 1 0 0 4096
> crypto data 1 1K 1K 39322K 1 0 0 1024
> NDP 11 1K 1K 39322K 13 0 0 64,128
> temp 415 389K 397K 39322K 20137886 0 0
> 16,32,64,128,256,512,1024,2048,4096,8192
>
> Memory Totals: In Use Free Requests
> 3547K 359K 42748183
> Memory resource pool statistics
> Name Size Requests Fail InUse Pgreq Pgrel Npage Hiwat Minpg Maxpg
> Idle
> extentpl 20 239 0 39 1 0 1 1 0 8
> 0
> phpool 40 961 0 415 5 0 5 5 0 8
> 0
> pmappl 80 439814 0 39 3 0 3 3 0 8
> 2
> vmsppl 188 439814 0 39 7 0 7 7 0 8
> 5
> vmmpepl 88 72975166 0 3692 208 0 208 208 0 179
> 126
> vmmpekpl 88 1551605 0 14 2 0 2 2 0 8
> 1
> aobjpl 52 1 0 1 1 0 1 1 0 8
> 0
> amappl 44 20847488 0 2914 75 0 75 75 0 45
> 42
> anonpl 16 33329130 0 4014 40 0 40 40 0 125
> 17
> bufpl 144 58582 0 12224 469 9 460 469 0 8
> 8
> mbpl 256 7496735 0 160 23 0 23 23 1 384
> 10
> mcl2k 2048 1432711 0 49 47 0 47 47 4 3072
> 20
> sockpl 212 353804 0 127 18 7 11 16 0 8
> 3
> procpl 348 439825 0 50 13 0 13 13 0 8
> 8
> processpl 24 439825 0 50 1 0 1 1 0 8
> 0
> zombiepl 72 439775 0 0 2 0 2 2 0 8
> 2
> ucredpl 80 105414 0 17 1 0 1 1 0 8
> 0
> pgrppl 24 2035 0 28 1 0 1 1 0 8
> 0
> sessionpl 48 1215 0 22 1 0 1 1 0 8
> 0
> pcredpl 24 439825 0 50 1 0 1 1 0 8
> 0
> lockfpl 56 166 0 2 1 0 1 1 0 8
> 0
> filepl 88 4702237 0 122 9 0 9 9 0 8
> 5
> fdescpl 300 439815 0 40 10 0 10 10 0 8
> 6
> pipepl 72 666370 0 12 4 0 4 4 0 8
> 3
> kqueuepl 192 96 0 3 1 0 1 1 0 8
> 0
> knotepl 64 3516384 0 15 2 0 2 2 0 8
> 1
> sigapl 316 439814 0 39 11 0 11 11 0 8
> 7
> wdcspl 96 50646 0 0 1 0 1 1 0 8
> 1
> namei 1024 7359254 0 0 2 0 2 2 0 8
> 2
> vnodes 148 5927 0 5927 220 0 220 220 0 8
> 0
> nchpl 72 2963 0 2963 53 0 53 53 0 8
> 0
> ffsino 184 122944 0 5922 270 0 270 270 0 8
> 0
> dino1pl 128 122944 0 5922 192 0 192 192 0 8
> 0
> pagedeppl 68 149 0 0 1 0 1 1 0 8
> 1
> inodedeppl 84 363 0 0 1 0 1 1 0 8
> 1
> newblkpl 36 653 0 0 1 0 1 1 0 8
> 1
> bmsafemappl 32 193 0 0 1 0 1 1 0 8
> 1
> allocdirectpl 76 627 0 0 2 0 2 2 0 8
> 2
> indirdeppl 28 22 0 0 1 0 1 1 0 8
> 1
> allocindirpl 60 26 0 0 1 0 1 1 0 8
> 1
> freefragpl 36 91 0 0 1 0 1 1 0 8
> 1
> freeblkspl 168 133 0 0 1 0 1 1 0 8
> 1
> freefilepl 28 186 0 0 1 0 1 1 0 8
> 1
> diraddpl 32 209 0 0 1 0 1 1 0 8
> 1
> mkdirpl 28 10 0 0 1 0 1 1 0 8
> 1
> dirrempl 32 199 0 0 1 0 1 1 0 8
> 1
> dirhash 1024 612 0 252 84 0 84 84 0 128
> 20
> pfrulepl 852 4156 0 179 536 491 45 45 0 8
> 0
> pfstatepl 216 163055 0 452 50 0 50 50 0 556
> 24
> pfstatekeypl 72 163055 0 452 26 16 10 16 0 8
> 1
> pfstateitempl 12 163055 0 452 3 0 3 3 0 8
> 1
> pfpooladdrpl 68 4067 0 172 3 0 3 3 0 8
> 0
> pfrktable 1240 11043 0 356 119 0 119 119 0 5000
> 0
> pfrkentry 92 10894 0 541 37 24 13 13 0 8
> 0
> pfosfpen 108 8352 0 696 140 121 19 19 0 8
> 0
> pfosfp 28 4884 0 407 3 0 3 3 0 8
> 0
> rtentpl 116 1659 0 75 6 0 6 6 0 8
> 1
> tcpcbpl 400 230742 0 92 68 55 13 27 0 8
> 1
> tcpqepl 16 19029 0 0 1 0 1 1 0 13
> 1
> sackhlpl 20 2 0 0 1 0 1 1 0 163
> 1
> synpl 184 1035 0 0 1 0 1 1 0 8
> 1
> plimitpl 152 178 0 11 1 0 1 1 0 8
> 0
> inpcbpl 224 288751 0 100 17 7 10 15 0 8
> 3
>
> In use 6522K, total allocated 32912K; utilization 19.8%
>
> dmesg:
>
> OpenBSD 4.6-current (GENERIC) #86: Tue Jul 28 23:51:07 MDT 2009
> [email protected]:/usr/src/sys/arch/i386/compile/GENERIC
> cpu0: Intel(R) Pentium(R) 4 CPU 2.80GHz ("GenuineIntel" 686-class) 2.81 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,HTT,TM,SBF,SSE3,MWAIT,DS-CPL,CNXT-ID,xTPR
> real mem = 2146795520 (2047MB)
> avail mem = 2067046400 (1971MB)
> mainbus0 at root
> bios0 at mainbus0: AT/286+ BIOS, date 01/04/06, BIOS32 rev. 0 @
> 0xffe90, SMBIOS rev. 2.3 @ 0xfb030 (83 entries)
> bios0: vendor Dell Computer Corporation version "A06" date 01/04/2006
> bios0: Dell Computer Corporation PowerEdge 750
> acpi0 at bios0: rev 0
> acpi0: tables DSDT FACP APIC SPCR
> acpi0: wakeup devices PCI0(S5) PCI1(S5) PCI2(S5) PCI3(S5)
> acpitimer0 at acpi0: 3579545 Hz, 24 bits
> acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
> cpu0 at mainbus0: apid 0 (boot processor)
> cpu0: apic clock running at 200MHz
> cpu at mainbus0: not configured
> ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 24 pins
> ioapic0: misconfigured as apic 0, remapped to apid 2
> ioapic1 at mainbus0: apid 3 pa 0xfec10000, version 20, 24 pins
> ioapic1: misconfigured as apic 0, remapped to apid 3
> acpiprt0 at acpi0: bus 0 (PCI0)
> acpiprt1 at acpi0: bus 3 (PCI1)
> acpiprt2 at acpi0: bus 2 (PCI2)
> acpiprt3 at acpi0: bus 1 (PCI3)
> acpicpu0 at acpi0
> bios0: ROM list: 0xc0000/0x8000 0xc8000/0x1000 0xec000/0x4000!
> pci0 at mainbus0 bus 0: configuration mode 1 (bios)
> pchb0 at pci0 dev 0 function 0 "Intel 82875P Host" rev 0x02
> ppb0 at pci0 dev 3 function 0 "Intel 82875P CSA" rev 0x02
> pci1 at ppb0 bus 1
> em0 at pci1 dev 1 function 0 "Intel PRO/1000CT (82547GI)" rev 0x00:
> apic 2 int 18 (irq 10), address 00:c0:9f:46:39:87
> ppb1 at pci0 dev 28 function 0 "Intel 6300ESB PCIX" rev 0x02
> pci2 at ppb1 bus 2
> ppb2 at pci0 dev 30 function 0 "Intel 82801BA Hub-to-PCI" rev 0x0a
> pci3 at ppb2 bus 3
> em1 at pci3 dev 2 function 0 "Intel PRO/1000MT (82541GI)" rev 0x00:
> apic 2 int 21 (irq 7), address 00:c0:9f:46:39:88
> xl0 at pci3 dev 3 function 0 "3Com 3c905B 100Base-TX" rev 0x64: apic 2
> int 22 (irq 5), address 00:50:da:43:cf:11
> bmtphy0 at xl0 phy 24: 3C905B internal PHY, rev. 0
> vga1 at pci3 dev 14 function 0 "ATI Rage XL" rev 0x27
> wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
> wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
> ichpcib0 at pci0 dev 31 function 0 "Intel 6300ESB LPC" rev 0x02
> pciide0 at pci0 dev 31 function 2 "Intel 6300ESB SATA" rev 0x02: DMA,
> channel 0 configured to compatibility, channel 1 configured to
> compatibility
> wd0 at pciide0 channel 0 drive 0: <TS8GSSD25-S>
> wd0: 1-sector PIO, LBA, 7627MB, 15621984 sectors
> wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 5
> ichiic0 at pci0 dev 31 function 3 "Intel 6300ESB SMBus" rev 0x02: SMBus
> disabled
> isa0 at ichpcib0
> isadma0 at isa0
> com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
> com0: console
> 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
> pcppi0 at isa0 port 0x61
> midi0 at pcppi0: <PC speaker>
> spkr0 at pcppi0
> npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
> fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
> fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
> mtrr: Pentium Pro MTRR support
> softraid0 at root
> root on wd0a swap on wd0b dump on wd0b