Настройка VRRP на программном маршрутизаторе VyOS

Настройка VRRP на программном маршрутизаторе VyOS

Roman Bogachev VMware Specialist | Drone Pilot | Traveler

Объединение нескольких маршрутизаторов в один виртуальный маршрутизатор с общим IP адресом, который будет назначаться для устройств, как шлюз по умолчанию.

Для управления резервированием было разработано целое семейство протоколов First Hop Redundancy Protocol, FHRP. В него вошли протоколы HSRP, VRRP, GLBP. При отказе основного маршрутизатора все функции на себя возьмет резервный и обрыв связи никто не заметит.

Все потенциальные шлюзы по умолчанию объединяются в группу. Таких групп может быть несколько и активным является всегда только один маршрутизатор. В группе также имеется резервный роутер, который постоянно следит за активным маршрутизатором и если тот выйдет из строя, то резервный шлюз сразу его заменит.

Активный маршрутизатор называется MASTER, все остальные - BACKUP. Кроме того, все BACKUP слушают MASTER.

Рассмотрим свободную реализацию данной идеи с помощью протокола VRRP (Virtual Router Redundancy Protocol).

Настройка SW-01

Базовая настройка

Выполняем базовую настройку коммутатора: настраиваем WAN/LAN сети, отключаем IPv6, включаем NTP, задаём порт SSH.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
set system host-name 'SW-01'
set system time-zone 'Europe/Moscow'
set service ssh port '22'

set interfaces ethernet eth0 address '172.16.1.7/24'
set interfaces ethernet eth0 description 'Public Network'
set protocols static route 0.0.0.0/0 next-hop 172.16.1.1 distance 1

set interfaces ethernet eth1 address '192.168.5.7/24'
set interfaces ethernet eth1 description 'Private Network'

set system ipv6 blacklist
set system ipv6 disable-forwarding
set system ipv6 disable

set system name-server '8.8.8.8'

set system ntp server 0.ru.pool.ntp.org
set system ntp server 1.ru.pool.ntp.org
set system ntp server 2.ru.pool.ntp.org
set system ntp server 3.ru.pool.ntp.org

Настройка VRRP

Выполняем настройку VRRP для WAN и LAN интерфейсов, задаём требуемые значения для настроек.

advertise-interval - интервал (в секундах) между отправкой VRRP-объявлений.

preempt - контролирует то, будет ли Backup-маршрутизатор с более высоким приоритетом пытаться перехватить на себя роль Master у текущего Master-маршрутизатора с более низким приоритетом.

priority - значение приоритета, которое будет использоваться этим VRRP-маршрутизатором в выборах Master для этого виртуального маршрутизатора.

Приоритет маршрутизатора, который является владельцем IP-адреса (или адресов) должен быть равен 255,
У остальных маршрутизаторов значение приоритета должно быть в диапазоне от 1 до 254. По умолчанию используется приоритет 100,
Значение приоритета равное 0 имеет специальное назначение — указывает, что текущий Master перестал участвовать в работе VRRP. Это используется для того чтобы быстрее перевести Backup-маршрутизаторы в роль Master, не дожидаясь окончания таймера.

sync-group - настройка синхронизации групп, если разные интерфейсы маршрутизатора принадлежат к разным группам.

В этом случае при падении одного интерфейса все остальные автоматически перейдут в состояние резервных, что может быть полезно, если топология такова, что для выполнения маршрутизатором своей задачи все интерфейсы должны быть активны одновременно.

virtual-address - один или более IP-адресов присвоенных виртуальному маршрутизатору.

1
2
3
4
5
6
7
8
9
10
11
set interfaces ethernet eth0 vrrp vrrp-group 2 advertise-interval '1'
set interfaces ethernet eth0 vrrp vrrp-group 2 preempt 'true'
set interfaces ethernet eth0 vrrp vrrp-group 2 priority '100'
set interfaces ethernet eth0 vrrp vrrp-group 2 sync-group 'PublicSync'
set interfaces ethernet eth0 vrrp vrrp-group 2 virtual-address '172.16.1.20'

