El Protocolo común de redundancia de direcciones o CARP es un protocolo de red de computadoras que permite que varios hosts en la misma red de área local compartan un conjunto de direcciones IP . Su propósito principal es proporcionar redundancia de conmutación por error , especialmente cuando se usa con firewalls y enrutadores . En algunas configuraciones, CARP también puede proporcionar funcionalidad de equilibrio de carga . CARP proporciona una funcionalidad similar a VRRP y para Cisco Systems ' HSRP . Se lleva a cabo en varios BSD basadosistemas operativos y se ha portado a Linux (ucarp). [1]
Ejemplo
Si hay una sola computadora que ejecuta un filtro de paquetes y se cae, las redes a ambos lados del filtro de paquetes ya no pueden comunicarse entre sí, o se comunican sin ningún filtrado de paquetes. Sin embargo, si hay dos computadoras que ejecutan un filtro de paquetes y que ejecutan CARP, si una falla, la otra se hará cargo y las computadoras a ambos lados del filtro de paquetes no se darán cuenta de la falla, por lo que la operación continuará con normalidad. . Para asegurarse de que el nuevo Activo / Primario funcione igual que el anterior, el filtro de paquetes utilizado debe admitir la sincronización de estado entre las dos computadoras.
Principio de redundancia
Un grupo de hosts que utilizan CARP se denomina "grupo de redundancia". El grupo de redundancia se asigna a sí mismo una dirección IP que se comparte o se divide entre los miembros del grupo. Dentro de este grupo, un host se designa como "Activo / Principal". Los otros miembros están "en espera". El host principal es el que "toma" la dirección IP. Responde a cualquier solicitud de tráfico o ARP que se llame la atención de esta dirección. Cada host puede pertenecer a varios grupos de redundancia. Cada host debe tener una segunda dirección IP única.
Un uso común de CARP es la creación de un grupo de firewalls redundantes. La dirección IP virtual asignada al grupo de redundancia se indica como la dirección del enrutador predeterminado en las computadoras detrás de este grupo de firewalls. Si el cortafuegos principal se rompe o se desconecta de la red, uno de los esclavos del cortafuegos tomará la dirección IP virtual y no se interrumpirá la disponibilidad del servicio.
Historia
A fines de la década de 1990, el Grupo de trabajo de ingeniería de Internet (IETF) comenzó a trabajar en un protocolo para la redundancia de enrutadores. En 1997, Cisco informó al IETF que tenía patentes en esta área y, en 1998, señaló su patente sobre HSRP (Hot Standby Router Protocol). No obstante, IETF continuó trabajando en VRRP (Protocolo de redundancia de enrutador virtual). Después de un debate, el grupo de trabajo IETF VRRP decidió aprobar el estándar, a pesar de su dependencia de técnicas patentadas, siempre que Cisco pusiera la patente a disposición de terceros bajo los términos de licencia RAND (Razonable y No Discriminatorio). Debido a que VRRP solucionó problemas con el protocolo HSRP, Cisco comenzó a usar VRRP en su lugar, sin dejar de reclamarlo como propio. [2]
Cisco informó a los desarrolladores de OpenBSD que haría cumplir su patente sobre HSRP. La posición de Cisco puede deberse a su demanda con Alcatel. Como los términos de licencia de Cisco impidieron una implementación de VRRP de código abierto, los desarrolladores de OpenBSD comenzaron a desarrollar CARP en su lugar. OpenBSD se centra en la seguridad. Diseñaron CARP para usar criptografía . Esto hizo que CARP fuera fundamentalmente diferente de VRRP y aseguró que CARP no infringiera la patente de Cisco. CARP estuvo disponible en octubre de 2003. [3] Más tarde, se integró en FreeBSD (lanzado por primera vez en mayo de 2005 con FreeBSD 5.4), [4] NetBSD y Linux (ucarp). [1] Si bien la patente estadounidense de Cisco expiró en 2014, los dos protocolos incompatibles continúan coexistiendo.
Incompatibilidad con los estándares IETF
OpenBSD usa el número de protocolo y las direcciones MAC de VRRP. El proyecto OpenBSD solicitó números únicos de IANA pero fue denegado.
Para asignar números, IANA tiene varios requisitos. En ese momento, estos se especificaron en RFC 2780 . Los requisitos incluyen participar en un largo proceso de discusión colaborativo dentro del IETF y producir una especificación textual detallada del protocolo. Los desarrolladores de OpenBSD no cumplieron con ninguno de los requisitos [ cita requerida ] . El sitio web de OpenBSD establece lo siguiente: [5]
Como nota final, por supuesto, cuando solicitamos a IANA, el organismo de IETF que regula los números de protocolo de Internet "oficiales", que nos proporcionen números para CARP y pfsync , nuestra solicitud fue denegada. Aparentemente, no pasamos por una organización oficial de estándares. En consecuencia, nos vimos obligados a elegir un número de protocolo que no entrara en conflicto con ninguna otra cosa de valor y decidimos colocar CARP en el protocolo IP 112. También colocamos pfsync en un número abierto y no utilizado. Informamos a la IANA de estas decisiones, pero se negaron a responder.
IANA había asignado el número de protocolo 112 a VRRP (en 1998, a través de RFC 2338). [6] El protocolo número 112 sigue siendo utilizado por VRRP.
CARP también usa un rango de direcciones MAC Ethernet que IEEE había asignado a IANA / IETF para el protocolo VRRP. [7]
A pesar de la superposición, todavía es posible utilizar VRRP y CARP en el mismo dominio de difusión , siempre que el ID del grupo VRRP y el ID del host virtual CARP sean diferentes.
Ver también
- Protocolo de equilibrio de carga de puerta de enlace (GLBP)
- HSRP
- pfsync
- VRRP
- Múltiples rutas de red IP (IPMP)
Referencias
- ^ a b página de manual de ucarp
- ^ "VRRP-CISCO" . IETF. Archivado desde el original el 13 de marzo de 2014 . Consultado el 26 de noviembre de 2011 .
- ^ Ryan McBride (17 de octubre de 2003). " ' CARP ' " . Lista de correo ARChives.
- ^ Notas de la versión de FreeBSD 5.4 i386 , consultadas el 6 de enero de 2010
- ^ "Licencia CARP" . Canciones de lanzamiento de OpenBSD . 2004-05-01.
- ^ "Números de protocolo" . IANA . Consultado el 19 de junio de 2014 .
- ^ "Números de Ethernet" . Consultado el 19 de junio de 2014 .
enlaces externos
- - Manual de interfaces del kernel de OpenBSD
- - Manual de interfaces del kernel de FreeBSD
- UCARP: implementación de CARP en el territorio de usuario
- Puerto NetBSD de CARP
- La canción 3.5 de OpenBSD: "Licencia CARP" y "La redundancia debe ser gratuita"