Default Route - Маршрут по умолчанию

Маршрут по умолчанию (default route, default gateway) - это маршрутизационная запись, определяющая, куда должны направляться пакеты, для которых не найден более специфичный маршрут в таблице маршрутизации. В VyOS маршрут по умолчанию настраивается через статические маршруты и является критически важным элементом сетевой конфигурации.

Основные концепции

Что такое маршрут по умолчанию

Default route - это маршрут к сети с префиксом 0.0.0.0/0 для IPv4 или ::/0 для IPv6. Эти префиксы охватывают все возможные IP-адреса, но имеют наименьшую специфичность (самую длинную маску сети).

Принцип работы:

  • Маршрутизатор ищет наиболее специфичный (longest prefix match) маршрут для пакета
  • Если конкретный маршрут не найден, используется маршрут по умолчанию
  • Default gateway - это next-hop адрес в маршруте по умолчанию

Применение:

  • Направление всего трафика во внешние сети (интернет)
  • Соединение удаленных сетей через центральный маршрутизатор
  • Облачные окружения (Yandex Cloud, VK Cloud, AWS, Azure)

Эволюция конфигурации в VyOS

Старый способ (VyOS 1.1.x и ранее):

# Не используется в современных версиях
set system gateway-address 192.168.1.254

Современный способ (VyOS 1.2+):

# Правильный метод через static route
set protocols static route 0.0.0.0/0 next-hop 192.168.1.254

Важно: Команда set system gateway-address больше не поддерживается. Используйте только protocols static route.

Метрика и административная дистанция

Distance (административная дистанция):

  • Определяет приоритет между маршрутами от разных источников
  • По умолчанию для static routes: 1
  • Меньшее значение = выше приоритет

Примеры distance:

  • Connected routes: 0
  • Static routes: 1
  • OSPF: 110
  • BGP: 200

Metric (метрика маршрута):

  • Используется для выбора между несколькими маршрутами к одной сети от одного протокола
  • Меньшее значение = предпочтительнее
  • По умолчанию для static routes: 0

Конфигурация IPv4 Default Route

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

# Простейший вариант - маршрут по умолчанию через next-hop
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1

commit
save

Проверка:

show ip route 0.0.0.0

# Вывод:
# Routing entry for 0.0.0.0/0
#   Known via "static", distance 1, metric 0, best
#   Last update 00:05:23 ago
#   * 192.168.1.1, via eth0

Маршрут через интерфейс

Для point-to-point соединений можно указывать только интерфейс без next-hop:

# Маршрут через интерфейс (для PPPoE, туннелей)
set protocols static route 0.0.0.0/0 interface pppoe0

commit
save

Применение:

  • PPPoE подключения
  • GRE, IPsec туннели
  • VPN соединения

Настройка distance

# Маршрут с измененной административной дистанцией
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1 distance 10

commit
save

Применение: Резервный маршрут с более высоким distance будет использоваться только при недоступности основного.

DHCP-learned default route

При получении IP-адреса по DHCP VyOS автоматически получает и default gateway:

# DHCP на интерфейсе
set interfaces ethernet eth0 address dhcp

commit
save

Проверка DHCP-полученного маршрута:

show ip route 0.0.0.0

# Вывод покажет:
# Known via "dhcp"

Приоритет: DHCP-маршруты обычно имеют distance выше, чем статические, и будут заменены статическим маршрутом.

Удаление default route

# Удалить маршрут по умолчанию
delete protocols static route 0.0.0.0/0

commit
save

Конфигурация IPv6 Default Route

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

# IPv6 default route
set protocols static route6 ::/0 next-hop 2001:db8::1

commit
save

Проверка:

show ipv6 route ::/0

# Вывод:
# Routing entry for ::/0
#   Known via "static", distance 1, metric 0, best
#   Last update 00:02:15 ago
#   * 2001:db8::1, via eth0

IPv6 через Router Advertisement

В IPv6 default route часто получается автоматически через Router Advertisement (RA):

# Включить прием RA на интерфейсе
set interfaces ethernet eth0 ipv6 address autoconf

commit
save

Проверка RA-полученного маршрута:

show ipv6 route ::/0

# Вывод покажет:
# Known via "ra" (Router Advertisement)

