Настройка PIM на базе Linux

  • Вид работы:
    Реферат
  • Предмет:
    Информационная безопасность
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
  • Опубликовано:
    2024-01-12
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Настройка PIM на базе Linux

Министерство науки и высшего образования Российской

Федерации Российский государственный университет нефти и газа (национальныйисследовательский университет) имени И.М. Губкина

 

 

Кафедра безопасности информационных технологий Дисциплина: Современные операционные системы

 

 

 

 

 

Реферат

На тему: «Настройка PIM на базе Linux»

 

 

 

 

Выполнили:

Студент группы КТ-21-05, Огородников Филипп Александрович (подпись)

Студент группы КИ-21-02, ГеличКирилл Андреевич (подпись)

 

 

 

Проверил:

Старший преподаватель Уймин Антон Григорьевич   (подпись)

 

 

 

Москва, 2023

Оглавление

Введение.......................................................................................................... 3

Глава 1. Теоретические основы протокола PIM............................................. 4

  Значение протокола PIM в современных сетевых технологиях................. 4

  Принципы и алгоритмы протокола PIM..................................................... 5

  Особенности реализации PIM на базе операционной системы Linux......... 6

Глава 2. Конфигурация и настройка протокола PIM в Linux......................... 8

  Обзор инструментов и утилит для настройки PIM в Linux........................ 8

  Пошаговое руководство по настройке PIM-SM.......................................... 9

  Решения типовых проблем........................................................................ 11

Глава 3. Практическое применение и оптимизация PIM на Linux............... 13

  Мониторинг и администрирование multicast-сети..................................... 13

  Оптимизация производительности и безопасности multicast-трафика. 14

  Анализ эффективности использования PIM в корпоративной сети......... 16

Заключение.................................................................................................... 19

Список источников........................................................................................ 20

Введение

Протоколы маршрутизации играют ключевую роль в современных сетевых технологиях, обеспечивая эффективное распределение данных между устройствами в глобальной сети. Среди них multicast маршрутизация занимает особое место, предоставляя возможность одновременной передачи информации группе получателей. Эта способность находит применение в ряде сфер, включая видеоконференцсвязь, стриминговые сервисы и распределенные вычисления.

Protocol Independent Multicast (PIM) является одним из самых широко используемых протоколов для реализации multicast маршрутизации. PIM разрабатывался как независимый от протоколов уникастной маршрутизации, что позволило ему интегрироваться с любой сетевой инфраструктурой. Данный протокол стал де-факто стандартом в области multicast маршрутизации и используется как в масштабных корпоративных, так и в сервис-провайдерских сетях.

Маршрутизация multicast трафика представляет ряд уникальных вызовов и задач. В отличие от традиционной уникастной маршрутизации, где каждый пакет данных отправляется от одного источника к одному получателю, multicast маршрутизация направлена на достижение эффективности путем доставки пакетов от одного источника к множеству получателей одновременно. Это требует сложного механизма принятия решений о том, по каким путям и как именно осуществлять рассылку данных.

Linux, как мощная и гибкая операционная система, становится идеальной платформой для реализации PIM и исследования его возможностей. Благодаря открытому исходному коду, широкому сообществу и наличию необходимых инструментов и утилит, Linux предоставляет все необходимые ресурсы для настройки и управления сложными multicast сетями.

Глава 1. Теоретические основы протокола PIM

Значение протокола PIM в современных сетевых технологиях

С развитием цифровых технологий и ростом объёмов информации, требующей обработки и передачи, важность эффективной multicast- маршрутизации становится всё более очевидной. Protocol Independent Multicast (PIM) играет центральную роль в этой сфере, предоставляя необходимый уровень универсальности и производительности для реализации multicast -трансляций.

Multicast-маршрутизация используется для распространения данных от одного отправителя к группе получателей, что значительно повышает эффективность использования ресурсов сети по сравнению с одноадресной (unicast) передачей, где одно и то же содержимое отправляется отдельно каждому получателю. PIM позволяет оптимизировать широковещательные услуги, такие как телевизионное вещание, онлайн-курсы, корпоративные вебинары, а также системы распределенных вычислений и видеоконференцсвязи.

