Virtual switches vmware настройка

Обновлено: 06.07.2024

В рамках работы над MITIGATOR на ESXi приходиться собирать различные извращенные схемы сети. В том числе с участием виртуальных L2 transparent устройств, нескольких vMX, переходом трафика из реальной сети в вирутальную, и целой пачки vSwitch. И чаще всего сеть на этом всём виртуальном зоопарке работает не так как ожидается.

Не так как ожидает обычный сетевик.

Во-первых, чудят сами виртуальные устройства.
Во-вторых, не вся функциональность железных собратьев перенесена в виртуалки.
В-третьих. Оказалось vSwitch на ESXi есть принципиальное отличие от обычного switch, но из настроек это не понять. А почти за 10 лет работы с ESXi ни разу не натыкался на описание.

vSwitch имеет ряд настроек которые хорошо описаны и нормально ложатся в парадигму обычного сетевика. В том числе security настройки:
*Promiscuous Mode* — дает доступ ко всем фреймам проходящим через vSwitch, либо в рамках VLAN.
*MAC Address Changer* — разрешает принимать фреймы у которых dst MAC не соответствует MAC адресу интерфейса VM. Такое может быть, когда уже внутри VM через ОС поменяли MAC адрес на интерфейсе.
*Forget Transmit* — позволяет отправлять фреймы у которых src MAC не принадлежит VM.

Но с пониманием работы этих опций, и даже с их перебором — сеть не работает как ожидается. Потому что в моей картине мира не хватало следующей информации:

“Когда некий кадр поступает в любой физический коммутатор, его получатель определяется определённым номером порта коммутатора, соответствующим MAC адресу его получателя в имеющейся у данного физического коммутатора таблице MAC адресов. Если у вас нет возможности найти некую запись в данной таблице MAC адресов, он направляет данный кадр во все порты, отличающиеся данного порта источника.


Осознание такового поведения vSwitch не помогло починить текущую схему, нужно делать совершенно другой дизайн. Но зато теперь могу объяснить почему не работает.

Для этого выбираем наш хост, жмем на вкладку Configure, и в разделе Networking выбираем Virtual Switches.

Поскольку у нас на хосте имеется два сетевых адаптера(как установить драйвер на неподдерживаемую сетевую карту мы рассматривали в статье), давайте добавим нашу сетевую карту в виртуальный свич и настроим так называемый тиминг(объединение сетевых интерфейсов).

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

Ну а мы рассмотрим настройку обычного виртуального свича.

VMware настройка сети. Настройка виртуального коммутатора.

Выбираем наш единственный виртуальный коммутатор и нажимаем на значок сетевой карты

В открывшемся окне видим, что у нас сейчас активен один сетевой адаптер vmnic0. Жмем на зеленый плюс, чтобы добавить второй

Видим нашу вторую сетевуху, выбираем ее и группу адаптеров, в которую нужно ее добавить(в нашем случае Active adapters).

Active adapters — сетевая карта будет использоваться

Standby adapters — сетевая карта будет задействована в случае выхода из строя основной

Unused adapters — сетевая карта не будет использоваться.

На следующем экране видим, что наши адаптеры находятся в группе активных(можно поменять группу адаптера с помощью синих стрелок, а также удалить адаптер или добавить еще).