set interfaces ethernet eth1 vrrp vrrp-group 3 advertise-interval '1'
set interfaces ethernet eth1 vrrp vrrp-group 3 preempt 'true'
set interfaces ethernet eth1 vrrp vrrp-group 3 priority '100'
set interfaces ethernet eth1 vrrp vrrp-group 3 virtual-address '192.168.5.20/24'
set interfaces ethernet eth1 vrrp vrrp-group 3 sync-group 'LanSync'

Опция Preemtion включена по умолчанию, роутер не будет возвращать управление роутеру с большим приоритетом, при появлении такового в сети.

Настройка Firewall

Выполняем настройку правил на Firewall, чтобы разрешить VRRP через LAN-интерфейсы.

1
2
3
4
set firewall name internal rule 10 action 'accept'
set firewall name internal rule 10 description 'Allow VRRP over LAN'
set firewall name internal rule 10 protocol 'vrrp'
set firewall name internal rule 10 source address '192.168.5.8'

Настройка SW-02

По аналогии выполняем настройку второго коммутатора.
Обратите внимание на адресацию и настройки правил Firewall.

Базовая настройка

Выполняем базовую настройку коммутатора: настраиваем WAN/LAN сети, отключаем IPv6, включаем NTP, задаём порт SSH.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
set system host-name 'SW-02'
set system time-zone 'Europe/Moscow'
set service ssh port '22'

set interfaces ethernet eth0 address '172.16.1.8/24'
set interfaces ethernet eth0 description 'Public Network'
set protocols static route 0.0.0.0/0 next-hop 172.16.1.1 distance 1

set interfaces ethernet eth1 address '192.168.5.8/24'
set interfaces ethernet eth1 description 'Private Network'

set system ipv6 blacklist
set system ipv6 disable-forwarding
set system ipv6 disable

set system name-server '8.8.8.8'

set system ntp server 0.ru.pool.ntp.org
set system ntp server 1.ru.pool.ntp.org
set system ntp server 2.ru.pool.ntp.org
set system ntp server 3.ru.pool.ntp.org

Настройка VRRP

1
2
3
4
5
6
7
8
9
10
11
set interfaces ethernet eth0 vrrp vrrp-group 2 advertise-interval '1'
set interfaces ethernet eth0 vrrp vrrp-group 2 preempt 'true'
set interfaces ethernet eth0 vrrp vrrp-group 2 priority '90'
set interfaces ethernet eth0 vrrp vrrp-group 2 sync-group 'PublicSync'
set interfaces ethernet eth0 vrrp vrrp-group 2 virtual-address '172.16.1.20'

set interfaces ethernet eth1 vrrp vrrp-group 3 advertise-interval '1'
set interfaces ethernet eth1 vrrp vrrp-group 3 preempt 'true'
set interfaces ethernet eth1 vrrp vrrp-group 3 priority '90'
set interfaces ethernet eth1 vrrp vrrp-group 3 virtual-address '192.168.5.20/24'
set interfaces ethernet eth1 vrrp vrrp-group 3 sync-group 'LanSync'

Настройка Firewall

1
2
3
4
set firewall name internal rule 10 action 'accept'
set firewall name internal rule 10 description 'Allow LAN'
set firewall name internal rule 10 protocol 'vrrp'
set firewall name internal rule 10 source address '192.168.5.7'

Проверяем статус VRRP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
vyos@SW-01:~$ show vrrp detail
--------------------------------------------------
Interface: eth0
--------------
Group: 2
----------
State: MASTER
Last transition: 29s

Source Address:
Priority: 100
Advertisement interval: 1 sec
Authentication type: none
Preempt: enabled

Sync-group: PublicSync

VIP count: 1
172.16.1.20/32

Interface: eth1
--------------
Group: 3
----------
State: MASTER
Last transition: 29s

Source Address:
Priority: 100
Advertisement interval: 1 sec
Authentication type: none
Preempt: enabled

Sync-group: LanSync

VIP count: 1
192.168.5.20/24