воскресенье, 28 ноября 2010 г.

VLAN + vSphere Distributed Switch + HP GbE2c Layer 2/3

Мне приходится вести довольно обширную переписку. Угадайте по какой теме :)

Слово “приходится” не означает, что я недоволен – мне нравится такое положение вещей.

Может быть, не всегда есть возможность ответить развернуто, а иногда ответ я и не знаю, но без внимания я не оставляю ни одного письма.

Что меня радует, иногда обращающиеся ко мне специалисты склонны и делиться знаниями. Вот как раз такой случай:

Настройка VLAN на vSphere Distributed Switch и блейд-свитче HP GbE2c Layer 2/3.

Давайте рассмотрим задачу организации сети с несколькими vlan на распределенном свитче.

Когда и кому это может понадобиться?

Представим себе следующий классический вариант – сервер с 2-мя сетевыми адаптерами. Один физический адаптер необходимо зарезервировать под служебные нужды VMWare, такие как Service Console и VMkernel. На базе же второго адаптера мы можем создать только один виртуальный свитч для проброса сети для виртуальных машин. А что делать, если виртуальным машинам необходимо пробросить как минимум две изолированных сети, а то и 3-4.

Ну или другой вариант – пусть мы озаботились заранее и купили сервер с четырьмя сетевыми интерфейсам. Но при постройке среды виртуализации сделали все правильно и один физический адаптер отвели под ServiceConsole, а другой под VMkernel Port. Остается два адаптера для проброса сетей виртуальным машинам. В большинстве случаев этого достаточно. Но вот появляется срочная задача прокинуть еще одну изолированную сеть в виртуальную среду.

Что делать? Пожалуй, самый очевидный и простой вариант – купить сетевую карту и на ее базе создать очередной виртуальный свитч. Но бывают ситуации, когда нет времени на долгий процесс закупки, или нет слотов в сервере под дополнительную сетевую карту и т.п. Вот тут на помощь нам приходят vlan. Именно настройка vlan на виртуальном и физическом свитче позволит вам через один физический интерфейс прокинуть несколько разных сетей виртуальным машинам.

Рассмотрим конкретную практическую задачу.

