Записки программиста
  • Главная страница
  • Базы данных
    • ClickHouse
      • Экспорт и импорт данных
    • MariaDB
      • Настройка временной зоны
    • MongoDB
      • Пользователи и авторизация
      • Конфигурация кэша WiredTiger
    • MySQL
      • Установка в FreeBSD
      • Восстановление репликации
      • Полезные ссылки
    • PostgreSQL
      • Блокировки
      • Вакуумирование таблиц
      • Репликация
      • Полезные заметки
    • Redis
      • Полезные заметки
  • Безопасность
    • OpenSSL
      • Работа с контейнером p12
    • PostgreSQL
  • Инфраструктура
    • Docker
      • Полезные заметки
    • Kubernetes
      • Установка k3s
      • Полезные заметки
    • Proxmox VE
      • Управление узлами кластера
  • Операционные системы
    • FreeBSD
      • Установка XOrg и Gnome
      • Свой репозиторий pkgng
      • Поддержка ZFS
      • Использование CARP
      • Установка на ZFS без таблицы разделов
    • Linux
      • apt
      • dpkg
      • Изменение корневого раздела диска без перезагрузки
    • macOS
      • Настройка уведомлений macOS
      • Настройка Finder
      • Настройка shell пользователя
      • Служба Spotlight
      • Локализация каталогов
      • Маршрутизация и VPN
    • UNIX
      • Работа с архивами
  • Программирование
    • PHP
      • Полезные заметки
    • Shell
      • Bash
  • Сетевые технологии
    • Nebula
    • Полезные ссылки
  • Системы версирования
    • GIT
      • Основные операции
      • Синхронизация форка с основным проектом
    • SVN
      • Полезные заметки
  • Файловые системы
    • Ceph
      • Настройка модуля Dashboard
      • Мониторинг
      • Полезные заметки
    • ZFS
      • Управление пулами ZFS
      • Управление томами ZFS
  • Транспорт
    • Никополь - Каменка-Днепровская
    • Энергодар - Примерное - Новоукраинка - Ивановка - Благовещенка - Червонцы
Powered by GitBook
On this page
  • Модуль CARP
  • Настройки sysctl
  • Настройки интерфейсов
  • Мониторинг и работа системы

Was this helpful?

  1. Операционные системы
  2. FreeBSD

Использование CARP

PreviousПоддержка ZFSNextУстановка на ZFS без таблицы разделов

Last updated 4 years ago

Was this helpful?

CARP ( Common Address Redundancy Protocol ) - протокол дублирования общего адреса ( ), позволяет нескольким хостам использовать один IP-адрес. Протокол часто применяется для увеличения отказоустойчивости, доступности сервисов. Рассмотрим настройку CARP в FreeBSD 10 на примере построения отказоустойчивого сервера доступа ( BRAS ). В случае использования NAT желательна синхронизация таблиц трансляции с помощью pfsync, но это тема для отдельной заметки.

Модуль CARP

Для загрузки модуля при старте системы добавить опцию в /boot/loader.conf

/boot/loader.conf
carp_load="YES"

Также модуль можно внести в состав ядра, собрав его с опцией

device carp

Настройки sysctl

Разрешить CARP автоматически обрабатывать пропадания хостов и менять роль.

/etc/sysctl.conf
net.inet.carp.allow=1
net.inet.carp.preempt=1

Настройки интерфейсов

Для определения принадлежности к группе используется параметр vhid. Для определения значимости хоста - advskew, от 0 до 240, чем меньше - тем приоритет выше.

Настройка внешних интерфейсов хостов em0 в /etc/rc.conf. Общий адрес 1.1.1.1, id хоста 1.

/etc/rc.conf
#Хост 1
ifconfig_em0="inet 1.1.1.2 netmask 255.255.255.0"
ifconfig_em0_alias0="inet 1.1.1.1 netmask 255.255.255.255 vhid 1 advskew 100 pass carppassword"

#Хост 2
ifconfig_em0="inet 1.1.1.3 netmask 255.255.255.0"
ifconfig_em0_alias0="inet 1.1.1.1 netmask 255.255.255.255 vhid 1 advskew 200 pass carppassword"

Настройка внутренних интерфейсов хостов em1 в /etc/rc.conf. Общий адрес 10.0.0.1, id хоста 2.

/etc/rc.conf
#Хост 1
ifconfig_em1="inet 10.0.0.2 netmask 255.255.255.0"
ifconfig_em1_alias0="inet 10.0.0.1 netmask 255.255.255.255 vhid 2 advskew 100 pass carppassword" 

#Хост 2
ifconfig_em0="inet 10.0.0.3 netmask 255.255.255.0"
ifconfig_em0_alias0="inet 10.0.0.1 netmask 255.255.255.255 vhid 2 advskew 200 pass carppassword"

Мониторинг и работа системы

Для мониторинга состояния интерфейсов используется ifconfig

ifconfig em1
em1: flags=8943 metric 0 mtu 1500
...
inet 10.0.0.19 netmask 0xfffff000 broadcast 10.0.15.255
inet 10.0.0.18 netmask 0xffffffff broadcast 10.0.0.18 vhid 2
...
carp: MASTER vhid 2 advbase 1 advskew 100

В случае пропадания хоста, выбранного как MASTER, второй хост изменит свое состояние с BACKUP на MASTER. Данные переходы журналируются в /var/log/messages.

Также возможна принудительная смена роли на одно из значений INIT MASTER BACKUP

ifconfig em1 vhid 2 state BACKUP
см. Wikipedia