Sunteți pe pagina 1din 55

Proyecto Integrado:

"Firewall en cluster de alta disponibilidad"


Administracin de Sistemas Informticos Ciclo Formativo Grado Superior
IES Gonzalo Nazareno

Arturo Borrero Gonzlez arturo.borrero. lez! mail.com Abril"#unio de $%&&


'ocumento ba(o licencia Creative Commons )CC"B*"SA +.%) ,sted es libre de copiar- modificar . redistribuir este documento ba(o los t/rminos 0ue establece la licencia- consultables en la 1eb.

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

4N'ICE 'E C5N6ENI'5S

NDICE DE CONTENIDOS
INTRODUCCIN..............................................................................................................................3
5b(etivos.....................................................................................................................................................+ Sobre el clusterin .......................................................................................................................................+ Concepto importante3 recurso......................................................................................................................7 Fire1all clusterin .......................................................................................................................................7

PREPARACIN.................................................................................................................................9
8ard1are necesario.....................................................................................................................................9 Entornos virtualizados.................................................................................................................................9 Sof1are a usar...........................................................................................................................................&& Debian..................................................................................................................................................11 Keepalived............................................................................................................................................11 Corosync..............................................................................................................................................12 Pacemaker............................................................................................................................................12
Configuracin de recursos en el cluster............................................................................................................13

Rsync....................................................................................................................................................2 Conntrackd...........................................................................................................................................22
!ntendiendo el funcionamiento.........................................................................................................................23 Re"uisitos previos..............................................................................................................................................2# Compilacin $si fuera necesaria%......................................................................................................................2& Configuracin de Conntrackd...........................................................................................................................2& Resource 'gent $controlador del recurso%........................................................................................................2& Puesta en marc(a..............................................................................................................................................31

CLUSTER KEEPALI ED !act"#o$%a&"#o'....................................................................................3(


Ar0uitectura...............................................................................................................................................+: Confi uracin............................................................................................................................................+: Keepalived............................................................................................................................................3& Conntrackd...........................................................................................................................................3)

CLUSTER CON COROS)NC*PACE+AKER !act"#o$%a&"#o'.................................................39


Ar0uitectura...............................................................................................................................................+9 Confi uracin............................................................................................................................................:% Corosync..............................................................................................................................................# Conntrackd...........................................................................................................................................#1
Recurso en el cluster.........................................................................................................................................#2

Pacemaker............................................................................................................................................#3
*rupo de recursos.............................................................................................................................................#& Pingd.................................................................................................................................................................#&

PRUE,AS DE -UNCIONA+IENTO............................................................................................(.
;eepalived . Coros.nc..............................................................................................................................:7 A(uste de recursos en 2acema<er...............................................................................................................:= 6rfico.......................................................................................................................................................:= Cluster al l+mite, -perf y '..................................................................................................................#/ Conntrackd...........................................................................................................................................#0

CONCLUSIONES............................................................................................................................/0
>aloracin personal...................................................................................................................................?& @;eepalived o Coros.ncA2acema<erB.......................................................................................................?$ 2roblemas encontrados..............................................................................................................................?+ 6erminolo Ca..............................................................................................................................................?+ Deferencias................................................................................................................................................?:

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . $E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

IN6D5',CCIFN

INTRODUCCIN
Este es el documento central del 2ro.ecto Inte rado para el Ciclo Superior de Formacin 2rofesional Gcf sH de Administracin de Sistemas Informticos GasiH en el curso $%&%E$%&&. 'urante esta memoria se desarrollan asuntos relacionados con la implantacin de un cluster de alta disponibilidad cu.o servicio principal es un fire1all.

O12et"#o&
Este 2ro.ecto Inte rado se basa en una serie de ob(etivos principales- entre los 0ue cabe destacar los si uientes3 &. Comprender . entender toda la tecnolo Ca- el soft1are . las metodolo Cas de traba(o implicadas en el mundo del clusterin de alta disponibilidad. $. 'esarrollar una implantacin de un fire1all sobre un cluster de alta disponibilidad en modo ActivoE2asivo.

So1re e3 c34&ter"ng
El mundo del clusterin es mu. amplio. 2ara situarnos en una primera posicin e intentar acceder a /l- deben Iacerse dos separaciones3 Clusterin de supercomputacin3 A rupaciones de m0uinas 0ue compartirn ciertos recursos G eneralmente procesador . memoriaH para desarrollar clculos de ran coste . comple(idad. Clusterin de alta disponibilidad3 A rupaciones de m0uinas 0ue comparten ciertos recursos Gcuales0uieraH para presentar al cliente un Jnico sistema con una alta tolerancia a fallos.

Aun0ue compartan la palabra )cluster) . aun0ue compartan al unas Ierramientas para su creacinEadministracin- realmente la funcin de cada tipo de cluster est bien diferenciada. 'el clusterin - se esperan las si uientes caracterCsticas a un coste relativamente ba(o3 Alto rendimiento. Alta disponibilidad. Alta eficiencia. Gran escalabilidad.

EKisten varias confi uraciones posibles- 0ue estn relacionadas con el reparto de recursos . con la
Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . +E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

IN6D5',CCIFN funcin especCfica de cada nodo. En este pro.ecto son tratadas dos- 0ue son3 Act"#o5Pa&"#o Cluster donde un nodo funciona como )Laster) . otro como )Slave). Esto 0uiere decir 0ue en el nodo principal estarn todos los recursos desple ados- . el nodo secundario solo entrar en (ue o cuando se produzca un fallo en el nodo primario. En cual0uier caso- el cliente solo interactJa con un nodo GFi . &H.

1ig. 1, slo un nodo interact2a.

Act"#o5Act"#o Mos recursos se Ian repartido por ambos nodos- de modo 0ue ambos pueden responder a las peticiones entrantes en )i ualdad) de condiciones. El uso principal para este tipo de clusters es el balanceo de car a. El cliente interactJa con ms de un nodo- aun0ue este proceso es transparente GFi . $H.

1ig. 2, ambos nodos interact2an.

Adems eKisten otras posibilidades mu. avanzadas para la construccin de clusters de alta disponibilidad- . 0ue son3 N*0 "N En confi uraciones tipo activo"pasivo- para reducir el coste de un nodo de bac<up 0ue no Iace nada- se pueden crear confi uraciones en las 0ue el nodo de bac<up es compartido por varios otros nodos principales GFi . +H. El sistema si ue siendo de alta disponibilidad- dado 0ue eKiste tolerancia a fallo en los nodos primarios. El cliente interactJa con varias I2>s- se Jn la propia confi uracin del cluster.
Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . :E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

IN6D5',CCIFN

1ig. 3, 3e interactua con cada nodo primario.

N$to$N "N Se combinan recursos en alta disponibilidad en mJltiples nodos GFi . :Hinclu.endo balanceos de car a- donde cada nodo puede contener cual0uier servicio racias a sistemas de almacenamiento compartido GSAN- etc...H.

1ig. #, 42ltiples recursos repartidos por todo el cluster. Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . ?E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

IN6D5',CCIFN

Conce%to "6%ortante: rec4r&o


Mo primero 0ue vamos a encontrar al traba(ar con un cluster de alta disponibilidad es un recurso. Es fundamental comprender el concepto de recurso- por0ue nos abrir la puerta a entendernos con lo 0ue Ia. detrs . con las posibilidades de confi uracin ,n recurso es una interpretacin de un servicio Ga veces- incluso un con(unto de servicios o demoniosH 0ue ser puesto en alta disponibilidad. 2ara cada recurso Ia. un script 0ue sabe cmo mane(ar los servicios 0ue corresponden- controlar los estados- parar- arrancar- etc... A priori- un recurso se corresponde con un servicio. Esto 0uiere decir lo si uiente3 "N Servicio Ittp GapacIeH "N Decurso Ittp GapacIeH "N Servicio s bd Gm.s0lH "N Decurso s bd Gm.s0lH Oetc...P ,na vez comprendida e interiorizada esta correspondencia podemos decir 0ue un recurso puede ser al o mucIo ms completo 0ue un servicio . 0ue tiene caracterCsticas aQadidas3 Lovilidad3 ,n servicio pertenece a una m0uina. ,n recurso no pertenece a una m0uina concreta. Inte racin3 2odemos conse uir un rado mu. alto de inte racin entre distintos recursosR relaciones de localizacin- relaciones de orden de arran0ue . parada- etc... A rupacin3 2odrCamos decir 0ue un recurso en al unos casos est compuesto de varios servicios- e incluso de otros recursos. AsC 0ue podemos resumir 0ue cuando Iablamos de un cluster de alta disponibilidad- nos referimos 0ue se ofrecen recursos . servicios.

-"re7a33 c34&ter"ng
'entro del mundo del soft1are libre GGN,EMinuKH- Iablar de t/cnicas de fire1all si nifica Iacer una referencia directa a la Ierramienta )iptables)- del pro.ecto Netfilter. 2uede considerarse la base desde la 0ue sur en o donde se apo.an la ma.orCa del resto de Ierramientas para construccin de cortafue os. 'ebido a la naturaleza de este 2ro.ecto Inte rado Gesto no es un documento cientCfico de investi acin .Eo anlisisH- no se tendrn en cuenta Ierramientas privativas ni fire1alls basados en Iard1are. Cuando Iablamos de )fire1all clusterin )- las referencias a Ierramientas para construir el cluster son triviales- . por lo eneral slo se prestar atencin al funcionamiento del con(unto de fire1all- a los propio mecanismos del fire1all. En la actualidad pueden encontrarse documentos 0ue describen . valoran con ran precisin
Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . 7E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

IN6D5',CCIFN las posibilidades . opciones del fire1all clusterin - entre las 0ue destacan3 Fire1all en cluster activoEpasivo3 Sin balanceo de car a. ,n nodo principal filtra todo el trfico . un nodo de backup espera a entrar en accin en caso de fallo del primero. Ma principal consecuencia es el )desaprovecIamiento) de los recursos del nodo de backup5 0ue en circunstancias normales no Iar nada. GFi . ?H

1ig. &, 1ire6all en cluster activo7pasivo.

Fire1all en cluster activoEactivo con multiruta3 Delativo balanceo de car a. 6odos los nodos del cluster filtran trfico- cada nodo traba(ando para una ruta o sentido de la coneKin Gpor e(emplo- f1& filtrando el trfico saliente de la red . f1$ el trfico entranteH. Inviable para fire1alls basados en filtros por estados- debido a la necesidad de sincronizacin instantnea de estados de coneKiones.

1ig. ), 1ire6all en cluster activo7activo con multiruta.

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . =E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

IN6D5',CCIFN Fire1all en cluster activoEactivo con balanceo eKterno Gsand1icIH3 Balanceo de car a provisto por un sistema eKterno al cluster del fire1all. Cada nodo del cluster filtrar el trfico 0ue le Ia.a sido asi nado. 5pcin con una relacin )coste"comple(idad"resultados) poco satisfactoria- debido 0ue para un sistema real de alta disponibilidad GFi . =H el nJmero de m0uinas . servidores a confi urar es mu. alto Gbalanceadores de car a redundantes por cada )pata) del fire1all- adems de los dos servidores para el propio cluster del fire1allH.

1ig. /, Cluster fire6all activo7activo $sand6ic(%.

Fire1all en cluster activoEactivo basados en IasI3 Con un balanceo de car a interno. 6odos los nodos recibirn el mismo trfico . Iaciendo operaciones matemticas sobre el IasI de al unos datos Gpuerto- I2- protocolo- etc..H de cada pa0uete- cada nodo puede distin uir si es /l mismo el encar ado de realizar el filtrado GFi . SH. >lido para cortafue os de abundante trfico sobre ran cantidad de re las de iptables.

1ig. 8, Cluster fire6all activo7activo basado en (as(. Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . SE??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN

PREPARACIN
Antes de empezar a montar el cluster- es fundamental tener controlado el entorno de traba(o . los recursos disponiblesEnecesarios.

8ard7are nece&ar"o
Ma cantidad- calidad . capacidad del Iard1are estar Cnte ramente relacionada con la dimensin del cluster a construir. 2ara un fire1all- es de suponer 0ue los elementos principales de cada m0uina ser la DAL . las interfaces de red. 5tras caracterCsticas como el disco duro no toman tanta importancia. 'e manera en/rica- para un fire1all montado en un cluster necesitaremos las si uientes interfaces de red3 Interfaz dedicada para la comunicacin entre nodos. Decomendable usar ms de unaR el sistema ser ms completo mientras ms redundancia Ia.a. Interfaz dedicada a cada zona. Si estamos constru.endo un fire1all de tres patasnecesitaremos + interfaces dedicadas en cada nodo. En caso de bondin entre interfaces- el nJmero se incrementa considerablemente- dado 0ue tambi/n Iabr 0ue Iacer el bondin en cada uno de los nodos del cluster.

Entorno& #"rt4a3"9ado&
Cuando se constru.e un cluster en entornos virtualizados Gpor e(emplo- ;>LH- es importante tener en cuenta el coneKionado de red- 0ue ad0uiere una dimensin un poco ms comple(a de lo Iabitual3 2or cada )s1itcI) 0ue construirCamos en la realidad- debemos crear una red virtual- a base de interfaces virtuales en modo )brid e). Es importante vi ilar la tabla de encaminamiento de la m0uina anfitriona para obli ar a 0ue el trfico se mueva por donde est planeado. A cada m0uina virtual Ia. 0ue definirle sus interfaces- especificando a 0ue red estan )en ancIadas).

Mos ficIeros de confi uracin para cada red de ;>L son los si uientes3
root!nostromo3TU cat EetcElibvirtE0emuEnet1or<sEredinterna.Kml Vnet1or<N VnameNredinternaVEnameN VuuidNa=+ee=$d"bfe&"fb+c"e7S$"b?7%$e:$a%a+VEuuidN Vfor1ard devWXetI&X modeWXnatXEN Vbrid e nameWXvirbr%X stpWXonX dela.WX%X EN Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . 9E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN
Vip addressWX&%.%.%.&$SX netmas<WX$??.$??.$??.%XN VEipN VEnet1or<N root!nostromo3TU cat EetcElibvirtE0emuEnet1or<sEredcliente.Kml Vnet1or<N VnameNredclienteVEnameN VuuidN7SdScc&S"fe$$"$&?+"7de?"f?dbd=9c9$9$VEuuidN Vbrid e nameWXvirbr$X stpWXonX dela.WX%X EN Vip addressWX&9$.&7S.&%%.&X netmas<WX$??.$??.$??.%XN VEipN VEnet1or<N root!nostromo3TU cat EetcElibvirtE0emuEnet1or<sEredIeartbeat.Kml Vnet1or<N VnameNredIeartbeatVEnameN VuuidN$77fa=+S":e$&"f$=d"f?a%"cS?&df=:b:f$VEuuidN Vbrid e nameWXvirbr&X stpWXonX dela.WX%X EN Vip addressWX&=$.&7.%.&X netmas<WX$??.$??.$??.%XN VEipN VEnet1or<N

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . &%E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN

So:7are a 4&ar
Cabe destacar 0ue el soft1are usado es &%%Y libre . ratuito. 6odo el soft1are ira en torno al movimiento GN,EMinuK- . es probable en otros entornos tipo ,NIZ tambi/n puedan desarrollarse t/cnicas de clusterin con confi uracionesEIerramientas similares. ,n cluster bsico se compone Gcomo se Ia descrito anteriormenteH de dos elementos fundamentales0ue se corresponden con la estin de recursos GserviciosH . a la comunicacin entre nodos para la determinacin de estados. 'ependiendo del sistema a montar- traba(aremos con3 o bien3 Coros.nc Gv.&.$.&": H "N Comunicacin entre nodos. 2acema<er Gv.&.%.9.&AI &?7$7"&H "N Control de recursos desple ados en alta disponibilidad. ;eepalived Gv &.&.$%"& H "N Control de los recursos I2> . mane(o de Conntrac<d

Adems- para este cluster 0ue realiza funciones de fire1all- se Ian IecIo necesarias otras Ierramientas3 Ds.nc Gv. +.%.="$H "N Sincronizacin de ficIeros de confi uracin entre nodos. Conntrac<d Gv. %.9.&:"$H "N Sincronizacin del estado de las coneKiones 6C2EI2 0ue son valoradas por el fire1all.

De1"an
El Sistema 5perativo donde se van a realizar todas las pruebas . todo el monta(e es 'ebian GN,EMinuK en su versin 7.% G'ebian S0ueezeH. Es probable 0ue en otras distribuciones de MinuKsiendo i ualmente vlidas- ten an diferentes versiones de los pa0uetes a usar o incluso 0ue las caracterCsticas propias del sistema obli uen a realizar ciertas tareas de distinta manera a las descritas a0uC. 2ara el monta(e del cluster- es mu. recomendable una instalacin de 'ebian S0ueeze en modo )netinstall) instalando Jnicamente el sistema base. El resto de soft1are se instalar a medida 0ue va.a siendo necesitado- desde los repositorios oficiales Gaptitude o apt" etH.

Kee%a3"#ed
Soft1are 0ue realiza una implementacin del protocolo >DD2. El protocolo est diseQado Gse Jn el DFC+=7SH para aportar redundancia a nodos de una determinada red mediante la abstraccin de una I2 virtual- 0ue representar a ms de un nodo. ;eepalived puede traba(ar solo o mediante la con(uncin con M>S GMinuK >irtual ServerH para aportar servicios de alta redundancia . balanceo de car a- aun0ue este asunto escapa a los ob(etivos de este pro.ecto. Ma instalacin es desde los repositorios oficiales de 'ebian3

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . &&E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN
root!f1&3TU aptitude install <eepalived root!f1$3TU aptitude install <eepalived

Cabe seQalar 0ue con la instalacin de )conntrac<"tools) se inclu.en ficIeros de confi uracin especCficos para ;eepalived 0ue proporcionan la funcionalidad bsica para el cluster de cortafue os.

Coro&ync
Soft1are 0ue proporciona la comunicacin directa de estados entre nodos de un cluster de Alta 'isponibilidad. A trav/s de Coros.nc- todas las m0uinas conocern si al Jn miembro del cluster se encuentra en )failover) o cual0uier otro estado 0ue impli0ue imposibilidad de un funcionamiento normal. Ma instalacin es desde los repositorios oficiales de debian3
root!f1&3TU aptitude install coros.nc root!f1$3TU aptitude install coros.nc

2odemos usar la confi uracin 0ue viene de e(emplo- con lo cual3


root!f1&3TU mv EetcEcoros.ncEcoros.nc.conf EetcEcoros.ncEcoros.nc.conf.ori root!f1&3TU cp EetcEcoros.ncEcoros.nc.conf.eKample EetcEcoros.ncEcoros.nc.conf

En principio- todos los nodos del cluster tendrn la misma confi uracin para Coros.nc- asC 0ue no es mala idea sincronizar los ficIeros. Coros.nc no proporciona nin Jn m/todo para 0ue la confi uracin se auto propa ue. Es posible 0ue en un monta(e avanzado- cada nodo posea una confi uracin distinta Gtiempos de espera- transmisin . recepcin de datos- etc..H- aun0ue no es el caso.

Pace6a;er
2acema<er es un con(unto de utilidades . Ierramientas con base al ficIero )cib.Kml)- 0ue es donde est declarado el cluster- todos sus componentes- todos los recursos . todas las restricciones. EKisten varias interfaces para 2acema<er . para mane(ar el )cib.Kml). Mas ms eKtendidas3 CDL [ Ma ms comJn. 2roporciona interfaz de comandos GCMIH con una sintaKis mu. simplificada pero con una ran potencia. 'LC [ 8erramienta rfica escrita en #ava. 2uede simplificar bastante las tareas de mantenimiento de un cluster de alta disponibilidad. Cibadmin [ 2ro rama CMI de edicin directa del )cib.Kml) con sintaKis mu. comple(a.

En este pro.ecto se usa la Ierramienta )crm)- 0ue puede traba(ar en modo interactivo Gcon su propio promptH o como un pro rama normal 0ue recibe parmetros de entrada. En ambos casos la sintaKis es id/ntica.

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . &$E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN Cuando vamos a Iacer modificaciones- es recomendable crear un )cib.Kml) de tipo temporal Gllamado )sIado1 cib)H donde Iaremos las modificaciones- las validaremos . finalmente confirmaremos3
root!f1&3TU crm crmGliveHU cib crmGliveHcibU ne1 usa e3 ne1 VsIado1\cibN O1itIstatusP OforceP crmGliveHcibU ne1 cf INF53 cf sIado1 CIB created crmGliveHcibU use cf crmGcf HcibU end crmGcf HU confi ure crmGcf Hconfi ureU sIo1 node ]idW)=%?d:%f&"$$ea":be%"a?b="fff%&$+S%9ad) f1& node ]idW)a$%e%=$f"ce?b":&ec"S=+a"d99S&S%ca?ce) f1$ propert. ]idW)cib"bootstrap"options) ^ dc"versionW)&.%.9"=:+9$a$Sb=f+&d=ddcS77S9?9Sbd$+&&:f?S9=Sb) ^ cluster"infrastructureW)openais) crmGcf Hconfi ureU sIo1 Kml VBKml versionW)&.%) BN Vcib admin\epocIW)%) cib"last"1rittenW)6ue Apr &9 &?3%73:= $%&&) crm\feature\setW)+.%.&) dc"uuidW)=%?d:%f&" $$ea":be%"a?b="fff%&$+S%9ad) epocIW)7) Iave"0uorumW)&) num\updatesW)$) validate"1itIW)pacema<er"&.%)N Vconfi urationN Vcrm\confi N Vcluster\propert.\set idW)cib"bootstrap"options)N Vnvpair idW)cib"bootstrap"options"dc"version) nameW)dc"version) valueW)&.%.9" =:+9$a$Sb=f+&d=ddcS77S9?9Sbd$+&&:f?S9=Sb)EN Vnvpair idW)cib"bootstrap"options"cluster"infrastructure) nameW)cluster"infrastructure) valueW)openais)EN VEcluster\propert.\setN VEcrm\confi N Vrsc\defaultsEN Vop\defaultsEN VnodesN Vnode idW)=%?d:%f&"$$ea":be%"a?b="fff%&$+S%9ad) t.peW)normal) unameW)f1&)EN Vnode idW)a$%e%=$f"ce?b":&ec"S=+a"d99S&S%ca?ce) t.peW)normal) unameW)f1$)EN VEnodesN VresourcesEN VconstraintsEN VEconfi urationN VEcibN

