CrossBow. Сетевые технологии OpenSolaris::Журнал СА 8.2009
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Книжная полка  

Защиты много не бывает

Среди книжных новинок издательства «БХВ» есть несколько изданий, посвященных методам социальной инженерии

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6414
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 7118
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4396
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3086
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3882
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3897
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6386
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3234
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3530
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7364
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10726
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12445
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14097
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9192
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7142
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5447
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4683
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3496
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3213
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3449
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3090
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 CrossBow. Сетевые технологии OpenSolaris

Архив номеров / 2009 / Выпуск №8 (81) / CrossBow. Сетевые технологии OpenSolaris

Рубрика: Администрирование /  Продукты и решения

СЕРГЕЙ ЯРЕМЧУК, наш постоянный автор

CrossBow
Сетевые технологии OpenSolaris

В OpenSolaris 2009.06 анонсирована поддержка технологии виртуальных сетей CrossBow, с возможностями которой и познакомимся сегодня.

Мощности современных систем уже давно достигли такого уровня, что на одном компьютере могут без проблем работать несколько систем. Поэтому не удивительно, что темой номер один в ИТ-публикациях последних лет является виртуализация. Часто под термином «виртуализация» подразумевают виртуальные системы, реже говорят о приложениях. С реализацией нового сетевого стека в Solaris 10, а затем и в OpenSolaris 2009.06 в этих системах стала доступна технология сетевой виртуализации (Network Virtualization), позволяющей скомбинировать все сетевые ресурсы системы в единую виртуальную сеть, имеющую один центр управления. Такой подход упрощает администрирование, администратор получает вместо разрозненной целостную структуру, которая легко масштабируется, настройки проще переносятся в другую систему, с минимумом переделок и без потери функциональности. Виртуальные сети могут быть внешними (например, VLAN) или внутренними, по сути являющимися сетью в отдельной системе (network in a box). Проект CrossBow [1] позволяет реализовать в одном компьютере, даже имеющем одну сетевую карту, целые внутренние виртуальные сети с коммутаторами.

Возможности CrossBow

Возможности CrossBow заложены в трех основных функциях:

VNIC (Virtualized Network Interface) – виртуализированные сетевые интерфейсы, которые настраиваются поверх физических, предоставляя аналогичные возможности;

IP instances – выделенные копии TCP/IP-стека для выполнения задачи в отдельной зоне, с возможностью использования своего IP-адреса, таблицы маршрутизации, управления QoS, ограничения скорости передачи между зонами и контроля;

Bandwidth management and flow control – управление пропускной способностью и потоком для каждого VNIC-интерфейса.

VNIC-устройство создается при помощи специального драйвера псевдоустройства Nemo/GLDv3 [2], работающего на так называемом МАС-уровне, который находится между драйвером сетевого адаптера и стеком. Все клиенты, обращающиеся через МАС-уровень, получают доступ к нужному устройству, при этом каждому назначаются аппаратные ресурсы, полоса пропускания, приоритет, потоки и так далее. Один физический интерфейс может иметь несколько VNIC, каждый VNIC при создании получает собственный MAC‑адрес. Для системных утилит VNIC выглядят, как реальные сетевые карты, и могут быть назначены зонам и гостевым системам. Всего можно создать 899 VNIC (1-899), номера 900‑999 зарезервированы для подсистем Xen.

Максимальное количество IP Instances соответствует возможному количеству неглобальных зон – 8191. Обмен данными между VNIC проходит на системном уровне, не затрагивая физический интерфейс.

Кроме виртуальных адаптеров CrossBow позволяет создавать VLAN со всеми возможностями для его управления и виртуальный коммутатор Etherstub, при помощи которого можно связывать различные VNIC в сеть. По сути Etherstub представляет собой VNIC, которому нельзя присвоить IP-адрес.

CrossBow может быть использован для настройки системы и сетевых сервисов, изоляции зон Solaris и повышения безопасности. Например, атака на один из сервисов, работающих на виртуальном интерфейсе, будет иметь влияние только на атакуемый сервис, на остальные зоны она не распространится.

Рисунок 1. Список параметров каналов

Рисунок 1. Список параметров каналов

Создание виртуальной сети

Управление Crossbow производится при помощи утилиты dladm, для настройки полосы пропускания, приоритета трафика используется flowadm. Параметры dladm просты и понятны. Каждая состоит из двух частей: в первой заложено действие, во второй – объект, на который оно направлено. Так, например, для просмотра информации используется группа команд show-*, создания create-*, удаления – delete-*. Поэтому освоиться в них очень легко.

Для начала получим список datalink идентификаторов сетевых устройств:

# dladm show-link

LINK CLASS MTU STATE OVER

e1000g0 phys 1500 up --

pcn0 phys 1500 unknown --

Поле CLASS покажет класс устройства, который может принимать одно из четырех значений – phys, aggr, vlan и vnic. В данном случае это физическое устройство.

Другие команды, начинающиеся на show, покажут: show-phys (физические устройства), show-ether (Ethernet-устройства), show-wifi, show-vlan и так далее. В последних версиях OpenSolaris в dladm появилась подкоманда rename-link, при помощи которой можно изменить data-link и имя устройства на более удобное или единое, чтобы затем использовать в скриптах:

# dladm rename-link e1000g0 eth0

Виртуальный интерфейс создается при помощи подкоманды create-vnic в качестве параметра, принимающего имя интерфейса и присваиваемого номера vnic. В качестве имени интерфейса может выступать название физического устройства или виртуального коммутатора. Для примера создадим по одному VNIC для каждого физического устройства:

# dladm create-vnic -l e1000g0 vnic1

# dladm create-vnic -l pcn0 vnic2

Для создания виртуального коммутатора достаточно указать его имя:

# dladm create-etherstub etherstub0

# dladm create-etherstub etherstub1

Теперь создадим VNIC поверх виртуального коммутатора:

# dladm create-vnic –l etherstub0 vnic3

# dladm create-vnic –l etherstub0 vnic4

Для etherstub1 по аналогии. По умолчанию MAC-адрес генерируется автоматически, но при необходимости его можно указать вручную при помощи параметра -m, принадлежность к VLAN (-v) и ряд других параметров. Смотрим, что получилось:

# dladm show-link

LINK CLASS MTU STATE OVER

e1000g0 phys 1500 up --

pcn0 phys 1500 unknown --

vnic1 vnic 1500 up e1000g0

vnic2 vnic 1500 up pcn0

etherstub0 etherstub 9000 unknown --

vnic3 vnic 9000 up etherstub0

vnic4 vnic 9000 up etherstub0

# dladm show-vnic

LINK OVER SPEED MACADDRESS MACADDRTYPE VID

vnic0 e1000g0 1000 2:8:20:e5:e4:af random 0

vnic1 etherstub0 0 2:8:20:b7:c8:41 random 0

vnic2 etherstub0 0 2:8:20:98:32:e6 random 0

vnic3 etherstub1 0 2:8:20:83:d6:32 random 0

vnic4 etherstub1 0 2:8:20:1c:d4:9e random 0

vnic6 pcn0 0 2:8:20:b2:dd:fa random 0

vnic7 etherstub0 0 2:8:20:87:d:45 random 0

Список параметров и их значения, установленные для каналов, можно получить при помощи команды dladm show-linkprop. Выведем для одного из них:

# dladm show-linkprop vnic0

LINK PROPERTY PERM VALUE DEFAULT POSSIBLE

vnic0 autopush -w -- -- --

vnic0 zone rw -- -- --

vnic0 state r- unknown up up,down

vnic0 mtu r- 1500 1500 --

vnic0 maxbw rw -- -- --

vnic0 cpus rw -- -- --

vnic0 priority rw high high low,medium,high

vnic0 tagmode rw vlanonly vlanonly normal,vlanonly

Столбец PROPERTY показывает свойства адаптера, установленное значение выведено в VALUE, в POSSIBLE даны возможные варианты. Чтобы указать свое значение следует использовать параметр -p в вызове команды dladm create-vnic. Например, maxbw позволяет установить максимальную скорость интерфейса, cpus – использование CPU. Поэтому полная команда на создание VNIC может выглядеть так:

# dladm create-vnic –l etherstub0 -p maxbw=50,priority=high,cpus=2,3,4 vnic5

# dladm show-linkprop vnic5



vnic5 maxbw rw 50 -- --

vnic5 cpus rw 2,3,4 -- --

Интерфейсы созданы, но в выводе ifconfig они пока отсутствуют. Подключаем и присваиваем IP-адрес. Эта процедура ничем не отличается от работы с физическим устройством. Например, для интерфейса vnic1:

# ifconfig vnic1 plumb

# ifconfig vnic1 dhcp start

# ifconfig vnic1

Управление потоком

В свойствах VNIC можно задать общие установки, характерные для обычной сетевой карты, например, указать определенную скорость интерфейса. Управление потоком дает возможность устанавливать пропускную способность и ресурсы для конкретного сервиса, протокола, номера порта или виртуальной машины. Установки управления потоком осуществляются при помощи утилиты flowadm. С ее помощью можно указать ряд атрибутов и параметров, все требования и параметры расписаны в man flowadm. Так, в правило можно добавить следующие атрибуты: локальный (local_ip) и удаленный адрес (remote_ip), локальный (local_port) и удаленный порт (remote_port), версию IP-протокола (ip_version) и ряд других. Создадим сопоставленный vnic1 поток, описывающий транспорт TCP, локальный порт 80 и присвоим ему ссылку http-1:

# flowadm add-flow -l vnic1 -a transport=TCP,local_port=80 http-1

Второе правило будет содержать атрибуты версии IP-протокола и IP-адреса:

# flowadm add-flow -l vnic2 -a ip_version=4,local_ip=10.4.0.16 v4flow

