Настройка резервирования на основе CARP
Резервирование IP-адреса шлюза посредством протокола CARP
В рамках резервирования IP-адреса шлюза посредством протокола CARP проверяется отказоустойчивость шлюза на уровне IP-адреса.
Для резервирования шлюза используется два физических подключения, которые подключены в разные юниты RTT-M300, которые соединяют два сегмента сети LAN и WAN. CARP позволяет произвести резервирование шлюза на уровне IP-адреса, распределяя роли юнитов ведущий и ведомый. Ведущий будет шлюзом для каждого сегмента до момента аварии или повреждения линка. Если ведущий юнит откажет, тогда роль ведущего примет ведомый и будет выступать в качестве шлюза.
В первую очередь необходимо настроить адресацию интерфейсов каждого юнита в соответствии со схемой. Шлюз для каждого сегмента настраивается через виртуальные интерфейсы. Конфигурация виртуальных интерфейсов ведущего юнита (Unit 1) представлена на рисунках.
Далее необходимо аналогично настроить ведомый юнит.
Описание параметров:
Режим: CARP – режим резервирования шлюза на уровне IP-адреса;
Интерфейс – интерфейс, который участвует в резервировании шлюза;
Адрес – виртуальный адрес шлюза, который используется конечными хостами в соответствующем сегменте сети;
Пароль виртуального IP-адреса – аутентификация юнитов в группе, использующих один общий виртуальный адрес;
Группа VHID – группирование для изоляции разных виртуальных IP-шлюзов;
Частота синхронизации – периодичность синхронизации юнитов в группе;
Сдвиг времени(приоритет) – чем больше значение, тем ниже вероятность, что юнит станет ведущим;
Dead timer – таймер, который используется для определения доступности соседнего юнита;
Приоритетный флаг – параметр, который позволяет зафиксировать роль ведущего юнита(параметр не фиксирует состояние юнита, как ведущий);
Описание – общее описание.
После конфигурирования виртуальных интерфейсов каждого юнита, необходимо проверить статус виртуальных соединений
Произведем проверку доступности шлюза с хостов из сегмента 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.
Анонсы отправляет только ведущий юнит тем самым показывает, что доступен и необходимо использовать его физический интерфейс. Как только происходит авария на данном линке или юните, вещать начинает резервный юнит, тем самым становясь ведущим.
Факторы, влияющие на синхронизацию юнитов:
Виртуальный IP-адрес – адрес должен быть одинаковым на каждом юните;
Пароль виртуального IP-адреса – пароль должен быть одинаковым на каждом юните.
Состав пакета приведен на рисунке
Описание основных полей приведено в таблице
Параметр |
Примечание |
---|---|
Virtual Rtr ID |
Группа VHID |
Priority |
Частота синхронизации со сдвигом во времени(приоритет) |
Adver int |
Частота синхронизации базовая |
<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>