MikroTik Virtual Router Redundancy Protocol – базова конфигурация в GNS3

Мрежовият протокол VRRP (Virtual Router Redundancy Protocol) предоставя механизъм за отказоустойчивост, който повишава наличността и надеждността в IP мрежи. VRRP позволява използването на един и същи (виртуален) IP адрес от множество маршрутизатори. Целта на VRRP е успешна комуникация между всички маршрутизатори, участващи в мрежата (имащи еднакви Virtual Router ID).

Всички съобщения се изпращат чрез мултикаст съобщения. Адресът на получателя е 224.0.0.12 (фиг. 1). В IP хедъра се задава TTL=255. Ако по някаква причина маршрутизатор получи пакет с TTL различен от 255, пакетът се изхвърля.

Фигура 1. Преглед на VRRP съобщения с WireShark

В RouterOS са имплементирани както версия 2 на протокола (RFC 3768), така и VRRP версия 3 (RFC 5798). VRRPv3 предлага възможност за работа с IPv6.

В RFC 5798 ясно са дефинирани основни понятия като VRRP Router, Virtual Router, IP Address Owner, Primary IP Address,  Virtual Router Master и Virtual Router Backup. Тяхната имплементация е описана в документацията на MikroTik RouterOS (Manual:Interface/VRRP).

Базова конфигурация

Мрежовият симулатор GNS3 предоставя отлични възможности за бързо изграждане и тестване на конфигурация чрез VRRP. На фиг. 2 е показан проста мрежова диаграма, която може да послужи като основа за по-сложни конфигурации.

Фигура 2. Сценарий за базови тестове с VRRP

Конфигурация на R1:

/interface vrrp
add interface=ether2 name=vrrp1 priority=254 vrid=25
/ip address
add address=192.168.0.254/24 interface=ether2 network=192.168.0.0
add address=192.168.1.1/32 interface=vrrp1 network=192.168.1.1

Конфигурация на R2:

/interface vrrp
add interface=ether2 name=vrrp1 priority=253 vrid=25
/ip address
add address=192.168.0.253/24 interface=ether2 network=192.168.0.0
add address=192.168.1.1/32 interface=vrrp1 network=192.168.1.1

Видео демонстрация

Видео демонстрацията представя базова конфигурация с VRRP в GNS3.

Всеки път, когато в мрежата стане наличен маршрутизатор с по-висок приоритет (по-висока стойност за priority (integer: 1..254; Default: 100)), той става Virtual Router Master и той поема контрол над трафика. При необходимост тази функционалност може да се изключи чрез опцията preemption-mode=no.

При събитие като смяната на статуса на рутер от Virtual Router Master на Virtual Router Backup и обратно позволява изпълнение на скриптове, които могат да намери разнообразни приложения.

VRRP в режим Load sharing

По-оптимална конфигурация би била използването на двата маршрутизатора едновременно, изпълнявайки ролите Virtual Router Master на Virtual Router чрез различни IP адреси и съответните приоритети.

На фигура 3 е показана мрежова диаграма на по-сложна мрежова конфигурация с VRRP в режим Load sharing. R-1 и R-2 са от мрежата на клиента, а R-3 и R-4 от мрежата на доставчика.

Фигура 3. VRRP в режим Load sharing

По-долу е представен експорт на маршрутизаторите (фиг. 3).

#R-1

/interface bridge add name=bridge1
/interface bridge port
add bridge=bridge1 interface=ether2
add bridge=bridge1 interface=ether3
/interface vrrp
add interface=ether1 name=vrrp1 priority=2 vrid=211
add interface=ether1 name=vrrp2 priority=1 vrid=212
/ip address
add address=172.16.1.3/24 interface=bridge1 network=172.16.1.0
add address=192.168.0.1/24 interface=vrrp1 network=192.168.0.0
add address=192.168.0.2/24 interface=vrrp2 network=192.168.0.0
add address=10.0.0.9/30 interface=ether1 network=10.0.0.8
/ip route add check-gateway=ping distance=1 gateway=172.16.1.2,172.16.1.1
/ip firewall nat
add action=masquerade chain=srcnat out-interface=bridge1
/system identity set name=R-1
/tool romon set enabled=yes
/tool romon port add disabled=no

Интерфейси ether2 и ether3 са в bridge1 за да могат ether3(R-3) и ether2(R-4) да комуникират (на фиг. 3 са отбелязани в синьо).
На интерфейс ether1 са добавени 2 VRRP интерфейса (vrrp1 и vrrp2), които съответстват на същите с R-2. Целта е да се постигне постигне разпределяне на натоварването и отказоустойчивост.

