Ok im not at the office now. But tomorrow we could do more test. Regards and thank you !!! El nov 14, 2013 8:01 p.m., "Andy Lemin" <a...@brandwatch.com> escribió:
> In fact thinking about it if think that is a relayd issue somewhere and > not pf at all.. > > Sent from my iPhone > > On 14 Nov 2013, at 19:37, Leonardo Santagostini <lsantagost...@gmail.com> > wrote: > > Well well well there is one thing its ocurring that i cant figure out. > > im getting some relay site3 session 3370 (502 active), 0, 190.179.249.128 > -> :0, buffer event timeout > > And after a couple a minutes (i couldnt take note exactly how many) relayd > get restarted > > Is there any clue where to look into? > > Thanks in advance > > > Saludos.- > Leonardo Santagostini > > <http://ar.linkedin.com/in/santagostini> > > > > > > 2013/11/14 Leonardo Santagostini <lsantagost...@gmail.com> > >> Ok, just added my second website to both servers like your recommendation. >> >> I will post my config before the end of the day just to share it with you. >> >> Thank you so much !!! >> >> Regards >> >> Saludos.- >> Leonardo Santagostini >> >> <http://ar.linkedin.com/in/santagostini> >> >> >> >> >> >> 2013/11/14 Leonardo Santagostini <lsantagost...@gmail.com> >> >>> Thanks a lot to all, i will give it a try and gives tou you feedback as >>> soon as it get implemented. >>> >>> Saludos.- >>> Leonardo Santagostini >>> >>> <http://ar.linkedin.com/in/santagostini> >>> >>> >>> >>> >>> >>> 2013/11/14 Andy <a...@brandwatch.com> >>> >>>> On 14/11/13 15:21, Leonardo Santagostini wrote: >>>> >>>> Hello misc, >>>> >>>> Im doing my final approach to put a production system with >>>> carp+pfsync+relayd on production. >>>> >>>> The point is that im facing some trouble setting more than one ip alias >>>> address with different vhid and different passwd. >>>> >>>> So, this is the scenario. >>>> >>>> Im trying to relayd more or less 15 sites so i have conceptual doubts. >>>> >>>> 1) is it nesessary to create one carp interface for each one of my >>>> internals VIP address >>>> 2) my understanding is that i have to work with pf on my carp interfaces. >>>> >>>> I have tried to put two different VIP's on my carp, but whitout lucky. >>>> >>>> Here is the homework. >>>> >>>> [root@server ~]# uname -a >>>> OpenBSD server.internaldomain.com 5.4 GENERIC#37 amd64 >>>> [root@server ~]# >>>> >>>> [root@server ~]# cat /etc/hostname.em0 >>>> inet 172.19.224.180 255.255.255.0 >>>> >>>> [root@server ~]# cat /etc/hostname.em1 >>>> inet 172.19.226.231 255.255.255.0 172.19.226.255 >>>> >>>> [root@server ~]# cat /etc/hostname.carp0 >>>> # inet alias 172.19.224.16 255.255.255.255 172.19.224.255 vhid 1 advskew 10 >>>> carpdev em0 pass Ahsooqu3 >>>> inet alias 172.19.224.131 255.255.255.0 172.19.224.255 vhid 2 advskew 10 >>>> carpdev em0 pass Meixo9oe >>>> # inet alias 172.19.224.41 255.255.255.255 172.19.224.255 vhid 3 advskew 10 >>>> carpdev em0 pass av5eG9Gi >>>> # inet alias 172.19.224.40 255.255.255.255 172.19.224.255 vhid 4 advskew 10 >>>> carpdev em0 pass Rei6thai >>>> # inet alias 172.19.224.181 255.255.255.0 172.19.224.255 vhid 5 advskew 10 >>>> carpdev em0 pass Toobohz3 >>>> # inet alias 172.19.224.182 255.255.255.255 172.19.224.255 vhid 6 adskew 10 >>>> carpdev em0 pass Quahng6U >>>> >>>> CARP should look like this (master); >>>> inet 172.19.224.16 255.255.255.0 172.19.224.255 vhid 1 carpdev em0 pass >>>> Ahsooqu3 advskew 0 >>>> inet alias 172.19.224.131 255.255.255.255 >>>> inet alias 172.19.224.41 255.255.255.255 >>>> inet alias 172.19.224.40 255.255.255.255 >>>> inet alias 172.19.224.181 255.255.255.255 >>>> inet alias 172.19.224.182 255.255.255.255 >>>> >>>> And (backup); >>>> inet 172.19.224.16 255.255.255.0 172.19.224.255 vhid 1 carpdev em0 pass >>>> Ahsooqu3 advskew 200 >>>> inet alias 172.19.224.131 255.255.255.255 >>>> inet alias 172.19.224.41 255.255.255.255 >>>> inet alias 172.19.224.40 255.255.255.255 >>>> inet alias 172.19.224.181 255.255.255.255 >>>> inet alias 172.19.224.182 255.255.255.255 >>>> >>>> And yes the subnet masks for the alias' should be /32 and you will see >>>> a warning in the logs during fail-over. This is fine, the devs just haven't >>>> muted the check warning yet. >>>> >>>> You've done it right if 'netstat -rn' shows; >>>> >>>> 172.19.224.131 127.0.0.1 UGHS 0 0 33152 8 >>>> lo0 >>>> 172.19.224.131/32 172.19.224.131 U 0 0 - >>>> 4 carp0 >>>> >>>> >>>> [root@server ~]# cat /etc/hostname.pfsync0 >>>> up syncdev em1 >>>> >>>> [root@server ~]# cat /etc/pf.conf >>>> ext_if="carp0" >>>> >>>> You don't refer to CARP as an interface, it is simply a VRRP watchdog >>>> interface (for example you cannot set the MTU on a CARP interface as it is >>>> not really an interface. >>>> Use the physical.. >>>> >>>> ext_if="em0" >>>> >>>> >>>> set fingerprints "/etc/pf.os" >>>> set optimization aggressive >>>> set limit states 90000 >>>> >>>> Definitely needs to be higher! try 1 million.. >>>> >>>> >>>> set limit src-nodes 65000 >>>> >>>> table <bad_ip> persist >>>> table <internat_net> persist file "/etc/internal_net" >>>> table <admitted_net> persist file "/etc/admitted.txt" >>>> >>>> # vip1_address = "172.19.224.181" >>>> # vip2_address = "172.19.224.16" >>>> vip3_address = "172.19.224.131" >>>> # vip4_address = "172.19.224.41" >>>> # vip5_address = "172.19.224.40" >>>> >>>> Just to keep you sane remember these rules; >>>> # (SNAT) NATing is done before filtering, 'pass out on $if_ext from >>>> $external_carp_ip1' (public address as src for outbound). >>>> # (DNAT) RDRing is done before filtering, 'pass in on $if_ext from any >>>> to $internal_ip1' (private address as dst for inbound). >>>> >>>> <OpenBSD_PF_flow.png> >>>> >>>> >>>> # Dejo de procesar cuando se trata de las redes internas >>>> pass in quick from <internat_net> to any >>>> >>>> # Dejo pasar las ips desde las redes permitidas >>>> # pass in quick from <admitted_net> to $vip1_address >>>> pass in quick from <admitted_net> to $vip3_address >>>> >>>> # Genero el block >>>> block in quick from <bad_ip> >>>> >>>> Your 'block in quick's should be above your 'pass in quick's! >>>> quick means stop evaluating and do this action now.. >>>> >>>> >>>> block in log quick on $ext_if proto tcp from any os "NMAP" to any label >>>> ExtNMAPScan >>>> >>>> # Proteccion contra nmap y herramientas similares >>>> # block in quick on $ext_if proto tcp flags FUP/WEUAPRSF >>>> block in quick on $ext_if proto tcp flags WEUAPRSF/WEUAPRSF >>>> block in quick on $ext_if proto tcp flags SRAFU/WEUAPRSF >>>> block in quick on $ext_if proto tcp flags /WEUAPRSF >>>> block in quick on $ext_if proto tcp flags SR/SR >>>> block in quick on $ext_if proto tcp flags SF/SF >>>> block in quick from urpf-failed >>>> >>>> >>>> # Aplico reglas de DoS y Syn Flood en site1 >>>> # pass in log on $mob_if proto tcp to $vip1_address port www keep state >>>> (sloppy, max 10000, max-src-nodes 5000, max-src-conn 100, max-src-conn-rate >>>> 95/2, adaptive .start 6000, adaptive.end 12000, tcp.first >>>> 15, tcp.opening 5, tcp.established 3600, tcp.closing 5, tcp.finwait 15, >>>> tcp.closed 15, tcp.tsdiff 5) >>>> >>>> Be careful, Direct Server Return does require sloppy states but be >>>> aware that this totally undermines state security! >>>> You still need a firewall on the outside of the load balancer to >>>> sanitize the flows.. Catch 22 as you cannot have the load balancer (with >>>> DSR) on the same box as your PF filtering if you want load balancing (with >>>> DSR) and full security.. >>>> I.e. DSR and full state modulation/security are mutually exclusive.. >>>> >>>> # Aplico reglas de DoS y Syn Flood en site2 >>>> # pass in on $ext_if proto tcp to $vip2_address port www keep state >>>> (sloppy, max 10000, max-src-nodes 5000, max-src-conn 150, max-src-conn-rate >>>> 150/3) >>>> >>>> # Aplico reglas para site3 >>>> pass in on $ext_if proto tcp to $vip3_address port www keep state (sloppy, >>>> max 10000, max-src-nodes 5000, max-src-conn 150, max-src-conn-rate 100/3) >>>> >>>> # Aplico reglas de DoS y Syn Flood en site4 >>>> # pass in on $ext_if proto tcp to $vip4_address port www keep state >>>> (sloppy, max 10000, max-src-nodes 5000, max-src-conn 150, max-src-conn-rate >>>> 100/3) >>>> >>>> # Aplico reglas de DoS y Syn Flood en site5 >>>> # pass in on $ext_if proto tcp to $vip5_address port www keep state >>>> (sloppy, max 10000, max-src-nodes 5000, max-src-conn 150, max-src-conn-rate >>>> 100/3) >>>> >>>> # Anchor Para relayd >>>> anchor "relayd/*" >>>> >>>> >>>> [root@server ~]# cat /etc/relayd.conf >>>> # Archivo de configuracion de balanceo >>>> >>>> ## Opciones globales >>>> interval 5 >>>> timeout 500 >>>> prefork 15 >>>> log all >>>> >>>> ## Direcciones de las vip >>>> # address1="172.19.224.16" >>>> # address2="172.19.224.181" >>>> address3="172.19.224.131" >>>> # address4="172.19.224.41" >>>> # address5="172.19.224.40" >>>> >>>> ## Direcciones de los servidores >>>> wsapp1="172.19.224.200" >>>> wsapp2="172.19.224.201" >>>> webcache01="172.19.224.70" >>>> webcache02="172.19.224.71" >>>> webcache03="172.19.224.72" >>>> webcache04="172.19.224.73" >>>> >>>> ## Definicion de Tablas >>>> table <mobileweb> { $wsapp1 $wsapp2 } >>>> table <webcaches> { $webcache01 $webcache02 $webcache03 $webcache04 } >>>> table <webcaches1> { $webcache01 } >>>> >>>> ## Definicion de protocolos (Filtros) >>>> >>>> http protocol "httpSite1" { >>>> >>>> header change "Connection" to "close" >>>> header append "$REMOTE_ADDR" to "X-Forwarded-For" >>>> cookie hash "sessid" >>>> >>>> } >>>> >>>> http protocol "httpSite2" { >>>> >>>> header change "Connection" to "close" >>>> header append "$REMOTE_ADDR" to "X-Forwarded-For" >>>> cookie hash "sessid" >>>> >>>> } >>>> >>>> http protocol "httpSite3" { >>>> >>>> header change "Connection" to "close" >>>> header append "$REMOTE_ADDR" to "X-Forwarded-For" >>>> } >>>> >>>> http protocol "httpSite4" { >>>> >>>> header append "$REMOTE_ADDR" to "X-Forwarded-For" >>>> >>>> } >>>> >>>> http protocol "httpSite5" { >>>> >>>> header append "$REMOTE_ADDR" to "X-Forwarded-For" >>>> >>>> } >>>> >>>> ## Definicion de los relays >>>> >>>> #relay site1 { >>>> # listen on $address2 port 80 >>>> # protocol "httpSite1" >>>> # forward to <mobileweb> port 80 mode roundrobin check http >>>> "/relaycheck/index.php" code 200 >>>> #} >>>> >>>> relay site2 { >>>> listen on $address3 port 80 >>>> protocol "httpSite2" >>>> forward to <webcaches> port 80 mode roundrobin check http >>>> "/monitoreo/relayd.txt" code 200 >>>> } >>>> >>>> #relay site3 { >>>> # listen on $address1 port 80 >>>> # protocol "httpSite3" >>>> # forward to <webcaches> port 80 mode roundrobin check http >>>> "/monitoreo/relayd.txt" code 200 >>>> #} >>>> >>>> #relay site4 { >>>> # listen on $address4 port 80 >>>> # protocol "httpSite4" >>>> # forward to <webcaches> port 80 mode roundrobin check http >>>> "/monitoreo/relayd.txt" code 200 >>>> #} >>>> >>>> #relay site5 { >>>> # listen on $address5 port 80 >>>> # protocol "httpSite5" >>>> # forward to <webcaches> port 80 mode roundrobin check http >>>> "/monitoreo/relayd.txt" code 200 >>>> #} >>>> >>>> Haven't implemented this myself so can't comment! >>>> >>>> Good luck :) >>>> Andy. >>>> >>>> >>>> >>>> [root@server ~]# dmesg >>>> OpenBSD 5.4 (GENERIC) #37: Tue Jul 30 15:24:05 MDT 2013 >>>> dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC >>>> real mem = 2130694144 (2031MB) >>>> avail mem = 2066341888 (1970MB) >>>> mainbus0 at root >>>> bios0 at mainbus0: SMBIOS rev. 2.4 @ 0x7ffffea0 (11 entries) >>>> bios0: vendor Seabios version "0.5.1" date 01/01/2007 >>>> bios0: Red Hat KVM >>>> acpi0 at bios0: rev 0 >>>> acpi0: sleep states S5 >>>> acpi0: tables DSDT FACP SSDT APIC >>>> acpi0: wakeup devices >>>> acpitimer0 at acpi0: 3579545 Hz, 24 bits >>>> acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat >>>> acpiprt0 at acpi0: bus 0 (PCI0) >>>> acpicpu0 at acpi0 >>>> mpbios0 at bios0: Intel MP Specification 1.4 >>>> cpu0 at mainbus0: apid 0 (boot processor) >>>> cpu0: Opteron or Athlon 64, 2659.01 MHz >>>> cpu0: >>>> FPU,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,PGE,CMOV,PAT,MMX,FXSR,SSE,SSE2,SSE3,POPCN T >>>> cpu0: smt 0, core 0, package 0 >>>> cpu0: apic clock running at 1000MHz >>>> cpu at mainbus0: not configured >>>> mpbios0: bus 0 is type PCI >>>> mpbios0: bus 1 is type ISA >>>> ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 11, 24 pins >>>> ioapic0: misconfigured as apic 0, remapped to apid 2 >>>> pci0 at mainbus0 bus 0 >>>> pchb0 at pci0 dev 0 function 0 "Intel 82441FX" rev 0x02 >>>> pcib0 at pci0 dev 1 function 0 "Intel 82371SB ISA" rev 0x00 >>>> pciide0 at pci0 dev 1 function 1 "Intel 82371SB IDE" rev 0x00: DMA, channel >>>> 0 wired to compatibility, channel 1 wired to compatibility >>>> wd0 at pciide0 channel 0 drive 0: <QEMU HARDDISK> >>>> wd0: 16-sector PIO, LBA48, 5000MB, 10240000 sectors >>>> wd0(pciide0:0:0): using PIO mode 0, DMA mode 2 >>>> atapiscsi0 at pciide0 channel 1 drive 0 >>>> scsibus0 at atapiscsi0: 2 targets >>>> cd0 at scsibus0 targ 0 lun 0: <QEMU, QEMU DVD-ROM, 0.12> ATAPI 5/cdrom >>>> removable >>>> cd0(pciide0:1:0): using PIO mode 0 >>>> uhci0 at pci0 dev 1 function 2 "Intel 82371SB USB" rev 0x01: apic 2 int 11 >>>> piixpm0 at pci0 dev 1 function 3 "Intel 82371AB Power" rev 0x03: apic 2 int >>>> 9 >>>> iic0 at piixpm0 >>>> iic0: addr 0x4c 48=00 words 00=0000 01=0000 02=0000 03=0000 04=0000 05=0000 >>>> 06=0000 07=0000 >>>> iic0: addr 0x4e 48=00 words 00=0000 01=0000 02=0000 03=0000 04=0000 05=0000 >>>> 06=0000 07=0000 >>>> vga1 at pci0 dev 2 function 0 "Cirrus Logic CL-GD5446" rev 0x00 >>>> wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation) >>>> wsdisplay0: screen 1-5 added (80x25, vt100 emulation) >>>> em0 at pci0 dev 3 function 0 "Intel 82540EM" rev 0x03: apic 2 int 11, >>>> address 52:54:00:4a:77:22 >>>> virtio0 at pci0 dev 4 function 0 "Qumranet Virtio Memory" rev 0x00: Virtio >>>> Memory Balloon Device >>>> viomb0 at virtio0 >>>> virtio0: apic 2 int 11 >>>> em1 at pci0 dev 5 function 0 "Intel 82540EM" rev 0x03: apic 2 int 10, >>>> address 52:54:00:1e:57:27 >>>> isa0 at pcib0 >>>> isadma0 at isa0 >>>> com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo >>>> com0: probed fifo depth: 0 bytes >>>> 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 >>>> pms0 at pckbc0 (aux slot) >>>> pckbc0: using irq 12 for aux slot >>>> wsmouse0 at pms0 mux 0 >>>> pcppi0 at isa0 port 0x61 >>>> spkr0 at pcppi0 >>>> fdc0 at isa0 port 0x3f0/6 irq 6 drq 2 >>>> fd0 at fdc0 drive 0: density unknown >>>> fd1 at fdc0 drive 1: density unknown >>>> usb0 at uhci0: USB revision 1.0 >>>> uhub0 at usb0 "Intel UHCI root hub" rev 1.00/1.00 addr 1 >>>> nvram: invalid checksum >>>> vscsi0 at root >>>> scsibus1 at vscsi0: 256 targets >>>> softraid0 at root >>>> scsibus2 at softraid0: 256 targets >>>> root on wd0a (bf96a0273abe52bf.a) swap on wd0b dump on wd0b >>>> WARNING: / was not properly unmounted >>>> clock: unknown CMOS layout >>>> carp: pfsync0 demoted group carp by 32 to 160 (pfsync init) >>>> carp: pfsync0 demoted group pfsync by 32 to 32 (pfsync init) >>>> carp: pfsync0 demoted group carp by 1 to 161 (pfsync bulk start) >>>> carp: pfsync0 demoted group pfsync by 1 to 33 (pfsync bulk start) >>>> carp: pfsync0 demoted group carp by -1 to 32 (pfsync bulk fail) >>>> carp: pfsync0 demoted group pfsync by -1 to 32 (pfsync bulk fail) >>>> carp: pfsync0 demoted group carp by -32 to 0 (pfsync init) >>>> carp: pfsync0 demoted group pfsync by -32 to 0 (pfsync init) >>>> pfsync: failed to receive bulk update >>>> carp0: state transition: BACKUP -> MASTER >>>> carp0: state transition: BACKUP -> MASTER >>>> nd6_na_input: duplicate IP6 address fe80:0005::0200:5eff:fe00:0102 >>>> carp0: state transition: BACKUP -> MASTER >>>> nd6_na_input: duplicate IP6 address fe80:0005::0200:5eff:fe00:0102 >>>> >>>> >>>> Two more things >>>> >>>> 1) Sorry for my english, is not my mothers tongue >>>> 2) Thank you for doing this great operantig system >>>> >>>> Saludos / Regards >>>> Leonardo Santagostini