Жмем ОК и видим, что теперь в нашем свиче два сетевых адаптера(у меня подключен только один, поэтому VMware «сигналит», что отказоустойчивость потеряна.

В виртуальных свичах VMware есть сеть для виртуальных машин VM Network(сюда подключаются виртуальные машины) и VMkernel, предназначенный для служебного трафика(Management, VMotion, iscsi и т.п.).

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

Выделяем окно с заголовком Management Network и нажимаем на карандаш для редактирования.

В настройках Management Network вы можете изменить название сети, VLAN(если используется), настройки безопасности, traffic shaping(в стандартном свиче ограничивается только исходящий трафик) и режим файловера и балансировки нагрузки.

Интерфейсы VMkernel.

Думаю, нужно еще рассмотреть настройки интерфейса VMkernel, используемого для служебных нужд.

Интерфейсов VMkernel может(и должно) быть несколько, чтобы разделить трафик управления от, например, трафика iscsi. Желательно, чтобы это были физически разделенные сети, ну или, хотя бы, на уровне VLANs.

Давайте настроим несколько таких интерфейсов.

Выбираем в секции Networking вкладку VMkernel adapters, выделяем пока единственный vmk0 и жмем карандаш для редактирования

В открывшемся окне на первой вкладке выбираем тип трафика, который разрешен на этом интерфейсе(давайте разрешим здесь еще VMotion — трафик миграции ВМ).

На других вкладках этого мастера можно изменить такие настройки как MTU, настройки IPv4 и IPv6.

Еще: VMware Vcenter Standalone Converter. Network error. Host key can't be retrieved.

После нажатия ОК настройки будут сохранены.

Теперь давайте создадим еще один VMkernel для трафика, например Fault Tolerance. Настройка сети для трафика хранилищ iscsi описана в статье Как подключить iscsi-lun к хосту esxi.

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

Выбираем тип VMkernel Network Adapter

Выбираем, использовать имеющийся или создать новый виртуальный коммутатор(мы выберем наш единственный). Жмем Next.

На следующем экране задаем имя нашего адаптера, выбираем какой версии протокол IP будет использоваться и какой трафик

Указываем сетевые настройки(статика или DHCP)

На завершающем экране мастера проверяем настройки и жмем Finish.

Видим, что теперь у нас появился второй VMkernel адаптер, который будет использован для передачи трафика Fault Tolerance logging.

Сети виртуальных машин.

Сеть виртуальных машин создается аналогично, только в мастере нужно выбрать Virtual Machine Port Group

Выбрать или создать VSwitch

указать название сети и VLAN

и завершить создание

После этого в нашем виртуальном коммутаторе появится еще одна сеть виртуальных машин и в настройках виртуальных машин станет доступно подключение к этой сети.

Дополнительный виртуальный коммутатор можно создать при создании VMkernel или VM Network. Как я уже говорил, наличие физического сетевого адаптера требуется только, если ВМ должны иметь доступ к внешним ресурсам(находящимся не на данном хосте ESXi).

Ну вот вкратце и всё по настройке сети VMware. Если что-то осталось не рассмотренным или непонятным, пишите в комментариях, — будем дополнять.

Администрирование серверов, это очень широкий круг задач, тысячи программ и сервисов со своими тонкостями и нюансами, десятки операционных систем, постоянно что-то меняется, обновляется, физически не реально знать все наизусть. Постоянно приходится сталкиваться с тем, что ставишь или настраиваешь или исправляешь что-то впервые.

При работе с новым сервером, это не так критично, можно попробовать разные варианты решения задачи, выбрав оптимальный, никто от этого не пострадает, не считая конечно личного времени. В конце концов можно все снести и настроить заново.

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

В такой ситуации у администратора серверов всегда должен быть безопасный полигон для испытаний, где не страшно ошибиться, где можно потрогать новую версию операционной системы или погонять какой-то софт, в общем ломай не хочу. У меня уже не первый год, таким полигоном является VMWare workstation, на которой я держу виртуальные машины с основными операционными системами, с которыми работаю — FreeBSD, различные дистрибутивы Linux, типа Debian, CentOS, Ubuntu, и с которыми не работаю тоже, просто для общего развития, например различные Windows.

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

Итак, основная операционка - Windows 7 ultimate x64 SP1, VMWare Workstation 7.1.4, на тестовой виртуальной машине будет установлена операционная система FreeBSD 8.2 amd64.

Компьютер на котором установлена VMWare Workstation является хост-машиной, по отношению к виртуальным машинам.
Виртуальные машины, являются гостевыми системами, по отношению к хост-машине ( виртуальная машина = гостевая система ).

Структура моей сети очень проста, обычный роутер на который приходит интернет канал, внутренний IP адрес интерфейса роутера - 192.168.1.10. Поскольку машин внутри моей сети не много, 3-5, я не использую DHCP сервер роутера а назначаю статические IP адреса, мне так удобней. На рабочем компьютере, прописан IP адрес 192.168.1.11, шлюз соответственно 192.168.1.10.

сетевые настройки

Не буду расписывать процесс установки VMWare, там нет ничего сложного. После установки потребуется перезагрузка.

Настройка виртуальных коммутаторов VMWare

VMWare поддерживает 3 вида сетевого взаимодействия гостевых систем и хост-машины:

  • Host-only - только хост
  • Bridged - сетевой мост
  • NAT - устройство трансляции адресов ( Network Address Translation )

Первый тип позволяет создать виртуальную сеть в рамках хоста, виртуальные машины при этом не имеют выхода во внешний мир, ограничиваясь внутренней сетью.

Второй тип - мост, позволяет объединить виртуальный адаптер гостевой системы с физическим сетевым адаптером хост-машины. При таком типе соединения, гостевая система
будет вести себя как независимый компьютер в рамках сети хост-машины. То есть, в моем случае, хост-машина - это 192.168.1.11, кроме нее в моей сети есть например
еще одна машины с адресами 192.168.1.12, если я подниму виртуалку и назначу ей адрес 192.168.1.13, то она будет видна в моей сети как еще один обычный компьютер.

Немного путано), но если подумать, все станет понятно. Мост самый простой вариант настройки, на гостевой системе можно вообще ничего не прописывать, она
получит IP адрес с DHCP, моего роутера.