#R-2

/interface bridge add name=bridge1
/interface bridge port
add bridge=bridge1 interface=ether2
add bridge=bridge1 interface=ether3
/interface vrrp
add interface=ether1 name=vrrp1 priority=1 vrid=211
add interface=ether1 name=vrrp2 priority=2 vrid=212
/ip address
add address=172.16.0.3/24 interface=bridge1 network=172.16.0.0
add address=10.0.0.10/30 interface=ether1 network=10.0.0.10
add address=192.168.0.1/24 interface=vrrp1 network=192.168.0.0
add address=192.168.0.2/24 interface=vrrp2 network=192.168.0.0
/ip route add distance=1 gateway=172.16.0.2,172.16.0.1
/ip firewall nat
add action=masquerade chain=srcnat out-interface=bridge1
/system identity set name=R-2
/tool romon set enabled=yes
/tool romon port add disabled=no

Интерфейси ether2 и ether3 са в bridge1 за да могат ether2(R-3) и ether3(R-4) да комуникират (на фиг. 3 са отбелязани в оранжево).
На интерфейс ether1 са добавени 2 VRRP интерфейса (vrrp1 и vrrp2), които съответстват на същите с R-1. Целта е да се постигне постигне разпределяне на натоварването и отказоустойчивост.

За илюстриране на маршрутизацията R-1 и R-2 използват ECMP – подход, който не е оптимален, но подходящ при демонстрация. В практиката могат да се използват други механизми за разпределяне на трафика.

#R-3

/interface vrrp
add interface=ether2 name=vrrp1 priority=1 vrid=11
add interface=ether2 name=vrrp2 priority=2 vrid=12
add interface=ether3 name=vrrp3 priority=1 vrid=111
add interface=ether3 name=vrrp4 priority=2 vrid=112
/ip address
add address=10.0.0.2/30 interface=ether2 network=10.0.0.0
add address=10.0.0.6/30 interface=ether3 network=10.0.0.4
add address=172.16.0.1/24 interface=vrrp1 network=172.16.0.0
add address=172.16.0.2/24 interface=vrrp2 network=172.16.0.0
add address=172.16.1.1/24 interface=vrrp3 network=172.16.1.0
add address=172.16.1.2/24 interface=vrrp4 network=172.16.1.0
/ip dhcp-client add default-route-distance=0 \ 
dhcp-options=hostname,clientid disabled=no interface=ether1
/ip firewall nat add action=masquerade chain=srcnat out-interface=ether1
/system identity set name=R-3
/tool romon set enabled=yes
/tool romon port add disabled=no

#R-4

/interface vrrp
add interface=ether3 name=vrrp1 priority=2 vrid=11
add interface=ether3 name=vrrp2 priority=1 vrid=12
add interface=ether2 name=vrrp3 priority=2 vrid=111
add interface=ether2 name=vrrp4 priority=1 vrid=112
/ip address
add address=10.0.0.1/30 interface=ether3 network=10.0.0.0
add address=10.0.0.5/30 interface=ether2 network=10.0.0.4
add address=172.16.0.1/24 interface=vrrp1 network=172.16.0.0
add address=172.16.0.2/24 interface=vrrp2 network=172.16.0.0
add address=172.16.1.1/24 interface=vrrp3 network=172.16.1.0
add address=172.16.1.2/24 interface=vrrp4 network=172.16.1.0
/ip dhcp-client add default-route-distance=0 \
dhcp-options=hostname,clientid disabled=no interface=ether1
/ip firewall nat add action=masquerade chain=srcnat out-interface=ether1
/system identity set name=R-4
/tool romon set enabled=yes
/tool romon port add disabled=no

R-3 и R-4 изпълняват същата роля (VRRP с разпределяне на трафика) както R-1 и R-2 в клиентската мрежа, но предоставят такива възможности в транспортната мрежа между маршрутизаторите.

Остава въпросът как двойките рутери ще поддържат една и съща конфигурация, освен IP адресите. На пр. правилата в защитните стени, маршрутите, статичните DHCP leases и др. Има различни подходи за това: използване на външен софтуер чрез API, създаване на скриптове, които регулярно да прехвърлят конфигурацията чрез export, fetch, import и др.

Използвани източници

Добри Бояджиев

Д-р Добри Бояджиев - сертифициран MikroTik инструктор. Прочетете повече ›

Публикувано в Новини, Статии