Cabe destacar 0ue el )cib.Kml) es propa ado automticamente entre todos los nodos del cluster- por lo 0ue las instrucciones de 2acema<er pueden e(ecutarse en cual0uier m0uina del con(unto. Con:"g4rac"<n de rec4r&o& en e3 c34&ter Es posible escribir nuestros propios scripts de control GDesource A entsH para 2acema<eraun0ue eKisten un buen nJmero de scripts .a desarrollados para los recursos ms comunes GBdsI2>s- 1eb- sistemas de ficIeros compartidos- etc...H. Si fuera necesario listar los scripts disponibles para recursos- crm nos lo pone fcil3

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . &+E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN
root!f1&3TU crm ra classes Ieartbeat lsb ocf E Ieartbeat pacema<er stonitI root!f1&3TU crm ra list ocf Ieartbeat AoEtar et Lail6o AudibleAlarm Lana eDAI' C6'B Lana e>E ClusterLon 2ure"F62d 'ela. Daid& 'umm. Doute EvmsSCC SA2'atabase Evmsd SA2Instance Files.stem SendArp IC2 ServeDAI' I2addr SpIinKSearcI'aemon I2addr$ S0uid I2srcaddr Stateful I2v7addr S.sInfo M>L >I2Arip MinuKSCSI >irtual'omain _AS _AS7 _in2opup Zen Zinetd an.tIin apacIe db$ drbd e'irSS iSCSIMo ical,nit iSCSI6ar et ids iscsi ldirectord m.s0l m.s0l"proK. nfsserver oracle oralsnr p s0l pin d portbloc< postfiK proftpd rs.ncd scsi$reservation sfeK s.slo "n tomcat vm1are

2odemos ver una descripcin del )Desource A ent) 0ue se va.a a usar a continuacin3
root!f1&3TU crm ra meta ocf3I2addr Lana es virtual I2v: addresses Gportable versionH Gocf3Ieartbeat3I2addrH 6Iis script mana es I2 alias I2 addresses It can add an I2 alias- or remove one. 2arameters G` denotes re0uired- OP tIe defaultH3 ip` Gstrin H3 I2v: address 6Ie I2v: address to be confi ured in dotted 0uad notation- for eKample )&9$.&7S.&.&). nic Gstrin - OetI%PH3 Net1or< interface 6Ie base net1or< interface on 1IicI tIe I2 address 1ill be brou It online. If left empt.- tIe script 1ill tr. and determine tIis from tIe routin table. 'o N56 specif. an alias interface in tIe form etI%3& or an.tIin IereR ratIer- specif. tIe base interface onl.. cidr\netmas< Gstrin H3 Netmas< 6Ie netmas< for tIe interface in CI'D format. Gie- $:H- or in dotted 0uad notation $??.$??.$??.%H. If unspecified- tIe script 1ill also tr. to determine tIis from tIe routin table.

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . &:E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN
broadcast Gstrin H3 Broadcast address Broadcast address associated 1itI tIe I2. If left empt.- tIe script 1ill determine tIis from tIe netmas<. iflabel Gstrin H3 Interface label *ou can specif. an additional label for .our I2 address Iere. lvs\support Gboolean- OfalsePH3 Enable support for M>S 'D Enable support for M>S 'irect Doutin confi urations. In case a I2 address is stopped- onl. move it to tIe loopbac< device to allo1 tIe local node to continue to service re0uests- but no lon er advertise it on tIe net1or<. local\stop\script Gstrin H3 Script called 1Ien tIe I2 is released local\start\script Gstrin H3 Script called 1Ien tIe I2 is added AD2\IN6ED>AM\LS Ginte er- O?%%PH3 milliseconds bet1een ratuitous AD2s milliseconds bet1een AD2s AD2\DE2EA6 Ginte er- O&%PH3 repeat count 8o1 man. ratuitous AD2s to send out 1Ien brin in up a ne1 address AD2\BAC;GD5,N' Gboolean- O.esPH3 run in bac< round run in bac< round Gno lon er an. reason to do tIisH AD2\NE6LAS; Gstrin - OffffffffffffPH3 netmas< for AD2 netmas< for AD2 " in nonstandard IeKadecimal format. 5perationsX defaults Gadvisor. minimumH3 start timeoutW$%s stop timeoutW$%s monitor\% intervalW?s timeoutW$%s

2ara modificar los recursos- tenemos 0ue entrar en el modo confi uracin de crm- . tocar los parmetros en funcin del script 0ue va.amos a usar. 'ebemos especificar un nombre identificativo para el recurso- 0ue nos servir despu/s para editarlo- borrarlo- etc.. Esta es la declaracin de una I2 virtual en la interfaz etI% del cluster- donde se usa el script )ocf3Ieartbeat3I2addr) con parmetros para su confi uracin3
crmGcf Hconfi ureU primitive I2>"inet ocf3Ieartbeat3I2addr ^ params ipW&%.%.%.&$ nicWetI% cidr\netmas<W$: ^ op monitor intervalW?s crmGcf Hconfi ureU sIo1 node ]idW)=%?d:%f&"$$ea":be%"a?b="fff%&$+S%9ad) f1& node ]idW)a$%e%=$f"ce?b":&ec"S=+a"d99S&S%ca?ce) f1$ primitive I2>"inet ocf3Ieartbeat3I2addr ^ params ipW)&%.%.%.&$) nicW)etI%) cidr\netmas<W)$:) ^ op monitor intervalW)?s) propert. ]idW)cib"bootstrap"options) ^ dc"versionW)&.%.9"=:+9$a$Sb=f+&d=ddcS77S9?9Sbd$+&&:f?S9=Sb) ^

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . &?E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN
cluster"infrastructureW)openais) crmGcf Hconfi ureU commit

5tra I2 virtual en la interfaz GetI$H de la red interna GMANH3


crmGcf Hconfi ureU primitive I2>"lan ocf3Ieartbeat3I2addr ^ params ipW&9$.&7S.&%%.+ nicWetI$ cidr\netmas<W$: ^ op monitor intervalW?s crmGcf Hconfi ureU sIo1 node ]idW)=%?d:%f&"$$ea":be%"a?b="fff%&$+S%9ad) f1& node ]idW)a$%e%=$f"ce?b":&ec"S=+a"d99S&S%ca?ce) f1$ primitive I2>"inet ocf3Ieartbeat3I2addr ^ params ipW)&%.%.%.&$) nicW)etI%) cidr\netmas<W)$:) ^ op monitor intervalW)?s) primitive I2>"lan ocf3Ieartbeat3I2addr ^ params ipW)&9$.&7S.&%%.+) nicW)etI$) cidr\netmas<W)$:) ^ op monitor intervalW)?s) propert. ]idW)cib"bootstrap"options) ^ dc"versionW)&.%.9"=:+9$a$Sb=f+&d=ddcS77S9?9Sbd$+&&:f?S9=Sb) ^ cluster"infrastructureW)8eartbeat) crmGcf Hconfi ureU commit crmGcf Hconfi ureU eKit b.e root!f1&3TU crm\mon WWWWWWWWWWWW Mast updated3 Sun Apr $+ &&3++3&9 $%&& Stac<3 8eartbeat Current 'C3 f1& Ga$%e%=$f"ce?b":&ec"S=+a"d99S&S%ca?ceH " partition 1itI 0uorum >ersion3 &.%.9"=:+9$a$Sb=f+&d=ddcS77S9?9Sbd$+&&:f?S9=Sb $ Nodes confi ured- un<no1n eKpected votes $ Desources confi ured. WWWWWWWWWWWW 5nline3 O f1& f1$ P I2>"inet Gocf33Ieartbeat3I2addrH3 Started f1& I2>"lan Gocf33Ieartbeat3I2addrH3 Started f1$

