Руслан Смелянский (ЦПИ КС) о будущем компьютерных сетей
АрхивИнтерактивКомпьютерные сети переживают глубокий кризис, связанный с тем, что лежащая в их основе архитектура безнадежно устарела. Несколько лет назад возникло движение по созданию сетей нового поколения.
Лежащая в основе современных сетей архитектура закладывалась полвека назад, когда мир был совсем другим. Объемы трафика растут гораздо быстрее, чем увеличивается пропускная способность систем передачи данных, а его структура все время усложняется. О перспективных методах решения этих проблем "Компьютерре" рассказал директор по науке и образованию Центра прикладных исследований компьютерных сетей (ЦПИ КС), член-корреспондент РАН, профессор МГУ им. М.В. Ломоносова, д.ф-м.н. и заслуженный деятель науки Российской Федерации Руслан Смелянский.
- Не могли бы вы рассказать о вашем центре: когда он был создан и каковы его цели и задачи?
- Центр юридически был создан в январе этого года и уже в феврале ему был присвоен статус резидента "Сколково". Мы стали, насколько мне известно, первой некоммерческой организацией-резидентом, которая полностью ориентирована на научные исследования.
Основных направлений деятельности три. Во-первых, это установление партнерских взаимоотношений с международными исследовательскими центрами. Второе направление нашей деятельности - работа с НИИ Академии Наук и российскими университетами с целью инициировать там научные исследования в области компьютерных сетей. Третье направление деятельности - это продвижение новых технологий, демонстрация их преимуществ нашей отечественной промышленности, создание совместных проектов и проверка эффективности этих технологий на реальных задачах.
- Говоря о технологиях, вы имеете в виду только программно-конфигурируемые сети (SDN), или Центр занимается чем-то еще?
- Мы занимаемся компьютерными сетями, которые сегодня переживают глубокий кризис. Если очень кратко, то причина этого кризиса, во-первых, в том, что лежащая в основе современных сетей архитектура закладывалась в конце шестидесятых - начале семидесятых годов прошлого века и безнадежно устарела.
Во-вторых, недавно в области компьютерных сетей появились новые тенденции. Темпы роста трафика и структура этого трафика стали существенно обгонять те возможности, которые предоставляют системы передачи данных. Раньше темпы роста пропускной способности систем передачи данных практически удваивались каждый год, и это всех устраивало. Сейчас объем трафика увеличивается существенно быстрее пропускной способности каналов, и это начинает создавать проблемы.
И наконец, в-третьих, что является, в какой-то степени, следствием первого: компьютерные сети - одна из наиболее сложных инженерно-технических систем, поведение которой сложно предсказать. Достаточно сказать, что в современных сетях активно используется более шестисот разных протоколов. Связать их между собой по управлению и данным надежно и безопасно - это задача чрезвычайно трудная. Именно поэтому администрирование компьютерных сетей - скорее, искусство, нежели инженерия. И понятно, что с таким положением уже никто не хочет мириться.
Лет пять или шесть назад в США возникло движение по созданию компьютерных сетей (или, если хотите, интернета) нового поколения. И начались поисковые исследования. Одно из таких направлений, которое на сегодняшний день стало лидирующим - программно-конфигурируемые сети (software defined network). Его мы и развиваем сейчас в России.
- Если конкретизировать проблемы компьютерных сетей, то четко вырисовываются две проблемы. Это отставание темпов роста пропускной способности каналов от темпов роста трафика и сложная гетерогенная структура, которой очень тяжело управлять. Это основные факторы?
- Не только это. Есть и третий фактор. На сегодняшний день оборудование, с помощью которого строятся компьютерные сети является проприетарным. То есть для системного администратора это "черный ящик", в который он втыкает провода и функциональностью которого он пользуется. Там есть прошитый производителем софт, но пользователь без производителя ПО сменить не может.
- Но разве это проблема? Допустим, оборудование – "черный ящик", но все входы и выходы из этого ящика описаны - протоколы стандартизированы.
- Протоколов более шестисот. Действительно, каждый из них имеет стандарт, но подавляющее большинство используемых в интернете протоколов стандартом де-юре не является.
- Но это в основном протоколы уровня приложений?
- Вы глубоко заблуждаетесь. Протоколы TCP/IP не являются стандартами де-юре с точки зрения международного права - это стандарты де-факто.
- Но они являются отраслевыми техническим стандартами де-факто, описанным в RFC.
- Они не являются отраслевыми стандартами. Понятие отраслевого стандарта совсем другое. Они являются стандартами де-факто, выпущенными неким образованным в США society и ставшими международными. Но де-юре это не стандарты.
Мало того, чтобы согласовать протоколы между собою, одного стандарта недостаточно. Он не определяет многих технических параметров и не описывает (да и не должен описывать, чтобы не связывать по рукам и ногам производителей) очень многих деталей. Даже при наличии стандарта могут возникать ситуации нестыковки протоколов между собой. Но самое главное, организация сетей в виде "черных ящиков" блокирует возможности проведения экспериментов с новыми протоколами.
- Один из предлагаемых вариантов решения этих проблем - программно-конфигурируемые сети. В чем суть этой технологии?
- Проблем, конечно, не три, их много больше. В основной массе использующихся сейчас протоколов смешаны два разных вида данных: управляющие (с помощью которых происходит управление обменом информации) и, собственно, передающие данные. Программно-конфигурируемые сети их разделяют, то есть управление здесь происходит по совершенно другим каналам, нежели чем сама передача.
Кроме того, передача данных идет не через отдельно маршрутизируемые пакеты, как это сделано, скажем, в IP, а в виде потока. Если мы вспомним IPv4 и IPv6, то там есть такое поле - идентификатор потока. Здесь оно существенно используется.
- Но данные одного потока все равно оформлены в виде пакетов?
- Совершенно верно, данные идут по виртуальному соединению, которое маршрутизируется в момент своего создания. И дальше все относящиеся к нему пакеты идут по одному маршруту. Как только появляется пакет, маршрутизатор смотрит, знает ли он поток, к которому тот относится. Если устройство в своих таблицах маршрутизации находит соответствующие правила (то есть знает этот поток), то пакет обрабатывается в соответствии с ними. Если такого правила нет, то устройство обращается к так называемому контроллеру, который принимает решение об открытии нового потока и формирует правила. Они загружаются с помощью протокола Openflow в таблицы маршрутизатора и используются при обработке всех пакетов нового потока.
Таким образом, решается очень серьезная проблема - на ранних этапах развития интернета было принято решение, что каждый пакет может маршрутизироваться самостоятельно. Оно было следствием сформулированной в конце шестидесятых годов в DARPA проблемы: военным были нужны высокоживучие системы передачи данных, чтобы уничтожение отдельного узла не приводило к выходу из строя всей сети. Пока каналы были медленными и потоки данных небольшими - это было приемлемо.
Каждый узел сети при этом должен решать две задачи: построение маршрута для пакета и коммутация пакета в соответствии с принятым маршрутом. С точки зрения вычислительной сложности эти задачи принципиально разные. Проблема была осознана только в девяностые годы, и люди стали пытаться их разделить, то есть вытащить все, что связано с расчетом маршрута и его оптимизацией, в отдельные специализированные сервера, оставив основной части узлов сети только задачи маршрутизации.
Именно на этом принципе построены так называемые MPLS-сети или маршрутизация по меткам. В программно-конфигурируемых сетях решение доведено до логического конца - сформулировано понятие сетевой операционной системы, управляющей ресурсами сети (маршрутизаторами, свичами, линками), как традиционная ОС управляет ресурсами компьютера. Поверх нее работают различные приложения: по маршрутизации, по балансировке потоков, по оптимизации пропускной способности каналов и т. д. и т. д. и т. д. Эти приложения работают на так называемых контроллерах, а остальные устройства просто решают задачи маршрутизации и коммутации.
- Насколько я понимаю, здесь активно используются технологии виртуализации? Живучесть контроллера (на котором очень многое завязано) мы не теряем?
- Естественно, этот подход открывает новые возможности по виртуализации.
- Но разве программно-конфигурируемые сети могут решить проблему с пропускной способностью каналов? Ведь, скажем, 2 Мбита есть 2 Мбита и ничего с этим не сделаешь на программном уровне.
- Они решают задачу балансировки нагрузки и более эффективного использования каналов, подобно тому, как виртуальные машины позволяют повысить эффективность использования вычислительных ресурсов дата-центров. Здесь то же самое - более эффективно используются имеющиеся каналы, ресурсы коммутаторов и другого оборудования. Проблема недостаточно быстрого роста пропускной способности каналов решается за счет динамического перераспределения нагрузки.
- Перейдем к экономическим аспектам проблемы. Что в данном случае важнее, технические или экономические причины?
- Промышленность никогда не будет инвестировать в то, что не приносит доход. Основной экономический фактор здесь – на 30% снижается стоимость владения компьютерными сетями за счет сокращения расходов на управление. И за счет динамической балансировки и перераспределения нагрузки вы можете повысить на 20% фактическую пропускную способность своих каналов. А значит - пропустить больше трафика и заработать больше денег.
- А какие-то недостатки и узкие места у программно-конфигурируемых сетей есть?
- Конечно. Это новое явление и у него пока отсутствует то, что называется научным бекграундом - здесь еще нужно много работать математикам по построению соответствующего аппарата. Кроме того, не до конца решены вопросы построения распределенных контроллеров - сетевые операционные системы пока не обладают должной гибкостью.
- Но ведь есть наработки, которые уже пошли в серию? Насколько мне известно, протокол OpenFlow поддерживается рядом крупных производителей сетевого оборудования.
- Количество производителей, которые выпускают поддерживающее OpenFlow оборудование растет постоянно. На сегодняшний день это и Nec и HP и Huawei и Juniper и Marvell - их много. IBM заявила о поддержке OpenFlow - эта когорта постоянно растет.
- SDN, если по-русски ПКС, базируются на открытых технологиях и стандартах?
- Есть уже несколько версий открытого стандарта OpenFlow.
- Но реализации протокола у разработчиков проприетарного железа могут быть основаны на закрытом коде?
- Этот протокол позволяет контроллеру общаться с активным сетевым оборудованием. Важно, чтобы сформулировавшее политику маршрутизации приложение могло загрузить соответствующее правило в память устройства (свича или маршрутизатора), - оборудование должно быть программно управляемым. Вот эта загрузка происходит по открытому протоколу OpenFlow. Само устройство может быть проприетарным, но, главное, оно становится программируемым. И, что самое важное - оно программируемо вами - вы сами описываете политику.
- Дурацкий вопрос, что изменится с точки зрения конечного пользователя с массовым внедрением программно-конфигурируемых сетей?
- Нововведения коснутся в первую очередь активного сетевого оборудования на стороне оператора, а также корпоративных сетей. Домашним же пользователям могут предложить новые услуги, например, администрирование сетей.
- То есть оборудование с поддержкой OpenFlow будет доступно и частным лицам?
- Вы можете поставить SDN-свич у себя дома и прописать, как вы хотите связать разные устройства. Например, если в квартире несколько комнат можно перенаправить аудиопоток из одной в другую. Более того, провайдер сможет удаленно вам помогать, устранять проблемы, подгружать софт с новым функционалом и т. д.
- И, наверное, SDN позволит снизить тарифы?
- Прежде всего, технология позволит снизить себестоимость услуг для провайдера. И отсюда повышение рентабельности его бизнеса. Одна из проблем заключается в том, что стоимость услуг повышать из-за жесткой конкурентной борьбы нельзя, а их себестоимость постоянно растет, потому что дорожает труд, оборудование усложняется, повышается его стоимость и т.д.
- Каковы ваши прогнозы развития ситуации? Настолько быстро будут внедряться технологии SDN?
- Думаю, в ближайшие три-пять лет это станет общей практикой. Если на рынке начались процессы слияния и поглощения, то есть происходит покупка занимающихся программно-конфигурируемыми сетями компаний (причем, за ощутимые деньги), то тенденции очевидны. Самое главное для нас, россиян, что открылось окно - если мы в ближайшие годы сможем наладить производство своих продуктов (хотя бы софтверных), то из потребителя технологий Россия превратится в поставщика.
- И дело не только в бизнесе - это ведь связано и с технологической независимостью и национальной безопасностью?
- Вы абсолютно правы, потому что ПКС-сети позволяют решать многие вопросы безопасности более эффективно, чем традиционные. Что касается национальной безопасности - достаточно привести пример Бушерской АЭС - в 2010 году атомная программа Ирана была в центре международного внимания. Если вредоносный код может выводить из строя технологическое оборудование, то кибервойны вполне реальны.