В этой статье я хотел поднять не стандартную для меня тему о сетевом маршрутизаторе VyOS. Впервые я познакомился с этим проектом благодаря Нилу Андерсону (Neil Anderson) который составил гайд как у себя дома развернуть мини-лабораторию с NetApp симулятором и VyOS.
Ключевые проекты
VyOS это opensource проект на базе Debian Linux, который родился как форк от проекта Vyatta Core Edition of the Vyatta Routing software. Как и любой роутер VyOS оперирует на третьем уровне OSI и маршрутизирует North-South трафик. VyOS включает в себя следующие ключевые проекты:
- Debian 8, ядро 4.19
- FRRouting (в версии 1.1 и более древних использовался Quagga)
- ISC-DHCP
- Keepalived
- StrongSwan
- OpenVPN
- PowerDNS
- Wireguard
- OpenNHRP
- Accel-ppp
- xL2tpd
- Squid
- mDNS-repeater
- IGMP-Proxy
- iPerf
- более детальный список в Release notes
Поддерживаемые платформы
VyOS можно разворачивать на большинстве популярных платформах в виде виртуальной машины, на голом железе или в облаке, образ занимает около 300 МБ.
Платформы виртуализации
Как виртуальную машину VyOS можно развернуть в окружении:
- KVM
- RHEV
- VirtualBox
- Nutanix AHV
- VMWare ESXi 5.1+
- Citrix XenServer в режиме HVM
- Microsoft Hyper-V for Windows Server
- OpenStack (в планах)
Голое железо
Роутер можно установить на голое железо, кастомные образы (в планах):
- Dell
- SuperMicro
- EdgeCore
Облака
Как виртуальную машину в облаках:
- Amazon EC2 (Amazon Machine image on Amazon Web Services)
- Ravello
- Packet Cloud
- Microsoft Azure
- Google Cloud Platform (в планах)
- Alibaba Cloud (в планах)
Командная строка
Как и с маршрутизаторами Cisco и Juniper в которых традиционно не используют графический интерфейс, так и VyOS управляется из командной строки. Командная строка VyOS очень напоминает синтаксис JunOS:
vyos@vyos# run show ip route forward
default via 203.0.113.1 dev eth1 proto static metric 20 onlink
192.168.56.0/24 dev eth0 proto kernel scope link src 192.168.56.13
203.0.113.1 dev eth1 proto static metric 20
Функционал и возможности
Функционал VyOS достаточно большой и серьёзный несмотря на то, что это Opensource проект:
- VPN: Dynamic Multipoint VPN (DMVPN), GRE, IPSec, IPSec VTI, OpenVPN (server и client) и WireGuard
- Может выступать в роли VPN Remote Access Server используя L2TP или OpenVPN
- Туннели: L2TP, L2TPv3, VXLAN, PPTP, GRE, IPIP, SIT, IPIP, IPIP6, IP6IP6
- Интерфейсы L2/L3: Ethernet Bridge, 802.1Q VLAN, QinQ, Агрегация портов (LACP и статическая)
- API для работы из консоли, Python, и Perl скриптов
- Адресация маршрутизация IPv4 & IPv6:
- BGP, OSPF, OSPFv3, RIP, RIPng протоколов динамической маршрутизации
- Статическая маршрутизация и Policy-Based Routing (PBR)
- QoS для приоритизации трафика
- VyOS может работать как L2TPv3 роутер для Layer 2 связности между сайтами
- Высокая доступность: VRRP, WAN load-balancing, Conntrack-Sync, Clustering
- И естественно стандартный набор: DHCP (Сервер, Клиент и Relay), DNS recursive server, Network Address Translation (source and destination, port-address, one-to-many, many-to-many), IGMP-Proxy, NTP сервер и клиент, LLDP сервер и клиент, mDNS repeater, PPPoE server, proxy server с кэшем и фильтрацией, TFTP сервер
- Фильтрация трафика: Zone-based firewall, stateful firewall
- Политики: Shaping, Rate limiting, Priority-based queues
- Встроенный архив конфигурационных файлов
Пример поддерживаемых схем подключения и использования
Branch
Одна из наиболее часто используемых схем использования VyOS это объединение нескольких отделений компании между собой, соединение с облачными провайдерами или объединение нескольких облачных провайдеров в одну сеть.
SMB Edge
Может служить как SMB маршрутизатор предоставляя стабильный и повышенной доступности к глобальной сети Интернет благодаря. VyOS поддерживает NAT, DHCP и VRRP для повышения доступности вашего дефолтного шлюза.
Boarder Router
VyOS может быть использован как Enterprise Border Router (BGP), один из, если не самый развитый среди динамических протоколов маршрутизации. Для этих целей VyOS может служить как внешним, так и внутренним BGP узлом (BGP-peer) предоставляя высокую стабильность и доступность в вашей сети.
VPN Gateway
VyOS предоставляет доступ по IPSec VPN: IPSec/GRE, IPSec VTI, Dynamic Multipoint VPN (DMVPN) и OpenVPN. Site-To-Site конфигурация позволит вам соединить несколько сайтов напрямую в облако через частую защищённую сеть поверх глобальной сети Интернет, позволяя вашим пользователям и серверам взаимодействовать друг с другом. VyOS может работать как L2TPv3 маршрутизатор создав L2 сеть между сайтами.
VPN RA Server
VyOS может быть использован как удалённый VPN сервер. Для этого вы можете использовать L2TP over IPSec так как он присутствует почти во всех современных ОС. Другой вариант использовать OpenVPN, который также интегрирован в VyOS. Использование файрволла повысит безопасность и гранулярность доступа к вашей сети.
Системные требования
Минимальные требования VyOS к ресурсам:
- CPU: одно или несколько ядер 64-bit x86 (зависит от пропускной способности и используемого функционала). Также поддерживается ClearFog ARM платформа
- Память: 512 MB или больше (зависит от пропускной способности и используемого функционала и главным образом от размера таблиц маршрутизации)
- Сетевые интерфейсы: минимум один, максимум (столько сколько поддерживает платформа, на которой работает VyOS)
- Для достижения максимальной производительности рекомендуется использовать сетевые карты с аппаратным offloading и поддерживающие множественные очереди
Менеджмент и мониторинг
Управления и мониторинг:
- Разворачивание и управление: Secure Shell (SSH), Cloud-Init, python library для удалённого управления
- Управление и траблшутинг: Simple Network Management Protocol (SNMP), Syslog, NetFlow, sFlow
- Автоматизация Ansible, SaltStack
- Планировщик задач, event handling, scripting
- Встроенный архив версий конфигураций
Образы
VyOS можно собрать самому из исходного кода или скачать в виде собранного и оттестированного образа для вашей платформы. Начиная с версии 1.2 скачивание образа перестало быть бесплатным, потому что проект нужно развивать на какие-то деньги. Но для школ, колледжей, университетов, поликлиник и других подобных некоммерческих организаций предоставляется бесплатный доступ. Для контрибьютеров также предоставляется бесплатный доступ к готовым образам, не обязательно быть программистом, даже если вы помогаете с документацией это тоже помощь проекту. Так что получить бесплатный доступ к образам достаточно просто и легко.
Выводы
VyOS это проект, который построен на базе современных программ и утилит для сетевой маршрутизации, которую можно легко дополнить и изменить благодаря тому, что он является полностью 100% OpenSource. Богатый функционал и современные протоколы маршрутизации позволяют его использовать не только в домашних условиях для продвинутых пользователей, а также для больших компаний и огромных сервис провайдеров.
Полезные ресурсы
blog.vyos.io
wiki.vyos.net
Issue tracker
slack.vyos.io
forum.vyos.io
github.com/vyos
twitter.com/vyos_dev
LinkedIn
Facebook
YouTube
VyOS Roadmap
Релизы
Другие статьи на Хабре:
Программная маршрутизация с VyOS
Эмулятор UNetLab — революционный прыжок
Vyatta: Linux-based firewall and router
Интернет на теплоходе: спутниковая тарелка + модемы + балансировщик + Wi-Fi
Ubiquiti EdgeRouter X
Сообщения по ошибкам в тексте прошу направлять в ЛС. Замечания, дополнения и вопросы по статье напротив, прошу в комментарии.
Автор: bbk