Cuando los recursos Ia.an terminado de definirse . estemos traba(ando con un cib sIado1- es necesario Iacer un commit para 0ue se uarden al sistema. Es posible 0ue Ia.a al unos fallos si S65NI68 no est confi urado3
crmGcf Hconfi ureU verif. crm\verif.O+?+:P3 $%&&E%:E&9\&93&S3&+ EDD5D3 unpac<\resources3 Desource start"up disabled since no S65NI68 resources Iave been defined crm\verif.O+?+:P3 $%&&E%:E&9\&93&S3&+ EDD5D3 unpac<\resources3 EitIer confi ure some or disable S65NI68 1itI tIe stonitI"enabled option crm\verif.O+?+:P3 $%&&E%:E&9\&93&S3&+ EDD5D3 unpac<\resources3 N56E3 Clusters 1itI sIared data need S65NI68 to ensure data inte rit. Errors found durin cIec<3 confi not valid crmGcf Hconfi ureU commit crm\verif.O+??%P3 $%&&E%:E&9\&93&S3&= EDD5D3 unpac<\resources3 Desource start"up disabled since no S65NI68 resources Iave been defined crm\verif.O+??%P3 $%&&E%:E&9\&93&S3&= EDD5D3 unpac<\resources3 EitIer confi ure some or disable S65NI68 1itI Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . &7E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN
tIe stonitI"enabled option crm\verif.O+??%P3 $%&&E%:E&9\&93&S3&= EDD5D3 unpac<\resources3 N56E3 Clusters 1itI sIared data need S65NI68 to ensure data inte rit. Errors found durin cIec<3 confi not valid 'o .ou still 1ant to commitB *es crmGcf Hconfi ureU eKit

2ara avisar al cluster de 0ue de momento traba(aremos sin S65NI68- usamos lo si uiente3
root!f1&3TU crm confi ure propert. stonitI"enabledWfalse root!f1&3TU crm\verif. "M

Adems- como es el caso de un cluster de $ nodos- es necesario especificar 0ue se traba(ar i norando el )0uorum). 'e lo contrario- en caso del apa ado repentino de un nodo- 2acema<er no ser capaz de volver a repartir los recursos debido a 0ue considerar 0ue el cluster est incapacitado.
root!f1&3TU crm confi ure propert. no"0uorum"polic.Wi nore

Se Jn el caso- 0uizs sea necesario especificar 0ue los recursos del cluster tienen 0ue correr en el mismo nodo. El comportamiento por defecto de 2acema<er es intentar repartir los recursos entre diferentes nodos- buscando e0uilibrar car as de traba(o. En el argot del clusterin - esto se llama )colocacin)3
root!f1&3TU crm confi ure colocation I2>s INFINI6*3 I2>"inet I2>"lan root!f1$3TU crm confi ure sIo1 node ]idW)=%?d:%f&"$$ea":be%"a?b="fff%&$+S%9ad) f1& node ]idW)a$%e%=$f"ce?b":&ec"S=+a"d99S&S%ca?ce) f1$ primitive I2>"inet ocf3Ieartbeat3I2addr ^ params ipW)&%.%.%.&$) nicW)etI%) cidr\netmas<W)$:) ^ op monitor intervalW)?s) primitive I2>"lan ocf3Ieartbeat3I2addr ^ params ipW)&9$.&7S.&%%.&$) nicW)etI$) cidr\netmas<W)$:) ^ op monitor intervalW)?s) colocation I2>s inf3 I2>"inet I2>"lan propert. ]idW)cib"bootstrap"options) ^ dc"versionW)&.%.9"=:+9$a$Sb=f+&d=ddcS77S9?9Sbd$+&&:f?S9=Sb) ^ cluster"infrastructureW)8eartbeat) ^ stonitI"enabledW)false) ^ no"0uorum"polic.W)i nore) rsc\defaults ]idW)rsc"options) ^ resource"stic<inessW)&%%) root!f1&3TU crm\mon WWWWWWWWWWWW Mast updated3 Sun Apr $: &+3%+3?9 $%&& Stac<3 8eartbeat Current 'C3 f1$ Ga$%e%=$f"ce?b":&ec"S=+a"d99S&S%ca?ceH " partition 1itI 0uorum >ersion3 &.%.9"=:+9$a$Sb=f+&d=ddcS77S9?9Sbd$+&&:f?S9=Sb $ Nodes confi ured- un<no1n eKpected votes $ Desources confi ured. WWWWWWWWWWWW

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . &=E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN
5nline3 O f1& f1$ P I2>"inet Gocf33Ieartbeat3I2addrH3 Started f1$ I2>"lan Gocf33Ieartbeat3I2addrH3 Started f1$

Si tubiesemos 0ue ordenar el arran0ue de recursos Gunos antes 0ue otrosH- se IarCa con la directiva )mandator.). Al o asC especificarCa al cluster 0ue el recurso )I2>"inet) debe arrancarse antes 0ue )I2>"lan)3
root!f1$3TU crm confi ure order I2>"inet"antes"I2>"lan ^ mandator.3 I2>"inet I2>"lan root!f1$3TU crm confi ure sIo1 node ]idW)=%?d:%f&"$$ea":be%"a?b="fff%&$+S%9ad) f1& node ]idW)a$%e%=$f"ce?b":&ec"S=+a"d99S&S%ca?ce) f1$ primitive I2>"inet ocf3Ieartbeat3I2addr ^ params ipW)&%.%.%.&$) nicW)etI%) cidr\netmas<W)$:) ^ op monitor intervalW)?s) primitive I2>"lan ocf3Ieartbeat3I2addr ^ params ipW)&9$.&7S.&%%.&$) nicW)etI$) cidr\netmas<W)$:) ^ op monitor intervalW)?s) colocation I2>s inf3 I2>"inet I2>"lan order I2>"inet"antes"I2>"lan inf3 I2>"inet I2>"lan propert. ]idW)cib"bootstrap"options) ^ dc"versionW)&.%.9"=:+9$a$Sb=f+&d=ddcS77S9?9Sbd$+&&:f?S9=Sb) ^ cluster"infrastructureW)8eartbeat) ^ stonitI"enabledW)false) ^ no"0uorum"polic.W)i nore) rsc\defaults ]idW)rsc"options) ^ resource"stic<inessW)&%%)

No son necesarias restricciones de orden de arran0ue en todos los casos. Estn pensadas para randes combinaciones de recursos- donde Gpor e(emploH una base de datos re0uiere un sistema de ficIeros compartidos- etc.. A0uC solo se Ia puesto a modo de e(emplo. 2odemos especificar el nivel de preferencia de un recurso a correr en un nodo concreto del cluster. Esto si nifica 0ue en la medida de lo posible- el recurso se 0uedar en un nodo especCfico3
root!f1&3TU crm confi ure location prefer"f1&"I2>"inet I2>"inet ?%3 f1& root!f1&3TU crm confi ure location prefer"f1&"I2>"lan I2>"lan ?%3 f1& root!f1$3TU crm confi ure sIo1 node ]idW)=%?d:%f&"$$ea":be%"a?b="fff%&$+S%9ad) f1& node ]idW)a$%e%=$f"ce?b":&ec"S=+a"d99S&S%ca?ce) f1$ primitive I2>"inet ocf3Ieartbeat3I2addr ^ params ipW)&%.%.%.&$) nicW)etI%) cidr\netmas<W)$:) ^ op monitor intervalW)?s) primitive I2>"lan ocf3Ieartbeat3I2addr ^ params ipW)&9$.&7S.&%%.&$) nicW)etI$) cidr\netmas<W)$:) ^ op monitor intervalW)?s) location prefer"f1&"I2>"inet I2>"inet ?%3 f1& location prefer"f1&"I2>"lan I2>"lan ?%3 f1& colocation I2>s inf3 I2>"inet I2>"lan order I2>"inet"antes"I2>"lan inf3 I2>"inet I2>"lan propert. ]idW)cib"bootstrap"options) ^ dc"versionW)&.%.9"=:+9$a$Sb=f+&d=ddcS77S9?9Sbd$+&&:f?S9=Sb) ^ Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . &SE??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN
cluster"infrastructureW)8eartbeat) ^ stonitI"enabledW)false) ^ no"0uorum"polic.W)i nore) rsc\defaults ]idW)rsc"options) ^ resource"stic<inessW)&%%)

El nJmero especificado est relacionado con el parmetro )resource"stic<ness)- 0ue indica la preferencia de cual0uier recurso a 0uedarse en el nodo 0ue est antes de cambiar de nodo lue o de una caida. Esto est pensado para servicios pesados Gcomo 5racle 'BH- cu.o tiempo de arran0ue . parada puede ser considerable3
root!f1&3TU crm confi ure rsc\defaults resource"stic<inessW&%%

2odemos usar la Ierramienta )ptest) para visualizar las puntuaciones de los recursos con respecto a cada nodo3
root!f1$3TU ptest "sM Allocation scores3 native\color3 I2>"lan allocation score on f1&3 &%% native\color3 I2>"lan allocation score on f1$3 $%% native\color3 I2>"inet allocation score on f1&3 "&%%%%%% native\color3 I2>"inet allocation score on f1$3 &%%

2ara indicarle a 2acema<er 0ue debe mover inmediatamente un recurso de un nodo a otro del cluster- podemos usar la si uiente instruccin3
root!f1&3TU crm resource move I2>"lan f1&

No obstante- esto le 0uitar el control de los movimientos de recursos a 2acema<er. 2ara devolver el cluster a la normalidad- moviendose de nuevo los recursos con los parmetros . puntuaciones asi nados previamente3
root!f1&3TU crm resource unmove I2>"lan

Cuando estamos traba(ando con nodos- Iaciendo a(ustes a 2acema<er . al resto de confi uracin podemos )separar) momentaneamente a un nodo del cluster- con las opciones )standb.) . )online). ,n nodo en modo )standb.) no podr poseer nin Jn recurso3
root!f1$3TU crm node standb. root!f1$3TU crm\mon WWWWWWWWWWWW Mast updated3 Sun Apr $: &+3::3%$ $%&& Stac<3 8eartbeat Current 'C3 f1$ Ga$%e%=$f"ce?b":&ec"S=+a"d99S&S%ca?ceH " partition 1itI 0uorum >ersion3 &.%.9"=:+9$a$Sb=f+&d=ddcS77S9?9Sbd$+&&:f?S9=Sb $ Nodes confi ured- un<no1n eKpected votes $ Desources confi ured. WWWWWWWWWWWW

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . &9E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN
Node f1$ Ga$%e%=$f"ce?b":&ec"S=+a"d99S&S%ca?ceH3 standb. 5nline3 O f1& P I2>"inet Gocf33Ieartbeat3I2addrH3 Started f1& I2>"lan Gocf33Ieartbeat3I2addrH3 Started f1& root!f1$3TU crm node online root!f1$3TU crm\mon WWWWWWWWWWWW Mast updated3 Sun Apr $: &+3:73&% $%&& Stac<3 8eartbeat Current 'C3 f1$ Ga$%e%=$f"ce?b":&ec"S=+a"d99S&S%ca?ceH " partition 1itI 0uorum >ersion3 &.%.9"=:+9$a$Sb=f+&d=ddcS77S9?9Sbd$+&&:f?S9=Sb $ Nodes confi ured- un<no1n eKpected votes $ Desources confi ured. WWWWWWWWWWWW 5nline3 O f1& f1$ P I2>"inet Gocf33Ieartbeat3I2addrH3 Started f1& I2>"lan Gocf33Ieartbeat3I2addrH3 Started f1&

En el resto del documento se detalla la construccin del cluster para el fire1all usando 2acema<er.

R&ync
2ara traba(ar con ficIeros de confi uracin en/ricos 0ue deban ser i uales en todos los nodos del cluster- Ds.nc es la Ierramienta. 'e forma en/rica- al unos ficIeros 0ue ser interesante mantener sincronizados3 El propio script )EusrElocalEbinEclusterEs.nc\files.sI)- adems del ficIero 0ue contiene la lista de arcIivos a sincronizar G)EetcErs.nc.dEs.nc\files.conf)H. Mos ficIeros de iptables Gpara el fire1allH- en el directorio )EetcEfire1all.dE) . tambi/n el script MSB de inicio- en )EetcEinit.dEfire1all). FicIeros de confi uracin relacionados con el entorno de red- como por e(emplo )EetcEresolv.conf) . )EetcEs.sctl.conf). En el caso de m0uinas id/nticas en cuanto a Iard1are- es posible 0ue sea interesante sincronizar la confi uracin especCfica de los mdulos del sistema- con los ficIeros )EetcEmodules) . el directorio )EetcEmodprobe.dE) FicIeros de confi uracin de Coros.nc- id/nticos en todos los nodos)EetcEcoros.ncEcoros.nc.conf)- )EetcEcoros.ncEservice.dEpcm<)- )EetcEdefaultEcoros.nc).

Ds.nc debe ser usado de manera 0ue solo sincronice los ficIeros ms nuevos. Esto si nifica 0ue mediante Ds.nc propa aremos por todos los nodos el ficIero de confi uracin ms reciente 0ue se Ia.a encontrado. 2ara ello- se usa un pe0ueQo script 0ue se e(ecutar cada +% se undos. El script es de desarrollo propio . est en el ficIero )EusrElocalEbinEclusterEs.nc\files.sI)3
UaEbinEbasI

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . $%E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN
U Este script Iace uso de rs.nc para sincronizar U ficIeros entre los nodos de un cluster. U El script esta pensado para e(ecutarse varias veces por minuto. GcrontabH U 6odas las ma0uinas 0ue participen deben intercambiar las claves U para la coneKion ssI3 U ssI"<e. en U ssI"a ent ]S8EMM U ssI"add U ssI"cop."id U Ademas- es mu. importante 0ue las Ioras esten sincronizadas. U En caso contrario- el comportamiento es ciertamente problematico. U Mos nombres de cada ma0uina deben a(ustarse a buname "nb U No importa de donde ven a la lista de nombres mientras se cumpla. U 'ebe Iaber un espacio en blanco entre cada nombre de ma0uina. U Se comprueba un loc< file para 0ue no se superpon an e(ecuciones U de este script UUUUUUUUUUUUUUUUUUUUUUUUU U >ariables U UUUUUUUUUUUUUUUUUUUUUUUUU UMIS6A\N5'5SWbcat EetcEIeartbeatEIa.cf c rep node c a1< "FX X Xdprint ]$eXb MIS6A\N5'5SW)f1& f1$) 68ISWbuname "nb MIS6A\FIC8ED5SW)EetcErs.nc.dEs.nc\files.conf) 68IS\2I'W]] M5C;\FIMEW)EvarErunEs.nc\files.sI.M5C;) UUUUUUUUUUUUUUUUUUUUUUUUU U 2ro rama U UUUUUUUUUUUUUUUUUUUUUUUUU U >alidando e(ecucion if O "e ]M5C;\FIME P tIen if O )bcat ]M5C;\FIMEb) aW ]68IS\2I' P tIen eKit & fi else ecIo )]68IS\2I') N ]M5C;\FIME fi U Sincronia for nodo in ]MIS6A\N5'5S do U Si el nodo de la lista no es el propio nodo e(ecutando este script U se e(ecuta la instruccion de rs.nc if O )]nodo) aW )]68IS) P tIen U Se sincronizan los ficIeros especificados en ]MIS6A\FIC8ED5S U ,sando como copia maestra el mas reciente.

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . $&E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN
rs.nc "urv ""files"fromW]MIS6A\FIC8ED5S ]nodo3E E fi done U Finalizando e(ecucion rm "f ]M5C;\FIME eKit

2ermisos adecuados para el script Gcron puede dar problemasH3


root!f1&TU cImod u AK EusrElocalEbinEclusterEs.nc\files.sI

Se Ia aQadido a )EetcEcrontab) de la si uiente manera3