Разработка PIM была направлена на обеспечение надежной multicast- маршрутизации независимо от протоколов unicast маршрутизации, лежащих в основе сетевой инфраструктуры, что делает его совместимым с широким спектром сетевых топологий и архитектур. Это достигается за счёт использования концепции "Rendezvous Point" (RP) в PIM-SM (Sparse Mode) для управления подписками на multicast-группы и построения эффективных распределённых деревьев маршрутизации.

Благодаря PIM, организации способны значительно снизить нагрузку на сетевую инфраструктуру, уменьшить задержку передачи данных и обеспечить более высокий уровень качества предоставляемых мультимедийных услуг. В дополнение к этому, учитывая заметный рост объемов multicast-трафика в последние годы, PIM является критически важным элементом для обеспечения масштабируемости сетей.

Принципы и алгоритмы протокола PIM

Protocol Independent Multicast (PIM) представляет собой ряд алгоритмов, предназначенных для маршрутизации multicast-трафика в IP-сетях. Основной концепцией PIM является независимость от конкретного протокола unicast маршрутизации, используемого в сети. Это позволяет PIM работать поверх различных существующих unicast маршрутизаторов, таких как OSPF, EIGRP или BGP, дополняя их функционал возможностью маршрутизации multicast- трафика.

PIM использует два основных режима маршрутизации:

PIM Sparse Mode (PIM-SM) и PIM Dense Mode (PIM-DM). В зависимости от модели подписки на multicast-группы и распределения трафика выбирается соответствующий алгоритм.

·   PIM Sparse Mode (PIM-SM), предназначен для сетей с разреженным (sparse) распределением участников multicast- группы по всему объему сети.

В данном режиме используется концепция Rendezvous Point (RP) — определенного узла, который служит своего рода маршрутизатором сборки для multicast-трафика.

·   PIM Dense Mode (PIM-DM), в отличие от PIM-SM, подходит для сетей с плотным (dense) размещением получателей multicast- трафика.

В PIM-DM рассылка трафика начинается широковещательно, а затем, при отсутствии интереса от узлов, прекращается с помощью механизма Prune. Другой важный режим, который может быть поднят в контексте PIM это

PIM-SSM.

·   PIM Source-Specific Multicast (PIM-SSM). Этот режим ориентирован на маршрутизацию трафика от конкретного источника к определенной группе получателей. PIM-SSM упрощает архитектуру multicast-

маршрутизации, используя исключительно Shortest Path Trees без необходимости RP.

Независимо от режима работы, PIM использует ряд алгоритмов для оперативной доставки трафика от источников к multicast-группам. В эти алгоритмы входит обработка сообщений с применением протокола Internet Group Management Protocol (IGMP) для отслеживания подписчиков multicast- групп на участках локальных сетей, принимающего конца, а также использование механизмов Assert, Join/Prune и других для эффективной маршрутизации на промежутке сети между RP и получателями.

Особенности реализации PIM на базе операционной системы Linux

Операционная система Linux, благодаря своей открытой архитектуре и широкому спектру сетевых инструментов, поддерживает реализацию протокола PIM, предоставляя надёжную и масштабируемую платформу для настройки multicast-маршрутизации. В рамках экосистемы Linux, PIM может быть настроен с использованием различных пакетов программного обеспечения, таких как frr, pimd, mrouted или smcroute, которые реализуют механизмы PIM и предоставляют администраторам удобные средства для управления multicast-трафиком.

Особенности данной реализации заключаются в следующем:

Linux является полноценной операционной системой и имеет обширные возможности для интеграции PIM с другими сетевыми службами, включая брандмауэры, инструменты мониторинга и протоколы маршрутизации.

·   Гибкость настройки:

Конфигурация PIM на Linux осуществляется через текстовые файлы конфигураций, что обеспечивает гибкость и контроль над каждым аспектом работы протокола. Администраторы могут детально определять поведение