Третий тип - NAT. Я пользуюсь именно этим типом, какой-то конкретной причины нет, просто так исторически сложилось, да и в настройке этот вариант не на много сложнее
сетевого моста.

За настройку виртуальных коммутаторов в VMWare отвечает утилита Virtual Network Editor. Запускаем VMWare Workstation, сначала идем в Edit > Preferences, я тут практически ничего не меняю, только в первой вкладке прописываю путь до папки, где храню или буду хранить виртуальные машины:

настройки vmware workstation

далее запускаем Edit > Virtual Network Editor. Замечу, что в VMWare Workstation 6.5, данная утилита слегка отличается, но смысл тот-же, просто там все было разнесено по разным вкладкам а 7 версии все делается в одном окне.

virtual network editor

1. Это список виртуальных коммутаторов. Как видно на скрине, коммутатор VMnet0 - Bridged ( мост ), VMnet1 - Host-only, и VMnet8 - это NAT, который нас и интересует.
2. Это как раз нужный коммутатор. При выделении этой строки, настройки внизу изменятся на соответствующие.
3. Выбран тип NAT, для данного коммутатора. Под кнопкой NAT Settings, настройки Network Address Translation ( см. скрин ниже ).
4. Подключить коммутатор к сети.
5. Использовать-ли для раздачи IP адресов DHCP сервер ( см. скрин ниже ).
6. Тут задан диапазон сети для виртуальных машин, то есть внутренняя сеть VMWare, находящаяся за коммутатором VMnet8.

Я обычно отключаю лишние коммутаторы, что-бы не путаться. Для этого нужно выделить в списке соответствующий и снять галку с пункта 4. В данном случае я отключу коммутатор Host-only.

настройка nat vmware

Здесь можно все оставить по умолчанию. Шлюз для сети 192.168.50.0 будет иметь адрес 192.168.50.2. Можете заглянуть в настройки DNS и NetBIOS, там я тоже все оставил как было.

настройка dhcp

Тут задан диапазон из которого будут выдаваться IP адреса виртуальным машинам. А так-же, так называемое время аренды, срок, на который присваивается IP адрес. Тут я тоже оставляю все как есть.

Далее можно выходить из Virtual Network Editor нажав Ок. С коммутаторами закончили.

Проверяем что у нас в сетевых подключениях на основном компьютере ( хост-машина ).

настройки сетевых соединений

Видим в списке 2 сети, MainNet — это моя основная сеть, а VMware Network Adapter VMnet8 — это коммутатор NAT. Настройки соединения VMnet8 опять-же можно оставить как есть.

настройка nat коммутатора в vmware

На этом первая часть, касающаяся настройки сети закончена, можно поднимать первую виртуальную машину.

VMware

Идея распределённого коммутатора заключается в следующем - создать один коммутатор, который будет обслуживать сразу несколько гипервизоров. Вы получаете один единственный логический коммутатор, существующий сразу на всех серверах ESX(i). Распределённый - потому что он рулится из одной точки - vCenter, а распределяется на все хосты. Если vCenter выйдет из строя, то коммутатор продолжит работу. Мы просто потеряем возможность настраивать коммутатор.

Распределённый коммутатор имеет несколько больший функционал в отличие от обычного. Ключевые моменты:

  • Private VLAN.
  • Bi-directional Traffic Shaping.
  • Network VMotion.

Ссылки

Создаём Distributed Switch

Будем считать, что вы уже знаете зачем собираетесь устанавливать Distributed Switch. Ставим.

Заходим в vCenter, переходим в раздел Networking. Нажимаем правой кнопкой на выбранный кластер,выбираем Distributed Switch > New Distributed Switch.

vmware

Открывается мастер создания распределённого коммутатора. Мы на вкладке Name and location.

vmware

Указываем название, NEXT. Мы на вкладке Select version.

vmware