DHCPv6 и default route

DHCPv6 не передает default gateway (по дизайну протокола). Для IPv6 default route используются:

  • Router Advertisement (RA)
  • Статический маршрут
  • Динамический протокол маршрутизации (OSPFv3, BGP)
# Получение адреса через DHCPv6
set interfaces ethernet eth0 address dhcpv6

# Default route все равно нужен отдельно
set protocols static route6 ::/0 next-hop 2001:db8::1

commit
save

IPv6 через интерфейс

# IPv6 default route через интерфейс
set protocols static route6 ::/0 interface sit0

commit
save

Применение: Туннели IPv6-in-IPv4, 6to4, 6rd.

Множественные маршруты по умолчанию

ECMP (Equal-Cost Multi-Path)

VyOS поддерживает балансировку трафика между несколькими равноценными маршрутами:

# Два маршрута с одинаковой метрикой
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1
set protocols static route 0.0.0.0/0 next-hop 192.168.1.2

# Включить layer4 hashing для балансировки по сессиям
set system ip multipath layer4-hashing

commit
save

Механизм балансировки:

  • layer4-hashing: Использует source IP, destination IP, protocol, source port, destination port
  • Обеспечивает сохранение порядка пакетов для одной TCP-сессии
  • Распределение по принципу “per-flow”, а не “per-packet”

Проверка:

show ip route 0.0.0.0

# Вывод покажет оба next-hop:
# Routing entry for 0.0.0.0/0
#   Known via "static", distance 1, metric 0, best
#   * 192.168.1.1, via eth0
#   * 192.168.1.2, via eth0

Failover через distance

Для автоматического переключения на резервный маршрут используйте разные distance:

# Основной маршрут (distance 1)
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1 distance 1

# Резервный маршрут (distance 10)
set protocols static route 0.0.0.0/0 next-hop 192.168.2.1 distance 10

commit
save

Поведение:

  • Используется маршрут с наименьшим distance (192.168.1.1)
  • При недоступности основного next-hop активируется резервный (192.168.2.1)
  • Требуется отслеживание доступности next-hop (BFD, track)

Комбинация ECMP + Failover

# Два основных маршрута с ECMP (distance 1)
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1 distance 1
set protocols static route 0.0.0.0/0 next-hop 192.168.1.2 distance 1

# Резервный маршрут (distance 10)
set protocols static route 0.0.0.0/0 next-hop 192.168.2.1 distance 10

# Балансировка для основных маршрутов
set system ip multipath layer4-hashing

commit
save

Результат:

  • Балансировка между 192.168.1.1 и 192.168.1.2
  • Автоматическое переключение на 192.168.2.1 при недоступности обоих основных

Маршрутизация по таблицам (VRF)

Default route в VRF

VyOS поддерживает VRF (Virtual Routing and Forwarding) для изоляции маршрутных таблиц:

# Создать VRF
set vrf name CUSTOMER1 table 100

# Назначить интерфейс в VRF
set interfaces ethernet eth2 vrf CUSTOMER1

# Default route в VRF CUSTOMER1
set vrf name CUSTOMER1 protocols static route 0.0.0.0/0 next-hop 10.0.1.1

commit
save

Проверка:

# Показать маршруты в VRF
show ip route vrf CUSTOMER1

# Показать все VRF
show vrf

Policy-Based Routing (PBR) с default route

PBR позволяет направлять трафик в определенные маршруты на основе правил:

# Создать policy route
set policy route PBR rule 10 source address 192.168.10.0/24
set policy route PBR rule 10 set table 100

# Таблица маршрутизации 100
set protocols static table 100 route 0.0.0.0/0 next-hop 203.0.113.1

# Применить на интерфейсе
set interfaces ethernet eth1 policy route PBR

commit
save

Применение: Направление трафика от определенных подсетей через конкретный ISP.

Примеры для облачных провайдеров

Yandex Cloud - Default Route

Сценарий: VyOS в Yandex Cloud с маршрутом по умолчанию к виртуальному роутеру облака.

Получение gateway Yandex Cloud:

  • Gateway всегда первый IP в подсети
  • Для подсети 10.128.0.0/24 gateway будет 10.128.0.1

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

