среда, 12 декабря 2012 г.

BPDU фильтр в vSphere 5.1

BPDU (Bridged Packet Data Unit) - пакеты которыми обмениваются физические свитчи в рамках протокола Spanning Tree, который блокирует возможные петли в сети. При подключении порта на свитче STP начинает рассылать BPDU пакеты, чтобы определить должен ли данный порт пересылать данные или быть в заблокированном состоянии. Обмен пакетами происходит между всеми свитчами в сети для определения корневого свитча и построения древовидной структуры сети. Виртуальные свитчи не принимают участия в STP, и потому не отсылают BPDU, а при получении такого пакета просто его отбрасывают.

Процесс определения корневого свитча и требуемого состояния порта занимает от 30 до 50 секунд, в течение которых через данных порт данные пересылаться не могут. Если какое-либо приложение будет пытаться достучаться до данных, находящихся на данном порту, то, в итоге, столкнётся таймаутом. Для нивелирования таких задержек рекомендуется включать на свитчах Port Fast - в таком случае порт сразу будет активным, а в случае обнаружения петли будет блокирован.

Также на портах используемых для vSphere рекомендуется включать функцию BPDU Guard, которая позволяет не позволяет указанным портам вносить изменения в структуру данных STP. Изображение ниже приводит является наглядным примером того на каком уровне сети начинает работать BPDU Guard.

А теперь рассмотрим сценарии, когда включение данной функции на свитче может привести к проблемам.

Некоторые пользователи сталкивались с DoS атаками вызванными скомпрометированными ВМ, которые неожиданно начинали рассылать BPDU пакеты. Так как виртуальный свитч пересылал такие пакеты на физический свитч, тот, в свою очередь, блокировал данный порт. Из-за выхода порта из строя vSphere инициирует миграцию ВМ с хоста на другой сервер, что, в итоге, приводит к проблемам в рамках всего кластера.

 Для решения данной проблемы с vSphere 5.1 виртуальные свитчи, как распределённые так и стандартные, поддерживают функцию фильтрации BPDU пакетов. В случае если какая-либо ВМ попытается отослать такой пакет - он будет отброшен на уровне виртуального свитча.

Для включения данной функции на каждом отдельно хосте необходимо зайти в Advanced Settings, найти опцию BlockGuestBPDU и выставить значение 1.

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

Оригинал: http://blogs.vmware.com/

1 комментарий:

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

    Portfast полностью исключает порт из расчета STP
    BPDU Guard не спасет. Вместо него нужно использовать
    Edge port. При включении он поднимается сразу,
    но до прихода первого BPDU пакета, потом он тушится
    (listening/learning) и потом на основании расчета STP
    уже поднимается или уходит в блок.

    На корзинах blade не стоит включать PortFast.
    В корзине тоже может стоять свитч, управляемый.
    Учим матчасть, и включаем STP.

    я так понимаю что стоит напомнить что категорически
    запрещено включать portfast на пользовательских портах
    и на транках.

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