Vyatta — сетевая операционная система, основанная на Debian GNU/Linux. Работает на оборудовании x86 и x64 и позволяет использовать обычный персональный компьютер или сервер в качестве маршрутизатора, межсетевого экрана или VPN-концентратора. Vyatta также может работать в виртуальной машине, предоставляя традиционные сетевые сервисы для виртуальной инфраструктуры (официально поддерживаются VMware ESX Server и Citrix XenServer, теоретически может работать в любом гипервизоре).
Разработчиком является компания Vyatta Inc., расположенная в городе Белмонт, Калифорния. Она позиционирует Vyatta как конкурента продуктам Cisco уровня ISR 1800 — VXR 7200.
Vyatta Inc. также предоставляет услуги по технической поддержке своих продуктов, консультации по их настройке и продаёт аппаратное обеспечение с предустановленной Vyatta.
По заявлению разработчиков, название продукта происходит от санскритского слова «открытый».
В 2012 г. компании Vyatta Inc. была поглощена другой американской компанией Brocade Communications Systems
Соответственно система Vyatta послужила основой для исключительно коммерческого продукта Brocade Vyatta Network OS
http://www.brocade.com/en/products-services/software-networking/network-functions-virtualization/vyatta-network-os.html
Производитель сетевого оборудования компания Ubiquiti использует Vyatta (доработанную в плане веб-интерфейса администратора и названную EdgeOS) в своих маршрутизаторах серии EdgeRouter.
В 2017 г. Brocade продала Vyatta Software Technology компании AT&T.
В 2021 г. компания Ciena объявила о приобретении у AT&T активов и разработок Vyatta.
Ключевые возможности
- Статическая и динамическая маршрутизация для IPv4 и IPv6 (RIP, OSPF, BGP, RIPng — используется пакет quagga);
- Межсетевое экранирование для IPv4 и IPv6, включая фильтрацию p2p-трафика;
- Трансляция сетевых адресов;
- DHCP-сервер для IPv4 и IPv6;
- Система предотвращения вторжений;
- Балансировка нагрузки (interface bonding) и резервирование канала;
- VLAN (в классическом виде адаптеров с именами вида eth0.20)
- pseudo-Ethernet (то есть второй виртуальный сетевой интерфейс на том же разъеме, использующий свой собственный MAC-адрес)
- Поддержка программного — и, на соответствующем оборудовании, аппаратного bridge/switch
- Резервирование маршрутизаторов с синхронизацией таблицы состояний соединений;
- Виртуальные частные сети (IPsec, L2TP/IPsec, PPTP, OpenVPN);
- Учёт трафика (Netflow и sFlow);
- Веб-прокси и фильтрация URL.
Версии продукта
В настоящее время существуют две версии: Vyatta Core, содержащая только открытые компоненты и распространяющаяся бесплатно, и Vyatta Subscription/Vyatta Plus, содержащая дополнительные (в том числе проприетарные) компоненты и доступная только платным подписчикам.
Среди дополнительных возможностей Vyatta Subscription:
- Синхронизация настроек между маршрутизаторами;
- REST API для удаленного управления;
- Поддержка интерфейсных карт PDH (E1, T1/T3) и V.35;
- Коммерческий расширенный набор правил для фильтрации URL и IPS.
До версии 6.0 Core и Subscription были независимыми периодически синхронизируемыми ветками кода, после этой версии они были объединены, и Subscription представляет собой строгое надмножество Core.
Vyatta Core доступна для бесплатной загрузки с сайте разработчиков в виде LiveCD (с возможностью установки на жесткий диск), LiveCD для виртуальных машин (содержит ядро для Xen), а также готовых образов виртуальных машин VMware и XenServer и облачного сервиса Riverbed.
Интерфейс

Настройка и управление системой производятся через единый интерфейс командной строки, напоминающий интерфейс Juniper JUNOS, также сходный с командной строкой оборудования Cisco и D-Link. Также доступен веб-интерфейс (начиная с релиза 6.3 доступен только в платной редакции), который по умолчанию отключён. Веб-интерфейс строится вокруг понятия «дерево настроек».
Интерфейс командной строки поддерживает автодополнение команд по нажатию клавиши Tab и вывод справки по нажатию клавиши «?».
Интерфейс имеет два режима: режим операций (для просмотра параметров и обслуживания системы) и режим настроек. Переход в режим настроек осуществляется командой configure.
Все настройки хранятся в одном файле и имеют иерархическую структуру. Уровни вложенности отмечаются фигурными скобками. Пример:
policy {
prefix-list RFC1918 {
rule 10 {
action permit
le 32
prefix 10.0.0.0/8
}
rule 15 {
action permit
le 32
prefix 172.16.0.0/12
}
rule 20 {
action permit
le 32
prefix 192.168.0.0/16
}
}
}
Команды для изменения настроек включают в себя название операции (например set или delete), путь к нужному узлу конфигурации и значение опции. Например, указать подсеть для последнего правила приведенного выше списка можно командой:
set policy prefix-list RFC1918 rule 20 prefix 192.168.0.0/16
Также можно перейти на нужный уровень вложенности командой edit (например, «edit policy prefix-list RFC1918») и использовать относительные пути («set rule 20 prefix 192.168.0.0/16»). В этом режиме можно переименовывать или копировать узлы настроек с помощью команд rename и copy (например, «rename rule 20 to rule 30»).
Настройки не применяются сразу после ввода команд (в отличие от, например, Cisco IOS). Чтобы они вошли в силу, нужно выполнить команду commit. Это позволяет проверить внесённые изменения и уменьшить вероятность ошибки. Отказаться от внесённых изменений можно командой discard.
Полезные возможности
- даже после команды commit настройки, хотя и вступают в силу, не сохраняются и теряются при перезагрузке. Для сохранения настроек нужно выполнить команду save.
- есть команда confirm-commit <число минут>. Она применяет измененные настройки, не сохраняя их, и далее требует, чтобы в течение указанного временного интервала была выполнена команда confirm. Если этого не сделать, то ОС перезагружается, теряя изменения настроек. Это решает частую у неопытных и спешащих администраторов проблему «отрезал себя новыми настройками от устройства».
- все настройки находятся в одном файле, и ведется история изменений этого файла с комментариями, похожая на историю изменений в SVN или git.
- доступны все возможности Debian соответствующей версии (кроме разве что перестроения ядра, да и это ограничение скорее принадлежит Ubiquiti EdgeOS, нежели самой Vyatta). Непосредственно в командной строке роутера можно писать как команды Vyatta, так и команды самого по себе Linux. Для получения полных прав root нужно (по крайней мере в EdgeOS) исполнить команду «sudo -i».
- возможна установка любых пакетов (подходящих по версии Debian и по типу процессора) из репозиториев Debian.
- возможно даже построение пакетов из исходников (если нужного бинарного пакета под, например, mips не нашлось) непосредственно на роутере.
- в систему входит Python, что позволяет разработку достаточно сложных скриптов отработки реакции на сетевые события.
Ограничения
- Поскольку Vyatta хранит настройки не в классическом каталоге /etc, а в своем формате в каталоге /config (возможно, что /etc строится автоматически на основе /config), то все изменения в системе, сделанные на уровне «голого» Debian Linux, не сохраняются при обновлениях Vyatta на устройстве.
- В частности, это касается дополнительно установленных пакетов Debian и их настроек, а также паролей пользователей в том случае, если они были заданы средствами Linux. Для задания паролей необходимо пользоваться средствами Vyatta.