# Интерфейс в Yandex Cloud подсети
set interfaces ethernet eth0 address 10.128.0.10/24
set interfaces ethernet eth0 description 'Yandex Cloud Subnet'

# Default route к Yandex Cloud gateway
set protocols static route 0.0.0.0/0 next-hop 10.128.0.1
set protocols static route 0.0.0.0/0 description 'Yandex Cloud default gateway'

commit
save

Проверка:

# Проверить маршрут
show ip route 0.0.0.0

# Проверить connectivity
ping 8.8.8.8

# Trace маршрута
traceroute 8.8.8.8

Yandex Cloud специфика:

  • Виртуальный роутер доступен по первому IP подсети
  • Поддержка только статического маршрута (нет DHCP option 3 по умолчанию)
  • Необходима статическая конфигурация

Yandex Cloud - Dual-Homed с failover

Сценарий: VyOS с двумя интерфейсами в разных подсетях для отказоустойчивости.

# Первый интерфейс (primary)
set interfaces ethernet eth0 address 10.128.0.10/24
set interfaces ethernet eth0 description 'Yandex Cloud Primary'

# Второй интерфейс (backup)
set interfaces ethernet eth1 address 10.129.0.10/24
set interfaces ethernet eth1 description 'Yandex Cloud Backup'

# Основной маршрут через eth0 (distance 1)
set protocols static route 0.0.0.0/0 next-hop 10.128.0.1 distance 1
set protocols static route 0.0.0.0/0 description 'Primary default route'

# Резервный маршрут через eth1 (distance 10)
set protocols static route 0.0.0.0/0 next-hop 10.129.0.1 distance 10
set protocols static route 0.0.0.0/0 description 'Backup default route'

commit
save

Мониторинг failover:

# Постоянный мониторинг маршрута
watch -n 1 'show ip route 0.0.0.0'

# Проверка в логах
monitor log

VK Cloud - Dual Default Routes с метриками

Сценарий: VK Cloud setup с двумя ISP для балансировки и резервирования.

# Интерфейс к VK Cloud router
set interfaces ethernet eth0 address 10.0.0.10/24
set interfaces ethernet eth0 description 'VK Cloud Primary'

# Второй интерфейс (backup ISP)
set interfaces ethernet eth1 address 10.0.1.10/24
set interfaces ethernet eth1 description 'VK Cloud Secondary'

# Primary default route с distance 1
set protocols static route 0.0.0.0/0 next-hop 10.0.0.1 distance 1
set protocols static route 0.0.0.0/0 description 'VK Cloud Primary ISP'

# Secondary default route с distance 20
set protocols static route 0.0.0.0/0 next-hop 10.0.1.1 distance 20
set protocols static route 0.0.0.0/0 description 'VK Cloud Backup ISP'

# NAT для обоих интерфейсов
set nat source rule 100 outbound-interface eth0
set nat source rule 100 source address 192.168.1.0/24
set nat source rule 100 translation address masquerade

set nat source rule 110 outbound-interface eth1
set nat source rule 110 source address 192.168.1.0/24
set nat source rule 110 translation address masquerade

commit
save

ECMP вариант для VK Cloud:

# Два маршрута с одинаковым distance для балансировки
set protocols static route 0.0.0.0/0 next-hop 10.0.0.1 distance 1
set protocols static route 0.0.0.0/0 next-hop 10.0.1.1 distance 1

# Включить layer4 hashing
set system ip multipath layer4-hashing

commit
save

Yandex Cloud - IPv6 Default Route

Сценарий: Dual-stack в Yandex Cloud с IPv4 и IPv6 маршрутами по умолчанию.

# IPv4 адрес и маршрут
set interfaces ethernet eth0 address 10.128.0.10/24
set protocols static route 0.0.0.0/0 next-hop 10.128.0.1

# IPv6 адрес и маршрут
set interfaces ethernet eth0 address 2a02:6b8::/64
set protocols static route6 ::/0 next-hop 2a02:6b8::1

commit
save

Проверка dual-stack:

# IPv4
ping 8.8.8.8

# IPv6
ping6 2001:4860:4860::8888

# Показать оба маршрута
show ip route 0.0.0.0
show ipv6 route ::/0

Расширенная конфигурация

