Vyatta Linux-дистрибутив для роутеров

1 Фев
2008

Статья напечатана в журнале Системный Администратор

В конце февраля 2007 года компания Vyatta анонсировала вторую версию разрабатываемого ей дистрибутива позволяющего превратить обычный ПК в маршрутизатор. Это решение позиционируется как конкурент продуктам нижнего уровня Cisco и Juniper. Что же такого особенного в Vyatta?

Сначала никакого дистрибутива не было. Одной из первых разработок Vyatta был программный пакет Open Flexible Router (OFR), превращающий обычный ПК в маршрутизатор. Причем отмечалось, что производительность работы и уровень безопасности соответствовал коммерческим продуктам. С самого начала курс взят на открытость, так как по мнению разработчиков, это значительно ускоряет устранение возможных недостатков и способствует быстрому развитию продукта и адаптации для всех возможных условий. Кстати Vyatta это санскритское слово, обозначающее «открытый». Компания видит свой продукт сетевым эквивалентом решений вроде Linux или Firefox, правда который противопоставляется не продуктам от Microsoft, а Cisco Systems.

Особености Vyatta

Проект Vyatta возник не на пустом месте. Основой OFR является eXtensible Open Router Platform (XORP), платформа маршрутизации с открытым кодом, работающая в укрепленном варианте Unix. Его разработкой занимается группа в International Computer Science Institute (ICSI) Беркли под руководством Atanu Ghosh, финансируют проект такие гиганты как Intel и Microsoft, а также National Science Foundation и Vyatta. В настоящее время код XORP содержит 670,000 срок на языке C++, может быть скомпилирован на Linux, OpenBSD, FreeBSD, DragonFlyBSD, NetBSD, Mac OS X и Windows Server 2003 и распространяется под BSD подобной лицензией. Поддерживаются протоколы Border Gateway Protocol (BGP, с некоторыми расширеними под IPv6), Routing Information Protocol (RIP v2 для IPv4 и RIPng для IPv6), Protocol-Independent Multicast Sparse Mode (PIM-SM), Internet Group Management Protocol (OSPFv2 (RFC2328) и OSPFv3 (RFC2740), Multicast Listener Discovery (MLD), OSPF (Open Shortest Path First), IGMP и SNMP. Проект XORP предоставляет готовый LiveCDBSD подобной или GPL лицензией. Но наряду с этим решением предлагается подписка на коммерческие редакции. Компания использует бизнес-модель применяемую Red Hat, то есть производитель планирует предложить платные услуги и поддержку для пользователей маршрутизаторов Vyatta, в то же время само программное обеспечение доступно совершенно бесплатно. дистрибутив, который можно использовать для тестирования. Хотя наверное спешить не стоит, так как Vyatta обладает большими возможностями. Так Vyatta поддерживает протокол Virtual Router Redundancy Protocol (VRRP), что позволяет применять маршрутизатор как резервный, мгновенно берущий на себя обработку в случае сбоя основного. Кроме этого в Vyatta включены разработки более чем 60 различных Open Source проектов и свой код. Распространяется дистрибутив под

Компанию основал в 2005 году Аллан Лайнванд (Allan Leinwand) который работал в Cisco еще в те времена когда штат компании насчитывал около сотни сотрудников. Одним из управляющих Vyatta является Келли Харрелл (Kelly Harrell), бывший вице-президент по маркетингу в компании MontaVista, специализирующейся на решениях со встраиваемыми версиями Linux. Вероятно поэтому одними из первых продуктов Vyatta были сетевые приставки-маршрутизаторы, работающие под управлением Linux и установленные на серверы Dell PowerEdge 850 оснащенные двумя портами Gigabit Ethernet. Последняя версия Vyatta Community Edition 2 представляет собой дистрибутив GNU/Linux на базе Debian, что прибавило ему дополнительной гибкости и возможностей, а также большую поддержку оборудования, в том числе и мультипортовых T1/E1 и T3 карт.

Работа с Vyatta CE2

Для примера настройки соединим сеть с провайдером, то есть к порту eth0 будет подключен Internet, а eth1 будет смотреть в локальную сеть . На сайте проекта можно скачать ISO-образ LiveCD дистрибутива который будет работать без установки на жесткий диск, конфигурационные файлы при этом можно сохранять на флоппи-диск или использовать TFTPVMware. сервер. Но при необходимости его можно установить на жесткий диск, а таже Flash или USB устройство. Также можно скачать готовый образ для виртуальной машины

После загрузки с образа регистрируемся как пользователь root или vyatta, пароль в обоих случаях vyatta. Во втором случае попадаем сразу в оболочку маршрутизатора. Если для входа использован root, дополнительно следует ввести команду “xorpsh”.

# xorpsh

Welcome to Vyatta on vyatta

root@vyatta>

Теперь можно приступать к настройкам. Чтобы просмотреть доступные команды, достаточно ввести знак вопроса “?”. Сейчас нас интересует команда configure, набрав которую и попадаем в заветный режим настройки. Если нужно опять вернуться назад, достаточно набрать exit. Причем если нужно сохранить все внесенные изменения, то вначале следует ввести “commit”. Чтобы выйти без сохранения настроек используйте “exit discard”. Вначале следует ознакомиться с настройками по умолчанию, вводим “show” для перемещения вперед/назад используем клавиши Пробел/b.

В Vyatta (точнее XORP) используется Cisco-подобный командный интерфес к настройкам. Для доступа к редактируемым настройкам необходимо использовать команду edit, установка нового значения производится с помощью set, а удаление — delete. Поддерживается традиционное автодополнение с использованием табуляции, поэтому полностью вводить команду не обязательно. Настраиваем первый сетевой интерфейс.

# edit interfaces ethernet eth0

[edit interfaces/ethernet/eth0]

# set description “WAN”

[edit interfaces/ethernet/eth0]

# set address 192.168.1.58 prefix-length 24

[edit interfaces/ethernet/eth0]

Смотрим.

# show

> description: “WAN”

hw-id: 00:0C:29:9C:B8:75

> address 192.168.1.58 {

> prefix-length: 24

> }

Если все нормально записываем.

# commit

[edit interfaces/ethernet/eth0]

OK

Если теперь снова использовать комманду show, то в выводе уже не будут содержаться значки “>”. Это означает, что это значение уже записано. Обратите внимание на подсказку [edit interfaces/ethernet/eth0], которая помогает не заблудиться в дереве настроек, что бывает весьма полезным при глубокой вложенности. При входе в режим настройки сразу попадаем в корень, то есть подсказка будет выглядеть как [edit]. Перемещаться по дереву можно командой “up” либо для выхода в корень “exit” или “top”. Например:

# up

[edit interfaces/ethernet]

Попробуем удалить описание.

# delete description

Deleting:

description: “WAN”

OK

[edit interfaces ethernet eth0]

Просмотрев настройки с помощью show можно увидеть, что перед строкой description появился знак минус, говорящий о том, что планируется удаление этого параметра. Аналогично настраиваем и остальные интерфейсы.

# set interfaces ethernet eth1 address 10.10.10.10 prefix-length 24

# set interfaces loopback lo address 10.10.10.10 prefix-length 32

# commit

Просмотреть настройки интерфейсов, можно введя “show interfaces”.

Просмотр настроек интерфейсов

Далее необходимо указать имя узла и домена к которому он принадлежит.

# set system host-name router

[edit]

# set system domain-name domain.com

[edit]

root@vyatta# commit

OK

root@router#

Об успехе будет свидетельствовать и изменение имени системы в приглашении командной строки. И не забываем о шлюзе по умолчанию.

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

Задаем DNS сервер.

# set system name-server 192.168.1.1

В состав Vyatta входит сервер SSH, включив его в дальнейшем все настройки можно производить удаленно.

# set service ssh

Нажав табуляцию можно просмотреть список доступных сервисов.

# set service

Possible completions:

<[Enter]> Execute this command

dhcp dhcp settings

dhcp-server DHCP configuration

http Enable/disable HTTP protocol

nat NAT configuration

ssh Enable/disable SSH protocol

telnet Enable/disable telnet protocol

{ Enter text on multiple lines

Как видите есть еще веб-сервер, telnet и dhcp.

Включение NAT и создание правил firewall

Включим NAT и разрешим исходящий трафик из сети подключенной к eth1.

# create service nat rule 1

# edit service nat rule 1

# set type source

# set translation-type masquerade

# set outbound-interface eth0

# set protocols all

# set source network 10.10.10.0/24

# set destination network 0.0.0.0/0

# top

Если во внутренней сети находится веб-сервер разрешаем к нему доступ из вне.

# create service nat rule 2

# edit service nat rule 2

# set type destination

# set translation-type static

# set inbound-interface eth0

# set protocols tcp

# set source network 0.0.0.0/0

# set destination address 192.168.1.58

# set destination port-name http

# set inside-address address 10.10.10.30

# top

Чтобы просмотреть настройки, используем команду.

# show service nat

И не забываем подтверждать изменения командой commit. Если при конфигрурировании допущены ошибки, commitне сможет сохранить изменения, поэтому лучше сохранять изменения после каждой завершенной серии комманд, чтобы потом долго не разбираться с проблемой.

Настройка фильтрации пакетов.

Для примера разрешим доступ к сети с адреса 170.20.0.45.

# set firewall name FW-1 rule 1 action accept

# set firewall name FW-1 rule 1 source address 170.20.0.45

И привязываем к интерфейсу.

# set interfaces ethernet eth0 firewall in name FW-1

# commit

OK

Смотрим правило.

# show firewall name FW-1

rule 1 {

action: accept

source {

address: 170.20.0.45

}

}

Если требуется уточнить протокол и порт, добавляем следующие конструкции.

# set firewall name FW-1 rule 1 protocol tcp

# set firewall name FW-1 rule 1 destination port-name http

Веб-интерфейс

В дополнение к настройке с помощью командной строки Vyatta имеет и веб-интерфейс, чтобы его активировать достаточно ввести:

# set service http

После этого в браузере набираем IP-адрес роутера, принимаем сертификат и регистрируемся как пользователь vyatta (rootaConfigure.

Веб-интерфейс Vyatta

Правда выигрывая в наглядности, проигрываем в удобстве, так как здесь нет никаких подсказок и автодополнения, поэтому все параметры придется помнить наизусть. Для сохранения изменений необходимо нажать кнопку “Commit All Changes” врасположенную в верху меню. Во вкладках Operations и Tools можно найти некоторые утилиты с помощью которых можно проверить доступность узлов, установить дату, смонтировать дискету, просмотреть статистику сервисов ипрочее. система не пустит). Используя веб-интерфейс можно просмотреть системную информацию, произвести большую часть настроек доступных в консоли. Все они доступны во вкладке

Сохранение настроек и установка на диск

При работе в LiveCD сохранить конфигурацию на дискету очень просто, если при загрузке вставить дискету дисковод она будет смонтирована автоматически и с нее будет считана конфигурация. Для сохранения настроек вводим команду:

# save /mnt/floppy/config/config.boot

Если диск вставлен позже, можно смонтировать его обычным образом с помощью mount или использовать команду “init-floppy”.

Но использовать LiveCD вариант в работе не удобно, в рабочей системе лучше его установить на жесткий диск. Для установки потребуется диск размером всего 512 Мб и 10 Мб для сохранения настроек. Далее регистрируемся как root и запускаем установочный скрипт:

# install-system

Далее будет произведена проверка подключенных устройств, и предложен вариант создания разделов.

Partition (Auto/Parted/Skip) [Auto]:

В самом простом случае достаточно выбрать вариант, предложенный по умолчанию. По окончании будет установлен загрузчик GRUB. Чтобы вручную сохранить настройки в этом варианте достаточно ввести команду save без аргументов. Конфигурационный файл будет записан в /opt/vyatta/etc/config/config.boot.

В статье расмотрен самый простой случай настройки маршрутизатора, достаточный для понимания самого принципа работы в Vyatta. Следует отметить хорошую документацию проекта, в которой можно найти как описание основных параметров, так и некоторые примеры конфигурирования Vyatta.

1 Комментарий к Vyatta Linux-дистрибутив для роутеров

Аватар

Vyatta Version 6.1 | Gustavo Pimentel's GNU/Linux Blog

Август 25th, 2010 | 15:39

[…] 4.0: Linux.com 3.0: Linuxoid (en […]

Комментировать

Наверх