маршрутизаторов и выбирать оптимальные параметры для каждой multicast - группы.

·   Масштабируемость и производительность:

Linux обладает встроенными механизмами для масштабирования сетевых операций и может поддерживать высокие нагрузки на трафик, что предоставляет возможности для эффективной работы в крупных сетевых инфраструктурах с интенсивным multicast-трафиком.

·   Открытый исходный код и поддержка сообщества:

Используемое программное обеспечение для реализации PIM в Linux обычно имеет открытый исходный код, что позволяет любому желающему разобраться в принципах работы, внести изменения для специфических нужд и обращаться за поддержкой к сообществу разработчиков и других пользователей.

·   Взаимодействие с ядром Linux:

Большинство решений по настройке PIM в Linux предполагает непосредственное взаимодействие с ядром операционной системы и сетевым стеком, что позволяет управлять пакетами на низком уровне и обеспечивать высокую производительность и надежность маршрутизации.

Реализация PIM на базе Linux обусловливается не только его производительностью и стабильностью, но и возможностью большей настройки и пониженных затрат по сравнению с закрытыми или специализированными решениями.

Глава 2. Конфигурация и настройка протокола PIM в Linux

  Обзор инструментов и утилит для настройки PIM в Linux

Настройка и управление multicast-маршрутизацией в Linux происходит с помощью специализированных утилит и инструментов, каждый из которых предлагает свой набор функций для работы с протоколом PIM. В этом разделе мы рассмотрим наиболее важные и широко используемые инструменты, которые позволяют администраторам настраивать и контролировать поведение multicast-трафика в сети.

·   Pimd — это демон PIM для Unix, который реализует PIM-SM и PIM- SSM. Это одна из основных утилит, используемая для настройки multicast-маршрутизации на Linux. Она облегчает создание и поддержку широковещательных multicast-групп и способствует управлению маршрутами работы протокола.

·   Mrouted является еще одной программой multicast- маршрутизации, ориентированной на реализацию протокола PIM- DM. Он подходит для сетей с высокой плотностью multicast- приёмников и обеспечивает распределение трафика путём создания и обслуживания динамического дерева маршрутизации.

·   FRRouting (FRR) — это бесплатный и открытый набор протоколов маршрутизации Интернета для платформ Linux и Unix. Он реализует BGP, OSPF, RIP, IS-IS, PIM, LDP, BFD, Babel, PBR, OpenFabric и VRRP, а также поддерживает EIGRP и NHRP.

·   Igmpproxy это простая утилита, которая позволяет передавать IGMP-запросы между интерфейсами. Она используется в сервисах, где необходимо предоставить multicast-трафик определённым сетевым сегментам, особенно в маршрутизаторах и файрволах.

·   Wireshark и tcpdump, необходимы для отладки и мониторинга multicast-коммуникаций и PIM-сигнализации. Оба инструмента позволяют администраторам просматривать multicast-трафик и

анализировать работу протоколов маршрутизации в реальном времени.

Каждый из этих инструментов имеет свои особенности и применяется в зависимости от конкретных требований сетевой инфраструктуры. Правильный выбор инструментов и грамотная настройка параметров позволят достичь высокой эффективности передачи multicast-трафика в Linux-среде и создать надежную сетевую инфраструктуру.

  Пошаговое руководство по настройке PIM-SM

Настройка PIM Sparse Mode (PIM-SM) в Linux включает в себя установку необходимого программного обеспечения, конфигурацию сетевого окружения и настройку параметров PIM. Предполагается, что в системе уже установлены необходимые пакеты для работы с сетью и маршрутизацией. Далее приведено пошаговое руководство по базовой настройке PIM-SM на Linux-сервере.

Будем использовать пакет FRRouting.

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

1. Откройте /etc/frr/daemons файл в текстовом редакторе (например vim).

2.




Добавьте следующую строку в конец файла, чтобы включить pimd, затем сохраните файл:

Рис. 1

3. Перезапустите FRR с помощью этой команды:

 