BFD для отслеживания next-hop

Bidirectional Forwarding Detection (BFD) обеспечивает быстрое обнаружение сбоев next-hop:

# Настроить BFD профиль
set protocols bfd peer 192.168.1.1 interval transmit 300
set protocols bfd peer 192.168.1.1 interval receive 300
set protocols bfd peer 192.168.1.1 interval multiplier 3

# Связать статический маршрут с BFD
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1
set protocols static route 0.0.0.0/0 bfd

# Резервный маршрут
set protocols static route 0.0.0.0/0 next-hop 192.168.2.1 distance 10

commit
save

Параметры BFD:

  • transmit: Интервал отправки BFD пакетов (мс)
  • receive: Ожидаемый интервал приема (мс)
  • multiplier: Количество пропущенных пакетов для детекции сбоя

Результат: При недоступности 192.168.1.1 (по BFD) маршрут автоматически переключается на резервный.

Next-hop tracking

Отслеживание доступности next-hop без BFD:

# Статический маршрут с проверкой доступности next-hop
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1
set protocols static route 0.0.0.0/0 disable-route-map

# Резервный маршрут активируется при недоступности основного
set protocols static route 0.0.0.0/0 next-hop 192.168.2.1 distance 10

commit
save

Default route с SNAT

Автоматическая настройка NAT для default route:

# Default route
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1

# Source NAT для исходящего трафика
set nat source rule 100 outbound-interface eth0
set nat source rule 100 source address 10.0.0.0/8
set nat source rule 100 translation address masquerade

commit
save

Применение: Типичная конфигурация для edge роутера с приватной LAN.

Metric для влияния на выбор маршрута

# Два маршрута с разными метриками
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1 distance 1
set protocols static route 0.0.0.0/0 metric 10

set protocols static route 0.0.0.0/0 next-hop 192.168.2.1 distance 1
set protocols static route 0.0.0.0/0 metric 20

commit
save

Примечание: При одинаковом distance маршрут с меньшей метрикой будет предпочтительнее.

Null route как default

Для специальных случаев (blackhole routing, тестирование):

# Отбросить весь трафик, для которого нет маршрута
set protocols static route 0.0.0.0/0 blackhole

commit
save

Применение: Защита от DDoS, тестирование, временная изоляция сети.

Команды проверки и диагностики

Просмотр default route

# IPv4 default route
show ip route 0.0.0.0

# Вывод:
# Routing entry for 0.0.0.0/0
#   Known via "static", distance 1, metric 0, best
#   Last update 00:15:32 ago
#   * 192.168.1.1, via eth0

# IPv6 default route
show ipv6 route ::/0

# Все static routes
show ip route static

# Только default routes
show ip route 0.0.0.0/0

Полная таблица маршрутизации

# Вся таблица маршрутизации IPv4
show ip route

# Вся таблица маршрутизации IPv6
show ipv6 route

# JSON формат для автоматизации
show ip route json

Проверка next-hop доступности

# Ping к gateway
ping 192.168.1.1

# Traceroute через default route
traceroute 8.8.8.8

# ARP запись для gateway (должна быть resolved)
show arp | grep 192.168.1.1

# IPv6 neighbor для gateway
show ipv6 neighbors | grep 2001:db8::1

Мониторинг изменений маршрута

# Real-time мониторинг таблицы маршрутизации
monitor protocol static

# Логи маршрутизации
show log | grep routing

# FRR логи (VyOS использует FRR для маршрутизации)
show log tail 100 | grep staticd

Проверка ECMP балансировки

# Показать статистику интерфейсов
show interfaces ethernet eth0 statistics
show interfaces ethernet eth1 statistics

# Сравнить TX bytes для балансировки
watch -n 1 'show interfaces ethernet eth0 statistics ; show interfaces ethernet eth1 statistics'

# Kernel routing cache (только для диагностики)
ip route get 8.8.8.8

BFD статус

# Показать BFD сессии
show protocols bfd peers

# Детальная информация о BFD peer
show protocols bfd peer 192.168.1.1

# Статистика BFD
show protocols bfd peer 192.168.1.1 counters

VRF маршруты

# Показать маршруты в конкретном VRF
show ip route vrf CUSTOMER1

# Список всех VRF
show vrf

# Ping из VRF
ping 8.8.8.8 vrf CUSTOMER1

Устранение неполадок

1. Default route не применяется

Симптомы: Пакеты не уходят через настроенный default gateway.

Проверка:

# Проверить, существует ли маршрут
show ip route 0.0.0.0

# Проверить конфигурацию
show configuration protocols static

# Проверить FRR статус
show ip protocol

Решение:

# Пересоздать маршрут
delete protocols static route 0.0.0.0/0
commit

set protocols static route 0.0.0.0/0 next-hop 192.168.1.1
commit
save

# Перезапустить FRR (крайняя мера)
restart routing-daemon static

2. Next-hop недоступен

Симптомы: Маршрут в таблице, но трафик не проходит.

Проверка:

# Проверить ARP для next-hop
show arp | grep 192.168.1.1

# Ping к next-hop
ping 192.168.1.1

# Проверить интерфейс
show interfaces ethernet eth0

Решение:

# Проверить физическое подключение
show interfaces ethernet eth0 physical

# Очистить ARP cache
reset arp interface eth0

# Проверить IP-адрес интерфейса в той же подсети с gateway
show interfaces

# Если нужно - исправить IP
set interfaces ethernet eth0 address 192.168.1.10/24
commit

3. DHCP конфликтует со статическим маршрутом

Симптомы: DHCP перезаписывает статический default route.

Проверка:

# Показать все default routes
show ip route 0.0.0.0

# Проверить DHCP конфигурацию
show interfaces ethernet eth0 | grep dhcp

Решение:

# Вариант 1: Отключить DHCP option 3 (gateway)
set interfaces ethernet eth0 dhcp-options no-default-route
commit
save

# Вариант 2: Использовать более низкий distance для static route
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1 distance 1
commit
save

# DHCP маршруты обычно имеют distance > 20

4. Failover не переключается

Симптомы: При сбое основного маршрута резервный не активируется.

Проверка:

# Проверить distance обоих маршрутов
show ip route 0.0.0.0 detail

# Проверить connectivity к next-hop
ping 192.168.1.1
ping 192.168.2.1

# Проверить BFD (если используется)
show protocols bfd peers

Решение:

# Убедиться в разных distance
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1 distance 1
set protocols static route 0.0.0.0/0 next-hop 192.168.2.1 distance 10
commit
save

# Настроить BFD для быстрого детекта
set protocols bfd peer 192.168.1.1 interval transmit 300
set protocols bfd peer 192.168.1.1 interval receive 300
set protocols bfd peer 192.168.1.1 interval multiplier 3

set protocols static route 0.0.0.0/0 next-hop 192.168.1.1 bfd
commit
save

5. ECMP не балансирует трафик

Симптомы: Весь трафик идет через один из маршрутов.

Проверка:

# Проверить оба маршрута в таблице
show ip route 0.0.0.0

# Должно быть два next-hop с одинаковым distance и metric

# Проверить multipath конфигурацию
show configuration system ip multipath

Решение:

# Убедиться, что distance и metric одинаковые
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1
set protocols static route 0.0.0.0/0 next-hop 192.168.1.2

# Включить layer4-hashing
set system ip multipath layer4-hashing

commit
save

# Проверить kernel балансировку
ip route show 0.0.0.0/0
# Должно показать: nexthop via 192.168.1.1 ... nexthop via 192.168.1.2

6. IPv6 default route отсутствует

Симптомы: IPv4 работает, IPv6 connectivity нет.

Проверка:

# Проверить IPv6 маршруты
show ipv6 route ::/0

# Проверить IPv6 на интерфейсе
show interfaces ethernet eth0 | grep inet6

# Проверить RA (если ожидается автоконфигурация)
tcpdump -i eth0 -n icmp6

Решение:

# Вариант 1: Статический IPv6 маршрут
set protocols static route6 ::/0 next-hop 2001:db8::1
commit
save

# Вариант 2: Автоконфигурация через RA
set interfaces ethernet eth0 ipv6 address autoconf
commit
save

# Проверить connectivity
ping6 2001:4860:4860::8888

7. Маршрут в таблице, но трафик не идет

Симптомы: show ip route показывает маршрут, но ping не работает.

Проверка:

# Проверить firewall
show firewall

# Проверить NAT (если edge router)
show nat source rules

# Проверить IP forwarding
sysctl net.ipv4.ip_forward

# Проверить интерфейс status
show interfaces

Решение:

# Убедиться, что IP forwarding включен (должен быть по умолчанию)
# НЕ использовать эту команду (она ОТКЛЮЧИТ forwarding):
# set system ip disable-forwarding

# Проверить, что forwarding активен
sysctl net.ipv4.ip_forward
# Должно быть: net.ipv4.ip_forward = 1

# Настроить NAT для исходящего трафика (если нужен)
set nat source rule 100 outbound-interface eth0
set nat source rule 100 source address 192.168.0.0/16
set nat source rule 100 translation address masquerade

# Разрешить исходящий трафик в firewall
set firewall name LAN_OUT rule 10 action accept
set firewall interface eth1 out name LAN_OUT

commit
save

8. Yandex Cloud connectivity проблемы

Симптомы: VyOS в Yandex Cloud не может достучаться до интернета.

Проверка:

# Проверить IP конфигурацию
show interfaces

# Проверить default route
show ip route 0.0.0.0

# Ping к Yandex Cloud gateway (первый IP подсети)
ping 10.128.0.1

# Проверить Yandex Cloud metadata service
curl http://169.254.169.254/latest/meta-data/

Решение:

# Корректная конфигурация для Yandex Cloud
# Gateway = первый IP в подсети

# Для подсети 10.128.0.0/24:
set interfaces ethernet eth0 address 10.128.0.10/24
set protocols static route 0.0.0.0/0 next-hop 10.128.0.1

# Для подсети 192.168.1.0/24:
set interfaces ethernet eth0 address 192.168.1.10/24
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1

commit
save

# Проверить Security Group в Yandex Cloud Console
# Должен разрешать ICMP, TCP, UDP outbound

Лучшие практики

1. Документирование маршрутов

Всегда добавляйте описание к маршрутам по умолчанию:

set protocols static route 0.0.0.0/0 next-hop 192.168.1.1
set protocols static route 0.0.0.0/0 description 'Primary ISP - Provider A'

set protocols static route 0.0.0.0/0 next-hop 192.168.2.1 distance 10
set protocols static route 0.0.0.0/0 description 'Backup ISP - Provider B'

commit
save

2. Использование distance для приоритизации

Рекомендуемые значения distance:

  • Primary static route: 1-5
  • Backup static route: 10-20
  • DHCP-learned route: обычно 20+ (автоматически)
  • Динамические протоколы: 110 (OSPF), 200 (BGP)
# Основной
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1 distance 1

# Резервный
set protocols static route 0.0.0.0/0 next-hop 192.168.2.1 distance 10

# Аварийный (например, через дорогой LTE)
set protocols static route 0.0.0.0/0 next-hop 192.168.3.1 distance 20

3. ECMP для балансировки

Используйте ECMP только для соединений с равной пропускной способностью:

# Два канала 100 Mbps каждый
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1
set protocols static route 0.0.0.0/0 next-hop 192.168.1.2

set system ip multipath layer4-hashing

commit
save

Не используйте ECMP для каналов с разной пропускной способностью (100 Mbps + 10 Mbps) - это приведет к неэффективному использованию.

4. BFD для критичных маршрутов

Для production используйте BFD для быстрого обнаружения сбоев:

# BFD с агрессивными таймерами для критичных систем
set protocols bfd peer 192.168.1.1 interval transmit 300
set protocols bfd peer 192.168.1.1 interval receive 300
set protocols bfd peer 192.168.1.1 interval multiplier 3

set protocols static route 0.0.0.0/0 next-hop 192.168.1.1 bfd

# Резервный маршрут
set protocols static route 0.0.0.0/0 next-hop 192.168.2.1 distance 10

commit
save

Failover время: 300ms × 3 = 900ms при агрессивных настройках.

5. IPv6 наравне с IPv4

Всегда настраивайте IPv6 default route вместе с IPv4:

# IPv4
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1

# IPv6
set protocols static route6 ::/0 next-hop 2001:db8::1

commit
save

6. NAT для edge роутеров

