Настройка резервирования на основе CARP

Резервирование IP-адреса шлюза посредством протокола CARP

В рамках резервирования IP-адреса шлюза посредством протокола CARP проверяется отказоустойчивость шлюза на уровне IP-адреса.

Для резервирования шлюза используется два физических подключения, которые подключены в разные юниты RTT-M300, которые соединяют два сегмента сети LAN и WAN. CARP позволяет произвести резервирование шлюза на уровне IP-адреса, распределяя роли юнитов ведущий и ведомый. Ведущий будет шлюзом для каждого сегмента до момента аварии или повреждения линка. Если ведущий юнит откажет, тогда роль ведущего примет ведомый и будет выступать в качестве шлюза.

../../../../_images/zero.png

Топология

В первую очередь необходимо настроить адресацию интерфейсов каждого юнита в соответствии со схемой. Шлюз для каждого сегмента настраивается через виртуальные интерфейсы. Конфигурация виртуальных интерфейсов ведущего юнита (Unit 1) представлена на рисунках.

../../../../_images/one10.png

Конфигурация первого виртуального интерфейса ведущего юнита (Unit 1)

../../../../_images/two12.png

Конфигурация второго виртуального интерфейса ведущего юнита (Unit 1)

Далее необходимо аналогично настроить ведомый юнит.

../../../../_images/tri8.png

Конфигурация первого виртуального интерфейса ведомого юнита (Unit 2)

../../../../_images/four9.png

Конфигурация второго виртуального интерфейса ведомого юнита (Unit 2)

Описание параметров:

  • Режим: CARP – режим резервирования шлюза на уровне IP-адреса;

  • Интерфейс – интерфейс, который участвует в резервировании шлюза;

  • Адрес – виртуальный адрес шлюза, который используется конечными хостами в соответствующем сегменте сети;

  • Пароль виртуального IP-адреса – аутентификация юнитов в группе, использующих один общий виртуальный адрес;

  • Группа VHID – группирование для изоляции разных виртуальных IP-шлюзов;

  • Частота синхронизации – периодичность синхронизации юнитов в группе;

  • Сдвиг времени(приоритет) – чем больше значение, тем ниже вероятность, что юнит станет ведущим;

  • Dead timer – таймер, который используется для определения доступности соседнего юнита;

  • Приоритетный флаг – параметр, который позволяет зафиксировать роль ведущего юнита(параметр не фиксирует состояние юнита, как ведущий);

  • Описание – общее описание.

После конфигурирования виртуальных интерфейсов каждого юнита, необходимо проверить статус виртуальных соединений

../../../../_images/five8.png

Статус виртуальных соединений ведущего юнита

../../../../_images/six6.png

Статус виртуальных соединений ведомого юнита

Произведем проверку доступности шлюза с хостов из сегмента LAN и WAN:

Pinging 10.0.0.3 with 18 bytes of data:

18 bytes from 10.0.0.3: icmp_seq=1. time=0 ms

18 bytes from 10.0.0.3: icmp_seq=2. time=0 ms

18 bytes from 10.0.0.3: icmp_seq=3. time=0 ms

18 bytes from 10.0.0.3: icmp_seq=4. time=0 ms

----10.0.0.3 PING Statistics----

4 packets transmitted, 4 packets received, 0% packet loss

round-trip (ms) min/avg/max = 0/0/0

console#ping 20.0.0.3

Pinging 20.0.0.3 with 18 bytes of data:

18 bytes from 20.0.0.3: icmp_seq=1. time=0 ms

18 bytes from 20.0.0.3: icmp_seq=2. time=0 ms

18 bytes from 20.0.0.3: icmp_seq=3. time=0 ms

18 bytes from 20.0.0.3: icmp_seq=4. time=0 ms

----20.0.0.3 PING Statistics----

4 packets transmitted, 4 packets received, 0% packet loss

round-trip (ms) min/avg/max = 0/0/0

Далее для проверки отказоустойчивости выключим основной юнит, через который проходит трафик и проверим доступность шлюза.

console#ping 10.0.0.3

Pinging 10.0.0.3 with 18 bytes of data:

18 bytes from 10.0.0.3: icmp_seq=1. time=0 ms

18 bytes from 10.0.0.3: icmp_seq=2. time=0 ms

18 bytes from 10.0.0.3: icmp_seq=3. time=0 ms

18 bytes from 10.0.0.3: icmp_seq=4. time=0 ms

----10.0.0.3 PING Statistics----

4 packets transmitted, 4 packets received, 0% packet loss

round-trip (ms) min/avg/max = 0/0/0

console#ping 20.0.0.3

Pinging 20.0.0.3 with 18 bytes of data:

18 bytes from 20.0.0.3: icmp_seq=1. time=0 ms

18 bytes from 20.0.0.3: icmp_seq=2. time=0 ms

18 bytes from 20.0.0.3: icmp_seq=3. time=0 ms

18 bytes from 20.0.0.3: icmp_seq=4. time=0 ms

----20.0.0.3 PING Statistics----

4 packets transmitted, 4 packets received, 0% packet loss

round-trip (ms) min/avg/max = 0/0/0

Резервирование шлюза на уровне IP-адреса корректно работает. При отключении основного юнита, который выполняет маршрутизацию трафика, второй юнит автоматически берет на себя роль основного и выполняет пересылку трафика.

Для каждого сегмента резервируется ближайший шлюз, т.е., например, если пускать трафик из сегмента LAN в WAN, при неисправности одного из линков интерфейса LAN 1, трафик стабильно пройдет используя альтернативный интерфейс (виртуальный адрес шлюза). Но если выйдет из строя удаленный интерфейс WAN 2, в данном случае резервирование линка для трафика из сегментов LAN в WAN не произойдет.

Подробное описание реализации CARP

После конфигурирования и запуска виртуального интерфейса, система подключается к IGMP группе и начинает отправлять анонсы протокола VRRP (CARP для взаимодействия с соседней стороной использует VRRP) на мультикастный адрес 224.0.0.18.

../../../../_images/seven5.png

Подключение к IGMP

Анонсы отправляет только ведущий юнит тем самым показывает, что доступен и необходимо использовать его физический интерфейс. Как только происходит авария на данном линке или юните, вещать начинает резервный юнит, тем самым становясь ведущим.

Факторы, влияющие на синхронизацию юнитов:

  • Виртуальный IP-адрес – адрес должен быть одинаковым на каждом юните;

  • Пароль виртуального IP-адреса – пароль должен быть одинаковым на каждом юните.

Состав пакета приведен на рисунке

../../../../_images/eit4.png

Состав пакета

Описание основных полей приведено в таблице

Описание основных полей

Параметр

Примечание

Virtual Rtr ID

Группа VHID

Priority

Частота синхронизации со сдвигом во времени(приоритет)

Adver int

Частота синхронизации базовая

Разбор конфигурации в /conf/config.xml
<virtualip>
  <vip>
    <type>single</type>
    <subnet_bits>32</subnet_bits>
    <mode>carp</mode>                 # Режим
    <interface>lan1</interface>       # Интерфейс
    <subnet>10.0.0.3</subnet>         # Виртуальный IP - адрес
    <vhid>1</vhid>                    # Группа VHID
    <advskew>40</advskew>             # Частота синхронизации cо сдвигом времени, а должен быть приоритет.
    <advbase>3</advbase>              # Частота синхронизации
    <deadtime>1</deadtime>            # Dead timer
    <password>Rusteletech</password>  # Пароль виртуального IP-адреса
    <pflag>1</pflag>                  # Приоритетный флаг
  </vip>
</virtualip>