Есть хост ESX(блейд-лезвие), с четырьмя сетевыми интерфейсам подключенный в блейд-свитч HP GbE2c Layer 2/3. Один интерфейс ESX хоста, как описывалось выше, отведен под Service Console, а второй VMkernel Port для vMotion. Двум оставшимся интерфейсам соответствуют два распределенных свитча Distributed Switch 1&2, позволяющие вывести две группы виртуальных машины в две изолированных сети. Появляется третья группа виртуальных машин, которым необходима третья изолированная сеть. Решено настроить vlan`ы на одном из двух существующих распределенных свитчей.

Дополнительная сеть – это дополнительный трафик. После мониторинга становится понятно, что виртуальный свитч Distributed Switch2 менее нагружен и легко перенесет добавочный трафик, поэтому через него будут проброшены две сети. Distributed Switch 1 конфигурироваться не будет.

*При использовании большого количества vlan, рекомендую мониторить текущую и планировать будущую нагрузку. Можно пробросить несколько сетей с малой нагрузкой через один виртуальный свитч, а второй оставить под сеть с основным трафиком. Если же виртуальные машины генерируют примерно одинаковый трафик в каждую сеть, то следует размазывать нагрузку и конфигурировать по несколько vlan на каждый виртуальный свитч. Всегда помним, что каждый виртуальный свитч опирается на физический интерфейс с ограниченной пропускной способностью.

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

clip_image002

Настройка очень проста. Каждая группа портов виртуального распределенного свитча, соответствующая отдельной изолированной сети, должна находиться в отдельном vlan`е. Порты-аплинки между свитчами, должны быть сконфигурированы как tagged порты (т.е. могут пропускать через себя трафик разных vlan`ов).

Для распределенного коммутатора Distributed Switch 2 необходимо сделать следующие настройки:

1. Создаем 2-е группы портов на одном распределенном коммутаторе.

clip_image003

2. В настройках 1-й группы портов в пункте VLAN указать VLAN Type = VLAN и задать VLAN ID (для текущего примера VID=6).

clip_image005

3. В настройках 2-й группы портов в пункте VLAN указать VLAN Type = VLAN и задать VLAN ID (для текущего примера VID=5).

clip_image007

4. В настройках Uplink-группы в пункте VLAN указать VLAN Type = VLAN Trunking. В поле VLAN trunk range указать VLAN ID, для vlan, созданных выше.

clip_image009

На этом вся конфигурации виртуальной среды завершена. Остается настроить физический блейд-свитч.

Ниже приведена настройка для свитча HP GbE2c Layer 2/3. Хосты ESX подключены к внутренним портам 1,2,9,10. Порт 21, 23 внешние аплинки в разные сети.

Включаем тегирование и задаем default vlan внутренних портов.

/cfg/port 1
tag e
pvid 5
/cfg/port 2
tag e
pvid 5
/cfg/port 9
tag e
pvid 5
/cfg/port 10
tag e
pvid 5

Создаем Vlan, включаем их, задаем имя и порты

/cfg/l2/vlan 5
ena
name “…”
def 1 2 9 10 21
/cfg/l2/vlan 6
Ena
name “…”
def 1 2 9 10 23

На этом настройка закончена.

 

thx Kirill Shusherin.

16 комментариев:

  1. ОФФ:
    Покупаем nexus1kv и пусть сетевики сами парятся со своими вланами... ;-)

    ОтветитьУдалить
  2. В догонку серьезный вопрос - зачем два дистрибутед свитча? Тем более с одним аплинком!!!

    ОтветитьУдалить
  3. Что лучше для разбивки на VLAN-ы -- два коммутатора, каждый с одной группой портов, или один коммутатор с двумя группами портов? На этот вопрос мы с Мишей долго спорили в процессе редактирования его книги :) Сошлись на том, что вопрос философский, если не религиозный. Миша ссылался на то, что таковы некие рекомендации VMware. Я утверждал, что смысл неясен, а работы и пространсттва для потенциальных ошибок — в полтора-два раза больше.

    ОтветитьУдалить
  4. Артем,
    я с Мишей эту тему тоже обсуждал - что лучше один всвитч с четыремя аплинками илл два с двумя...
    Но тут ситуация другая под каждую задачу выделяется один аплинк. Те при выходе оного из строя - мы можем не получить доступ к esx, или у нас отвалится часть виртуальных машин.

    ОтветитьУдалить
  5. Михаил, помогите, пожалуйста!
    Во-первых, у меня ESXi 5 (иллюстрации в Вашей статье не помогают...)
    Во-вторых, немного не такую схему хотел бы построить.

    Схема следующая:
    - blade-полка (сервера в ней) подключена через GbE2c 2/3 к коммутатору локальной сети;
    - на одном из серверов установлен ESXi 5 (для стенда).

    Проблема в следующем:
    Как мне сделать (и возможно ли это) настройки сети, чтобы на виртуальных машинах работали сервера с такими же IP-адресами, как у реальных, и (естественно!), не конфликтовали друг с другом. Т.е. я мог бы иметь доступ к blade-серверу с ESXi из локальной сети, но виртуалки на нем были доступны только из сети подключенной к одному определенному внешнему порту на GbE2c 2/3.
    Может быть чутка сумбурно... sorry!

    ОтветитьУдалить
    Ответы
    1. насколько я понял ваше описание, вам следует создать отдельный vlan на физическом коммутаторе (к которому подключен сервер-лезвие).

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

      но вообще вам правильнее проконсультировать с вашим специалистом по сетям, потому что одно дело чтобы заработала программа минимум (отсутствие конфилктов), а другое дело всякие другие вещи которые вам могут потребоваться - типа доступа в другие сети и интернет.

      Удалить
    2. "Физический коммутатор (к которому подключен сервер-лезвие)" - это GbE2c 2/3, так?
      Там, насколько я вычитал, непонятно, какой именно порт надо делать теггированным или нет.
      Плюс еще теггирование на GbE2c 2/3 непонятное для меня: VLAN Tagging - еще понятно, PVID tagging - уже меньше...
      А больше всего трудностей у меня в понимании роли физического интерфейса сервера (при работе с VMWare WorkStation, было как-то понятнее и режимы его использования я задавал сам). Судя по схеме виртуального коммутатора, он просто является одним из его портов, но настроек для него я не нашел...
      ... ну и после того, что вы написали, даже неудобно говорить: я сам в том числе и "специалист по сетям". Могу только сказать, что доступа в другие сети не понадобится, просто сетевое подключение через определенный порт GbE2c 2/3 к виртуалкам изолированно от других его портов.
      P.S. чтобы не портить Вам блог (если Вы конечно согласны помочь!), я мог бы написать на e-mail...

      Удалить
    3. можно и на email - но раз ваш вопрос в значительной степени про настройки коммутатора а не vSphere, то я бы рекомендовал на форуме спросить. Есть вероятность что вам смогут помочь завсегдатаи с опытом настроек этого хьюлетовского оборудования.

      http://communities.vmware.com/community/vmug/forums/emea/russia

      Удалить
    4. А если сформулировать вопрос таким образом:

      Возможна ли настройка сети, при которой физический интерфейс хоста (ESXi 5) и интерфейс его виртуальной машины находились а разных VLan'ах?

      (это не вопрос хьюлетовского оборудования и почти в тему Вашей статье :-)

      Удалить
  6. да. только работать не будет :)

    т.е. трафиком смогут обмениваться ВМ в одной группе портов (здесь это равнозначно vlan).
    но если пакеты с их тегом VLAN придут на порт физического коммутатора, а он не настроен этот vlan пропускать - то и не пропустит.

    ОтветитьУдалить
    Ответы
    1. А физический интерфейс в ESXi 5, как я понял, не настраивается пропускать пакеты "иных" Vlan'ов (настройка теггированного VLan отсутствует, только какой-то определенный), так?

      Удалить
    2. для физической сетевой карты мы ничего не настраиваем.

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

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

      Удалить
    3. Просто я так понимал, что "физическая сетевая карта" по сути -- один из портов "виртуального коммутатора"...

      Удалить
    4. да, в определенном контексте так и есть.

      в этом контексте этот порт настроен на vlan trunk для всех vlan id.

      Удалить
    5. Огромное спасибо за пояснения и терпение!
      :-)

      Удалить
  7. Я пока не перешёл на Distributed Switch, но планирую когда хостов будет хотя бы 5шт. Поэтому приведу свой опыт для vlan на стандартных vSwitch.

    Для начала было бы оч.пользительно почитать Мишину книгу, за которую ему ещё раз спасибо. Так же у Антона есть замечательные статьи про стандартные свитчи, где описаны доступные типы настроек vlan:
    Standard vSwitch - часть 1 http://blog.vadmin.ru/2010/10/standard-vswitch-1.html
    Standard vSwitch - часть 2 http://blog.vadmin.ru/2010/10/standard-vswitch-2.html

    Когда определишься что же ты в действительности хочешь, то надо пойти в VMware Knowledge Base:
    VLAN Configuration on Virtual Switch, Physical Switch, and Virtual Machines http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003806

    Я использую Virtual Switch Tagging (VST). В корзине стоят свитчи Cisco Catalyst Blade Switch 3120G for HP.
    На портах к которым подключены непосредственно серверы настройки такие:
    interface GigabitEthernet1/0/7
    switchport mode trunk
    spanning-tree portfast

    На портах 3120G и вышестоящего свитча настройки такие:
    interface GigabitEthernet0/9
    switchport trunk encapsulation dot1q
    switchport mode trunk
    spanning-tree link-type point-to-point

    ОтветитьУдалить