Связывайте default route с NAT для исходящего трафика:

# Default route
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1

# Source NAT на outbound интерфейсе
set nat source rule 100 outbound-interface eth0
set nat source rule 100 source address 10.0.0.0/8
set nat source rule 100 translation address masquerade

commit
save

7. Мониторинг маршрутов

Регулярно проверяйте состояние маршрутов:

# Скрипт для мониторинга
cat > /config/scripts/check-default-route.sh << 'EOF'
#!/bin/bash

ROUTE=$(ip route show 0.0.0.0/0)

if [ -z "$ROUTE" ]; then
    logger -t DEFAULT_ROUTE "CRITICAL: No default route found"
    # Отправить алерт
    echo "No default route!" | mail -s "VyOS Alert" admin@example.com
else
    logger -t DEFAULT_ROUTE "OK: Default route is present"
fi
EOF

chmod +x /config/scripts/check-default-route.sh

# Запланировать проверку
set system task-scheduler task check-route interval '*/5 * * * *'
set system task-scheduler task check-route executable path '/config/scripts/check-default-route.sh'

commit
save

8. Облачные провайдеры

Yandex Cloud:

  • Gateway = первый IP в подсети
  • Используйте статические маршруты (не полагайтесь на DHCP option 3)
  • Проверяйте Security Groups для outbound connectivity

VK Cloud:

  • Аналогично Yandex Cloud - gateway первый IP
  • Dual-homed конфигурация для redundancy
  • Используйте distance для failover

AWS, Azure, GCP:

  • Обычно используется DHCP для default route
  • Для static маршрутов проверяйте VPC route tables
  • Учитывайте route propagation в облаке

9. Резервное копирование конфигурации

Всегда сохраняйте working config после изменения маршрутов:

# После настройки маршрутов
commit
save

# Создать backup
save /config/backups/config-$(date +%Y%m%d-%H%M).boot

10. Тестирование перед production

Проверяйте маршруты перед внедрением:

# 1. Проверить connectivity
ping 8.8.8.8

# 2. Traceroute
traceroute 8.8.8.8

# 3. DNS resolution
nslookup google.com

# 4. Проверить failover (если настроен)
# Временно отключить primary next-hop и проверить переключение

# 5. Проверить ECMP балансировку
for i in {1..10}; do traceroute -n 8.8.8.$i | head -2; done

Сравнение с другими платформами

Cisco IOS

Cisco IOS:

ip route 0.0.0.0 0.0.0.0 192.168.1.1

VyOS эквивалент:

set protocols static route 0.0.0.0/0 next-hop 192.168.1.1

Juniper JunOS

Juniper JunOS:

set routing-options static route 0.0.0.0/0 next-hop 192.168.1.1

VyOS эквивалент:

set protocols static route 0.0.0.0/0 next-hop 192.168.1.1

MikroTik RouterOS

MikroTik:

/ip route add dst-address=0.0.0.0/0 gateway=192.168.1.1

VyOS эквивалент:

set protocols static route 0.0.0.0/0 next-hop 192.168.1.1

Linux iproute2

Linux:

ip route add default via 192.168.1.1

VyOS эквивалент:

set protocols static route 0.0.0.0/0 next-hop 192.168.1.1

Заключение

Маршрут по умолчанию - критически важный элемент конфигурации VyOS, определяющий путь для всего исходящего трафика без более специфичных маршрутов. Современный VyOS использует синтаксис protocols static route для настройки default route как для IPv4 (0.0.0.0/0), так и для IPv6 (::/0).

Ключевые моменты:

  • Используйте distance для failover между несколькими маршрутами
  • ECMP с layer4-hashing для балансировки между равноценными каналами
  • BFD для быстрого обнаружения сбоев next-hop
  • Всегда документируйте маршруты через description
  • Проверяйте connectivity после изменений

Для облачных окружений (Yandex Cloud, VK Cloud) используйте статические маршруты с gateway равным первому IP в подсети. Для отказоустойчивости настраивайте несколько маршрутов с разными distance, опционально с BFD для быстрого failover.

Правильная настройка default route обеспечивает надежное соединение с внешними сетями и является основой для построения масштабируемой и отказоустойчивой сетевой инфраструктуры на базе VyOS.