VRRP

Для создания физической отказоустойчивости применяется протокол VRRP, который позволяет создать «виртуальный» интерфейс, а оборудование между собой согласовывает, кто им управляет.

Резервирование маршрутизатора

В случае с физическим питанием можно подключить через PoE и Jack с разных ИБП и фаз, или купить с двумя БП. Но возможен отказ оборудования или проведение технических работ — например обновление прошивки или замена.
Рассмотрим реализацию, когда имеется 2 выхода в Интернет, а простой недопустим.

Легенда:

ISP1 дает 3 адреса:
IP1: 1.1.1.2/30 GW1: 1.1.1.1
IP2: 2.2.2.2/30 GW2: 2.2.2.1
IP3: 3.3.3.2/30 GW3: 3.3.3.1

ISP2 дает 1 адрес:
IP1: 4.4.4.2/30 GW1: 4.4.4.1

Схема подключения в EVE-NG

Оба провайдера физически подключаются к двум маршрутизаторам. Если провайдер может выделить на своем оборудовании 2 порта — пользуемся ими. В ином случае используем свой отдельный свитч.

Локальная сеть:

CHR:
Net: 10.255.255.0/24
DHCP: 10.255.255.10 — 10.255.255.250
GW VRRP: 10.255.255.254
GW CHR-1: 10.255.255.1
GW CHR-2: 10.255.255.2

PC-1:
IP: 10.255.255.10/24
GW: 10.255.255.254

Подготовка стенда EVE-NG

Машина Internet

На стенде это так же CHR, который выступает маршрутизатором между операторами. В нем указываем шлюзы провайдеров с масками, а так же несколько «Интернет» адресов для проверок.

/interface bridge
add name=lo
/interface ethernet
set [ find default-name=ether1 ] name=ether1-ISP1
set [ find default-name=ether2 ] name=ether2-ISP2
set [ find default-name=ether3 ] name=ether3-ISP3
set [ find default-name=ether4 ] name=ether4-MGMT
/ip address
add address=1.1.1.1/30 interface=ether1-ISP1 network=1.1.1.0
add address=2.2.2.1/30 interface=ether1-ISP1 network=2.2.2.0
add address=3.3.3.1/30 interface=ether1-ISP1 network=3.3.3.0
add address=4.4.4.1/30 interface=ether2-ISP2 network=4.4.4.0
add address=5.5.5.1/30 interface=ether3-ISP3 network=5.5.5.0
add address=6.6.6.1/30 interface=ether3-ISP3 network=6.6.6.0
add address=7.7.7.1/30 interface=ether3-ISP3 network=7.7.7.0
add address=8.8.8.8 interface=lo network=8.8.8.8
add address=8.8.4.4 interface=lo network=8.8.8.8
/system identity
set name=Internet

Конфигурация CHR-1

Настройки для CHR-2 будут практически идентичными. DHCP сервера не будет, чтобы не усложнять конфигурацию. На практике нужно создавать синхронизацию настроек и хостов в аренде и отключать его если маршрутизатор в Slave. Либо выносить DHCP на отдельный сервер, например Active Directory.

Даем названия интерфейсам
Связываем и назначаем VRID, Priority
Аутентификация по желанию
(не работает в 3 версии протокола)
/interface ethernet
set [ find default-name=ether1 ] disable-running-check=no name=ether1-ISP1
set [ find default-name=ether2 ] disable-running-check=no name=ether2-ISP2
set [ find default-name=ether3 ] disable-running-check=no name=ether3-LAN
set [ find default-name=ether4 ] disable-running-check=no name=ether4-MGMT
/interface vrrp
add interface=ether1-ISP1 name=ether1-ISP1-VRRP priority=200
add interface=ether2-ISP2 name=ether2-ISP2-VRRP priority=200 vrid=2
add interface=ether3-LAN name=ether3-LAN-VRRP priority=200 vrid=3
Назначаем IP адреса на ВСЕ интерфейсы, в том числе VRRP
Если имеется только 1 IP адрес, вешаем его на VRRP интерфейс, а на физический любой другой
/ip address
add address=1.1.1.2/30 interface=ether1-ISP1 network=1.1.1.0
add address=3.3.3.2/30 interface=ether1-ISP1-VRRP network=3.3.3.0

add address=10.255.255.252 interface=ether2-ISP2 network=10.255.255.252
add address=4.4.4.2/30 interface=ether2-ISP2-VRRP network=4.4.4.0

add address=10.255.255.1/24 interface=ether3-LAN network=10.255.255.0
add address=10.255.255.254/24 interface=ether3-LAN-VRRP network=10.255.255.0

Маршруты по умолчанию

Для простоты настройки укажем сразу 2 шлюза. Но в рабочей сети так делать нельзя, настраивайте DualWAN по ссылке ниже.

/ip route
add comment="To Internet" distance=1 gateway=3.3.3.1,4.4.4.1

Но мы не использовали «запасные» 2 IP адреса от провайдера на CHR-1 и CHR-2, их лучше настраивать в рамках DualWAN. По ним можно будет получить раздельный доступ на каждую железку из вне.

/ping 8.8.8.8 и /ping 8.8.4.4 должны работать при отключении ether1-ISP1 или ether2-ISP2. Задержка отклика ICMP может быть несколько секунд.

Конфигурация CHR-2

Аналогично CHR-1, за исключением используемых IP адресов на физических интерфейсах и приоритетов VRRP.

/interface ethernet
set [ find default-name=ether1 ] disable-running-check=no name=ether1-ISP1
set [ find default-name=ether2 ] disable-running-check=no name=ether2-ISP2
set [ find default-name=ether3 ] disable-running-check=no name=ether3-LAN
set [ find default-name=ether4 ] disable-running-check=no name=ether4-MGMT
/interface vrrp
add interface=ether1-ISP1 name=ether1-ISP1-VRRP priority=100
add interface=ether2-ISP2 name=ether2-ISP2-VRRP priority=100 vrid=2
add interface=ether3-LAN name=ether3-LAN-VRRP priority=100 vrid=3
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip address
add address=2.2.2.2/30 interface=ether1-ISP1 network=2.2.2.0
add address=3.3.3.2/30 interface=ether1-ISP1-VRRP network=3.3.3.0
add address=10.255.255.2/24 interface=ether3-LAN network=10.255.255.0
add address=10.255.255.254/24 interface=ether3-LAN-VRRP network=10.255.255.0
add address=10.255.255.253 interface=ether2-ISP2 network=10.255.255.253
add address=4.4.4.2/30 interface=ether2-ISP2-VRRP network=4.4.4.0
/ip route
add comment="To Internet" distance=1 gateway=3.3.3.1,4.4.4.1
/system identity
set name=CHR-2

Настройка NAT

На CHR-1 и CHR-2 настройка аналогичная:

/ip firewall nat
add action=src-nat chain=srcnat comment="NAT WAN1" out-interface=ether1-ISP1-VRRP src-address=10.255.255.0/24 to-addresses=3.3.3.2
add action=src-nat chain=srcnat comment="NAT WAN2" out-interface=ether2-ISP2-VRRP src-address=10.255.255.0/24 to-addresses=4.4.4.2

Проверка работы

С PC-1 запускаем /ping 8.8.8.8 и отключаем CHR-1. Пропадание откликов будет 3-4 секунды.