`` `` ` ` ` root ` ` ` root EusrElocalEbinEclusterEs.nc\files.sI sleep +% ff EusrElocalEbinEclusterEs.nc\files.sI

2aso previo para el correcto funcionamiento de este sistema- deben intercambiarse las claves de ssI de todos los nodos- de manera 0ue el proceso de autenticacin sea totalmente transparente . automtico. En todo este pro.ecto se usan los mismos nodos- con lo cual el intercambio de claves es el si uiente3 'esde el nodo & Gf1&H
root!f1&3TU ssI"<e. en root!f1&3TU ssI"cop."id &=$.&7.%.$

* desde el nodo $ Gf1$H3

root!f1$3TU ssI"<e. en root!f1$3TU ssI"cop."id &=$.&7.%.&

2ara aQadir un nuevo ficIero 0ue sea necesario sincronizar se debe se uir el si uiente procedimiento3 &. Crear el ficIero- con su contenido. En cual0uier nodo. $. AQadir la linea correspondiente al ficIero )EetcErs.nc.dErs.nc\files.conf) del nodo donde primero se a re el ficIero. 2ara borrar un ficIero 0ue estaba siendo sincronizado- el procedimiento es el si uiente3 &. Borrar el ficIero de la lista en )EetcErs.nc.dErs.nc\files.conf) de cual0uier nodo. $. Borrar manualmente el ficIero en el resto de nodos.

Conntrac;d
Conntrac<d es una Ierramienta GdemonioH del pro.ecto Netfilter 0ue proporciona transmisin . recepcin de los estados de las coneKiones valorados por el <ernel de MinuK.
Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . $$E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN Se puede enca(ar dentro de las )conntrac<"tools)- 0ue inclu.e al citado Conntrac<d . tambi/n la Ierramienta Conntrac<- para interactuar )manualmente) contra el estado de las coneKiones mantenidas por el <ernel. Entend"endo e3 :4nc"ona6"ento En al unos tipos de clusters es necesario sincronizar discos duros o determinados procesospero para el caso concreto de este fire1all en alta disponibilidad- tenemos 0ue sincronizar una parte de la memoria DAL de cada m0uina- de modo 0ue cada nodo pueda ser )consciente) del estado de las coneKiones del otro nodo. Esto lo Iace Conntrac<d si uiendo el si uiente es0uema de funcionamiento GFi . 9H3

1ig. 0, flu9o de datos de Connntrackd

Conntrac<d se puede usar en varias confi uraciones distintas. A0uC se usar con sincronizacin peridica Gno realtimeH- 0ue soporta los si uientes modos3 notrack3 Gno"se uimientoH Lu. simple- envCa . recibe informacin sobre los estados de las coneKiones sin realizar nin Jn cIec<eo adicional especCfico. ft-fw3 Gfault"tolerant fire1allH Se basa en un protocolo 0ue realiza se uimiento de mensa(escon lo 0ue conntrac< puede recuperarse de p/rdidas- reordenaciones . corrupcin de datos. alarm3 Este enfo0ue re0uiere randes prestaciones de red. 2eridicamente reenvCa la cacI/ interna de estado de las coneKiones a los nodos de bac<up- resolviendo problemas de sincronizacin rpidamente. del ficIero

Se usar el modo )alarm)- 0ue re0uiere una confi uracin especial )EetcEconntrac<dEconntrac<d.conf) . 0ue ser detallado en si uientes secciones.
Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . $+E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN Re=4"&"to& %re#"o& Se Jn puede leerse en la documentacin oficial- para traba(ar con las )conntrac<"tools) necesitamos tener un <ernel de MinuK de versin superior a la )$.7.&S)- compilado con soporte para lo si uiente3 Sistema de se uimiento de coneKiones3 C5NFIG\NF\C5NN6DAC;Wm C5NFIG\NF\C5NN6DAC;\I2>:Wm C5NFIG\NF\C5NN6DAC;\I2>7Wm Gsi procedieraH nfnetlin<- intefaz en/rica de mensa(es para Netfilter3 C5NFIG\NE6FIM6ED\NE6MIN;Wm nf\conntrac<\netlin<3 interfaz de mensa(es para el sistema de se uimiento de coneKiones3 C5NFIG\NF\C6\NE6MIN;Wm n A2I3 Ma interfaz de notificaciones basada en trfico. C5NFIG\NF\C5NN6DAC;\E>EN6SW.

Es necesario car ar al unos mdulos en el sistema- si no lo estuvieran .a previamente3 nf\conntrac< nf\conntrac<\ipv: nf\conntrac<\ipv7 Gsi procedieraH nf\conntrac<\netlin< nfnetlin< nf\defra \ipv:

2odemos car ar los mdulos automticamente en el arran0ue del sistema de cada nodo- meti/ndolos en el ficIero )EetcEmodules)3
EetcEmodules O...P nf\conntrac< nf\conntrac<\ipv: nf\conntrac<\netlin< nfnetlin< nf\defra \ipv: O...P

Adems- es necesaria la confi uracin de un parmetro 0ue resultar fundamental en el caso de 0ue se produzca un failoverEfailbac< real del cluster . el fire1all ten a 0ue valorar el estado de coneKiones recibidas mediante Conntrac<d.
EetcEs.sctl.conf O...P net.netfilter.nf\conntrac<\tcp\loose W % O...P

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . $:E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN Ma instalacin bsica de 'ebian S0ueeze inclu.e Gse uramenteH todas las opciones referentes al <ernel- asC 0ue traba(amos desde los repositorios oficiales. Se instala en todas las m0uinas del cluster 0ue 0ueramos 0ue sirvan como fire1all3
root!f1&3TU aptitude install conntrac<d conntrac< O...P root!f1$3TU aptitude install conntrac<d conntrac<

Co6%"3ac"<n !&" :4era nece&ar"a' Si necesitramos compilar las )conntrac<"tools)- es necesario se uir este procedimiento3 &. 5btener los pa0uetes de la 1eb oficial de netfilter.or g conntrac<"tools"K.K.K.tar.bz$ g libnfnetlin<"K.K.K.tar.bz$ g libnetfilter"conntrac<.K.K.K.tar.bz$ $. 'escompresin de los pa0uetes- con tar3 U tar Kf( fic(ero.tar.b:2 +. Instalacin de al unos pa0uetes necesarios para la compilacin- se Jn el sistema operativo3 U aptitude install cc fleK bison p< "confi ma<e :. 2ara compilar las librerias3 U .Econfi ure ff ma<e ff ma<e install ?. 2ara compilar conntrac<"tools3 U .Econfi ure [prefiKWEusr ff ma<e ff ma<e install Con:"g4rac"<n de Conntrac;d Mos pa0uetes instalados vienen con ficIeros de confi uracin con modelos sobre cada modos de funcionamiento. Se pueden encontrar en )EusrEsIareEdocEconntrac<dEeKamplesE). Como se usar el modo )alarm)- para cual0uier confi uracin si uiente es necesario realizar las si uientes acciones3
root!f1&3EusrEsIareEdocEconntrac<dEeKamplesEs.ncEalarmU zcat conntrac<d.conf. z N conntrac<d.conf root!f1&3EusrEsIareEdocEconntrac<dEeKamplesEs.ncEalarmU cp conntrac<d.conf EetcEconntrac<dEconntrac<d.conf

