В 1957 г. СССР запустил первый искусственный спутник Земли, наглядно продемонстрировав всему миру свои способности в доставке ядерных боеголовок на любые расстояния.
В 1962 г. случился Карибский кризис. Холодная война имела все шансы стать очень даже горячей.
Озадаченные США создали Агентство передовых исследовательских проектов (ARPA), которое решило, что на случай войны хорошо бы иметь надежную децентрализованную систему связи. Такую, что, если вдруг где рванет, выжившие смогли бы продолжать обмен информацией, невзирая на выход из строя значительного куска этой сети. То есть сеть должна состоять из равноправных, независимых компьютеров, причем каждый из них должен самостоятельно принимать решения о передаче информации.
Саму информацию было решено разбивать на небольшие пакеты и передавать их в цифровом виде. 29 октября 1969 г. впервые заработала ARPAnet, прародительница Интернета, созданная по заказу и на деньги Министерства обороны США.
А потом СССР внезапно закончился.
И связисты всего мира, как тот верблюжонок из анекдота, стали все чаще задаваться вопросом: «Мама, а зачем нам все это в зоопарке?». Действительно ли так нужны в мирное время военные подходы? Правда ли почтальонами должны работать спецназовцы? Может быть, уже можно попробовать заменить децентрализованные сети независимых высокоинтеллектуальных устройств решением, в котором умный логический центр (а хоть бы и физически распределенный) будет управлять не такими уж умными, но зато куда более дешевыми устройствами?
Первыми были телефонисты
Интернет был еще маленьким, а телефонные сети — уже большими. Поэтому пионерами нового подхода стали телефонисты.
Они создали архитектуру NGN (Next Generation Network). Одна из основных идей — использовать унифицированный транспорт.
Идея зарождалась подобным образом:
— А зачем нам отдельные сети для данных, голоса и видео? А давайте завернем все это в IP-пакеты и будем передавать по единой физической сети?
— А давайте!
— А еще давайте заменим кучу умных и дорогих АТС кучей туповатых, но исполнительных (и дешевых) шлюзов, а всей сигнализацией пусть теперь управляет центральный контроллер.
Так и порешили. И появился Softswitch — устройство, отвечающее исключительно за сигнализацию, а передача трафика проходит мимо него.
Так, если абонент из города А хочет позвонить своему приятелю в город Б, softswitch даст команду шлюзам этих городов создать телефонное соединение и посчитает, что его задача выполнена. А пропускать этот разговор через себя и выступать в качестве прокси, ему вообще не интересно.
Первая сеть NGN была построена в Великобритании 1999 г.
Применение нового подхода существенно разгрузило сети международной и междугородней связи, удешевило их построение и эксплуатацию.
Сетевики задумчиво наблюдали.
Призрак программно-определяемых сетей бродил как по Европе, так и по Америке.
Стэндфорд начинает и выигрывает
В начале 2000-х стэндфордский студент, а потом и аспирант Мартин Касадо занимался темой централизации и программного управления сетями под руководством профессора Ника Маккеона.
Того самого, который в 1995-м участвовал в создании архитектуры Cisco GSR 12000, в 1997-м создал компанию Abrizio, разработчика микросхем (которую затем продал за $400M), в 2003-м создал компанию Nemo (Network Memory) Systems, которую потом у него купила Cisco.
Основная идея была все той же: отделение плоскости управления от плоскости передачи данных, замена высоконадежных военных подходов более бюджетными гражданскими, умный программный контроллер и дешевое сетевое оборудование, а заодно — виртуализация сетевых функций.
В 2007 г., по результатам диссертации Касадо, Маккеон, недолго думая, создал очередной стартап под названием Nicira Networks. Который через 5 лет и продал по старой традиции компании VMware за миллиард с четвертью долларов.
И Nicira Network Virtualization Platform (NVP) теперь известна как VMware NSX.
Мартин Касадо стал в VMware техническим директором подразделения Networking and Security. На этом мы с ним прощаемся. А с неугомонным Ником Маккеоном еще встретимся.
Что же, собственно, было сделано?
Что такое Overlay
Была программно-определяемой наложенной сети (далее — overlay) — полностью программного продукта, виртуализирующего сетевые функции.
В нем сеть рассматривается как такой же виртуализируемый ресурс, как вычислительные мощности и место для хранения данных. Но если выделять необходимые мощности и объемы хранения под данные уже давно научились, и занимает такая процедура считаные минуты (желающие это проверить могу попробовать развернуть себе бесплатную виртуальную машину с одной из широкого ассортимента операционных систем в облаке EC2 от Amazon), то согласование сетевых подключений, переподключений, настроек, политик — дело долгое. Если, конечно, не применить подход, используемый overlay SDN-сетями.
Если рассматривать сетевую инфраструктуру как ресурс, ее тоже можно выделять по требованию. При этом физически сеть может быть любой. Вообще любой, т.е. построенной на любых, даже на самых простых устройствах от любых вендоров, лишь бы те обеспечивали связность.
Что это дает? Предположим, на одном физическом сервере работает несколько виртуальных машин. Если все они в одном VLAN, то и ладно, а если в разных и им нужно обмениваться пакетами, каждый такой пакет должен выйти за пределы физического хоста, дойти до маршрутизатора, а затем вернуться обратно. Зачем?
Раньше на этот вопрос отвечали так:
— Ну, а как?
А overlay-вендоры решили эту проблему. Виртуальный распределенный маршрутизатор заранее понимает, где какая виртуальная машина находится, и не дает пакетам выходить за пределы хоста без реальной необходимости, что существенно снижает нагрузку на сеть.
А еще в большинстве overlay-решений реализована микросегментация.
Как говорил еще один выходец из Nicira, Брюс Дэйви (Bruce Davie), периметр безопасности дата-центра «может работать 99,9% времени, но хакеру достаточно проникнуть внутрь только раз. И, однажды проникнув, средний хакер проводит внутри дата-центра около 200 дней».
Наложенные сети позволяют в любой момент времени разместить виртуальный файрвол в любом месте сети, да хоть на виртуальной сетевой карте каждой виртуальной машины! Враг не пройдет!
Полная аппаратная независимость, глубокий уровень интеграции в виртуальную среду, высокая скорость подключения новых серверов и виртуальных машин, удобство обслуживания и прочий Agile — красота!
Примеры решений overlay SDN:
– NSX от VMware;
– VSP от Nuage Networks;
– Contrail от Juniper Networks.
IBM и все-все… не все
В августе 1981 г. корпорация IBM выпустила в мир IBM PC. Полугодовой план продаж был выполнен за месяц.
Открытая архитектура очень скоро захватила рынок персональных компьютеров. Каждый желающий мог писать под нее программное обеспечение, каждый другой желающий — создавать собственную периферию, а каждый третий — заниматься ремонтом и обслуживанием.
Появилось великое множество производителей всего чего только душе угодно, включая USB-подогреватели для чашек с кофе. Очень серьезная конкуренция по всем фронтам. Но нам, потребителям, конкуренция только на руку — можно выбирать каждый компонент по соотношению «цена/качество», что в принципе невозможно в закрытых архитектурах.
Как выглядит процесс покупки компьютера?
Необходимо выбрать:
- процессор;
- материнскую плату;
- видеочип и видеокарту;
- память;
- операционную систему;
- нужные в быту программы;
- всякое по мелочи.
И по каждому пункту — множество производителей, которые сражаются друг с другом за наш выбор.
А как выглядит процесс выбора, скажем, маршрутизатора?
— Выбрать производителя и модель.
Все.
— Как это все? — интересовались любопытные.
— А вот так, — отвечали традиционные вендоры. — Зачем нам своими руками пускать на свою поляну конкурентов? Мы тратим огромные деньги на разработки своих архитектур, ASIC и NPU (Network Processing Unit, сетевые процессоры), нам разработчиков кормить надо. А еще так надежнее и безопаснее.
— Позвольте, — сказали производители коммерческих ASIC и NPU, такие как Broadcom и Mellanox, — нам тоже надо кормить разработчиков, только наши чипы стоят куда дешевле. Мы тоже хотим свою долю от сетевого пирога! Даешь открытую сетевую архитектуру! Даешь whitebox’ы!
Nicira все. Приветствуем Barefoot!
В их числе был вышеупомянутый неутомимый Ник Маккеон, который уже трижды создавал и успешно продавал стартапы как в области микроэлектроники, так и в области SDN.
Просто под его руководством в Стэндфорде были также заложены основы протокола OpenFlow, призванного унифицировать SDN-подход разделения плоскостей управления и передачи данных.
Протокол OpenFlow позволяет использовать коммерческие чипсеты для коммутации и маршрутизации трафика. При помощи OpenFlow контроллер может задавать для управляемых ими сетевых устройств не конфигурации, а напрямую заливать в них правила работы с потоками. Сетевому устройству больше нет нужды создавать свои таблицы коммутации и маршрутизации. Оно получает от контроллера список правил обработки потоков, сверяет каждый получаемый пакет с этим списком и выполняет предписанные действия.
Помимо прочего это позволяет быстро реализовывать новые функции и решать старые проблемы.
Как это выглядело раньше?
— Уважаемый вендор! Нам нужен вот такой функционал.
— Не вопрос! Он уже в нашей дорожной карте! Будет реализован через два года! Ну, или через три.
— Это будет новая прошивка?
— Нет, это будет новое устройство! Занимайте пока очередь в кассу.
А с использованием нового подхода достаточно поручить программистам реализовать нужную функцию или протокол, быстро получить результат и начать его использовать.
Но вернемся к Маккеону.
Он основал очередной спартап — Barefoot Networks, занявшись разработкой супермощных и суперпрограммируемых NPU под кодовым названием Tofino, обладающих следующими поразительными характеристиками:
- скорость обработки пакетов до 6,5 Tb/s (это, например, 65 портов 100GE на одном кристалле);
- программирование не на уровне микрокода или через API, а при помощи высокоуровневого языка P4 (Programming Protocol-Independent Packet Processors);
- революционно низкая стоимость.
А Broadcom, Mellanox и другие коммерческие производители продолжали развивать свои чипсеты. Под специализированные сетевые процессоры с открытой архитектурой стали появляться производители как устройств без операционной системы на борту (например, Edge-Core и Dell), так и операционных систем для таких коммутаторов (например, Noviflow).
Иначе говоря, традиционные whitebox’ы: процессор от одного производителя, драйвера — от другого, начинка от третьего, операционная система — от четвертого, а управляющий контроллер — от пятого. Конкуренция!
Необходимо заметить, что к whitebox’ам не применима классификация типа: «Так они все же коммутаторы или маршрутизаторы»? Они — универсальные сетевые устройства. Они и то и другое. Они, что угодно. А при необходимости могут стать чем-то еще. Они — то, что запрограммировано.
Традиционные вендоры принимают бой
Традиционные вендоры долгое время не обращали внимания на SDN, сперва считая его академической игрушкой для студентов, потом — не желая пускать на свой рынок других игроков.
Но когда вокруг SDN создался совсем уж невероятный хайп, поняли, что оставаться в стороне уже нельзя, что многочисленные резвые стартапы при определенном раскладе (ведь нельзя знать будущее — мало ли, как оно повернется) способны захватить существенную долю рынка, и тоже стали смотреть в сторону SDN. Но преимущественно на overlay, предлагая прикрутить к своим традиционным проприетарным устройствам управление собственным же проприетарным контроллером.
В конечном счете рынок всех рассудит, как это всегда и бывает.
Заключение
- Итак, что лучше: традиционная архитектура или SDN?
- А если SDN, какой подход истинный: overlay или whitebox?
- Что выбрать?
Отвечая на эти вопросы, наверное, нужно придерживаться рационального подхода.
SDN — это еще один инструмент, помогающий решать конкретные задачи. Консервативные, но проверенные традиционные решения еще какое-то время никуда не денутся. Если преимущества SDN неочевидны, почему бы не оставить все как есть?
Но если SDN реально может решить конкретные проблемы и сложности конкретной сети, нужно переходить. Если нужно быстро внедрять новые приложения, протоколы и сервисы, нужно переходить. Если переход на SDN существующих проблем не решит, но окажется в 2 раза дешевле традиционного подхода в построении и/или в обслуживании — да, нужно переходить.
И проблем не решит, и дешевле не окажется, но очень хочется — тоже можно попробовать.
Если нужна молотилка невероятной мощности для огромного ЦОДа — наверное, whitebox, а если нужна, скажем, микросегментация, — наверное, overlay.
А вообще, «мамы разные нужны, мамы разные важны…» Пусть расцветают 100 цветов, пусть соперничают 100 школ — конкуренция и возможность выбора всегда выгодны нам, потребителям.