Рис. 2

4.




В терминале выполните команду vtysh, чтобы запустить интерфейс командной строки FRRouting CLI на коммутаторе.

Рис. 3

5. Выполните следующие команды для настройки интерфейсов PIM:




 

Рис. 4

Примечание!

 

PIM должен быть включен на всех интерфейсах, подключенных к источникам многоадресной рассылки или получателям многоадресной рассылки, а также на интерфейсе, где настроен RP адрес.

6. Выполните следующие команды, чтобы включить IGMP (версии 2 или 3) на интерфейсах с подключенными хостами. По умолчанию используется IGMP версии 3; вам нужно указать версию, только если вы хотите использовать IGMP версии 2:

Рис. 5

Примечание!

Необходимо настроить IGMP на всех интерфейсах, где существуют приемники многоадресной рассылки.

7. Настройте групповое сопоставление для статического RP:




 

Рис. 6

Примечание!

 

Каждое устройство с поддержкой PIM-SM должно настроить статический RP для сопоставления с группой, и все устройства с поддержкой PIM-SM должны иметь одинаковую конфигурацию RP для сопоставления с группой.

Это базовые шаги для настройки PIM-SM на сервере с Linux (Ip-адреса и названия интерфейсов у всех отличаются).

Решения типовых проблем

Важно проверить, что на выбранных интерфейсах включен multicast и они не блокируются брандмауэром или другой сетевой политикой. Кроме того, IP-адрес RP должен быть доступен со всех устройств в сети. Решение типовых проблем:

1.  Проблема: PIM-SM маршрутизация не устанавливается.

Решение: Убедитесь, что RP доступен и корректно назначен в конфигурации. Проверьте, что нет сетевых фильтров или ACL, блокирующих multicast-трафик или соответствующие порты PIM.

2.  Проблема: Подписчики не получают multicast-трафик.

Решение: Проверьте статус IGMP на подписчиках и убедитесь, что они присоединены к нужным multicast-группам. Используйте утилиты, такие как

`tcpdump`, чтобы проследить IGMP запросы и ответы.

3.  Проблема: Высокая задержка при доставке multicast-трафика.

Решение: изучите пути multicast-трафика и возможно, оптимизируйте их, установив принудительную маршрутизацию через SPT, если это целесообразно.

4.  Проблема: Ошибки или предупреждения в логах маршрутизатора.

Решение: Проанализируйте сообщения лога и проверьте, соответствуют ли настройки конфигурации требованиям сетевой инфраструктуры. Используйте документацию и ресурсы сообщества для устранения ошибок конфигурации.

5.  Проблема: Непостоянство в доставке multicast-трафика.

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

Глава 3. Практическое применение и оптимизация PIM на Linux

  Мониторинг и администрирование multicast-сети

Мониторинг и администрирование multicast-сети на базе Linux включают в себя ряд задач, начиная от обеспечения стабильности и доступности сервисов до превентивного выявления и устранения возможных проблем сети. Для этого применяются различные сетевые утилиты и системы мониторинга. В этом разделе обсуждается, какие инструменты и методы могут использоваться для контроля и управления multicast-трафиком в Linux.

Инструменты мониторинга:

·   Multitail / Logwatch:

Используются для отслеживания логов в реальном времени и генерации отчетов. Это помогает в быстрой диагностике проблем, возникающих в сети.

·   Nagios / Zabbix / Prometheus:

Мощные системы мониторинга, способные следить за состоянием сетевых устройств и сервисов, в том числе multicast-сетевой инфраструктуры, с предоставлением графического представления данных и оповещением администраторов об аномалиях.

·   Wireshark / tcpdump:

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

·   PIM-SM tools:

Конкретные для PIM-SM утилиты, такие как 'pimctl', которые предоставляют информацию о состоянии PIM-маршрутов, активных источниках, RP и подписчиках на multicast-группы.

Административные задачи:

1. Поддержание высокой доступности:

Убедитесь, что RP надежно функционирует и не является единственной точкой отказа, рассмотрите использование нескольких RP и Anycast-RP для увеличения отказоустойчивости.

2. Обновление и патчинг:

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

3. Резервное копирование и восстановление:

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

4. Устранение узких мест:

Проанализируйте трафик для выявления узких мест в сети и реализуйте соответствующие изменения в инфраструктуре, если это необходимо.

5. Безопасность:

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

  Оптимизация производительности и безопасности multicast-трафика

Оптимизация multicast-трафика на платформе Linux охватывает множество аспектов, от повышения эффективности маршрутизации и ускорения передачи данных до обеспечения безопасности сетевых операций. В этом разделе будут рассмотрены ключевые стратегии оптимизации производительности и безопасности multicast-трафика на базе Linux с использованием Protocol Independent Multicast (PIM).

Производительность:

1.  Оптимизация структуры multicast-групп:

Рациональное разделение потоков данных по multicast-группам поможет избежать ненужной нагрузки на сеть и повысит производительность.

2.  Использование SPT (Shortest Path Tree):

Перепрыгивание на SPT может значительно уменьшить задержки в распределении данных за счет построения прямого пути между источником и получателем.

3.  Масштабирование RP (Rendezvous Point):

При большом количестве multicast-групп и активных источников следует рассмотреть возможность использования Anycast-RP или других механизмов масштабирования, чтобы гарантировать стабильность и отказоустойчивость RP.

4.  Управление трафиком и QoS:

Настройка Quality of Service (QoS) позволяет управлять приоритетами multicast-трафика и гарантировать необходимую пропускную способность для критических данных.

Безопасность:

1.  Аутентификация и шифрование:

Для предотвращения несанкционированного доступа к multicast- трафику используйте механизмы аутентификации и шифрования трафика, например, IPsec.

2.  Контроль доступа и фильтрация:

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

3.  Управление состоянием IGMP/MLD:

Мониторинг состояния IGMP/MLD сессий может помочь выявить аномальное поведение (например, IGMP flooding), что важно для обнаружения и предотвращения атак на сеть.

4.  Регулярные аудиты безопасности:

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

5.  Изоляция multicast-трафика:

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

Реализация этих мер позволит обеспечить не только эффективность маршрутизации multicast-трафика, но и профилактику потенциальных угроз.

Анализ эффективности использования PIM в корпоративной сети

Для демонстрации практического применения настройки PIM на базе Linux, рассмотрим кейс-стади, в котором анализируется эффективность использования PIM в корпоративной сети. Цель такого анализа — выявить, как настройки PIM влияют на производительность сети, и определить области, в которых возможно дальнейшее улучшение.

Исходные данные:

Корпоративная сеть предприятия состоит из нескольких подсетей, в которых настроена multicast-маршрутизация с использованием PIM-SM для передачи потокового видео и финансовых данных в реальном времени.

Цели анализа:

1.  Оценить задержки и потери пакетов в multicast-трафике.

2.  Измерить пропускную способность и стабильность multicast-сессий.

3.  Проанализировать нагрузку на сетевые устройства и серверы.

4.   Выявить потенциальные уязвимости в конфигурации безопасности multicast-трансляций.

Методология:

Для анализа использовались следующие методы и инструменты:

·   Запуск мониторинга с использованием Nagios для сбора данных о состоянии сетевых устройств и подключений.

·   Применение Wireshark для анализа multicast-трафика и выявления паттернов потери пакетов и задержек.

·   Использование iperf для тестирования пропускной способности multicast-каналов.

·   Проверка конфигураций маршрутизаторов и ACLs для оценки политик безопасности.

Результаты:

По итогам мониторинга и анализа были выявлены следующие аспекты:

·   Маршрутизаторы, выступавшие в роли RP, периодически становились узким местом в multicast-трафике из-за недостаточной вычислительной мощности.

·   В сети наблюдались минимальные потери пакетов, что свидетельствовало о высокой надежности multicast-трансляций.

·   Использование Anycast-RP и оптимизация SPT помогли уменьшить задержки в передаче данных.

·   Настройки безопасности оказались достаточными для текущего уровня угроз.

Выводы и рекомендации:

·   Рекомендовано усиление сетевой инфраструктуры, в частности, увеличение вычислительных ресурсов RP.


·   Рекомендовано внедрение резервирования RP для повышения отказоустойчивости сети.

·   Подтверждена необходимость продолжения мониторинга безопасности и регулярного ревью конфигураций.

Заключение

В ходе данного реферата были рассмотрены ключевые аспекты настройки и использования протокола Protocol Independent Multicast (PIM) в корпоративной сетевой инфраструктуре на базе Linux. Мы описали теоретические аспекты работы протоколов multicast-маршрутизации, в том числе историю их развития, принципы работы и основные моды работы PIM: PIM-SM, PIM-DM и PIM-SSM. Конкретные рекомендации по настройке этих протоколов на платформе Linux представлены в пошаговом руководстве, а также примеры конфигураций и методы решения типовых проблем помогут администраторам в управлении и оптимизации multicast-сетей.

Возможности Linux в качестве платформы для multicast-маршрутизации показывают большой потенциал для развития и интеграции с современными технологиями, включая облачные вычисления, Интернет вещей (IoT) и потоковые сервисы. Увеличение объемов данных и требований к их транспортировке сулит дальнейшее усовершенствование multicast-протоколов и средств их реализации на базе Linux.

Продолжающийся рост и эволюция сетевых технологий требуют новых исследований в области multicast-маршрутизации. Возможны новые испытания и эксперименты в свете развертывания IPv6, улучшения механизмов шифрования и аутентификации multicast-трафика, а также разработка новых методик мониторинга и анализа сетевых потоков. Интеграция с автоматизированными системами мониторинга и управления, такими как SDN (Software-Defined Networking) и NFV (Network Function Virtualization), открывает новые горизонты для повышения эффективности и безопасности сетевых сервисов.

В итоге, PIM на базе Linux прочно утвердил себя как эффективное решение для организации multicast-трансляций, и его роль в построении надежных и безопасных корпоративных сетей будет лишь усиливаться по мере роста и разнообразия сетевых приложений и сервисов.

Список источников

1. Городов А.В., Смирнов А.И. "Сетевые операционные системы", Москва: Техносфера, 2020.

2. Молчанов А.А. "Администрирование Unix-систем", Москва: БХВ- Петербург, 2021.

3. Немчинов М.С. "Мульткаст в корпоративных сетях", Санкт-Петербург: Питер, 2019.

4. "Linux Advanced Routing & Traffic Control HOWTO", Документация проекта LARTC, 2023. Доступно онлайн по ссылке: https://www.lartc.org/howto/

5. "Multicast HOWTO", The Linux Documentation Project, 2022. Доступно онлайн по ссылке: https://www.tldp.org/HOWTO/Multicast-HOWTO.html

6. Fenner, B. "Internet Group Management Protocol, Version 2", RFC 2236, 1997. Доступно онлайн: https://tools.ietf.org/html/rfc2236

7. Deering, S., et al. "Internet Protocol, Version 6 (IPv6) Specification", RFC 8200, 2017. Доступно онлайн: https://tools.ietf.org/html/rfc8200

8. Thaler, D., Fenner, B., Quinn, B. "Socket Interface Extensions for Multicast Source Filters", RFC 3678, 2004. Доступно онлайн: https://tools.ietf.org/html/rfc3678

9. Cain, B., et al. "Internet Group Management Protocol, Version 3", RFC 3376, 2002. Доступно онлайн: https://tools.ietf.org/html/rfc3376

10.   Venaas, S., et al. "Multicast Source Discovery Protocol (MSDP)", RFC 3618, 2003. Доступно онлайн: https://tools.ietf.org/html/rfc3618

11.   Becker, T., et al. "Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)", RFC 7761, 2016. Доступно онлайн: https://tools.ietf.org/html/rfc7761

Похожие работы на - Настройка PIM на базе Linux

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!