Re&o4rce Agent !contro3ador de3 rec4r&o' Como .a se Ia visto antes- para mane(ar un recurso necesitamos un Desource A ent. El de Conntrac<d no viene por defecto con 2acema<er Gen la versin usada de 'ebianH ni con otra Ierramienta propia de clusterin . Ia. 0ue crearlo a mano si uiendo los estndares 5CF o buscarlo online. Es posible 0ue en futuras versiones de 2acema<er GN&.%H este Desource A ent se inclu.a en los pa0uetes. El Desource A ent se Ia descar ado de internet . se Ia metido en el sistema en el ficIero )EusrElibEocfEresource.dEIeartbeatEconntrac<d). Adems- es necesario dar permisos de e(ecucin a
Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . $?E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN todos los usuarios.


UaEbinEbasI U U U An 5CF DA for conntrac<d U Ittp3EEconntrac<"tools.netfilter.or E U U Cop.ri It GcH $%&& 'omini< ;lein U U 6Iis pro ram is free soft1areR .ou can redistribute it andEor modif. U it under tIe terms of version $ of tIe GN, General 2ublic Micense as U publisIed b. tIe Free Soft1are Foundation. U U 6Iis pro ram is distributed in tIe Iope tIat it 1ould be useful- but U _I685,6 AN* _ADDAN6*R 1itIout even tIe implied 1arrant. of U LEDC8AN6ABIMI6* or FI6NESS F5D A 2AD6IC,MAD 2,D25SE. U U FurtIer- tIis soft1are is distributed 1itIout an. 1arrant. tIat it is U free of tIe ri Itful claim of an. tIird person re ardin infrin ement U or tIe li<e. An. license provided Ierein- 1IetIer implied or U otIer1ise- applies onl. to tIis soft1are file. 2atent licenses- if U an.- provided Ierein do not appl. to combinations of tIis pro ram 1itI U otIer soft1are- or an. otIer product 1Iatsoever. U U *ou sIould Iave received a cop. of tIe GN, General 2ublic Micense U alon 1itI tIis pro ramR if not- 1rite tIe Free Soft1are FoundationU Inc.- ?9 6emple 2lace " Suite ++%- Boston LA %$&&&"&+%=- ,SA. U UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU U Initialization3 3 ]d5CF\F,NC6I5NS\'IDW]d5CF\D556eEresource.dEIeartbeate . ]d5CF\F,NC6I5NS\'IDeE.ocf"sIellfuncs UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU 5CF\DES;E*\binar.\defaultWEusrEsbinEconntrac<d 5CF\DES;E*\confi \defaultWEetcEconntrac<dEconntrac<d.conf 3 ]d5CF\DES;E*\binar.W]d5CF\DES;E*\binar.\defaultee 3 ]d5CF\DES;E*\confi W]d5CF\DES;E*\confi \defaultee meta\dataGH d cat VVEN' VBKml versionW)&.%)BN Va'5C6*2E resource"a ent S*S6EL )ra"api"&.dtd)N Vresource"a ent nameW)conntrac<d)N VversionN&.&VEversionN Vlon desc lan W)en)N LasterESlave 5CF Desource A ent for conntrac<d VElon descN VsIortdesc lan W)en)N6Iis resource a ent mana es conntrac<dVEsIortdescN

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . $7E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN
VparametersN Vparameter nameW)conntrac<d)N Vlon desc lan W)en)NName of tIe conntrac<d eKecutable. If conntrac<d is installed and available in tIe default 2A68- it is sufficient to confi ure tIe name of tIe binar. For eKample )m."conntrac<d"binar."version"%.9.&:) If conntrac<d is installed someI1ere else- .ou ma. also ive a full patI For eKample )Epac<a esEconntrac<d"%.9.&:EsbinEconntrac<d) VElon descN VsIortdesc lan W)en)NName of tIe conntrac<d eKecutableVEsIortdescN Vcontent t.peW)strin ) defaultW)]5CF\DES;E*\binar.\default)EN VEparameterN Vparameter nameW)confi )N Vlon desc lan W)en)NFull patI to tIe conntrac<d.conf file. For eKample )Epac<a esEconntrac<d"%.9.:EetcEconntrac<dEconntrac<d.conf)VElon descN VsIortdesc lan W)en)N2atI to conntrac<d.confVEsIortdescN Vcontent t.peW)strin ) defaultW)]5CF\DES;E*\confi \default)EN VEparameterN VEparametersN VactionsN Vaction nameW)start) timeoutW)+%) EN Vaction nameW)promote) timeoutW)+%) EN Vaction nameW)demote) timeoutW)+%) EN Vaction nameW)notif.) timeoutW)+%) EN Vaction nameW)stop) timeoutW)+%) EN Vaction nameW)monitor) deptIW)%) timeoutW)$%) intervalW)$%) roleW)Slave) EN Vaction nameW)monitor) deptIW)%) timeoutW)$%) intervalW)&%) roleW)Laster) EN Vaction nameW)meta"data) timeoutW)?) EN Vaction nameW)validate"all) timeoutW)+%) EN VEactionsN VEresource"a entN EN' e meta\eKpectGH d local 1IatW]& 1IatvarW5CF\DES;E*\CDL\meta\]d&EE"E\e opW]$ eKpectW]+ local valW]da1Iatvare if OO "n ]val PPR tIen U O- not OO- or it 1onXt 1or< RH O ]val ]op ]eKpect P ff return fi ocf\lo err )meta parameter misconfi ured- eKpected ]1Iat ]op ]eKpect- but found ]dval3"unsete.) eKit ]5CF\EDD\C5NFIG,DE' e conntrac<d\is\masterGH d U *ou canXt 0uer. conntrac<d 1IetIer it is master or slave. It can be botI at tIe same time. U 6Iis DA creates a statefile durin promote and enforces master"maKW& and clone"node"maKW& Ia\pseudo\resource ]statefile monitor e conntrac<d\set\master\scoreGH d ]d8A\SBIN\'IDeEcrm\master "h "l reboot "v ]& e

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . $=E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN
conntrac<d\monitorGH d rcW]5CF\N56\D,NNING U It does not 1rite a 2I' file- so cIec< 1itI p rep p rep "f ]5CF\DES;E*\binar. ff rcW]5CF\S,CCESS if O )]rc) "e0 )]5CF\S,CCESS) PR tIen U conntrac<d is runnin U no1 see if it acceppts 0ueries if a ]5CF\DES;E*\binar. "C ]5CF\DES;E*\confi "s N EdevEnull $Nf&R tIen rcW]5CF\EDD\GENEDIC ocf\lo err )conntrac<d is runnin but not respondin to 0ueries) fi if conntrac<d\is\masterR tIen rcW]5CF\D,NNING\LAS6ED U Destore master settin on probes if O ]5CF\DES;E*\CDL\meta\interval "e0 % PR tIen conntrac<d\set\master\score ]master\score fi else U Destore master settin on probes if O ]5CF\DES;E*\CDL\meta\interval "e0 % PR tIen conntrac<d\set\master\score ]slave\score fi fi fi return ]rc e conntrac<d\startGH d rcW]5CF\EDD\GENEDIC U ;eep tr.in to start tIe resourceR U 1ait for tIe CDL to time us out if tIis fails 1Iile 3R do conntrac<d\monitor statusW]B case )]status) in ]5CF\S,CCESSH rcW]5CF\S,CCESS conntrac<d\set\master\score ]slave\score brea< RR ]5CF\N56\D,NNINGH ocf\lo info )Startin conntrac<d) ]5CF\DES;E*\binar. "C ]5CF\DES;E*\confi "d RR ]5CF\D,NNING\LAS6EDH ocf\lo 1arn )conntrac<d alread. in master mode- demotin .) Ia\pseudo\resource ]statefile stop RR ]5CF\EDD\GENEDICH ocf\lo err )conntrac<d start failed) rcW]5CF\EDD\GENEDIC brea< RR esac

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . $SE??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN
done return ]rc e conntrac<d\stopGH d rcW]5CF\EDD\GENEDIC U ;eep tr.in to brin do1n tIe resourceR U 1ait for tIe CDL to time us out if tIis fails 1Iile 3R do conntrac<d\monitor statusW]B case )]status) in ]5CF\S,CCESSH ocf\lo info )Stoppin conntrac<d) ]5CF\DES;E*\binar. "C ]5CF\DES;E*\confi "< RR ]5CF\N56\D,NNINGH rcW]5CF\S,CCESS brea< RR ]5CF\D,NNING\LAS6EDH ocf\lo 1arn )conntrac<d still master) RR esac done return ]rc e conntrac<d\validate\allGH d cIec<\binar. )]5CF\DES;E*\binar.) if a O "e )]5CF\DES;E*\confi ) PR tIen ocf\lo err )Confi FIME ]5CF\DES;E*\confi does not eKist) return ]5CF\EDD\INS6AMME' fi meta\eKpect master"node"maK W & meta\eKpect master"maK W & meta\eKpect clone"node"maK W & meta\eKpect clone"maK W $ return ]5CF\S,CCESS e conntrac<d\promoteGH d rcW]5CF\S,CCESS if a conntrac<d\is\masterR tIen U "c W Commit tIe eKternal cacIe to tIe <ernel U "f W FlusI internal and eKternal cacIe U "D W res.nc 1itI tIe <ernel table U "B W send a bul< update on tIe line for parm in c f D BR do if a ]5CF\DES;E*\binar. "C ]5CF\DES;E*\confi "]parmR tIen ocf\lo err )]5CF\DES;E*\binar. "C ]5CF\DES;E*\confi "]parm failed durin promote.) rcW]5CF\EDD\GENEDIC brea<

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . $9E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN
fi done Ia\pseudo\resource ]statefile start conntrac<d\set\master\score ]master\score fi return ]rc e conntrac<d\demoteGH d rcW]5CF\S,CCESS if conntrac<d\is\masterR tIen U "t W sIorten <ernel timers to remove zombies U "n W re0uest a res.nc from tIe otIers for parm in t nR do if a ]5CF\DES;E*\binar. "C ]5CF\DES;E*\confi "]parmR tIen ocf\lo err )]5CF\DES;E*\binar. "C ]5CF\DES;E*\confi "]parm failed durin demote.) rcW]5CF\EDD\GENEDIC brea< fi done Ia\pseudo\resource ]statefile stop conntrac<d\set\master\score ]slave\score fi return ]rc e conntrac<d\notif.GH d IostnameW]GIostnameH U 5CF\DES;E*\CDL\meta\notif.\master\uname is a 1Iitespace separated list of master Iostnames for master in ]5CF\DES;E*\CDL\meta\notif.\master\unameR do U if 1e are tIe master and an instance 1as (ust started on anotIer node3 U send a bul< update to allo1 failbac< if O )]Iostname) W )]master) "a )]5CF\DES;E*\CDL\meta\notif.\t.pe) W )post) "a )]5CF\DES;E*\CDL\meta\notif.\operation) W )start) "a )]5CF\DES;E*\CDL\meta\notif.\start\uname) aW )]Iostname) PR tIen ocf\lo info )Sendin bul< update in post start to peers to allo1 failbac<) ]5CF\DES;E*\binar. "C ]5CF\DES;E*\confi "B fi done for tobepromoted in ]5CF\DES;E*\CDL\meta\notif.\promote\unameR do U if tIere is a promote action to be eKecuted on anotIer node3 U send a bul< update to allo1 failbac< if O )]Iostname) aW )]tobepromoted) "a )]5CF\DES;E*\CDL\meta\notif.\t.pe) W )pre) "a )]5CF\DES;E*\CDL\meta\notif.\operation) W )promote) PR tIen ocf\lo info )Sendin bul< update in pre promote to peers to allo1 failbac<) ]5CF\DES;E*\binar. "C ]5CF\DES;E*\confi "B fi done e conntrac<d\usa eGH d cat VVE5F usa e3 ]% dstartcstopcpromotecdemotecmonitorcvalidate"allcmeta"datae EKpects to Iave a full. populated 5CF DA"compliant environment set. E5F e

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . +%E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN
statefileWconntrac<d.]d5CF\DES5,DCE\INS6ANCEe.master master\scoreW&%%% slave\scoreW&%% if O ]U "ne & PR tIen conntrac<d\usa e eKit ]5CF\EDD\ADGS fi case ]\\5CF\AC6I5N in meta"dataH meta\data eKit ]5CF\S,CCESS RR usa eH conntrac<d\usa e eKit ]5CF\S,CCESS esac U Ever.tIin eKcept usa e and meta"data must pass tIe validate test conntrac<d\validate\all cc eKit case ]\\5CF\AC6I5N in startH conntrac<d\start RR stopH conntrac<d\stop RR promoteH conntrac<d\promote RR demoteH conntrac<d\demote RR statuscmonitorH conntrac<d\monitor RR notif.H conntrac<d\notif. RR validate"allH RR `H conntrac<d\usa e eKit ]5CF\EDD\,NIL2MELEN6E' esac U eKit code is tIe eKit code Greturn codeH of tIe last command GsIell functionH

P4e&ta en 6arc>a Como el demonio tiene un script de control en )EetcEinit.d) no es necesario arrancarlo manualmente al inicio del sistema3 de forma predeterminada 'ebian lo Iar- . si no- 2acema<er.
Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . +&E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN En cual0uier caso3


root!f1&3EetcEconntrac<dU conntrac<d "d root!f1&3EetcEconntrac<dU ps auK c rep conntrac<d root 9=9 %.% %.& &$7&7 =7: B Ss Apr$= %3%% EusrEsbinEconntrac<d "d

Si el script MSB de EetcEinit.d no fuera incluido- podemos usar el si uiente3


5etc5"n"t.d5conntrac;d UaEbinEbasI UUU BEGIN INI6 INF5 U 2rovides3 conntrac<d U De0uired"Start3 U De0uired"Stop3 U Z"Start"Before3coros.nc U 'efault"Start3 $+:? U 'efault"Stop3 %&7 U SIort"'escription3 Script de inicio de Conntrac<d U 'escription3 Script de inicio de Conntrac<d creado por Arturo #unio $%&&. UUU EN' INI6 INF5 UUUUUUUUUUUUUUUUUU U >ariables NALEW)conntrac<d) C5NN6DAC;'\2A68W)EusrEsbinEconntrac<d) C5NN6DAC;'\C5NFIGW)EetcEconntrac<dEconntrac<d.conf) C5NN6DAC;'\C6MFIMEW)EvarErunEconntrac<d.ctl) C5NN6DAC;'\M5C;FIMEW)EvarEloc<Econntrac<.loc<) return\codeW)%) UUUUUUUUUUUUUUUUUU U >alidaciones if O a "K ]C5NN6DAC;'\2A68 PR tIen ecIo )EDD5D. EKpected binar. not found at ^)becIo "n ]C5NN6DAC;'\2A68b^).) eKit & fi if O a "f ]C5NN6DAC;'\C5NFIG PR tIen ecIo )EDD5D3 EKpected conntrac<d confi file at ^)becIo "n ]C5NN6DAC;'\C5NFIGb^).) eKit & fi UUUUUUUUUUUUUUUUUUU U E(ecucion case )]&) in startH ]C5NN6DAC;'\2A68 "d if O ]B "ne % P tIen ecIo )EDD5D. Failed to start ^)becIo "n ]C5NN6DAC;'\2A68b^).) return\codeW& fi RR stopH

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . +$E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2DE2ADACIFN
]C5NN6DAC;'\2A68 "< $N EdevEnull if O ]B "ne % P tIen ecIo )EDD5D. Failed to stop ^)becIo "n ]C5NN6DAC;'\2A68b^). 6r.in Iarder...) <illall )]NALE "d) $N EdevEnull if O ]B "ne % P tIen ecIo )EDD5D. Failed to stop ^)becIo "n ]C5NN6DAC;'\2A68b^) even 1itI ^)<illall^).) return\codeW& else return\codeW% fi else return\codeW% fi RR statusH if O a "e ]C5NN6DAC;'\M5C;FIME P tIen ecIo )]NALE is not runnin .) return\codeW% else pidWbps auK c rep ]NALE c rep )^"d) c rep "v rep c a1< "FX X Xdprint ]$eXb ecIo )]NALE is runnin - 1itI 2I' ]pid) if O ]B aW % P tIen return\codeW& else return\codeW% fi fi RR restartH sI EetcEinit.dEconntrac<d stop if O ]B aW % P tIen return\codeW]B fi sI EetcEinit.dEconntrac<d start if O ]B aW % P tIen return\codeW]B fi if O ]return\code aW % P tIen ecIo )SometIin 1ent 1ron 1Ien restartin .) fi RR `H ecIo ),sa e3 EetcEinit.dEconntrac<d dstartcstopcrestartcstatuse) return\codeW& RR esac eKit ]return\code

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . ++E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

CM,S6ED ;EE2AMI>E' Gactivo"pasivoH

CLUSTER KEEPALI ED !act"#o$%a&"#o'


8aremos uso del protocolo >DD2 implementado en ;eepalived para Iacer el desplie ue de los recursos I2>s. Esta ar0uitectura slo soporta un cluster de dos nodos.

Ar=4"tect4ra
Es0uema3

1ig. 1 , Cluster 'ctivo7Pasivo con Keepalived

Mas interfaces internas Gred &=$.&7.%.%H slo sern usadas por Conntrac<d- dado 0ue ;eepalived estionar la alta disponibilidad en las interfaces pJblicas mediante anuncios multicast.

Con:"g4rac"<n
En este monta(e solo es necesario confi urar ;eepalived . Conntrac<d- con lo 0ue la construccin es bastante sencilla. 2a . +:E??

Arturo Borrero Gonzlez- Abril"#unio $%&&

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

CM,S6ED ;EE2AMI>E' Gactivo"pasivoH

Kee%a3"#ed
FicIero en el nodo primario- copiado de )EusrEsIareEdocEconntrac<dEeKamplesEs.ncE<eepalived).
5etc5;ee%a3"#ed5;ee%a3"#ed.con: vrrp\s.nc\ roup G& d roup d >I2"inet >I2"lan e notif.\master )EetcEconntrac<dEprimar."bac<up.sI primar.) notif.\bac<up )EetcEconntrac<dEprimar."bac<up.sI bac<up) notif.\fault )EetcEconntrac<dEprimar."bac<up.sI fault) e vrrp\instance >I2"inet d interface etI% state LAS6ED virtual\router\id 7& priorit. S% advert\int + autIentication d autI\t.pe 2ASS autI\pass clu]t+r e virtual\ipaddress d &%.%.%.&$ U default CI'D mas< is E+$ e e vrrp\instance >I2"lan d interface etI$ state LAS6ED virtual\router\id 7$ priorit. S% advert\int + autIentication d autI\t.pe 2ASS autI\pass clu]t+r e virtual\ipaddress d &9$.&7S.&%%.&$ e e

FicIero en el nodo se undario3


5etc5;ee%a3"#ed5;ee%a3"#ed.con: vrrp\s.nc\ roup G& d U must be before vrrp\instance declaration roup d >I2"inet >I2"lan e notif.\master )EetcEconntrac<dEprimar."bac<up.sI primar.) notif.\bac<up )EetcEconntrac<dEprimar."bac<up.sI bac<up) Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . +?E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

CM,S6ED ;EE2AMI>E' Gactivo"pasivoH


notif.\fault )EetcEconntrac<dEprimar."bac<up.sI fault) e vrrp\instance >I2"inet d interface etI% state BAC;,2 virtual\router\id 7& priorit. S% advert\int & autIentication d autI\t.pe 2ASS autI\pass clu]t+r e virtual\ipaddress d &%.%.%.&$ U default CI'D mas< is E+$ e e vrrp\instance >I2"lan d interface etI$ state BAC;,2 virtual\router\id 7$ priorit. S% advert\int & autIentication d autI\t.pe 2ASS autI\pass clu]t+r e virtual\ipaddress d &9$.&7S.&%%.&$ e e

2odemos aQadir al una opcin de confi uracin adicional. 2or e(emplo- podemos indicar a ;eepalived 0ue monitorice al una interfaz concreta . 0ue entre en failover si al una falla3
U optional- monitor tIese as 1ell. U o to FA,M6 state if an. of tIese o do1n. trac<\interface d etI% etI$ e

Conntrac;d
2ara un cluster ActivoE2asivo Geste casoH- es necesario un script 0ue interactJa con el demonio- . 0ue tambi/n viene incluido en la documentacin. No es necesaria nin una modificacin al script.
root!f1&3EusrEsIareEdocEconntrac<dEeKamplesEs.ncEU cp primar."bac<up.sI EetcEconntrac<dE

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . +7E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

CM,S6ED ;EE2AMI>E' Gactivo"pasivoH Conntrac<d necesita un tratamiento especial para funcionar en este tipo de cluster. Es necesario 0ue en caso de caCda del un nodo mster- el nuevo nodo 0ue pasa a ser el fire1all principal vuel0ue la cacI/ eKterna a su tabla del <ernel. A partir de este momento- llenar . transmitir peridicamente su cacI/ interna con los datos de la propia tabla del <ernel. Esta es la confi uracin final usada para Conntrac<d3
root!f1&3EetcEconntrac<dU cat conntrac<d.conf c rep "v iU c rep "v i] c rep "v )iOO3space3PP`U) S.nc d Lode AMADL d DefresI6ime &? CacIe6imeout &S% e Lulticast d I2v:\address $$?.%.%.?% Group +=S% I2v:\interface &=$.&7.%.&% Interface etI& SndSoc<etBuffer &$:9$S% DcvSoc<etBuffer &$:9$S% CIec<sum on e e General d Nice "$% 8asISize +$=7S 8asIMimit &+&%=$ Mo File on Moc<File EvarEloc<Econntrac<.loc< ,NIZ d 2atI EvarErunEconntrac<d.ctl Bac<lo $% e Netlin<BufferSize $%9=&?$ Netlin<BufferSizeLaKGro1tI S+SS7%S Filter From ,serspace d 2rotocol Accept d 6C2 SC62 'CC2 e Address I nore d I2v:\address &$=.%.%.& U loopbac< I2v:\address &%.%.%.&$ U >I2"inet I2v:\address &%.%.%.&% I2v:\address &%.%.%.&& I2v:\address &9$.&7S.&%%.&$ U >I2"lan I2v:\address &9$.&7S.&%%.&% I2v:\address &9$.&7S.&%%.&& I2v:\address &=$.&7.%.%.E$:. U dedicated lin< ip e e e

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . +=E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