Выбираем версию коммутатора. Коммутатор 6.0 не поддерживает хосты версии 6.5. Так что я выбираю последнюю версию. NEXT. Мы на вкладке Configure settings.

vmware

Выбираем количество аплинков. Можно включить Network I/O Control. Можно выбрать галку для создания дефолтной port group и указать её название. Я буду использовать эту группу для управления гипервизорами и vCenter, называю HV. NEXT. Мы на вкладке Ready to complete.

vmware

Проверяем настройки и нажимаем FINISH. Distributed Switch создан. Давайте его настроим. Нажимаем правой кнопкой на коммутатор - Settings > Edit Settings. Переключаемся в раздел Advanced. Находим блок Discovery protocol. Type - ставим в Cisco Discovery Protocol. Operations - Both.

vmware

Настройка LACP

Выбираем Distributed Switch в UI. Открываем Configure > Settings > LACP.

vmware

Нажимаем кнопку +NEW. Открывается мастер создания группы LAG.

vmware

Указываем название, я оставляю по умолчанию - lag1.

В поле Number of ports указываем количество линков. В моей практики встречалось 4 гигабитных линка, 2 десятигигабитных. Всё зависит от вашей конфигурации.

Mode - Passive. Здесь могут быть варианты в разных сетях.

Load balancing mode - я ставлю Source and destination IP address. Если вы используете Cisco, то это оправдано, иначе MAC адрес сетевухи может скакать с одного интерфейса на другой.

vmware

Настройка Default Port Group

Выбираем созданную вместе с коммутатором port group, мы назвали её HV. Нажимаем правой кнопкой - Edit Settings.

vmware

Открывается мастер настройки. Мы в разделе General. Port binding ставим в Static binding. Port allocation - Elastic.

vmware

Переключаемся на раздел VLAN. Эту группу портов мы будем использовать для управления хостами, поэтому настраиваем такой же VLAN, в котором живут ESXi и vCenter.

vmware

Переключаемся на раздел Teaming and failover.

vmware

По умолчанию у Port Group LACP не используется, включим. Перетаскиваем lag1 вверх, а аплинки вниз.

vmware

OK. Сохраняем. Каждый раз потом при создании новой группы портов нужно настраивать LACP для этой группы. Можно это делать прямо в процессе создания.

Добавление хоста в Distributed Switch

Нажимаем правой кнопкой на Distributed Switch - Add and Manage Hosts.

vmware

Открывается мастер. Мы попадаем в раздел Select task.

vmware

Выбираем Add hosts. NEXT. Мы попадаем в раздел Select hosts.

vmware

Нажимаем кнопку + New hosts. Открывается окно со списком доступных хостов. У меня пока один - hv00.

vmware

Выделяем хост галкой, OK.

vmware

NEXT. Мы попадаем в раздел Manage physical adapters.

vmware

vmnic1 цепляем кнопкой Assign upling к lag1-1.

vmware

Наша задача добиться того, чтобы хост одной ногой был в старом коммутаторе, а второй - в новом. NEXT. Мы попадаем в раздел Manage VMkernel adapter.

vmware

Пока ничего не меняем, пусть vmk0 будет на старом локальном коммутаторе. NEXT. Мы попадаем в раздел Migrate VM networking.

vmware

NEXT. Мы попадаем в раздел Ready to complete.

vmware

FINISH. Ждём когда хост добавится.

Снова нажимаем правой кнопкой на Distributed Switch - Add and Manage Hosts.

vmware

Открывается мастер. Мы попадаем в раздел Select task.

vmware

Теперь выбираем пункт Manage host networking. NEXT. Доходим до раздела Manage VMkernel adapter.

vmware

Выбираем vmk0, нажимаем Assign port group.

vmware

Выбираем наш Port Group с названием HV, который находится в управляющем VLAN. OK.

vmware

NEXT. Мы попадаем в раздел Migrate VM networking.

vmware

NEXT. Мы попадаем в раздел Ready to complete.

vmware

FINISH. Управление хостом должно перейти на Distributed Switch.

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

vmware

vmnik0 привязываем к lag1-0.

vmware

vmware

NEXT. NEXT. NEXT. FINISH.

Теперь можно зайти в хост - Configure > Networking > Virtual switches и удалить локальный vSwitch0.

Потом заходим в хост - Configure > Networking > VMkernel adapters, выбираем vmk0, редактируем, разрешаем галкой vMotion.

vmware

Резюме

Итак, мы создали Distributed Switch, перенесли в него хосты, настроили LACP, разрешили vMotion.

Читайте также: