Словосочетание software defined, то есть программно «определенный» или «конфигурируемый», а лучше — «программно управляемый», можно сегодня встретить в различных сочетаниях: Software Defined Network, Software Defined Data Center, Software Defined WAN, Software Defined WiFi и т. п. Передача функций управления от оборудования программе возможна во многих технологиях, но что бы все это значило? Почему сегодня возник этот устойчивый оборот?

Видимо, не договариваясь между собой, представители разных профессий хотели высказать одну и ту же мысль, отражающую их стремление к сбору сложной системы из простых компонентов с одновременной передачей общей системной сложности в гибкую программируемую среду. А далее этот процесс можно интерпретировать следующим образом: мы становимся свидетелями появления новой категории машин разного предназначения, причем машин не просто управляемых встроенными в них компьютерами, как это было на протяжении многих лет, а с интегрированными в машины управляющими функциями. Такая машина сама становится чем-то вроде компьютера, но в ней программы исполняются не привычным центральным процессором, а какими-то специализированными модулями, соответствующими ее функции. То есть системой команд в таких компьютерах становятся не инструкции процессора, а команды, адресованные распределенным по машине контроллерам. Именно так строятся сети SDN и программно-конфигурируемые ЦОД. Явление это новое, и пока лидирует здесь лишь компания VMware, однако единоличное лидерство случается только на первых порах развития того или иного направления, а после выхода на рынок серьезных игроков ситуация может круто измениться. Достаточно вспомнить компанию Sonic, первой предложившую в 2002 году идею корпоративной сервисной шины ESB, а сегодня она даже не упомянута в «Википедии».

Большие ожидания

В разговоре о программно-конфигурируемых сетях невольно возникает ассоциация с кластерами Beowulf, архитектура которых стала фундаментом большинства современных суперкомпьютеров. Сходство, прежде всего, в возможности создания мощных и высокопроизводительных систем из относительно простых компонентов за счет переноса сложностей логики управления в программы. В случае SDN управление передается в программируемую часть сети, а за непосредственную диспетчеризацию трафика отвечают управляемые программой устройства. Таким образом осуществляется деление всего процесса передачи на два потока работ: управления и данных. При поверхностном взгляде может создаться ложное впечатление, что с появлением SDN проблема построения сетей значительно упростилась, поэтому, как и любое упрощение, этот подход вызывает обостренный интерес в самых разных сообществах.

Точно так же было с Beоwulf, в котором видели потенциал для конкуренции с «большими» компьютерами, и понадобилось время, чтобы осознать врожденные ограничения этой архитектуры. К тому же в ряде случаев внимание к SDN вызвано не только технологическими преимуществами нового подхода к управлению сетями, а еще и иллюзорными надеждами, которые он рождает. Находятся горячие головы, называющие SDN убийцей традиционных сетей и, следовательно, компаний, которые сделали на сетях свой бизнес, — таких энтузиастов вдохновляет пример удачи, выпавшей на долю создателей суперкластеров. Однако, оценивая практические перспективы SDN, стоит проявить некоторый консерватизм — по данным аналитиков, более половины опрошенных руководителей ИТ-департаментов крупных американских корпораций не намереваются рассматривать возможность внедрения этих технологий и только 27% респондентов в ближайшие три года видят в OpenFlow/SDN источник серьезных изменений вверенных им ЦОД.

Тем, кто считает SDN «убийцей» нынешних технологий и их производителей, хочется заметить, что в компьютерной истории навсегда исчезали лишь те вещи, физические основы которых не оставили достаточного потенциала для развития, например перфокарты и вакуумные лампы. Напротив, есть немало примеров уже отпетых, но прекрасно живущих и поныне решений, те же ленты. А сколько лет предрекали смерть мэйнфреймам, но они до сих пор живы, более того, с каждым новым витком технологической эволюции обретают новую жизнь. Мини-компьютеры переродились в Unix-серверы, а уж на что, казалось бы, устаревшее механическое устройство — вращающийся диск, но он тоже не спешит уступать место твердотельному, предлагая все новые и новые конструкции. Что же касается глобальных сетей, то использование в них SDN всего лишь часть более комплексной проблемы создания совершенного Интернета, и упор только на программно-конфигурируемые сети в отрыве от всего комплекса задач — явное упрощение.

SDN и Интернет будущего

То, что Интернет в его нынешнем виде далек от совершенства, не вызывает сомнения, а все потому, что отцы-основатели опередили требования своего времени — они и думать не могли, к чему приведет их скромное желание объединить компьютеры четырех университетов, хотя замысел был великолепен.

Весь нынешний стек технологий Интернета сложился в результате эволюционного процесса, который начался с Interface Message Processor (IMP), созданного в 1969 году компанией BBN на базе мини-компьютера Honeywell DDP-516, ставшего прообразом нынешних маршрутизаторов. За ним последовали коммутаторы, балансировщики нагрузок, устройства для трансляции сетевых адресов (Network Address Translation, NAT), защитные экраны и другие специализированные машины. На протяжении всей истории основного протокола Internet Protocol его главным достоинством оставалось то, что он поддерживает возможность независимого развития отдельных сегментов (Autonomous Systems, AS). В этом смысле Интернет напоминает обычную почту: почтовое отделение в одном городе не обязано знать об особенностях организации доставки в другом городе или другой стране. AS гарантирует свободу масштабирования и надежность, но приводит к тому, что письмо, направленное в соседнюю квартиру, пройдет по полному циклу, хотя для передачи данных в ограниченной окрестности лучше было бы что-то иное.

Изначально сеть ARPAnet, предшественница Интернета, была задумана всего лишь как средство для обмена данными в академическом сообществе в соответствии с тогдашними представлениями. С технологической точки зрения во главу угла тогда была поставлена сохранность сообщений в условиях постоянной угрозы ядерного нападения, и будучи переименованной в Интернет, эта сеть сумела сохранить свои основные свойства и при этом активно развиваться, превратившись к нашему времени в неотъемлемую часть повседневной жизни общества. Однако все эти годы адаптация к новым условиям осуществлялась за счет наложения разного рода заплаток, и вот почти полвека спустя обнаруживаются непреодолимые проблемы. Как любая система, Сеть имеет предел модернизации, и рано или поздно ей потребуется радикальное обновление, причем ревизии будет подлежать все, начиная от протокола IP и руководящего принципа AS. Не зря архитектуру современного Интернета сравнивают с песочными часами, где узкая талия есть не что иное, как IP, связывающий множество хостов, — она вполне соответствует функциям коммуникационной сети (host-to-host) с симметричным трафиком. Но в современных условиях, когда доминируют иные типы нагрузок, такие как электронная коммерция, цифровые медиа, мобильные устройства, ориентированные на асимметричный трафик, сеть в большей мере становится вещательной. Облака и сервисы, предоставляемые облачными ЦОД, предопределяют непредусмотренные в ARPAnet качества: безопасность, масштабируемость, доверительность и надежность.

Чтобы удовлетворить новым требованиям, во всем мире ведется несколько новых проектов по созданию Интернета будущего. В США таких проектов три: Future Internet Architecture (FIA), Future Internet Design (FIND) и Global Environment Framework Innovation (GENI). Седьмая рамочная программа Европейского союза по развитию научных исследований и технологий поддерживает организацию European Future Internet Assembly, объединяющую более 150 проектов, наиболее крупные из которых: 4WARD (Architecture and Design for the Future Internet) и Future Internet Research and Experimentation (FIRE). Есть также национальные проекты в Японии, Китае и Корее.

Все эти проекты отличаются разной степенью радикальности по отношению к существующей сети, и наиболее критичной оказалась возглавляемая Ником Маккеоном группа из Стэнфордского университета, опубликовавшая в 2006 году манифест проекта “Clear state design for Internet”, в котором утверждалась необходимость создания новой сети «с чистого листа». В 2012 году проект был закрыт, оставив в качестве наследия SDN и протокол OpenFlow, разделяющий данные и управление. Протокол поддержали ведущие производители сетевого оборудования и стали уже выпускать совместимое с ним оборудование.

Итог шестилетия, минувшего с момента старта проекта, был подведен на прошедшей летом 2012 года в Стэнфорде конференции Open Networking Summit, посвященной состоянию и перспективам SDN, OpenFlow и интерфейсам, поддерживающим программируемые коммутаторы и маршрутизаторы от разных производителей. Дан Питт, президент Open Networking Foundation (ONF) — организации, созданной для стандартизации OpenFlow и SDN, заявил: «Теперь мы имеем дело не с исследовательским проектом, а с вещами, без которых далее жить невозможно». Технический директор компании Nicira Networks Мартин Касадо объяснил эту ситуацию тем, что реализованное в SDN двухуровневое разделение обеспечивает независимое развитие аппаратного и программного обеспечения сетей, что напоминает тот переход от мэйнфреймов к открытым системам, который произошел в 80-е годы и стал импульсом к лишению монополий нескольких крупных компаний и формированию широкого компьютерного рынка. Исполняющий функцию главного евангелиста SDN профессор Университета Беркли Скотт Шенкер отметил: «Основной сдвиг парадигмы — логическая централизация функций управления, это начало софтверной эры в сетевых технологиях». Действительно, при наличии централизованной абонентской базы технологии SDN полностью снимают сложности определения топологии при передаче сообщений, которыми обременены современные маршрутизаторы.

Однако на конференции прозвучали не только похвалы — было подчеркнуто, что OpenFlow и SDN делают лишь первые шаги из исследовательских лабораторий в индустрию, а решения на базе OpenFlow еще технически незрелы и не проверены, что вполне допустимо для их юного возраста. Пока под вопросом такие качества, как масштабирование, надежность, безопасность, и потребуются годы на то, чтобы появились продукты, способные конкурировать по этим показателям с уже существующими. Эти трудности вполне преодолимы, и, например, для Cisco началом станет API, включаемый в инструментальный набор onePK (One Platform Kit) для платформ Integrated Services Router G2, Aggregation Services Router, Cloud Services Router и коммутаторов Nexus. Свои решения, учитывающие SDN, готовят Brocade, HP и Juniper. Но в целом у практиков отношение к SDN пока сдержанное — по данным Information Week, большинство опрошенных специалистов в ближайшие год-два не намереваются рассматривать SDN.

Общий вывод, к которому можно прийти на основе анализа проектов Future Internet, состоит в том, что OpenFlow и SDN сыграют важную роль в создании платформы открытых сетей OpenADN (Open Application Delivery Networking Platform), но, скорее всего, с учетом имеющегося гигантского задела Интернета, подход с «чистого листа» невозможен — нужны сети, сосуществующие с TCP/IP. Не следует забывать и о том, что в основном сетевые ресурсы принадлежат провайдерам, от мнения которых очень многое зависит. В вопросах реформирования Интернета стоит придерживаться умеренной позиции — SDN займут свое место, но не завтра и не по мановению волшебной палочки, а в результате совмещения оптимизма академических исследователей с прагматизмом бизнеса.

SDN в сети Google

По оценкам экспертов, SDN прежде всего найдут применение в корпоративной среде, поэтому одним из центральных событий на Open Networking Summit стало выступление «царя инфраструктуры» Google Урса Хольцеля, который, в силу обостренного отношения к секретам компании, очень редко появляется на людях. Сегодня Google полностью перестроила свою глобальную сеть, адаптировав ее под OpenFlow, — известно, что эта компания сама все создает для своих нужд (хорошо известны «желтые серверы»), а теперь решила самостоятельно создавать еще и сетевое оборудование. «Строить сетевое железо, — говорит Хольцель, — несложно, вот что действительно сложно, так это писать сетевое ПО».

 

Рис. 1. Сеть OpenFlow Google
Рис. 1. Сеть OpenFlow Google

Сейчас Google признана одним из ведущих ISP в мире — у компании две большие сети: одна поддерживает сервисы Search, Gmail, YouTube, а вторая связывает между собой крупнейшие ЦОД (рис. 1). Первая рассчитана на равномерную нагрузку в течение всего дня, поскольку запросы распределяются по 24 часовым поясам, а нагрузка на вторую обычно имеет импульсный характер, возрастая при обмене большими объемами данных, измеряемыми петабайтами, — например, в случае выпуска новых сервисов, которые должны быть доступны синхронно по всему миру. Классический подход для решения задачи перемещения огромных массивов данных невозможен (перемещение в пространстве физических контейнеров из дисков), и выход был найден в OpenFlow.

В чем же в данном случае преимущество SDN? Здесь налицо типичный инженерный компромисс. Коммутация пакетов, как она реализована в IP, гарантирует доставку при любых условиях — что бы ни произошло, будет найдена топология, пройдя по которой, пакет дойдет до получателя, но за это приходится платить избыточностью. SDN не совершает чуда — централизованное управление позволяет проложить канал, по которому пакеты пойдут напрямую, что на порядки производительнее. Сбой в передаче возможен, но управляющая программа его обнаружит и исправит, однако не так оперативно, как в первом случае. Хольцель пояснил, что в Google давно искали такого рода решение, и тут появились SDN. Google начала тестировать коды OpenFlow, полученные от проекта Clean Slate в 2009 году, еще до официальной публикации протокола. Компания построила коммутаторы для сети G-Scale с 128 портами, работающими на скорости 10 Гбит/с, используя для этого стандартные чипы. Сам коммутатор Google OpenFlow чрезвычайно прост — на нем работает лишь агент OpenFlow, использующий протокол маршрутизации промежуточных систем IS-IS (Intermediate System To Intermediate System) и основной протокол пограничного шлюза BGP (Border Gateway Protocol). В результате удалось на 100% использовать пропускную способность каналов и решить задачу перемещения больших объемов данных по собственным сетям.

SDDC — будущее ЦОД

Через относительно небольшой промежуток времени все крупные ЦОД превратятся в более или менее однородные структуры, внутреннее устройство которых будет скрыто технологиями виртуализации. Сегодня намечаются три основных пути к созданию таких гиперкомпьютеров.

Каждый член «большой четверки» (CA Technologies, HP, BMC и IBM) имеет свое собственное управляющее ПО на уровне виртуализации всего ЦОД, поэтому им выгоднее его развивать, а для этого на нижнем уровне отдавать предпочтение дешевым и свободно распространяемым гипервизорам, например KVM (Kernel-based Virtual Machine) от Red Hat, обеспечивающим виртуализацию в средах Windows и Linux с поддержкой аппаратной технологии виртуализации Intel VT (Virtualization Technology) и AMD SVM (Secure Virtual Machine).

Поставщикам облачных платформ выгоднее развивать свое облачное ПО, основанное на протоколах OpenStack либо CloudStack, а в ряде случаев свое проприетарное решение.

Третий путь — это путь компании VMware, сделавшей в 2012 году два важных приобретения: DynamicOps, разработчика решений в сфере автоматизации облачных вычислений, позволяющих контролировать предоставление ресурсов и управлять ИТ-сервисами в гетерогенных средах — частных и публичных облаках на базе решений VMware; Nicira, производителя технологий для SDN. По пути VMware пошли также Oracle и Cisco: первая покупает конкурента Nicira — компанию Xsigo Systems, а вторая — стартап Insieme, также разрабатывающий технологии SDN. В близком будущем SDN могут найти себя в локальных сетях, особенно при создании программно-конфигурируемых ЦОД (Software Defined Datacenter, SDDC). С уходом Менделя Розенблюма идеологом виртуализации в VMware стал Стив Херрод, взгляды которого на виртуализацию оказались существенно шире, чем у предшественника, который был сосредоточен исключительно на процессорах. Именно Херрод предложил термин SDDC, который хотя и похож на SDN, но из этого вовсе не следует, что сети только этого типа могут использоваться в подобных ЦОД. Возможно, SDN наиболее близки к идеалу, но не исключены и другие решения. Кроме того, VMware в 2011 году вывела в свет технологию VXLAN (Virtual Extensible Local Area Network) для создания виртуальной расширяемой локальной сети, способной масштабироваться для поддержки миллионов логических сетей, необходимых для запуска приложений в облаках. Для эффективного использования физических сетевых ресурсов эта технология поддерживает работу приложений в гибридной облачной среде, допускающей размещение вычислительных ресурсов как в частных, так и в публичных облаках.

Виртуализацию ЦОД на данный момент можно назвать вершиной процесса, который начался с абстрагирования физических ресурсов (процессоров) и предоставления их в виде логических ресурсов. На следующем шаге открылась возможность сбора логических ресурсов в пулы и автоматизации балансировки нагрузки между пулами с целью достижения большей эффективности. Постепенно процесс автоматизации стал распространяться на все виды ресурсов. Появление программно-конфигурируемых сетей открывает возможность распространить его с третьего на седьмой уровень модели OSI. Сочетание абстрагирования от физических ресурсов и интеграции виртуальных ресурсов в общие пулы с автоматизацией и дают программно-конфигурируемый ЦОД.

Создание SDDC позволит в полной мере использовать преимущества виртуальных ЦОД, поскольку мало просто разделить ресурсы одного процессора на несколько виртуальных машин, как это делалось на первых порах, — еще необходимо научиться оптимальным образом распределять нагрузку, осуществлять контроль исполнения и обеспечивать безопасность. В идеале в будущем можно будет вообще отказаться от специализированного оборудования со специализированным ПО, а достаточно будет описать требования того или иного приложения к необходимым ему ресурсам: вычислительной мощности, объему системы хранения, пропускной способности каналов и уровню безопасности.

Херрод сделал следующее предвидение: «Наступает эпоха, когда специализированное ПО заменит собой специализированное аппаратное обеспечение. Это станет возможным, поскольку гипервизоры обеспечили виртуализацию вычислений, а SDN позволят распространить виртуализацию на все остальные уровни стека ИТ. Вместе с SDDC возникнет новое поколение приложений». Он считает, что одна из основных проблем, а скорее, парадокс ИТ, заключается в том, что не инфраструктура порождает приложения, а наоборот, приложения диктуют, какой быть инфраструктуре. По его мнению, пакетный режим породил мэйнфреймы, а веб-приложения дали толчок появлению стеков типа LAMP (Linux, Apache, MySQL, PHP) и ему подобных. В результате ЦОД превратились в мешанину, состоящую из разных специализированных и унаследованных систем — современные ЦОД стали историческим музеем устаревших идей ИТ. Этими словами можно характеризовать явное желание VMware распространить свои успехи в области гипервизоров на все пространство ИТ.

SDN и OpenFlow способны помочь в решении еще одной проблемы — оптимизации обмена данными между отдельными ЦОД, объединенными в одно облако. Традиционно обмен данными внутри ЦОД осуществляется на втором уровне модели OSI, а между удаленными ЦОД — на третьем, что казалось вполне удовлетворительным до тех пор, пока виртуальные машины не получили возможность миграции через физические границы ЦОД. В новых условиях для виртуальных машин данные должны быть равно доступны вне зависимости от их физического местоположения. Однако на пути данных возникает барьер в виде соединения на третьем уровне OSI. Переход на SDN позволяет преодолеть этот барьер. Готовые решения (рис. 2) уже предлагает компания Vello, предоставляя возможность объединять в одно облако ЦОД одного региона (решение типа intra-metro) и ЦОД, удаленные на тысячи километров (решение типа inter-metro).

 

Рис. 2. Облако из удаленных ЦОД
Рис. 2. Облако из удаленных ЦОД

 

Одной из важнейших составляющих SDDC является программно-конфигурируемая система хранения (Software Defined Storage, SDS), в основе которой лежит гипервизор систем хранения (Storage Hypervisor). Лидером в этом направлении является компания DataCore со своим продуктом SANsymphony-V, представляющим собой такой же гипервизор, как и для процессора, но объединяющий разнородные ресурсы и предоставляющий их в унифицированной форме.

OpenFlow, SDN и виртуализация

На форуме ONF о взаимосвязи OpenFlow и SDN с виртуализацией говорил технический руководитель компании Nicira Мартин Касадо, один из основных разработчиков OpenFlow. Он подчеркнул, что сами по себе OpenFlow и SDN не обеспечивают виртуализации сетей — эту функцию реализуют технологии, лежащие поверх SDN. Виртуалиазация сетей повышает безопасность и изолированность, упрощает операции, связанные с управлением, но она не зависит от того, построена ли сеть с использованием OpenFlow, SDN или других технологий. Все, на что способна сеть, работающая по протоколу OpenFlow, ограничено управлением коммутаторами и поддержкой ПО, работающего на этих коммутаторах, но от этого сеть не становится независимой от топологии. «SDN есть не что иное, как набор средств, а виртуализация сети — это конкретное решение, использующее в том числе и этот набор. Виртуализация решает множество проблем, например, отделяет политику безопасности от физической топологии, поддерживает мобильность, но построена ли сеть с использованием SDN или нет, с решением не связано. Вопрос в другом, будет ли решение так же масштабируемым, если вы не используете SDN», — пояснил Касадо. С его мнением был согласен на форуме и представитель компании HP, отметивший, что OpenFlow и SDN обеспечивают возможность программирования сети, а приложения, которые служат для виртуализации или для каких-то иных целей, улучшающих свойства сети, например для поддержки BYOD, могут использовать предоставляемую возможность. Тот факт, что сеть можно программировать, позволяет придавать ей нужные качества, настраивать на нужные приложения, в том числе для работы с Большими Данными. Пока в области виртуализации сетей на рынке представлены два основных решения: Virtual Extensible LAN (VXLAN), поддерживаемое компаниями Cisco, VMware и Arista, и Network Virtualization Generic Routing and Encapsulation (NVGRE), поддерживаемое Microsoft, Dell и Intel.

Коммерциализация SDN

По оценкам аналитиков, через пять лет рынок технологий SDN приблизится к 2 млрд долл. и на нем будут доминировать два типа компаний. Классические поставщики сетевого оборудования (Cisco, Juniper, Huawei и др.), скорее всего, будут развивать гибридные решения, при этом сделают свои продукты более программируемыми и откроют их API, но частично сохранят интеллект в коммутирующем и маршрутизирующем оборудовании. Крупные софтверные компании (VMware, Microsoft, Citrix и др.) сделают ставку на управляемые контроллеры и соответствующим образом изменят свои облачные предложения. Но на фоне этих гигантов огромную роль играют стартапы, такие как Big Switch, Vello Systems, Adara Networks и Nivira, недавно купленная VNware.

Можно говорить о четырех основных областях применения SDN: коммутация, контроллеры, виртуализация облачных приложений и виртуализация средств безопасности сетевых решений. Основные потребители делятся на три категории: телекоммуникационные провайдеры, облачные провайдеры и крупные корпоративные ЦОД. Гиганты (Google, Facebook, Amazon и Microsoft) пойдут по пути создания собственных контроллеров, а университеты, исследовательские организации и корпорации поменьше отдадут предпочтение готовым решениям.

В целом рынок ждут заметные перемены; по оценкам Woodside Capital, меньшие по своим размерам компании станут конкурировать с Cisco и Juniper, что со временем может отразиться на ценах, но в ближайшие год-два ситуация не изменится. При этом обе компании активно развивают свои собственные инициативы из области SDN. Аналитики скептически относятся к намерениям в этой области Dell и HP, считая, что эти компании не обладают достаточной экспертизой для выхода на незнакомый им сегмент рынка, в то время как шансы IBM считаются высокими, особенно в свете сотрудничества с Juniper при работе над созданием коммутирующей инфраструктуры Q-Fabric.

На пути широкого распространения SDN еще немало препятствий и открытых вопросов. Главный из них в том, что стандартизация OpenFlow еще не достигла того уровня зрелости, при котором возникают условия для массового выпуска. Производители микросхем для коммутаторов (Intel и Brocade) пока еще ориентированы на традиционные устройства, и от них что-то можно ожидать не ранее 2013 года. Существующие же устройства нуждаются в том, что в автомобилестроении называют доводкой, — мало сделать новое устройство, нужно еще обеспечить ему необходимые эксплуатационные качества, нынешним контроллерам SDN не хватает масштабируемости, и, чтобы преодолеть этот недостаток, потребуется еще пара лет.

***

То, что сейчас намечается в сетях, напоминает события начала семидесятых, когда появилась OC Unix, нанесшая невероятной силы удар по сложившемуся на тот момент стилю поведения и по ментальности тех, кто работал в ИТ-департаментах. Достаточно посмотреть на фотографии того времени. На смену строгим людям в белых халатах пришли отвязанные бородачи в майках и джинсах. Не исключено, что программирование сетей не только окажет влияние на технологии, но и изменит тип людей, занятых в этой сфере. Сегодняшние «сетевики» не похожи на «компьютерщиков», отличающихся прежде всего большей внутренней свободой. Типология умных и постоянно занятых важным делом людей впервые изменилась с появлением Unix и открытых систем, а ПК полностью оставили в прошлом официозный корпоративный стиль. Эта свобода в немалой степени способствовала формированию нынешнего мобильного мира. Трудно предположить, что бы было, если бы развитие пошло только по пути мэйнфреймов. Появление технологий типа SDN грозит такими изменениями, которые мы сегодня даже не можем себе представить.

Поделитесь материалом с коллегами и друзьями

Купить номер с этой статьей в PDF