Настройка VRRP
VRRP (Virtual Router Redundancy Protocol) — сетевой протокол, предназначенный для увеличения доступности маршрутизаторов, выполняющих роль шлюза по умолчанию. Это достигается путём объединения группы маршрутизаторов в один виртуальный маршрутизатор и назначения им общего IP-адреса, который и будет использоваться как шлюз по умолчанию для компьютеров в сети.
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Перейти в режим конфигурирования интерфейса/туннеля/сетевого моста, для которого необходимо настроить протокол VRRP | esr(config)# interface <IF-TYPE><IF-NUM> | <IF-TYPE> – тип интерфейса; <IF-NUM> – F/S/P – F-фрейм (1), S – слот (0), P – порт. |
esr(config)# tunnel <TUN-TYPE><TUN-NUM> | <TUN-TYPE> – тип туннеля; <TUN-NUM> – номер туннеля. | ||
esr(config)# bridge <BR-NUM> | <BR-NUM> – номер сетевого моста. | ||
2 | Настроить необходимые параметры на интерфейсе/туннеле/сетевом мосту, включая IP-адрес | ||
3 | Включить VRRP-процесс на IP-интерфейсе. | esr(config-if-gi)# vrrp | |
esr(config-if-gi)# ipv6 vrrp | |||
4 | Установить виртуальный IP-адрес VRRP-маршрутизатора. | esr(config-if-gi)# vrrp ip <ADDR/LEN> | <ADDR/LEN> – виртуальный IP-адрес, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32]. Можно указать несколько IP-адресов перечислением через запятую. Может быть назначено до 4 IP-адресов на интерфейс. |
esr(config-if-gi)# ipv6 vrrp ip <IPV6-ADDR> | <IPV6-ADDR> – виртуальный IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]. Можно указать до 8ми IPv6-адресов перечислением через запятую. | ||
5 | Установить идентификатор VRRP-маршрутизатора. | esr(config-if-gi)# vrrp id <VRID> | <VRID> – идентификатора VRRP-маршрутизатора, принимает значения [1..255]. |
esr(config-if-gi)# ipv6 vrrp id <VRID> | |||
6 | Установить приоритет VRRP-маршрутизатора. | esr(config-if-gi)# vrrp priority <PR> | <PR> – приоритет VRRP-маршрутизатора, принимает значения [1..254]. Значение по умолчанию: 100. |
esr(config-if-gi)# ipv6 vrrp priority <PR> | |||
7 | Установить принадлежность VRRP-маршрутизатора к группе. Группа предоставляет возможность синхронизировать несколько VRRP-процессов, так если в одном из процессов произойдет смена мастера, то в другом процессе также произведется смена ролей. | esr(config-if-gi)# vrrp group <GRID> | <GRID> – идентификатор группы VRRP-маршрутизатора, принимает значения [1..32]. |
esr(config-if-gi)# ipv6 vrrp group <GRID> | |||
8 | Установить IP-адрес, который будет использоваться в качестве IP-адреса отправителя для VRRP-сообщений. | esr(config-if-gi)# vrrp source-ip <IP> | <IP> – IP-адрес отправителя, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
esr(config-if-gi)# ipv6 vrrp source-ip <IPV6> | <IPV6> – IPv6-адрес отправителя, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]. | ||
9 | Установить интервал между отправкой VRRP-сообщений | esr(config-if-gi)# vrrp timers advertise <TIME> | <TIME> – время в секундах, принимает значения [1..40]. Значение по умолчанию: 1 секунда. |
esr(config-if-gi)# ipv6 vrrp timers advertise <TIME> | |||
10 | Установить интервал, по истечении которого происходит отправка GratuituousARP сообщения(ий) при переходе маршрутизатора в состояние Master. | esr(config-if-gi)# vrrp timers garp delay <TIME> | <TIME> – время в секундах, принимает значения [1..60]. Значение по умолчанию: 5 секунд. |
11 | Установить количество GratuituousARP сообщений, которые будут отправлены при переходе маршрутизатора в состояние Master. | esr(config-if-gi)# vrrp timers garp repeat <COUNT> | <COUNT> – количество сообщений, принимает значения [1..60]. Значение по умолчанию: 5. |
12 | Установить интервал, по истечении которого будет происходить периодическая отправка GratuituousARP сообщения(ий), пока маршрутизатор находится в состоянии Master. | esr(config-if-gi)# vrrp timers garp refresh <TIME> | <TIME> – время в секундах, принимает значения [1..65535]. Значение по умолчанию: Периодическая отправка отключена. |
13 | Установить количество GratuituousARP сообщений, которые будут отправляться с периодом garprefresh пока маршрутизатор находится в состоянии Master. | esr(config-if-gi)# vrrp timers garp refresh-repeat <COUNT> | <COUNT> –количество сообщений, принимает значения [1..60]. Значение по умолчанию: 1. |
14 | Определить, будет ли Backup-маршрутизатор с более высоким приоритетом пытаться перехватить на себя роль Master у текущего Master-маршрутизатора с более низким приоритетом. | esr(config-if-gi)# vrrp preemption disable | |
esr(config-if-gi)# ipv6 vrrp preemption disable | |||
15 | Установить временной интервал, по истечении которого Backup-маршрутизатор с более высоким приоритетом будет пытаться перехватить на себя роль Master у текущего Master-маршрутизатора с более низким приоритетом. | esr(config-if-gi)# vrrp preemption delay <TIME> | <TIME> – время ожидания, определяется в секундах [1..1000]. Значение по умолчанию: 0 |
esr(config-if-gi)# ipv6 vrrp preemption delay <TIME> | |||
16 | Установить пароль для аутентификации с соседом. | esr(config-if-gi)# vrrp authentication key ascii-text | <CLEAR-TEXT> – пароль, задаётся строкой от 8 до 16 символов; <ENCRYPTED-TEXT> – зашифрованный пароль размером от 8 байт до 16 байт (от 16 до 32 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...). |
17 | Определить алгоритм аутентификации. | esr(config-if-gi)# vrrp authentication algorithm <ALGORITHM> | <ALGORITHM> – алгоритм аутентификации:
|
18 | Задать версию VRRP-протокола. | esr(config-if-gi)# vrrp version <VERSION> | <VERSION> – версия VRRP-протокола: 2, 3. |
19 | Установить режим, когда vrrp IP-адрес остается в состоянии UP вне зависимости от состояния самого интерфейса. (не обязательно) | esr(config-if-gi)# vrrp force-up | |
20 | Определить задержку между установлением ipv6 vrrp состояния MASTER и началом рассылки ND сообщений. | esr(config-if-gi)# ipv6 vrrp timers nd delay <TIME> | <TIME> – время в секундах, принимает значения [1..60]. Значение по умолчанию: 5 |
21 | Определить период обновления информации протокола ND для ipv6 vrrp в состоянии MASTER. | esr(config-if-gi)# ipv6 vrrp timers nd refresh <TIME> | <TIME> – время в секундах, принимает значения [1..65535]. Значение по умолчанию: 5 |
22 | Определить количество ND сообщений отправляемых за период обновления для ipv6 vrrp в состоянии MASTER. | esr(config-if-gi)# ipv6 vrrp timers nd refresh-repeat <NUM> | <NUM> – количество, принимает значения [1..60]. Значение по умолчанию: 0 |
23 | Определить количество отправок ND пакетов после установки ipv6 vrrp в состоянии MASTER. | esr(config-if-gi)# ipv6 vrrp timers nd repeat <NUM> | <NUM> – количество, принимает значения [1..60]. Значение по умолчанию: 1 |
Пример настройки 1
Задача:
Организовать виртуальный шлюз для локальной сети в VLAN 50, используя протокол VRRP. В качестве локального виртуального шлюза используется IP-адрес 192.168.1.1.
Решение:
Предварительно нужно выполнить следующие действия:
- создать соответствующий саб-интерфейс;
- настроить зону для саб-интерфейса;
- указать IP-адрес для саб-интерфейса.
Основной этап конфигурирования:
Настроим маршрутизатор R1.
В созданном саб-интерфейсе настроим VRRP. Укажем уникальный идентификатор VRRP:
R1(config)#interface gi 1/0/5.50 R1(config-subif)# vrrp id 10
Укажем IP-адрес виртуального шлюза 192.168.1.1/24:
R1(config-subif)# vrrp ip 192.168.1.1
Включим VRRP:
R1(config-subif)# vrrp R1(config-subif)# exit
Произвести аналогичные настройки на R2.
Пример настройки 2
Задача:
Организовать виртуальные шлюзы для подсети 192.168.1.0/24 в VLAN 50 и подсети 192.168.20.0/24 в VLAN 60, используя протокол VRRP c функцией синхронизации Мастера. Для этого используем объединение VRRP-процессов в группу. В качестве виртуальных шлюзов используются IP-адреса 192.168.1.1 и 192.168.20.1.
Решение:
Предварительно нужно выполнить следующие действия:
- создать соответствующие саб-интерфейсы;
- настроить зону для саб-интерфейсов;
- указать IP-адреса для саб-интерфейсов.
Основной этап конфигурирования:
Настроим маршрутизатор R1.
Настроим VRRP для подсети 192.168.1.0/24 в созданном саб-интерфейсе.
Укажем уникальный идентификатор VRRP:
R1(config-sub)#interface gi 1/0/5.50 R1(config-subif)# vrrp id 10
Укажем IP-адрес виртуального шлюза 192.168.1.1:
R1(config-subif)# vrrp ip 192.168.1.1
Укажем идентификатор VRRP-группы:
R1(config-subif)# vrrp group 5
Включим VRRP:
R1(config-subif)# vrrp R1(config-subif)# exit
Настроим VRRP для подсети 192.168.20.0/24 в созданном саб-интерфейсе.
Укажем уникальный идентификатор VRRP:
R1(config-sub)#interface gi 1/0/6.60 R1(config-subif)# vrrp id 20
Укажем IP-адрес виртуального шлюза 192.168.20.1:
R1(config-subif)# vrrp ip 192.168.20.1
Укажем идентификатор VRRP-группы:
R1(config-subif)# vrrp group 5
Включим VRRP:
R1(config-subif)# vrrp R1(config-subif)# exit
Произвести аналогичные настройки на R2.
Помимо создания туннеля необходимо в firewall разрешить протокол VRRP(112).
Настройка VRRP tracking
VRRP tracking — механизм позволяющий активировать статические маршруты в зависимости от состояния VRRP.
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Настроить VRRP согласно разделу "Алгоритм настройки VRRP". |
| |
2 | Добавить в систему Tracking-объект и перейти в режим настройки параметров Tracking-объекта. | esr(config)#tracking <ID> | <ID> – номер Tracking-объекта, принимает значения [1..60]. |
3 | Задать правило слежения за состоянием VRRP-процесса. | esr(config-tracking)# vrrp <VRID> [not] state { master | backup | fault } | <VRID> – идентификатор отслеживаемого VRRP-маршрутизатора, принимает значения [1..255]. |
4 | Включить Tracking-объект. | esr(config-tracking)#enable | |
5 | Cоздать статический IP-маршрут к указанной подсети с указанием Tracking-объекта. | esr(config)# ip route [ vrf <VRF> ] <SUBNET> { <NEXTHOP> [ resolve ] | | <VRF> – имя экземпляра VRF, задается строкой до 31 символа; <SUBNET> – адрес назначения, может быть задан в следующих видах: AAA.BBB.CCC.DDD – IP-адрес хоста, где каждая часть принимает значения [0..255]; AAA.BBB.CCC.DDD/NN – IP-адрес подсети с маской в виде префикса, где AAA-DDD принимают значения [0..255] и NN принимает значения [1..32]. <NEXTHOP> – IP-адрес шлюза задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255];
<IF> – имя IP-интерфейса, задаётся в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора; <TUN> – имя туннеля, задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора; <RULE> – номер правила wan, задаётся в диапазоне [1..50];
[METRIC] – метрика маршрута, принимает значения [0..255]; <TRACK-ID> – идентификатор Tracking объекта. Если маршрут привязан к Tracking объекту, то он появится в системе только при выполнении всех условий, заданных в объекте. |
Пример настройки
Задача:
Для подсети 192.168.0.0/24 организован виртуальный шлюз 192.168.0.1/24 с использованием протокола VRRP на основе аппаратных маршрутизаторов R1 и R2. Так же между маршрутизаторами R1 и R2 есть линк с вырожденной подсетью 192.168.1.0/30. Подсеть 10.0.1.0/24 терминируется только на маршрутизаторе R2. ПК имеет IP-адрес 192.168.0.4/24 и шлюз по умолчанию 192.168.0.1
Когда маршрутизатор R1 находится в состоянии vrrp backup, трафик от ПК в подсеть 10.0.1.0/24 пойдет без дополнительных настроек. Когда маршрутизатор R1 находится в состоянии vrrp master, необходим дополнительный маршрут для подсети 10.0.1.0/24 через интерфейс 192.168.1.2.
Исходные конфигурации маршрутизаторов:
Маршрутизатор R1
hostname R1 interface gigabitethernet 1/0/1 switchport forbidden default-vlan exit interface gigabitethernet 1/0/1.741 ip firewall disable ip address 192.168.0.2/24 vrrp id 10 vrrp ip 192.168.0.1/24 vrrp exit interface gigabitethernet 1/0/2 switchport forbidden default-vlan exit interface gigabitethernet 1/0/2.742 ip firewall disable ip address 192.168.1.1/30 exit
Маршрутизатор R2
hostname R2 interface gigabitethernet 1/0/1 switchport forbidden default-vlan exit interface gigabitethernet 1/0/1.741 ip firewall disable ip address 192.168.0.3/24 vrrp id 10 vrrp ip 192.168.0.1/24 vrrp exit interface gigabitethernet 1/0/2 switchport forbidden default-vlan exit interface gigabitethernet 1/0/2.742 ip firewall disable ip address 192.168.1.2/30 exit interface gigabitethernet 1/0/4 ip firewall disable ip address 10.0.1.1/24 exit
Решение:
На маршрутизаторе R2 никаких изменений не требуется так как подсеть 10.0.1.0/24 терминируется на нем, и в момент, когда R2 выступает в роли vrrp master, пакеты будут переданы в соответствующий интерфейс. На маршрутизаторе необходимо создать маршрут для пакетов с IP-адресом назначения из сети 10.0.1.0/24 в момент, когда R1 выступает в роли vrrp master.
Для этого создадим tracking-object с соответствующим условием:
R1(config)# tracking 1 R1(config-tracking)# vrrp 10 state master R1(config-tracking)# enable R1(config-tracking)# exit
Создадим статический маршрут в подсеть 10.0.1.0/24 через 192.168.1.2, который будет работать в случае удовлетворения условия из tracking 1:
R1(config)# ip route 10.0.1.0/24 192.168.1.2 track 1