CM,S6ED ;EE2AMI>E' Gactivo"pasivoH 8a. 0ue prestar especial atencin a las direcciones I2 0ue se especifican- asC como a las interfaces 0ue se usarn para la sincronizacin de datos entre los nodos. Se indican distintas I2s locales del cluster cu.os estados de los pa0uetes con ese destino no interesa sincronizar3 no sincronizaremos el estado del trfico diri ido a cada nodo concreto. Importante seQalar 0ue necesitaremos re las de iptables en el fire1all 0ue permitan las transmisiones multicast definidas arriba- asC 0ue como mCnimo3
iptables "I IN2,6 "d $$?.%.%.?% "( ACCE26 iptables "I 5,62,6 "d $$?.%.%.?% "( ACCE26

,na confi uracin correcta de ;eepalived debe mostrar mensa(es del protocolo >DD2 en las redes afectadas GFi . &&H3

Arturo Borrero Gonzlez- Abril"#unio $%&& 1ig. 11, ;r<fico =RRP

2a . +SE??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

CM,S6ED C5N C5D5S*NCA2ACELA;ED Gactivo"pasivoH

CLUSTER CON COROS)NC*PACE+AKER


!act"#o$%a&"#o' Se detalla el funcionamiento- construccin . pruebas para un fire1all montado sobre un cluster ActivoE2asivo Iaciendo uso de la combinacin de Coros.nc . 2acema<er.

Ar=4"tect4ra
El si uiente es0uema GFi . &$H representa la ar0uitectura de coneKionado . direcciones I2s del cluster ActivoE2asivo.

1ig. 12, Cluster 'ctivo7Pasivo con Corosync>Pacemaker

En este caso- por las interfaces internas Gred &=$.&7.%.%H se comunicarn Coros.nc- 2acema<er . Conntrac<d- con lo 0ue el trfico es ma.or. En situaciones de especiales eKi encias de disponibilidad- es recomendable usar varias interfaces internas .Eo bondin s.

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . +9E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

CM,S6ED C5N C5D5S*NCA2ACELA;ED Gactivo"pasivoH

Con:"g4rac"<n
A continuacin se detalla la confi uracin necesaria para la construccin del cluster ActivoE2asivo.

Coro&ync
Necesitamos especificar a Coros.nc 0ue tiene 0ue levantar a 2acema<er como servicio- dado 0ue en esta versin del soft1are GV &.$H- no se proporciona ni si0uiera un script MSB tipo )EetcEinit.dE) para 2acema<er. El ficIero de confi uracin principal 0ueda de la si uiente manera3
5etc5coro&ync5coro&ync.con: compatibilit.3 1Iitetan< totem d version3 $ secautI3 off tIreads3 % interface d rin number3 % bindnetaddr3 &=$.&7.%.% mcastaddr3 $$7.9:.&.& mcastport3 ?:%? e e lo in d fileline3 off to\stderr3 .es to\lo file3 .es to\s.slo 3 .es lo file3 EtmpEcoros.nc.lo debu 3 off timestamp3 on lo er\subs.s d subs.s3 ALF debu 3 off e e amf d mode3 disabled e

FicIero donde declaramos a 2acema<er- . donde especificamos 0ue es Coros.nc el 0ue debe levantarlo Gen versiones ms nuevas de 2acema<er- el valor de )ver) variarH3
5etc5coro&ync5&er#"ce.d5%c6; service d name3 pacema<er ver3 % e

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . :%E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

CM,S6ED C5N C5D5S*NCA2ACELA;ED Gactivo"pasivoH * otra importante directiva en otro ficIero- sin el cual el servicio de Coros.nc no arrancar ba(o nin una circunstancia3
5etc5de:a43t5coro&ync S6AD6W.es

Conntrac;d
Ma confi uracin final usada para Conntrac<d es la misma 0ue en el caso del cluster montado con ;eepalived3
root!f1&3EetcEconntrac<dU cat conntrac<d.conf c rep "v iU c rep "v i] c rep "v )iOO3space3PP`U) S.nc d Lode AMADL d DefresI6ime &? CacIe6imeout &S% e Lulticast d I2v:\address $$?.%.%.?% Group +=S% I2v:\interface &=$.&7.%.&% Interface etI& SndSoc<etBuffer &$:9$S% DcvSoc<etBuffer &$:9$S% CIec<sum on e e General d Nice "$% 8asISize +$=7S 8asIMimit &+&%=$ Mo File on Moc<File EvarEloc<Econntrac<.loc< ,NIZ d 2atI EvarErunEconntrac<d.ctl Bac<lo $% e Netlin<BufferSize $%9=&?$ Netlin<BufferSizeLaKGro1tI S+SS7%S Filter From ,serspace d 2rotocol Accept d 6C2 SC62 'CC2 e Address I nore d I2v:\address &$=.%.%.& U loopbac< I2v:\address &%.%.%.&$ U >I2"inet I2v:\address &%.%.%.&% I2v:\address &%.%.%.&& I2v:\address &9$.&7S.&%%.&$ U >I2"lan I2v:\address &9$.&7S.&%%.&% Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . :&E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

CM,S6ED C5N C5D5S*NCA2ACELA;ED Gactivo"pasivoH


I2v:\address &9$.&7S.&%%.&& I2v:\address &=$.&7.%.%.E$:. U dedicated lin< ip e e e

Importante seQalar 0ue necesitaremos re las de iptables en el fire1all 0ue permitan las transmisiones multicast definidas arriba- asC 0ue como mCnimo3
iptables "I IN2,6 "d $$?.%.%.?% "( ACCE26 iptables "I 5,62,6 "d $$?.%.%.?% "( ACCE26

Rec4r&o en e3 c34&ter AQadimos el recurso de Conntrac<d- llamado )p\conntrac<d)- especificando 0ue el script del Desource A ent es de 8eartbeat Gosea- buscar en )EusrElibEocfEresource.dEIeartbeatE)H . aQadimos al unas opciones de confi uracin. Es posible 0ue despu/s de aQadir el recurso debamos reiniciar las m0uinas implicadas o al menos todos los servicios implicados- de modo 0ue 2acema<er tome el control de los demonios necesarios.
root!f1&3TU crm confi ure primitive p\conntrac<d ocf3Ieartbeat3conntrac<d ^ op monitor timeoutW)$%) intervalW)$%) roleW)Slave) ^ op monitor timeoutW)$%) intervalW)&%) roleW)Laster)

El recurso de Conntrac<d tiene 0ue estar confi urado en modo )master"slave)R implCcito en un cluster activo"pasivo. Esto si nifica 0ue ser arrancado en un nodo en modo )master) . otro nodo en modo )slave). Se Iace con la si uiente directiva3
root!f1&3TU crm confi ure ms ms\conntrac<d p\conntrac<d meta notif.W)true) interleaveW)true)

Adems- necesitamos 0ue el demonio de Conntrac< 0ue est/ con funciones de maestro corra en el mismo nodo 0ue tiene las I2>s. 2acema<er pondr automticamente el recurso esclavo en otro nodo Gpor eso de la tendencia a repartir las car as de traba(oH.
root!f1&3TU crm confi ure colocation master"conntrac<d"ipv"inet ^ inf3 ms\conntrac<d3Laster I2>"inet

Mo 0ue cuando Conntrac<3

eneramos trfico- resulta en la si uiente comunicacin entre demonios de

root!f1&3TU conntrac<d "i tcp 7 ES6ABMIS8E' srcW&%.%.%.&$S dstW&9$.&7S.&%%.&%% sportW:S&+9 dportW$$ srcW&9$.&7S.&%%.&%% dstW&%.%.%.&$S sportW$$ dportW:S&+9 OASS,DE'P Oactive since ::7?sP root!f1&3TU conntrac<d "e root!f1&3TU root!f1$3TU conntrac<d "e tcp 7 ES6ABMIS8E' srcW&%.%.%.&$S dstW&9$.&7S.&%%.&%% sportW:S&+9 dportW$$ OASS,DE'P OeKpires in &7+sP Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . :$E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

CM,S6ED C5N C5D5S*NCA2ACELA;ED Gactivo"pasivoH


Oactive since ::S:sP root!f1$3TU conntrac<d "i root!f1$3TU

En el nodo 0ue est siendo usado como primario Gf1&H- Ia. coneKiones en la tabla del <ernel- pero no en la cacI/ eKterna. En el nodo de bac<up- Ia. coneKiones en la cacI/ eKterna . no en la cacI/ interna G0ue refle(a la tabla del <ernelH.

Pace6a;er
Necesitamos + recursos en 2acema<er- . 0ue son3 I2 virtual de internet )&%.%.%.&$) en la interfaz etI%. Decurso llamado )I2>"inet). I2 virtual de la red local )&9$.&7S.&%%.&$) en la interfaz etI$. Decurso llamado )I2>"lan). Decurso de Conntrac<- llamado )p\conntrac<d)- confi urado como LaestroEEsclavo.

Mos recursos deben cumplir los si uientes re0uisitos3 El nodo preferido para los recursos de I2s virtuales es3 f1& Gnodo principalH. Mos recursos )I2>"lan) e )I2>"inet) deben estar en el mismo nodo. El recurso )ms\conntrac<d) debe estar en modo )mster) en el mismo nodo donde est/ el recurso )I2>"inet).

Adems- se aplican las si uientes directivas de confi uracin lobales3 S65NI68 desabilitado. Se i noran las mediciones de 0uorum. Mos recursos se 0uedarn en el nodo en el 0ue estn tras un failoverEfailbac<.

Esto enera los si uientes comandos3


root!f1&3TU primitive I2>"inet ocf3Ieartbeat3I2addr ^ params ipW&%.%.%.&$ nicWetI% cidr\netmas<W$: ^ op monitor intervalW?s root!f1&3TU primitive I2>"lan ocf3Ieartbeat3I2addr ^ params ipW&9$.&7S.&%%.&$ nicWetI$ cidr\netmas<W$: ^ op monitor intervalW?s root!f1&3TU crm confi ure primitive p\conntrac<d ocf3Ieartbeat3conntrac<d ^ op monitor timeoutW)$%) intervalW)$%) roleW)Slave) ^ op monitor timeoutW)$%) intervalW)&%) roleW)Laster) root!f1&3TU crm confi ure ms ms\conntrac<d p\conntrac<d meta notif.W)true) interleaveW)true) root!f1&3TU crm confi ure location prefer"f1&"I2>"inet I2>"inet ?%3 f1& root!f1&3TU crm confi ure location prefer"f1&"I2>"lan I2>"lan ?%3 f1& root!f1&3TU crm confi ure colocation I2>s INFINI6*3 I2>"inet I2>"lan root!f1&3TU crm confi ure colocation master"conntrac<d"ipv"inet ^ inf3 ms\conntrac<d3Laster I2>"inet root!f1&3TU crm confi ure propert. stonitI"enabledWfalse root!f1&3TU crm confi ure propert. no"0uorum"polic.Wi nore root!f1&3TU crm confi ure rsc\defaults resource"stic<inessW&%% Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . :+E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

CM,S6ED C5N C5D5S*NCA2ACELA;ED Gactivo"pasivoH Ma confi uracin final de ob(etos es la si uiente3


root!f1$3TU crm confi ure sIo1 node f1& ^ attributes standb.W)off) node f1$ ^ attributes standb.W)off) primitive I2>"inet ocf3Ieartbeat3I2addr ^ params ipW)&%.%.%.&$) nicW)etI%) cidr\netmas<W)$:) ^ op monitor intervalW)?s) primitive I2>"lan ocf3Ieartbeat3I2addr ^ params ipW)&9$.&7S.&%%.&$) nicW)etI$) cidr\netmas<W)$:) ^ op monitor intervalW)?s) primitive p\conntrac<d ocf3Ieartbeat3conntrac<d ^ op monitor intervalW)$%) roleW)Slave) timeoutW)$%) ^ op monitor intervalW)&%) roleW)Laster) timeoutW)$%) ^ meta tar et"roleW)started) ms ms\conntrac<d p\conntrac<d ^ meta notif.W)true) interleaveW)true) location prefer"f1&"I2>"inet I2>"inet ?%3 f1& location prefer"f1&"I2>"lan I2>"lan ?%3 f1& colocation I2>s inf3 I2>"inet I2>"lan colocation master"conntrac<d"ipv"inet inf3 ms\conntrac<d3Laster I2>"inet propert. ]idW)cib"bootstrap"options) ^ dc"versionW)&.%.9"=:+9$a$Sb=f+&d=ddcS77S9?9Sbd$+&&:f?S9=Sb) ^ cluster"infrastructureW)openais) ^ eKpected"0uorum"votesW)$) ^ stonitI"enabledW)false) ^ last"lrm"refresIW)&+%:77?=?&) ^ no"0uorum"polic.W)i nore) rsc\defaults ]idW)rsc"options) ^ resource"stic<inessW)&%%)

hue ofrece un status como el si uiente3


root!f1&3TU crm status WWWWWWWWWWWW Mast updated3 Sun La. S $$3++3%= $%&& Stac<3 openais Current 'C3 f1$ " partition 1itI 0uorum >ersion3 &.%.9"=:+9$a$Sb=f+&d=ddcS77S9?9Sbd$+&&:f?S9=Sb $ Nodes confi ured- $ eKpected votes + Desources confi ured. WWWWWWWWWWWW 5nline3 O f1$ f1& P I2>"inet Gocf33Ieartbeat3I2addrH3 Started f1& I2>"lan Gocf33Ieartbeat3I2addrH3 Started f1& LasterESlave Set3 ms\conntrac<d Lasters3 O f1& P Slaves3 O f1$ P

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . ::E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

CM,S6ED C5N C5D5S*NCA2ACELA;ED Gactivo"pasivoH ?r4%o de rec4r&o& Es posible combinar varios recursos en uno solo mediante la creacin de un rupo. Esto es mu. Jtil para este cluster- dado 0ue podemos a rupar los recursos de I2>s en un Jnico rupo . mene(ar /ste en vez de cada I2> individualmente. Crear un rupo es eKtremadamente sencillo3
root!f1&3TU crm confi ure primitive roup rupo"I2>s I2>"inet I2>"lan

2acema<er tambi/n tratar a un rupo como otro recurso- de manera 0ue es posible realizar a rupaciones de rupos de manera recursiva sin lCmites Gen principioH. P"ngd 2acema<er nos ofrece varias Ierramientas 0ue podemos usar en cual0uier cluster para me(orar o aumentar el nivel de fiabilidad con el 0ue los recursos son mane(ados. ,na de estas Ierramientas es )pin d). A priori- pin d solo provee de un m/todo para lanzar automticamente pa0uetes ICL2 tipo S Gpin re0uestH. 'etrs del teln- se est mane(ando la Ierramienta standar en entornos GN,EMinuK )pin )- pero usada . controlada como demonio mediante un Desource A ent. Ma mecnica es simple3 &. Creamos un recurso pin d 0ue comprobar la conectividad local contra otra I2 de la red. $. El recurso es clonado a todos los nodos del cluster 0ue 0ueramos 0ue valoren su conectividad. +. Creamos una constraint de tipo location- donde especificamos 0ue un recurso no puede permanecer en un nodo donde pin d no funcione- esto es- no ten a conectividad contra la I2 seleccionada. 2ara este cluster en concreto- el uso de la Ierramienta )pin d) se IarCa de la si uiente manera3
root!f1&3TU crm confi ure primitive pin d"&9$.&7S.%.& ocf3pacema<er3pin d ^ params Iost\listW&9$.&7S.%.& multiplierW?% ^ op monitor intervalW&? timeoutW:%s root!f1&3TU crm confi ure clone clon\pin d"&9$.&7S.%.& pin d\&9$.&7S.%.& meta loball."uni0ueWfalse root!f1&3TU crm confi ure location l\pin d"&9$.&7S.%.&\ rupo"I2>s rupo"I2>s ^ rule "inf3 not\defined pin d"&9$.&7S.%.& or pin d"&9$.&7S.%.& lte %

'e esta manera- los recursos I2>s G. por la confi uracin del resto del cluster- todos los recursosH slo sern desple ados en a0uel nodo 0ue ten a coneKin con &9$.&7S.%.&. No obstante- e& nece&ar"o tener en cuenta al unas consideraciones al traba(ar con pin d3 Ma red estar )ensuciada) por trfico ICL2 constante- multiplicado por nodo . por I2 con la 0ue 0ueramos valorar la conectividad. Ma caCda de una I2 con la 0ue se estaba comprobando conectividad puede suponer la caCda de recursos asociados a pin d si la confi uracin del cluster no lo evita. 'e esta manera- se Iace mu. recomendable el comprobar conectividad contra I2s en alta disponibilidad 2a . :?E??

Arturo Borrero Gonzlez- Abril"#unio $%&&

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2D,EBAS 'E F,NCI5NALIEN65

PRUE,AS DE -UNCIONA+IENTO
EKisten al unas pruebas 0ue a.udarn a determinar 0ue la confi uracin del cluster es definitivamente correcta. Es importante valorar el estado de la confi uracin de ;eepalivedECoros.ncE2acema<er Grecursosetc..H . tambi/n la confi uracin propia de las Ierramientas 0ue estn interviniendo Gpor e(emploConntrac<dH. Como estamos Iablando de un cluster de alta disponibilidad- lo realmente aconse(able es Iacer pruebas de failoverEfailbac< )neurticas) . valorar en profundidad Iasta 0u/ punto nuestro cluster soporta un fallo. Esto si nifica probar los casos ms descabellados . todas las distintas posibilidades3 Apa ado de un nodo del cluster mediante las instruccines )Ialt)- )reboot) . )sIutdo1n). Apa ado de un nodo del cluster )a resivamente)3 tirando del cable- botn de apa ado- etc.. 'esconeKin de cables de red en distintos puntos de la ar0uitectura. Borrado o cambio de permisos de al Jn ficIero de confi uracin. Cual0uier otra cosa 0ue se nos ocurra...

Kee%a3"#ed y Coro&ync
Ma prueba ms inmediata a Iacer con ;eepalived . con Coros.nc es provocar un fallo de red . ver la reaccin del soft1are. Esto inclu.e desconeKin de interfaces- sacar mdulos de la memoria- desconeKin fCsica de la red- etc.. Adems- nos a.udar a Iacernos una idea de los tiempos de respuesta ante failover 0ue tiene ;eepalivedECoros.nc- facilitando 0ue podamos Iacer un a(uste fino. En el caso de ;eepalived- podemos tocar la directiva )advert_int) . probar distintos valores para adaptar los tiempos de respuesta a una situacin concreta. Con Coros.nc- podemos modificar dos directivas interesantes3

&eca4t> doff c one "N Cuando est marcado en )on)- Coros.nc traba(ar con operaciones en modo se uridad- con un rendimiento operacional . de red menor 0ue con la directiva en )off). t>read& d% c n\cpus"& e "N 2odemos definir entre % . el nJmero de cpus de la m0uina "& para el nJmero de Iilos 0ue Coros.nc puede mane(ar concurrentemente. "nter:ace "N ,sando varias veces esta directiva- indicamos a Coros.nc 0ue tenemos disponibles varias interfaces de red para la comunicacin entre nodos Gmientras ms redundancia- me(or para Coros.nc- me(or para Conntrac<d . me(or para el clusterH. 2a . :7E??

Arturo Borrero Gonzlez- Abril"#unio $%&&

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2D,EBAS 'E F,NCI5NALIEN65

A24&te de rec4r&o& en Pace6a;er


2ara probar 0ue efectivamente- cuando las I2>s se mueven- el recurso 6@&ter de Conntrac<d se mueve con ellas- podemos probar unos cuantos comandos . ver el resultado con )crm\mon)3
root!f1&3TU crm resource move I2>"inet f1$ root!f1&3TU crm resource unmove I2>"inet root!f1&3TU crm resource move I2>"inet f1& root!f1&3TU crm resource unmove I2>"inet

Como .a se Ia seQalado en secciones anteriores- Ia. 0ue especificar a 2acema<er 0ue el propio cluster debe volver a tomar el control de la posicin del recurso. Si estamos usando un rupo de recursos3
root!f1&3TU crm resource move rupo"I2>s f1$ root!f1&3TU crm resource unmove rupo"I2>s

Si la confi uracin es correcta- el recurso mster de Conntrac<d Iabr saltado de un nodo a otro. Mos intervalos de monitorizacin usados por 2acema<er como e(emplo en los recursos son los recomendados por los desarrolladores- . no es aconse(able cambiarlos salvo confi uraciones eKtremadamente personalizadas . avanzadas Gsabiendo siempre lo 0ue se est IaciendoH.

Tr@:"co
Es fundamental 0ue el fire1all filtre trfico- . para ello debemos )medir) la cantidad datos 0ue es capaz de mane(ar el cluster.

C34&ter a3 3A6"te: I%er: y A,


,sando la Ierramienta Iperf con un cliente . un servidor 0ue pasen a trav/s del clusterpodremos determinar el ancIo de banda disponible a trav/s del fire1all. Iperf se inicia en modo servidor en una m0uina . en modo cliente en otra3
root!server3TU iperf "s usuario!cliente3T] iperf "C server

,na vez pasado el tiempo- Iperf mostrar por pantalla el ancIo de banda usado con efectividad durante el test. ,sando Iperf podemos Iacernos una idea del ancIo de banda absoluto 0ue puede mane(ar el cluster. Si la confi uracin de la red implicada un fire1all de varias )patas) es conveniente Iacer los test de ancIo de banda entre todas las patas. 5tro test interesante es medir la cantidad de coneKiones distintas 0ue puede soportar el cluster. 2ara
Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . :=E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2D,EBAS 'E F,NCI5NALIEN65 ello- podemos usar la Ierramienta AB Gori inalmente diseQada para Iacer bencImar<in del servidor 1eb apacIeH para valorar la cantidad de sesiones NE_ . ES6ABMIS8E' 0ue puede mane(ar el cluster. Lonitorizando la car a del sistema . las interfaces de red Gtcpdump- top- ps- etc..H- lanzamos los si uientes comandos contra un servidor 1eb 0ue est/ localizado atravesando el cluster. Es recomendable ir ascendiendo pro resivamente e ir analizando los resultados3
GpromptH3] ab "n &% "c &% 1ebserver.acrossf1.eKample.comE GpromptH3] ab "n &%%% "c &%% 1ebserver.acrossf1.eKample.comE GpromptH3] ab "n &%%%%% "c &%%% 1ebserver.acrossf1.eKample.comE

AB enviar el nJmero de peticiones G"n KKKH 8662 GE6 )E) indicadas- usando adems mucIas de ellas de forma concurrente G"c KKKH Conntrac<d sufrir bastante estr/s conforme la cantidad de peticiones va.a aumentando- lo 0ue nos servir para determinar su funcionamiento en situaciones 0ue se aproKimen a la realidad.
root!f1&3TU conntrac<d "i OjP OjP tcp 7 6ILE\_AI6 srcW&%.%.%.&$S dstW&9$.&7S.&%%.&%% sportW7%9%+ dportWS% srcW&9$.&7S.&%%.&%% dstW&%.%.%.&$S sportWS% dportW7%9%+ OASS,DE'P Oactive since &&sP tcp 7 6ILE\_AI6 srcW&%.%.%.&$S dstW&9$.&7S.&%%.&%% sportW?9$&& dportWS% srcW&9$.&7S.&%%.&%% dstW&%.%.%.&$S sportWS% dportW?9$&& OASS,DE'P Oactive since &$sP tcp 7 6ILE\_AI6 srcW&%.%.%.&$S dstW&9$.&7S.&%%.&%% sportW?S=7& dportWS% srcW&9$.&7S.&%%.&%% dstW&%.%.%.&$S sportWS% dportW?S=7& OASS,DE'P Oactive since &+sP tcp 7 6ILE\_AI6 srcW&%.%.%.&$S dstW&9$.&7S.&%%.&%% sportW?S+&: dportWS% srcW&9$.&7S.&%%.&%% dstW&%.%.%.&$S sportWS% dportW?S+&: OASS,DE'P Oactive since &+sP tcp 7 6ILE\_AI6 srcW&%.%.%.&$S dstW&9$.&7S.&%%.&%% sportW?S+%S dportWS% srcW&9$.&7S.&%%.&%% dstW&%.%.%.&$S sportWS% dportW?S+%S OASS,DE'P Oactive since &+sP tcp 7 S*N\SEN6 srcW&%.%.%.&$S dstW&9$.&7S.&%%.&%% sportW?7%=7 dportWS% O,NDE2MIE'P srcW&9$.&7S.&%%.&%% dstW&%.%.%.&$S sportWS% dportW?7%=7 Oactive since &7sP tcp 7 6ILE\_AI6 srcW&%.%.%.&$S dstW&9$.&7S.&%%.&%% sportW7%7=9 dportWS% srcW&9$.&7S.&%%.&%% dstW&%.%.%.&$S sportWS% dportW7%7=9 OASS,DE'P Oactive since &&sP OjP OjP

2ara valorar el funcionamiento de Conntrac<d- 0ue es la misin principal del cluster- es conveniente revisar las estadCsticas producidas por la propia Ierramienta. 2odemos ver los datos de la coneKin entre nodos- los eventos creadosEfiltradosEtransmitidos- cacIe- etc..
root!f1&3TU conntrac<d "s cacIe cacIe3internal active ob(ects3 activeEtotal entries3 creation 5;Efailed3 no memor. available3 no space left in cacIe3 update 5;Efailed3 entr. not found3 deletion createdEfailed3 % %E &7:S%$E % % 7+9&S&E % &7:S%$E

% % % %

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . :SE??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2D,EBAS 'E F,NCI5NALIEN65


