Статьи и документы, которыми я пользовался для написания этой заметки:


  1. vSphere 5 New Networking Features - NetFlow
  2. VMware: vSphere 5.0 Supports NetFlow v5
  3. What's New in VMware vSphere 5.0 Networking


В VMware vSphere 5.0 появилась возможность, используя NetFlow, проводить сетевой мониторинг с целью выявления проблем с производительностью в сетевой подсистеме. Небольшая выдержка из Википедии:

NetFlow — сетевой протокол, предназначенный для учёта сетевого трафика, разработанный компанией Cisco Systems. Является фактическим промышленным стандартом и поддерживается не только оборудованием Cisco, но и многими другими устройствами (в частности, Juniper и Enterasys). Также существуют свободные реализации для UNIX-подобных систем.

Если кратко, то основная цель протокола NetFlow - это сбор статистики об IP трафике и отправка её в коллектор (collector). Про то, что такое коллектор, да и вообще про архитектуру NetFlow, вы можете прочитать в соответствующей статье на Википедии. VMware vSphere 5.0 поддерживает протокол NetFlow только пятой версии (NetFlow v5), который на данный момент является самым распространенным протоколом. Его поддерживает очень большое количество различных сетевых устройств. NetFlow в vSphere 5 позволяет нам наблюдать за трафиком:


  • между виртуальными машинами на одном хосте
  • между виртуальными машинами, расположенными на разных хостах
  • между виртуальной машиной и другими физическими сетевыми или иными устройствами

Поддержка протокола NetFlow доступна только для распределенного свича (vDS)

На рисунке ниже показано, что когда VMA обменивается данными с VMB или же с другим сетевым устройством, vDS в это время отправляет на коллектор информацию о проходящем между ними IP трафике (синяя пунктирная линия) для последующего анализа:

netflow-vds.PNG

Использование возможностей протокола NetFlow в распределенном коммутаторе (vDS) наряду с инструментом "NetFlow Collector" позволит вам получить наиболее полную картину того, что происходит в вашей виртуальной инфраструктуре. Что, без всяких сомнений, поможет вам при выявлении узких мест в производительности системы в целом. Поэтому, если у вас на предприятии используется, или вы в будущем планируете использовать распределенный свич, то не забывайте о наличии поддержки протокола NetFlow в vDS.

К сожалению, как было мною написано ранее, vSphere 5 поддерживает только NetFlow v5. А это, в свою очередь, лишает нас всяческих плюшек при мониторинге. В частности, NetFlow v5 не умеет работать с IPv6 сетями.


В общем, NetFlow v5 предоставляет нам только самый необходимый минимум. Если вам этого не хватает, то вы можете воспользоваться сторонними продуктами. Например, существует коммерческий продукт FlowSensor VE, который поддерживает протокол NetFlow v9 и представляет собой Virtual Appliance.


В заключении этого небольшого отступления хочу привести сравнительную таблицу "VMware vSphere 5.0 NetFlow v5 vs StealthWatch FlowSensor VE":

StealthWatch.png

Таблица взята отсюда.

Итак, с NetFlow мы познакомились, поняли, для чего он может быть нужен, теперь осталось всего ничего - настроить. NetFlow для vDS может быть включен для:


  • группы портов (port group)
  • отдельного порта
  • uplink'а


Сама по себе настройка нехитрая. В настройках dvSwitch вам необходимо перейти на вкладку "NetFlow" и указать там нужные параметры:

cfg-netflow.png

  • Collector Settings: IP address и Port должны быть настроены в соответствии с тем, как настроен коллектор в вашей сети. Например, если у вас в сети имеется сервер с IP адресом 10.91.35.72, на котором установлен NetFlow коллектор, который "слушает" на порту 9996, то здесь это нужно указать.


  • В Advanced Settings вы можете управлять различными тайм-аутами. Честно говоря, с этими параметрами я не разобрался. По всей видимости, нужно более углубленно изучить NetFlow, чтобы понять, для какой цели эти параметры служат.


  • VDS IP address - насколько я понял, указав здесь адрес, вы как бы замаскируете все хосты, а именно, их management network трафик под один IP адрес. Т.е коллектор будет воспринимать весь management трафик от всех хостов так, как будто он идет с одного хоста (сюда, по всей видимости, входит и iSCSI, vMotion, FT и другие виды трафика). Что иногда может быть удобно.


  • Вы также можете мониторить только то, что происходит внутри именно вашей виртуальной инфраструктуры, установив опцию: "Process Internal flows only". Если перевести дословно название параметра "Process Internal flows only", то это будет звучать так: "Обрабатывать только внутренние потоки". Слово "Flow" (поток) можно встретить в наименовании различных опций, да и сам протокол "NetFlow" содержит в своем названии слово "Flow". Так что же обозначает это загадочное слово "Flow" в контексте сетевого протокола NetFlow? Не стану мудрить, просто в очередной раз приведу выдержку из Википедии:

Потоком (Flow) считается набор пакетов, проходящих в одном направлении. Когда сенсор определяет, что поток закончился (по изменению параметров пакетов, либо по сбросу TCP-сессии), он отправляет информацию в коллектор. В зависимости от настроек он также может периодически отправлять в коллектор информацию о все еще идущих потоках.

На этом, пожалуй, я закончу, так как о NetFlow все, что я хотел написать - написал, а про то, как установить и настроить NetFlow коллектор, написано много хороших статей.