27. Виртуальная маршрутизация (VRF)¶
VRF (Virtual Routing and Forwarding) – технология маршрутизации, позволяющая создавать виртуальные маршрутизаторы и сети внутри одного физического устройства. Данная технология используется для изоляции трафика между различными сетевыми доменами, обеспечивая безопасность и эффективность работы сети. Таким образом, с помощью VRF возможно разделение сети на несколько виртуальных, каждая из которых имеет свои собственные виртуальные таблицы маршрутизации (VRF-таблицы) и политики безопасности.
В ПАК “Фортикс” предусмотрено использование нескольких виртуальных таблиц маршрутизации, для каждой из которых задаётся имя, используемое в пределах одного устройства. По умолчанию в системе определена одна виртуальная таблица маршрутизации с зарезервированным именем default, являющаяся основной. Для создания дополнительных таблиц маршрутизации указывается имя VRF-таблицы и сетевые интерфейсы, соответствующие ей.
Для создания виртуальной таблицы маршрутизации применяется команда:
# set vrf <vrf-name>
где <vrf-name> – слово.
Пример применения команд для создания виртуальной таблицы маршрутизации:
# set vrf VRF1
# commit
# exit
> show vrf
vrf VRF1 id 14 table 32768 (configured)
Для удаления виртуальной таблицы маршрутизации применяется команда:
# del vrf <vrf-name>
где <vrf-name> – имя существующей виртуальной таблицы маршрутизации.
Настройка виртуальных таблиц маршрутизации осуществляется на следующем уровне конфигурации:
[edit vrf <vrf-name>]
где <vrf-name> – имя существующей виртуальной таблицы маршрутизации.
Для определения интерфейсов, соответствующих указанной виртуальной таблице маршрутизации, применяется команда:
[edit vrf <vrf-name>]
# set interface <interface-name>
где
<vrf-name>– имя существующей виртуальной таблицы маршрутизации;<interface-name>– имя существующего интерфейса.
Пример применения команды для определения интерфейсов, соответствующих виртуальной таблице маршрутизации:
[edit vrf VRF1]
# set interface en1
# commit
При создании виртуальной таблицы маршрутизации автоматически создаётся одноименный VRF-интерфейс. Для просмотра интерфейсов, соответствующих VRF-таблице, применяется команда:
> show interface vrf <vfr-interface-name>
где <vfr-interface-name> – имя существующего VRF-интерфейса виртуальной таблицы маршрутизации.
Пример применения команды для просмотра VRF-интерфейсов:
> show interface vrf VRF1
en1 [ether]: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master VRF1 state DOWN group default qlen 1000
link/ether 08:00:27:35:6d:a7 brd ff:ff:ff:ff:ff:ff
При создании VRF-таблицы автоматически создаётся маршрут по умолчанию (kernel-маршрут) с максимально высокой метрикой (недостижимый маршрут):
K>* 0.0.0.0/0 [255/8192] unreachable (ICMP unreachable)
Данная настройка гарантирует возможность переопределения недостижимого маршрута протоколами маршрутизации.
В ПАК “Фортикс” возможно применение VRF-таблиц с некоторыми службами и протоколами маршрутизации. Для этого на уровне конфигурации таблиц маршрутизации указываются настройки службы или протокола.
Для использования служб в VRF-домене применяется команда:
[edit vrf <vrf-name>]
# set service <service-name> enable
где
<vrf-name>– имя существующей виртуальной таблицы маршрутизации;<service-name>– имя службы ПАК “Фортикс”.
Для использования протоколов маршрутизации в VRF-домене применяется команда:
[edit vrf <vrf-name>]
# set router <router-protocol> ipv4|ipv6
где
<vrf-name>– имя существующей виртуальной таблицы маршрутизации;<router-protocol>– протокол маршрутизации;ipv4|ipv6– уровень конфигурации IPv4/IPv6.
Для просмотра информации о протоколе маршрутизации, работающем в VRF-домене, применяются стандартные команды данного протокола для просмотра информации. При этом после слова show в команде указывается имя таблицы маршрутизации (vrf <vrf-name>).
Пример применения команд для просмотра информации о работе протокола маршрутизации OSPFv2 в виртуальном домене VRF1:
> show vrf VRF1 router ospf ipv4
VRF Name: VRF1
OSPF Routing Process, Router ID: 1.1.1.1
Supports only single TOS (TOS0) routes
Пример применения команд для просмотра информации об IPv4-таблице маршрутизации VRF1:
> show vrf VRF1 router unicast ipv4
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, T - Table, v - VNC,
V - VNC-Direct, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
VRF VRF1:
K>* 0.0.0.0/0 [255/8192] unreachable (ICMP unreachable), 00:33:45
Предупреждение
При одновременном использовании основной таблицы маршрутизации и виртуальной таблицы маршрутизации полная изоляция сетевых интерфейсов на устройстве невозможна: если интерфейс “A” принадлежит основной таблице маршрутизации, а интерфейс “B” размещён в виртуальной таблице маршрутизации, то устройства из сети интерфейса “B” будут иметь доступ к интерфейсу “A”, но устройства из сети интерфейса “A” не будут иметь доступ к интерфейсу “B”. Для обеспечения полной изоляции сетевых интерфейсов внутри одного хоста рекомендуется применять отдельные виртуальные таблицы маршрутизации VRF, избегая при этом использования основной таблицы маршрутизации. Такой подход гарантирует изоляцию каждого интерфейса.