Система ARMA Стена поддерживает использование VRF (Virtual Routing and Forwarding), что позволяет создавать изолированные домены маршрутизации в пределах одного устройства. Одним из вариантов использования является решение задачи мультиарендности (multi-tenancy), когда требуется обеспечить изоляцию трафика между различными клиентами или отделами внутри одной организации. Каждый VRF-домен имеет собственную таблицу маршрутов, собственный набор интерфейсов и собственный шлюз по умолчанию.
Для создания нового VRF-экземпляра необходимо ввести следующие команды:
set vrf name <vrf_name> table <100-65535>
где:
<vrf_name> – имя VRF-экземпляра. Имя экземпляра VRF должно начинаться с буквы латинского алфавита, содержать не более 15 символов, не совпадать с именами стандартных сетевых интерфейсов (например, «eth0», «lo», «wlan1» и т.п.) и может включать только латинские буквы, цифры и символ подчёркивания «_»;
<100-65535> – идентификатор таблицы маршрутизации. Возможно указание значения в диапазоне от «100» до «65535».
Примечание
Идентификатор таблицы маршрутов не может быть изменён после создания. Для изменения необходимо удалить и заново создать VRF-экземпляр.
По умолчанию сетевые сервисы (например, SSH, SNMP и др.), запущенные в контексте основной VRF, могут принимать соединения только через интерфейсы, принадлежащие этой же VRF. Это ограничение связано с тем, что непривязанные сокеты по умолчанию не соответствуют пакетам, приходящим через интерфейсы, принадлежащие другим VRF.
Для изменения этого поведения и обеспечения возможности приёма трафика из всех VRF-доменов используется следующая команда:
set vrf bind-to-all
Включение данной опции позволяет TCP- и UDP-сервисам, работающим в контексте основной VRF (т.е. не привязанные ни к одному устройству VRF), работать во всех VRF-доменах.
Демон Zebra в FRRouting (FRR) поддерживает использование префиксных списков (prefix-list) и маршрутных политик (route-map) для фильтрации маршрутов, полученных от других компонентов FRR. Эти механизмы позволяют точно контролировать, какие маршруты будут установлены в ядре операционной системы.
Для применения маршрутной политики к маршрутам определённого протокола, необходимо использовать следующую команду в конфигурационном режиме:
set vrf name <vrf_name> ip|ipv6 protocol <protocol> route-map <route-map>
где:
<protocol> – протокол, маршруты которого будут фильтроваться. Поддерживаются следующие значения: «any», «babel», «bgp», «connected», «eigrp», «isis», «kernel», «ospf», «rip», «static», «table».
<route-map> – имя применяемой маршрутной политики.
Если указано значение «any», маршрутная политика будет применена ко всем протоколам, отправляющим маршруты в Zebra.
Отслеживание следующего прыжка (Nexthop Tracking)
По умолчанию отслеживание следующего прыжка (Nexthop Tracking) разрешает адреса через маршрут по умолчанию. Эта функция включена по умолчанию в типовой конфигурации FRR, используемой в системе ARMA Стена. Её возможно отключить, если требуется, например, запретить BGP устанавливать соседство через маршрут по умолчанию.
Команда отключения разрешения IPv4|IPv6-прыжков через маршрут по умолчанию:
set vrf name <vrf_name> ip|ipv6 nht no-resolve-via-default
Настройка применяется индивидуально для каждого VRF.
Конфигурация динамических протоколов в контексте VRF выполняется аналогично стандартной. Единственное различие состоит в том, что для каждого применяемого протокола маршрутизации необходимо указывать префикс с соответствующей командой «vrf name <vrf_name>»:
set vrf name <vrf_name> protocols bgp ...
set vrf name <vrf_name> protocols isis ...
set vrf name <vrf_name> protocols ospf ...
set vrf name <vrf_name> protocols ospfv3 ...
set vrf name <vrf_name> protocols static ...
Для обеспечения надлежащей функциональности VRF необходимо не только их первоначальная настройка, но и регулярное операционное обслуживание. В данном разделе представлены ключевые команды эксплуатационного режима, предназначенные для мониторинга и диагностики функционирования VRF.
#Присвоение IP-адресов и ассоциация интерфейсов с VRF:
set interfaces ethernet eth0 address 172.16.80.1/24
set interfaces ethernet eth1 address 192.168.1.1/24
set interfaces ethernet eth1 vrf vrf1
set interfaces ethernet eth2 address 192.168.2.1/24
set interfaces ethernet eth2 vrf vrf2
#Обеспечение выхода трафика во внешнюю сеть через трансляцию адресов:
set nat source rule 10 outbound-interface name eth0
set nat source rule 10 translation address masquerade
#Добавление локального маршрута в основную таблицу маршрутизации для сети vrf1:
set protocols static route 192.168.1.0/24 interface eth1 vrf vrf1
#Настройка маршрута по умолчанию для vrf1 через шлюз в основном VRF:
set vrf name vrf1 protocols static route 0.0.0.0/0 next-hop 172.16.80.1 vrf default
#Каждому VRF назначается уникальный номер таблицы маршрутизации:
set vrf name vrf1 table 200
set vrf name vrf2 table 300
#Применить и сохранить конфигурацию:
commit
save
Данная конфигурация реализует сегментацию сетевого трафика с использованием VRF. Обеспечивается полная изоляция между двумя внутренними сегментами («vrf1» и «vrf2») и предоставление доступа в интернет только для компьютера «Client1», подключённого к сети «192.168.1.0/24».
Вывести информацию о текущем состоянии VRF:
admin@ngfwos# run show vrf
Name State MAC address Flags Interfaces
------ ------- ----------------- ------------------------ ---------------
vrf1 up aa:9c:df:35:8a:5e noarp,master,up,lower_up eth1,pim6reg200
vrf2 up b2:6b:d5:c4:d2:34 noarp,master,up,lower_up eth2,pim6reg300
Настройка сетевых клиентов:
Для компьютеров «Client1» и «Client2», функционирующих под управлением ОС семейства Windows, необходимо произвести конфигурацию сетевых адаптеров (см. Рисунок – Настройка IP-адреса).
По завершении процедуры настройки IP-адреса следует проверить доступность интернет-соединения на компьютере «Client1» посредством команды ICMP-запроса к DNS-серверу «8.8.8.8» (см. Рисунок – Проверка доступа к сети Интернет).