entr. not found3 cacIe3eKternal active ob(ects3 activeEtotal entries3 creation 5;Efailed3 no memor. available3 no space left in cacIe3 update 5;Efailed3 entr. not found3 deletion createdEfailed3 entr. not found3 % % %E 9+$7?E % % &&+979E % 9+$7?E % % % % %

root!f1&3TU conntrac<d "s lin< multicast traffic deviceWetI& statusWD,NNING roleWAC6I>E3 &$9$%&S:: B.tes sent &:?%?S%S B.tes recv 9:7$+? 2c<ts sent &:7$9? 2c<ts recv % Error send % Error recv root!f1$3TU conntrac<d "s cacIe internal3 current active connections3 connections created3 connections updated3 connections destro.ed3 cacIe eKternal3 current active connections3 connections created3 connections updated3 connections destro.ed3 traffic processed3 S&99?7 B.tes

% ==9+S &$S:&$ ==9+S % 7$$&%$ $%$97&9 7$$&%$ 7+7% 2c<ts

failed3 failed3 failed3

% % %

failed3 failed3 failed3

% % %

multicast traffic Gactive deviceWetI&H3 +?$&79+7 B.tes sent &97:+&=:: B.tes recv $$+$?? 2c<ts sent &+S%%+= 2c<ts recv % Error send % Error recv messa e se0uence trac<in 3 % Ls s mfrm % Ls s lost

Conntrac;d
2ara probar 0ue Conntrac<d realmente est cumpliendo con su funcin- el test descrito a continuacin es bastante recomendable3 Ca&o A' no Conntrac<d activo &. Cluster funcionando en su plenitud. $. Latar todos los procesos de Conntrac<d en los nodos del cluster. +. Efectuar una transferencia de un ficIero desde una m0uina a un lado del fire1all a otro. 2or
Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . :9E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

2D,EBAS 'E F,NCI5NALIEN65 e(emplo- un ficIero rande usando SC2 Gpuerto tcp $$H. :. 'urante el tiempo de la transferencia- se realiza failover manual del nodo primario o del nodo 0ue est/ manteniendo la coneKin. ?. Ma transferencia debe interrumpirse indefinidamente dado 0ue el fire1all en el nodo 0ue pasa a filtrar la coneKin no reconoce el estado de la misma como vlido. Ca&o ,' si Conntrac<d activo &. Cluster funcionando en su plenitud. $. E(ecutar transferencia de un ficIero desde una m0uina a un lado del fire1all al otro. 2or e(emplo- un ficIero rande usando SC2 Gpuerto tcp $$H. +. 'urante el tiempo de transferencia- se realiza failover manual del nodo primario o del 0ue est/ manteniendo la coneKin en ese momento. :. Ma transferencia debe sufrir una pe0ueQa relentizacin momentnea durante la transicin de recursos del nodo en failover al nodo 0ue 0ueda activo- pero la coneKin es tomada como vlida racias a Conntrac<d. ?. Con un funcionamiento normal- la transferencia continua. hueda seQalar 0ue todo el funcionamiento del cluster est supeditado a una confi uracin de iptables correcta. Si no Ia. nin una re la de iptables definida en el sistema- Conntrac<d no funcionar dado 0ue no Iabr estados de coneKiones 0ue valorar. Adems- si el fire1all usa re las kstatelessl Gsin valorar el estado de las coneKionesH el uso de Conntrac<d es inJtil- . por tanto la mitad de la confi uracin del cluster sobra. Cabe destacar 0ue desde un tiempo a esta parte- el pro.ecto Netfilter no se refiere a estados de coneKiones con referencia a pa0uetes concretos- si no a flu(os de coneKin completos.

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . ?%E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

C5NCM,SI5NES

CONCLUSIONES
A modo de resumen . de consideraciones finales- pueden encontrarse al unas referencias de inter/s 0ue un administrador interesado en el tema encontrar Jtiles a la Iora de enfrentarse a casos en los 0ue interven an Ierramientas similares.

a3orac"<n %er&ona3
6en o 0ue reconocer 0ue el concepto de cluster siempre me Ia llamado la atencin. Mas t/cnicas 0ue implican 0ue varias m0uinas se pon an de acuerdo para funcionar como una sola- me resultan interesantes. 2or otra parte- el diseQo- creacin . estin de cortafue os tambi/n me usta bastante. Combinando ambos aspectos- se entiende rpidamente el por 0u/ de la temtica de este 2ro.ecto Inte rado. Introducirme en el mundo de la alta disponibilidad Ia sido una tarea apasionante- sobre todo el acercamiento a 2acema<er. Al principio Ie estado mu. confundido con la cantidad de Ierramientas disponibles para la construccin de clusters de alta disponibilidad- . por la falta de documentacin reciente para al unas de ellas. Gracias a los canales de cIat del IDC- las listas de correo- correos electrnicos personales a al unas personalidades implicadas con las Ierramientas a0uC tratadas . eKtensas sesiones de lectura de documentacin- Ie sido capaz de situarme dentro del panorama de la alta disponibilidad . entender por donde me movCa. 'espu/s de Iaber aprendido lo 0ue considero bsico para traba(ar en alta disponibilidad me do. cuenta de 0ue todo este mundillo me usta todavCa ms de lo 0ue pensaba . 0ue lo me 0ueda por aprender GmucIoH me resulta mu. atractivo como meta a medioElar o plazo. 2ersonalmente- Ie 0uedado fascinado con 2acema<er . la estin de los recursos 0ue Iace. >erdaderamente- las posibilidades son inmensas . las opciones de confi uracin casi infinitas. ,n acercamiento profundo . un traba(o )real) con la tecnolo Ca re0uiere conocimientos mu. eKtensos . un buen entendimiento de todos los factores implicados en los recursos a desple ar en alta disponibilidad Gcolocacin- arran0ues- restricciones . a rupaciones- etc..H. 'urante el desarrollo de este pro.ecto- contaba con lo 0ue creo 0ue es un venta(a previa- . es 0ue .a conocCa la Ierramienta iptables- incluso en entornos en produccin. Considero 0ue estaba familiarizada con ella- lo 0ue Ia facilitado sobremanera todo el traba(o con Conntrac<d . con el propio fire1all. Evidentemente- en este aspecto- cuento con 0ue aJn me falta mucIo por aprender . rendimiento 0ue sacarle a las Ierramientas del pro.ecto Netfilter. Le Iubiera ustado desarrollarEimplantar un c34&ter act"#o5act"#o con 1a3anceo de carga- pero lo Ie encontrado fuera de mis posibilidades debido a la falta de documentacin a tal respecto . a 0ue en la realidad- un Iard1are de ba(o coste puede filtrar randes cantidades de trfico @0uizs por eso no Ia. un ran desarrollo de Ierramientas diseQadas para elloB
Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . ?&E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

C5NCM,SI5NES

BKee%a3"#ed o Coro&ync*Pace6a;erC
A nivel de fire1all . a nivel de cluster- pueden distin uirse sutiles diferencias en el uso de ;eepalived o Coros.ncA2acema<er. Aun0ue en ambos casos el uso de una u otra Ierramienta es transparente para el cliente- se detectan una serie de venta(as e inconvenientes3
Kee%a3"#ed Comunicacin entre nodos. Coro&ync*Pace6a;er

Interfaces pJblicas de la red. LucIo Interfaz dedicada- privada. 6rfico )ruido) derivado del funcionamiento de interno . comunicado de forma >DD2. En cual0uier caso- ser necesaria se ura. una interfaz dedicada para Conntrac<d. Lenor 0ue Coros.nc A 2acema<er. La.or 0ue dedicada. ;eepalived. Interfaz

AncIo de banda necesario.

EKtremas posibilidades de a(uste A(ustes de tiempos de sincronCa- Grandes posibilidad de a(uste- Ga(uste de Ga(uste de Coros.nc- a(uste de failover- etc.. ;eepalived . de Conntrac<dH 2acema<er . a(uste de Conntrac<dH. 'eteccin de failover Gdestruccin nodo msterH 'eteccin de failover Gerror de redH T &% se undos. ` T &% se undos. ` VW $ se undos. ` T &? se undos. ` 6otal. 'iseQado para ello.

Inte racin con ms recursos en el Lu. comple(o. cluster Gotros serviciosH. Escalabilidad Gms nodosH.

2osible- aun0ue Ia. al unas pe as- como el )ruido) eKcesivo de las transmisiones 6otal. multicast en las interfaces de red pJblicas. Se advierte 0ue con ms de $%% I2>s- el Sin lCmite conocido o publicado rendimiento varCa . Ia. 0ue Iacer a(ustes oficialmente. concretos. Lu. fcil. La.or comple(idad 0ue con ;eepalived- aun0ue tambi/n sencillo.

Capacidad de traba(o Gcantidad de recursos- por e(emplo I2>sH Facilidad de monta(eadministracin . mantenimiento. Inte racin con Conntrac<d.

En la versin de 2acema<er 0ue Lu. buena. Mos desarrolladores de ofrece 'ebian S0ueeze no se inclu.e Conntrac<d recomiendan su uso. soporte para Conntrac<d . Ia. 0ue buscar el Desource A ent online. EKcelente.

Control lobal del cluster. >isualizacin de estado de recursos Nulo. . mane(o de los mismos. Soporte para activoEactivo con balanceo de car a. a3orac"<n %er&ona3 :"na3.

2osiblecon necesidad de 2osible- sin necesidad de soft1are balanceadores de car a eKternos Ge(eKterno. GSolo ;eepalivedAConntrac<dH M>SH en una estructura de red bastante Aun0ue es un balanceo de car a parcial. comple(a.

En se Jn 0u/ circunstancias- opcin +4y reco6enda13e. vlida. O`P Mos test realizados no cubren- evidentemente- todas las posibilidades . circunstancias 0ue pueden rodear a un cluster en implantacinEproduccin en el momento del failover. Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . ?$E??

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

C5NCM,SI5NES

Pro13e6a& encontrado&
A continuacin se resumen los problemas ms relevantes 0ue se Ian encontrado durante el desarrollo de esta pro.ecto. Pace6a;er no arranca con Coro&ync. 'urante las pruebas con Coros.ncA2acema<er- me encuentro con 0ue 2acema<er no arranca . 0ue por tanto- no puedo se uir desarrollando el cluster. Esto es debido a 0ue en la versin de 2acema<er con la 0ue se Ia traba(ado- no se inclu.e un script MSB en )EetcEinit.dE). Coros.nc es el encar ado de levantar el servicio de 2acema<er. esto lo Iace mediante la correcta declaracin en el ficIero )EetcEcoros.ncEservice.dEpcm<)- 0ue se Ia descrito en este documento. Conntrac;d no arranca. Pace6a;er no e& ca%a9 de arrancar3o. Este problema est relacionado con un soc<et no abierto- debido a una I2 e interfaz 0ue no se Ia especificado bien en el ficIero de confi uracin de Conntrac<d )EetcEconntrac<dEconntrac<d.conf). En ca&o de :a"3o#erD coneE"one& ESTA,LIS8ED &on a&46"da& co6o #@3"da& &"n e3 4&o de Conntrac;d en e3 nodo =4e %a&a a &er %r"6ar"o. 'ebido a 0ue no se Ian car ado todos los mdulos necesarios al <ernel ni se Ia modificado el s.sctl aQadiendo )net.netfilter.nf?conntrack?tcp?loose @ ). En ca&o de :a"3o#erD 3o& rec4r&o& no &on re%art"do& en 3o& nodo& re&tante&. Esto es debido al problema del hurum en clusters con dos nodos. 2acema<er entender 0ue el cluster no tiene 0urum cuando slo eKiste un Jnico nodo activo Gmomento de failbac<- . por tanto Ia. 0ue especificar 0ue se traba(ar sin atender las mediciones de hurum Gver seccin de confi uracin correspondienteH. Kee%a3"#ed no &e %one de ac4erdo en =4F nodo to6a 3o& rec4r&o&. Esto es debido probablemente a 0ue los pa0uetes de anuncio de recursos . de membresCa a los rupos multicast no estn lle ando correctamente a cada nodo- o bien 0ue estn siendo filtrados por el fire1all. Como se Ia descrito durante todo el documento- es mu. importante a(ustar el fire1all para 0ue permita las coneKiones multicast 0ue van a ser necesarias tanto por ;eepalived- Coros.nc- 2acema<er . Conntrac<d.

Ter6"no3ogAa
'urante todo el documento se Iace uso de cierta terminolo Ca especCfica. A0uC un breve resumen de la nomenclatura ms relevante3 Coros.nc "N 2roporciona servicios de infraestructura de clusterin Gcomunicacin . pertenenciaH a sus clientes. Esto permite a los clientes conocer la disponibilidad . los 2a . ?+E??

Arturo Borrero Gonzlez- Abril"#unio $%&&

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

C5NCM,SI5NES procesos de los dems nodos del cluster. ;eepalived "N Soft1are 0ue implementa el protocolo >DD2v$ . 0ue Iaciendo uso del mismo- permite desple ar ciertos recursos en alta disponibilidad. 5CF "N G5pen Cluster Frame1or<H. Estndar internacional para el traba(o con recursos en clusters de alta disponibilidad. Lediante parmetros mu. concretos- diferencia totalmente de un servicio parado de otro- por e(emplo- con un comportamiento indeterminado. CDL "N GCluster Desource Lana erH. Gestiona recursos de alta disponibilidad 0ue estn desple ados en el cluster. 2acema<er es el CDL usado. CIB "N GCluster Information BaseH. FicIero ZLM donde declaramos . definimos el cluster . los recursos repartidos o compartidos entre nodos. No se edita directamente- sino mediante otras Ierramientas como )cibadmin) o )crm). CCL "N GCluster Consensus LembersIipH. 2rovee de m/todos para ase urar 0ue cada nodo de un cluster puede comunicarse con los dems nodos del mismo cluster. >DD2 "N G>irtual Douter Dedundanc. 2rotocolH. 2rotocolo de redundancia diseQado para aumentar la disponibilidad de un nodo de red mediante la creacin- estin . abstraccin de una direccin de red virtual GI2>H. Est basado en el DFC"+=7S. Failover "N Lomento de fallo de un nodo de un cluster- provocado por cual0uier circunstancia 0ue impida el normal . correcto funcionamiento previamente planificado. Failbac< "N Lomento de vuelta a la normalidad de un nodo de un cluster 0ue previamente Ia estado en modo )failover). Es mu. importante analizar . prever el comportamiento del cluster en los momentos de failover . failbac<.

Re:erenc"a&
2arte fundamental en el desarrollo de este pro.ecto- a0uC se detallan al unas referencias usadas . 0ue sern de ran inter/s para al uien con in0uietud en los temas 0ue se Ian tratado3 'ocumentacin oficial del pro.ecto Pacemaker.3 Ittp3EE111.clusterlabs.or E1i<iEEKample\confi urations Ittp3EE111.clusterlabs.or EdocE 'ocumentacin oficial de Aetfilter7Conntrack3 Ittp3EEconntrac<"tools.netfilter.or Emanual.Itml Ittp3EEconntrac<"tools.netfilter.or Etestcase.Itml )Demystifying clusterBbased faultBtolerant 1ire6alls)- de 2ablo Neira- D.L. Gasca . M. Mefmvre- $%%93 Ittp3EE&9S:.lsi.us.esETpabloEdocsEintcomp%9.pdf 'ocumentacin sobre iptables E fire1allin Ittp3EE111.fa0s.or EdocsEiptablesEindeK.Itml Blo de DIommel Mamas llamado )tecIironic.com)3 2a . ?:E??

Arturo Borrero Gonzlez- Abril"#unio $%&&

2ro.ecto Inte rado3 Fire1all en cluster de alta disponibilidad

C5NCM,SI5NES Ittp3EEtecIironic.comEindeK.pIpE$%&%E%=E%$EIeartbeat"modo"crm"monitorE Foros de la 1eb oficial del pro.ecto C=3- en )111.linuKvirtualserver.or )3 Ittp3EEarcIive.linuKvirtualserver.or EItmlElvs"usersE$%%="%&Ems %%&?$.Itml Foros oficiales de la empresa Gossamer 6Ireads3 Ittp3EE111. ossamer"tIreads.comElistsEdrbdEusersE$%9=$BdoWpost\vie1\tIreadedU$%9=$ Decursos varios en la 1eb oficial del pro.ecto )CinuD Eig( 'valilability)3 Ittp3EEI .linuK"Ia.or Ea entsEfileEtipEIeartbeatEconntrac<d Ittp3EElinuK"Ia.or E1i<iE2acema<er Ittp3EElinuK"Ia.or EdocEman"pa esEre"ra"I2addr.Itml Ittp3EE111.linuK"Ia.or E1i<iEDesource\A ents 'ocumentacin sobre la Ierramienta iptables de los profesores #esJs Loreno Men . Alberto Lolina Coballes para la asi natura )Dedes de nrea Mocal) en el IES Gonzalo Nazareno- aQo $%%9"$%&%. Ittp3EEral"arturo.blo spot.comEpEdocumentacion.Itml Buildin 'ebian pac<a es3 Ittp3EE111.ibm.comEdeveloper1or<sElinuKElibrar.El"debp< EindeK.ItmlUresources _i<ipedia- artCculos varios3 Ittp3EEes.1i<ipedia.or E Mistas de correo de Clusterlabs- M>S . Netfilter. Clusterlabs3 Ittp3EEoss.clusterlabs.or EpipermailEpacema<erE M>S3 Ittp3EElists. raemef.netEpipermailElvs"usersE Netfilter3 Ittp3EEmarc.infoEBlWnetfilter _ac<amole G8A mana erH- actualizado por Jltima vez en $%%=. Ittp3EE111.bac<Iand.or E1ac<amoleE 2 ina 1eb oficial de ;eepalived Gimplementacin de >DD2$ H Ittp3EE111.<eepalived.or EindeK.Itml 'ocumentacin oficial del pro.ecto Coros.ncE5penAIS Ittp3EE111.coros.nc.or Edo<u.pIpBidWfa03confi ure\openai Devista kMinuK #ournall- La.o de $%&&- Issue $%?- )Build a better Fire1all) de Li<e 8orn.

'ocumento ba(o licencia Creative Commons )CC"B*"SA +.%) ,sted es libre de copiar- modificar . redistribuir este documento ba(o los t/rminos 0ue establece la licencia- consultables en la 1eb.

Arturo Borrero Gonzlez- Abril"#unio $%&&

2a . ??E??

S-ar putea să vă placă și