Кроме атрибутов, поток может принимать и параметры, некоторые из установок (пропускная способность, приоритет, привязка к CPU и т.д.) совпадают с create-vnic:

# flowadm set-flowprop -p maxbw=30,priority=high,cpus=2 http-1

Проверяем:

# flowadm show-flowprop http-1

FLOW PROPERTY VALUE DEFAULT POSSIBLE

http-1 maxbw 30 -- 30

http-1 priority high -- high

Теперь осталось подключить интерфейс к одной из зон Solaris (подробнее [3]):

# zonecfg -z zone1

zone1: No such zone configured

Use 'create' to begin configuring a new zone.

zonecfg:zone1> create

// Эксклюзивный IP

zonecfg:zone1> set ip-type=exclusive

// Добавляем сетевой интерфейс, подключим к vnic1

zonecfg:zone1> add net

zonecfg:zone1:net> set physical=vnic1

zonecfg:zone1:net> info

net:

address not specified

physical: vnic0

defrouter not specified

zonecfg:zone1:net> end

zonecfg:zone1:net> verify

zonecfg:zone1:net> commit

zonecfg:zone1:net> exit

Теперь зона zone1 будет использовать vnic1 и управление потока http-1.

Рисунок 2. Полученная статистика

Рисунок 2. Полученная статистика

Объединение интерфейсов

При помощи dladm очень просто физические устройства, поддерживающие GLDv3, объединить в одно логическое (link aggregations). Такая возможность востребована для возможности резервирования каналов, увеличения пропускной способности сети, балансировки нагрузки.

В случае необходимости объединения интерфейсов лучше выбрать две одинаковые сетевые карты, работающие в режиме full duplex с одной скоростью, сетевые коммутаторы должны поддерживать протокол LACP (link aggregation control protocol). Процесс достаточно прост. Останавливаем сетевые интерфейсы:

# ifconfig e1000g0 unplumb

# ifconfig e1000g1 unplumb

Объединяем интерфейсы:

# dladm create-aggr -l e1000g1 -l e1000g2 default0

Проверяем, что получилось:

# dladm show-aggr

# dladm show-link

После этого включаем интерфейс обычным образом:

# ifconfig default0 plumb 10.0.17.1 up

Далее поверх интерфейса default0 можно настраивать VLAN:

# dladm create-vlan -v 2 -l default0 vlan0

# dladm create-vlan -v 3 -l default0 vlan2

Удаление виртуальных интерфейсов

Удаляются виртуальные интерфейсы и коммутаторы при помощи команд delete-vnic и delete-etherstub. Перед удалением коммутатора следует удалить все связанные VNIC, при наличии хотя бы одного активного VNIC команда завершится с ошибкой:

# dladm delete-etherstub etherstub1

dladm: vnic deletion failed: link busy

Виртуальные сетевые интерфейсы вначале следует остановить и удалить управление потоком:

# dladm delete-vnic vnic1

dladm: vnic deletion failed: link still has flows

# flowadm remove-flow http-1

# ifconfig vnic1 umplumb

# dladm delete-vnic1

Получаем статистику

Утилиты dladm и flowadm умеют считывать статистику из внешнего файла, созданного при помощи команды acctadm.

Активируем сетевую статистику:

# acctadm -e extended -f /var/log/net.log net

Проверим:

# acctadm net

Network accounting: active

Network accounting file: /var/log/net.log

Tracked Network resources: extended

Untracked Network resources: none

 

Просмотр осуществляется при помощи команды flowadm show-usage, в качестве параметра принимающей созданный файл:

# flowadm show-usage -f /var/log/net.log

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

# flowadm show-usage -d -f /var/log/net.log

07/16/2009

Теперь просмотрим статистику за рабочий день (09:00-18:00):

# flowadm show-usage -s07/16/2009,09:00:00 -e07/16/2009,18:00:00 -f /var/log/log.net

FLOW START END RBYTES OBYTES BANDWIDTH

http-1 22:04:09 22:04:29 6586 896 1 Mbps

Заменив в вызове команду flowadm на dladm, узнаем статистику по виртуальным интерфейсам:

# dladm show-usage -f /var/log/log.net

LINK DURATION IPACKETS RBYTES OPACKETS OBYTES BANDWIDTH

vnic0 2678 10 420 21 882 1 Mbps

e1000g0 2678 55 3530 112 9841 2 Mbps

***

CrossBow в OpenSolaris – гибкий и простой инструмент для системного администратора, позволяющий управлять сетевыми настройками. Параметры для отдельного сервиса можно выставить индивидуально, при любых изменениях созданная структура легко переносится.

  1. Страница проекта CrossBow – http://ru.opensolaris.org/os/project/crossbow.
  2. Страница проекта Nemo – http://ru.opensolaris.org/os/project/nemo.
  3. Руководство по системному администрированию: контейнеры в Solaris – управление ресурсами и зонами – http://dlc.sun.com/pdf/820-2979/820-2979.pdf.
  4. Man Pages – dladm, flowadm, acctadm, zonecfg, ifconfig.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru