Common Address Redundancy Protocol или CARP является компьютер сетевой протокол , который позволяет использовать несколько хостов на одной и той же локальной сети , чтобы разделить набор IP - адресов . Его основная цель - обеспечить отказоустойчивость , особенно при использовании с межсетевыми экранами и маршрутизаторами . В некоторых конфигурациях CARP также может обеспечивать функцию балансировки нагрузки . CARP обеспечивает функциональность , аналогичную VRRP и Cisco Systems " HSRP . Реализован в нескольких базирующихся на BSDоперационных систем и был перенесен на Linux (ucarp). [1]
Пример
Если есть один компьютер, на котором запущен фильтр пакетов , и он выходит из строя, сети по обе стороны от фильтра пакетов больше не могут взаимодействовать друг с другом или они обмениваются данными без какой-либо фильтрации пакетов. Если, однако, есть два компьютера, на которых запущен фильтр пакетов, работающих под управлением CARP, то в случае отказа одного из них его возьмет на себя другой, и компьютеры по обе стороны от фильтра пакетов не будут знать о сбое, поэтому работа будет продолжена в обычном режиме. . Чтобы убедиться, что новый активный / первичный работает так же, как старый, используемый фильтр пакетов должен поддерживать синхронизацию состояния между двумя компьютерами.
Принцип резервирования
Группа хостов, использующих CARP, называется «группой резервирования». Группа резервирования выделяет себе IP-адрес, который совместно используется или разделяется между членами группы. В этой группе хост обозначается как «активный / основной». Остальные участники находятся в режиме ожидания. Главный хост - это тот, который «принимает» IP-адрес. Он отвечает на любой трафик или ARP-запрос, доведенный до сведения этого адреса. Каждый хост может принадлежать к нескольким группам резервирования. У каждого хоста должен быть второй уникальный IP-адрес.
Обычно CARP используется для создания группы резервных межсетевых экранов. Виртуальный IP - адрес выделяется в группу резервирования указывается в качестве адреса маршрутизатора по умолчанию на компьютеры за этой группой брандмауэров. Если основной брандмауэр выходит из строя или отключается от сети, виртуальный IP-адрес будет занят одним из ведомых брандмауэров, и доступность службы не будет прервана.
История
В конце 1990-х годов Инженерная группа Интернета (IETF) начала работу над протоколом для резервирования маршрутизаторов. В 1997 году Cisco сообщила IETF, что у нее есть патенты в этой области, а в 1998 году указала на свой патент на HSRP (протокол горячего резервирования маршрутизатора). Тем не менее, IETF продолжила работу над VRRP (протокол резервирования виртуального маршрутизатора). После некоторых дебатов рабочая группа IETF VRRP решила утвердить стандарт, несмотря на то, что она полагается на запатентованные технологии, при условии, что Cisco предоставит патент третьим лицам на условиях лицензирования RAND (разумные и недискриминационные). Поскольку VRRP устранил проблемы с протоколом HSRP, Cisco начала использовать вместо него VRRP, по-прежнему заявляя его как свой собственный. [2]
Cisco сообщила разработчикам OpenBSD, что будет обеспечивать соблюдение своего патента на HSRP. Положение Cisco могло быть связано с их судебным иском с Alcatel. Поскольку условия лицензирования Cisco препятствовали реализации VRRP с открытым исходным кодом, разработчики OpenBSD вместо этого начали разработку CARP. OpenBSD фокусируется на безопасности. Они разработали CARP для использования криптографии . Это сделало CARP принципиально отличным от VRRP и гарантировало, что CARP не нарушает патент Cisco. CARP стал доступен в октябре 2003 года. [3] Позже он был интегрирован в FreeBSD (впервые выпущен в мае 2005 года с FreeBSD 5.4), [4] NetBSD и Linux (ucarp). [1] Хотя патент Cisco в США истек в 2014 году, два несовместимых протокола продолжают сосуществовать.
Несовместимость со стандартами IETF
OpenBSD использует номер протокола и MAC-адреса VRRP. Проект OpenBSD запросил у IANA уникальные номера, но получил отказ.
Для распределения номеров у IANA есть несколько требований. В то время они были указаны в RFC 2780 . Требования включают участие в совместном длительном процессе обсуждения в IETF и создание подробной текстовой спецификации протокола. Разработчики OpenBSD не выполнили ни одного требования [ необходима цитата ] . На веб-сайте OpenBSD указано следующее: [5]
В заключение, конечно, когда мы обратились в IANA, орган IETF, регулирующий [sic] «официальные» номера интернет-протоколов, с просьбой предоставить нам номера для CARP и pfsync , наш запрос был отклонен. Очевидно, нам не удалось пройти через официальную организацию по стандартизации. Следовательно, мы были вынуждены выбрать номер протокола, который не конфликтовал бы ни с чем другим ценным, и решили разместить CARP на IP-протоколе 112. Мы также поместили pfsync на открытый и неиспользуемый номер. Мы проинформировали IANA об этих решениях, но они отказались отвечать.
IANA присвоила протоколу номер 112 VRRP (в 1998 году через RFC 2338). [6] Протокол номер 112 по-прежнему используется VRRP.
CARP также использует диапазон MAC-адресов Ethernet, которые IEEE назначил IANA / IETF для протокола VRRP. [7]
Несмотря на перекрытие, все еще возможно использовать VRRP и CARP в одном и том же широковещательном домене , если ID группы VRRP и ID виртуального хоста CARP различны.
Смотрите также
Рекомендации
- ^ a b ucarp справочная страница
- ^ "VRRP-CISCO" . IETF. Архивировано из оригинала на 2014-03-13 . Проверено 26 ноября 2011 .
- ^ Райан МакБрайд (17 октября 2003 г.). « „ КАРП “ » . Список рассылки ARChives.
- ^ Примечания к выпуску FreeBSD 5.4 i386 , получено 06.01.2010
- ^ «Лицензия CARP» . Релизные песни OpenBSD . 2004-05-01.
- ^ «Номера протоколов» . IANA . Проверено 19 июня 2014 года .
- ^ «Номера Ethernet» . Проверено 19 июня 2014 года .
Внешние ссылки
- - Руководство по интерфейсам ядра OpenBSD
- - Руководство по интерфейсам ядра FreeBSD
- UCARP: реализация CARP в пользовательской среде
- NetBSD порт CARP
- Песня OpenBSD 3.5: «Лицензия CARP» и «Избыточность должна быть бесплатной»