Stp cisco как настроить

Stp cisco как настроить

STP (Spanning Tree Protocol) — сетевой протокол (или семейство сетевых протоколов) предназначенный для автоматического удаления циклов (петель коммутации) из топологии сети на канальном уровне в Ethernet-сетях. Первоначальный протокол STP описан в стандарте 802.1D. Позже появилось несколько новых протоколов (RSTP, MSTP, PVST, PVST+), отличающихся некоторыми особенностями в алгоритме работы, в скорости, в отношении к VLANам и ряде других вопросов, но в целом решающих ту же задачу похожими способами. Все их принято обобщённо называть STP-протоколами.

Протокол STP в своё время был разработан мамой Интернета Радией Перлман (Radia Perlman), а позже, в начале 90х превратился в стандарт IEEE 802.1D.

В настоящее время протокол STP (или аналогичный) поддерживается почти всеми Ethernet-коммутаторами, как реальными, так и виртуальными, за исключением самых примитивных.

Алгоритм действия STP (Spanning Tree Protocol)

  • После включения коммутаторов в сеть, по умолчанию каждый коммутатор считает себя корневым (root).
  • Каждый коммутатор начинает посылать по всем портам конфигурационные Hello BPDU пакеты раз в 2 секунды, максимальный промежуток 20 секунд.
  • Если мост получает BPDU с идентификатором моста (Bridge ID) меньшим, чем свой собственный, он прекращает генерировать свои BPDU и начинает ретранслировать BPDU с этим идентификатором. Таким образом в конце концов в этой сети Ethernet остаётся только один мост, который продолжает генерировать и передавать собственные BPDU. Он и становится корневым мостом (root bridge).
  • Остальные мосты ретранслируют BPDU корневого моста, добавляя в них собственный идентификатор и увеличивая счетчик стоимости пути (path cost).
  • Для каждого сегмента сети, к которому присоединены два и более портов мостов, происходит определение designated port — порта, через который BPDU, приходящие от корневого моста, попадают в этот сегмент.
  • После этого все порты в сегментах, к которым присоединены 2 и более портов моста, блокируются за исключением root port и designated port.
  • Корневой мост продолжает посылать свои Hello BPDU раз в 2 секунды.
Читайте также:  Не работает подогрев правого зеркала w211

BPDU кадр

Bridge Protocol Data Unit

  • Protocol Identifier размер 2 байта
  • Protocol Version Identifier размер 1 байт
  • BPDU Type размер 1 байт
  • Flags размер 1 байт
  • Root Identifier размер 8 байт
  • Root Path Cost размер 4 байт
  • Bridge Identifier размер 8 байт
  • Port Identifier размер 2 байт
  • Message Age размер 2 байт
  • Max Age размер 2 байт
  • Hello Time размер 2 байт
  • Forward Delay размер 2 байт

Вот как выглядит BPDU кадр STP

Состояния портов:

1. Блокировка (blocking)

2. Прослушивание (listening)

3. Обучение (learning)

4. Передача (forwarding)

Настройка stp

Обща схема примера работы и настройки STP. Два коммутатора соединенных двумя линками, видно то STP уже работает и один порт у второго коммутатора погашен чтобы не было петли

Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-01

Посмотрим на первом коммутаторе настройки stp. Логинимся и вводим команду

Видим, что это рутовый коммутатор и все порты в состоянии передача.

Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-02

Смотрим, тоже на втором коммутаторе.

Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-03

Видим, что это не рутовый коммутатор. Интерфейс Fa0/2 является рутовым портом. Fa0/3 ждет в запасе.

Теперь предположим, что интерфейс Fa0/2 упал, что будет. Для примера выключим его. Заходим на 1 коммутатор.

Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-04

Видим, что линк пропал

Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-05

Зайдем в этот момент на второй коммутатор и посмотрим состояние портов.

Видим, что порт Fa0/3 в состоянии обучения

Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-06

теперь в состоянии передачи, прошло около 20 секунд и линк поднялся.

Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-07

Восстановим на первом коммутаторе Fa0/2 командой

Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-08

И видим, что все мгновенно восстановилось.

Что такое и как настроить протокол STP (Spanning Tree Protocol) в Cisco-09

Все же переключение в 20 секунд очень нехорошо, поэтому уже придуманы улучшенные версии протокола rstp и lacp, но о них в следующих публикациях.

Как настроить RSTP на коммутаторах Cisco

RSTP или как его еще называют в более развернутом виде Rapid spanning tree protocol, по сути тот же STP но более быстрый где время сходимости мгновение, вы потеряете один пакет.

Включить RSTP можно командой с режиме глобального конфигурирования, где нужно изменить режим на rapid-pvst.

Все теперь при падении одного линка, время схождения между коммутаторами будет 1 секунда, очень быстро, как видите RSTP, гораздо лучше STP и настраивается одной командой.

Источник

Spanning Tree Protocol (STP)

Прежде чем переходить к пояснению для чего нужен протокол STP, надо ввести понятие широковещательной петли.

Широковещательная петля

Широковещательная петля создается, когда имеется больше одного соединения между двумя коммутаторами (или соединены два порта на одном и том же коммутаторе). Широковещательная петля приводит к тому, что широковещательные фреймы (фреймы, которые коммутатор распространяет на все порты, кроме того откуда он пришел, подробнее тут) будут загружать сеть и в итоге приведут к неработоспособности (широковещательному шторму). Что бы лучше понять что такое широковещательная петля, обратимся к рисунку 7.1.

На рисунке 7.1 мы можем видеть, как PC0 отправляет широковещательный фрейм на коммутатор sw-1, коммутатор отправляет его на все порты, кроме того откуда он пришел. Остальные коммутаторы рассылают этот фрейм по такому же принципу. Таким образом в сети образовался “неубиваемый” широковещательный фрейм, который не только кружит между коммутаторами но и нагружает рабочие станции (при том даже PC0, с которого все началось). Широковещательные фреймы очень популярны в сетях (например, их используют протоколы ARP, DHCP и т.д.), поэтому буквально за минуту их может быть тысяча, а через 5 минут оборудование откажется что-либо передавать из-за того что не справляется со шквалом широковещательных фреймов (широковещательным штормом).

Подведем итог. Широковещательные петли – это плохо.

Spanning Tree Protocol (STP)

Spanning Tree Protocol используется для предотвращения образования широковещательных петель. STP программно выключает “лишние” (или запасные) каналы связи и в итоге создает топологию в виде дерева. STP постоянно отслеживает топологию сети, поэтому при “падении” основных каналов связи, STP по возможности переключится на “запасные”.

Как мы уже выяснили STP создает из коммутаторов топологию в виде дерева, это значит, что в этой топологии есть корень (далее root) и остальные коммутаторы, которые из него “произрастают” (рисунок 7.2). Таким образом можно выделить основные принципы работы STP:

  • Выбор коммутатора в роли root
  • Все остальные коммутаторы (кроме root), выбирают единственный порт направленный на root.
  • Блокирование всех “лишних” (или запасных) каналов связи.

Рисунок 7.2 Дерево коммутаторов

Виды портов в топологии STP

  • Root Port (RP) – это порт на коммутаторе (кроме root коммутатора), который имеет наилучший путь к root
  • Designated Port (DP) – это порты, которые находятся в режиме передачи данных.
  • Non-Designated Port (NDP) – это заблокированные порты (вероятно из-за того, что STP посчитал это порт запасным).

На рисунке 7.3 мы добавили немного “лишних” каналов связи и подписали порты.

Рисунок 7.3 Обозначение портов в топологии STP

Обратите внимание, что у всех коммутаторов есть Root Port (RP), кроме root. Все порты у коммутатора root всегда в состоянии Designated (DP).Non-Designated (NDP) порты разрывают широковещательные петли.

Выбор коммутатора в роли root

Все коммутаторы в топологии STP имеют идентификатор – Bridge ID. Bridge ID состоит из двух параметров: приоритет (далее priority) и MAC-адрес коммутатора. Записывается в таком формате – priority.MAC-адрес, например, 32768.0030.abcf.11e1. Именно благодаря этому параметру выбирается коммутатор в роли root.

На рисунке 7.4 мы добавили значения Bridge ID для всех коммутаторов.

Рисунок 7.4 Bridge ID

Как мы можем заметить коммутатору SW1 не повезло, он не получил роль root, т.к. его MAC-адрес не самый маленький по значению. Зато SW1 возьмет на себя роль root, если текущий корневой коммутатор выйдет из строя, благодаря наименьшему приоритету среди остальных коммутаторов.

Bridge Protocol Data Unit (BPDU)

В самом начале построения топологии STP (например, все коммутаторы перезагрузили), каждый коммутатор считает себя в роли root и рассылает, так называемые hello BPDU – stp-сообщения, помогающие определить кому будет назначена роль root, в этих сообщениях рассылается bridge id (BID).При получении BPDU с меньшим ВID, коммутатор перестает рассылать свои hello BPDU и только передает все остальные BPDU. В итоге, остается только один root с наименьшим ВID.

Когда stp-топология построена, т.е. в топологии найден root, то он начинает рассылать BPDU (stp-сообщения), содержащие следующую информацию:

  • Root Bridge ID – Bridge ID (BID) коммутатора в роли root.
  • Bridge ID отправителя – BID коммутатора, который отправил это сообщение.
  • Стоимость пути до Root (Root Path Cost) – стоимость пути определяется путем сложения стоимости всех путей между коммутаторами до root.
  • Таймеры установленные на root – таймер отправки BPDU, таймер ожидания и т.д.

Давайте разберем более подробно понятие “стоимость пути”. Каждый линк между коммутаторами имеет значение – “стоимость”, это значение определяется из расчета скорости на этом линке. В таблице 7.1 представлены эти соотношения.

Таблица 7.1 Стоимость канала в соответствии с его скоростью

Скорость Стоимость
10 Мб/с 100
100 Мб/с 19
1 Гб/с 4
10 Гб/с 2

Коммутатор в роли root (далее root bridge) рассылает BPDU каждые 2 секунды. Выходит это сообщение из root bridge со стоимостью пути равной 0, проходя остальные коммутаторы в stp-топологии, стоимости пути увеличивается.

Рисунок 7.5 Движение BPDU по сети

Рассмотрим рисунок 7.5, как уже было сказано, “рождается” BPDU на Root Bridge и рассылается по всем портам. В целях понимания расчета стоимости пути, нам будет достаточно рассмотреть только одну ветку движения сообщения BPDU:

  1. Root Bridge рассылает BPDU по всем портам, поле “Root Path Cost” имеет значение 0.
  2. SW1 принимает BPDU, изменяет поле “Bridge ID отправителя” на свой, а так же поле “Root Path Cost” прибавляя к текущему значению 19. Все каналы связи в нашем примере имеют пропускную способность 100 Мб/с. После всех изменений он отправляет BPDU дальше по всем Designated портам.
  3. SW5 принимает BPDU, аналогично SW1 делает два изменения: в поле “Bridge ID отправителя” и в поле “Root Path Cost” прибавляя к текущему значению 19, итого уже 38. Отправляет по всем Designated портам (у этого коммутатора он один).

Root Port, Designated Port или Non-Designated port?

После того как Root Bridge был выбран среди коммутаторов, каждый коммутатор определяет у себя Root Port, он может быть только один. В этом выборе участвуют все порты на которые пришло BPDU. Порядок выбора:

  1. Наименьшее значение “Root Path Cost”.
  2. Наименьшее значение в поле “Bridge ID отправителя”.
  3. Наименьший приоритет порта (имеет только локальное значение, по умолчанию 128)
  4. Наименьший номер порта (например, BPDU пришло на порты Fa0/6 и Fa0/12, Root портом станет Fa0/6, при условии, что выше перечисленные критерии не помогли в выборе).

Например, на коммутатор SW1 придет два BPDU со стороны root и со стороны SW2, в этом случае все решит первый критерий, т.к. со стороны root поле “Root Path Cost” будет равно 0, а со стороны SW2, это поле равно 19. Теперь коммутаторы SW1 и SW2 знают, что между ними “запасной” канал связи (используется в случае падения основного канала). Им надо определить, кто из них оставит порт в состоянии Designated, а кто переведет в состояние Non-Designated (заблокирован). Коммутатор, у которого следующие критерии, оставляет порт в состоянии Designated:

  1. Наименьшее значение “Root Path Cost”.
  2. Наименьшее значение в поле “Bridge ID отправителя”.

В нашем примере значение “Root Path Cost” одинаковое, поэтому разрешится “спор” между SW2 и SW1 по второму критерию. Так как у SW1 наименьшей приоритет, следовательно он оставляет порт в состоянии Designated.

Режимы работы порта в STP

Следует начать с режима Disabled – порт не участвует в работе STP. С остальными режимами сложнее.

Когда порт только включили, он проходит следующие режимы:

  1. Blocking – порт не передает фреймы, не принимает, не изучает MAC-адреса. Но! Порт принимает и обрабатывает BPDU сообщения. Если BPDU не приходит в течение 20 секунд (время по умолчанию, имя таймера – max_age), порт переходит в следующий режим. Именно в этом режиме пребывают Non-Designated порты.
  2. Listening – в этом режиме порт принимает и отправляет BPDU и отбрасывает все остальные фреймы, в этом режиме он находится 15 секунд (время по умолчанию, имя таймера – forward_delay)
  3. Learning – в этом режиме порт уже определил свое состояние (Designated или Root Port), он не передает приходящие фреймы, но изучает их и заполняет таблицу коммутации (таблицу mac-адресов). В этом режиме он находится 15 секунд (время по умолчанию, имя таймера – forward_delay).
  4. Forwarding – порт передает все приходящие фреймы, т.е. работает в штатном режиме.

Теперь, когда мы знаем режимы порта, давайте разберемся как перестраивается STP-топология и сколько времени на это уходит.

Коммутатор понимает, что-то не так, когда на Root Port больше не приходят BPDU, но при этом у него есть Non-Designated порт (находится в режиме Blocking), на который BPDU приходят, и он решает определить новый Root Port. Задержка по времени зависит от того, как “вышел из строя” Root Port. Если он явно выключился (состояние down), то коммутатор сразу переводит Non-Designated порт в режим Listening, итого на переключение уйдет 30 секунд. Если на Root Port не приходят BPDU и при этом он в состоянии up, то вначале он дождется истечения таймера на получение BPDU, а уже потом будет переводить Non-Designated порт в режим Listening, итого 50 секунд.

Разновидности STP

Таблица 7.2 Разновидности STP

Название Имя стандарта
PVST (Per VLAN) Только на cisco-устройствах
RSTP (Rapid) 802.1w
R-PVST (Rapid) Только на cisco-устройствах
MSTP (Multiple) IEEE 802.1s, позже вошел в стандарт IEEE 802.1Q-2005

PVST (Per VLAN Spanning Tree) – все то же самое что и в STP, только stp-топология на каждый vlan своя.

Rapid STP – способен реагировать на изменения stp-топологии в течении 6 секунд (STP 30-50 секунд). Нет режима Listening и добавили новые состояние вместо Non-Designated – Alternate и Backup.

Общая информация

Packet Tracer version: 6.2.0

Рабочий файл: скачать

Тип: Теория и практика

Версия файла: 2.0

Уже получили: 105 пользователей

Получить достижение

Код активации можно получить выполнив практическое задание

Уже получили 94 пользователей

Начальные данные

В данной практической работе будет использоваться схема сети, которая представлена на рисунке ниже.

Схема сети для практической работы

Все “манипуляции” с коммутаторами можно осуществлять только при помощи PC0. Адреса коммутаторов в сети (пароль cisco123):

  1. sw-core-1 – 10.33.1.10
  2. sw-core-2 – 10.33.1.11
  3. sw-distr-1 – 10.33.1.12
  4. sw-distr-2 – 10.33.1.13
  5. sw-access-1 – 10.33.1.14
  6. sw-access-2 – 10.33.1.15
  7. sw-access-3 – 10.33.1.16
  8. sw-access-4 – 10.33.1.17
  1. Изучить команду show spanning-tree .
  2. Изменить конфигурацию PVSTP.
  3. Изучить изменение STP-топологии при отключении одного из активных “линков” (каналов связи).
  4. STP утилиты.

Выполнение

Изучить команду show spanning-tree

В cisco-устройствах нет чистого stp, есть pvstp (per vlan, для каждого vlan), поэтому здесь будет рассмотрена работа именно этого протокола.

Есть несколько вариаций продолжения команды show spanning-tree , давайте посмотрим какие.

Символом “?” мы запросили все возможные варианты этой команды. Начнем с варианта, который скрывается под кодовым символом , если вы видите этот символ, это означает, что команду можно вызвать без каких-либо дополнительных параметров, т.е. просто вызвать show spanning-tree . Без дополнительных параметров, эта команда показывает stp для каждого vlan. Смотрим.

В выводе содержится очень много информации, давайте разберемся, что есть что. В начале stp для Vlan 1 включен по умолчанию, а т.к. по умолчанию все порты в vlan 1, создать широковещательную петлю не получится (с коммутаторами “из коробки”). Строка Spanning tree enabled protocol ieee означает, что stp включен, а ieee указывает на стандартную версию stp (если бы была реализация Rapid STP, то мы увидели rstp).

Со слов Root ID идет описание stp-корня (root). Приоритет у root – Priority 32769. Root MAC-адрес, который используется в Bridge ID – Address 0002.17D3.89B6. Стоимость до root, в данном случае от sw-core-1, – Cost 38 (у root этот параметр равен 0). Root port – порт который ближе всего к root коммутатору – Port 22(FastEthernet0/22) и таймеры, которые передает root – Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec. Со слов Bridge ID идет описание параметров локального stp (stp настроек на данном коммутаторе, в нашем случае на sw-core-1).

Давайте уточним, как получается приоритет. Формула приоритета такая – + . По умолчанию на cisco-устройствах выставляется приоритет 32768 + . Вот почему sw-core-1 в vlan 1 имеет приоритет 32769, а в vlan 44 – 32812.

Под описанием stp в каждом vlan, присутствует таблица портов, участвующих в stp-топологии, там расписаны их состояния (Role, можно увидеть, какие порты в режиме Designated и “кто есть” Root Port), стоимости (в колонке Cost), режимы работы (например, FWD – Forwarding), приоритеты и номера (например, 128.22).

Разберем остальные, интересные вариации команды show spanning-tree . show spanning-tree detail – показывает детальную информацию о stp для каждого vlan. show spanning-tree interface – показывает какую роль исполняет запрашиваемый интерфейс в stp-топологии для каждого vlan. show spanning-tree summary – показывает суммарную информацию работы stp. show spanning-tree vlan – показывает информацию о stp для конкретного vlan.

Изменить конфигурацию PVSTP

В имеющейся сети stp имеет настройки по умолчанию. Надо сделать так что бы sw-core-1 был Bridge Root (корнем) для vlan 1 и 44 и запасным Bridge Root для vlan 55. sw-core-2 был Bridge Root для vlan 55 и запасным Bridge Root для vlan 1 и 44.

Основной критерий выбора Bridge Root находится в Bridge ID, изменив приоритет, изменится и топология. Задать приоритет можно двумя способами – указав приоритет или вызвав преднастроенную команду. sw-core-1 мы будем настраивать, указывая преднастроенные команды, а в sw-core-2 мы будем явно указывать приоритет.

Результат выполнения команд spanning-tree vlan root primary и spanning-tree vlan root secondary это просто изменение приоритета. В первом случае приоритет выставляется как 24576 + , во втором случае мы имеем 28672 + . Теперь выставим приоритеты на sw-core-2 самостоятельно.

Обратите внимание, что приоритет мы можем выставить только из преднастроенных вариантов (в этих вариантах каждый раз прибавляется число 4096). Задавая приоритет для vlan 44, подразумевалось, что на деле у него будет приоритет 28672 + 44. В этом можно убедиться вызвав команду show spanning-tree vlan 44 .

На рисунке 7.6 для нашего примера представлена схема stp-топологии (stp-дерева) для vlan 44 – без “запасных” (лишних) каналов связи. Вы можете сами отследить заблокированные порты и проверить данную схему.

Рисунок 7.6 STP-топология для vlan 44

Изучить изменение STP-топологии при отключении одного из активных “линков” (каналов связи)

В качестве эксперимента мы отключим порт Fa0/24 на коммутаторе sw-distr-1, который “смотрит” на порт Fa0/24 коммутатора sw-access-1, и посмотрим как изменится топология, но для начала изучим текущую топологию.

Следует заметить, что в понятии cisco, нет интерфейса с состоянием Non-Designated, а есть состояние Alternate (альтернативный).

В выводе команды show spanning-tree vlan 44 нас интересуют таблица интерфейсов. Fa0/24 на данный момент Root Port, т.е. если мы осуществим задуманное, коммутатор sw-access-1 потеряет связь с Root Bridge и начнет искать альтернативный путь.

Запустим постоянный ping от PC1 до PC3, это можно сделать, выполнив команду ping -t 10.44.1.11 , на PC1 (что бы остановить, нужно нажать комбинацию клавиш – Ctrl+C ). До выключения порта данные от PC1 к PC3 проходят такой путь: PC1 -> sw-access-1 -> sw-distr-1 -> sw-access-4 -> PC3. Для того что бы можно было отследить изменения режима на порту sw-access-1, с PC0 предоставлен консольный доступ на sw-access-1. Выключаем порт.

Чтобы получить достижение не включайте этот порт.

Порт Fa0/24 на коммутаторе sw-access-1 больше не участвует в stp-топологии, зато порт Fa0/23 начинает проходить процедуру перехода в Root Port. Сразу после выключения Fa0/24 (на коммутаторе sw-distr-1) порт Fa0/23 (на коммутаторе sw-access-1) переходит из режима Blocking (BLK) в режим Listening (LSN) и находится в нем 15 секунд, далее переходит в режим Learning (LRN), где тоже находится 15 секунд, наконец переходит в состояние Forwarding (FWD) и становится новым Root портом.. Итого: на переключение ушло около 30 секунд.

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

На рисунке 7.7 представлена новая топология для vlan 44.

Рисунок 7.7 Измененная STP-топология для vlan 44

Теперь данные от PC1 к PC3 проходят такой путь: PC1 -> sw-access-1 -> sw-distr-2 -> sw-core-1 -> sw-distr-1 -> sw-access-4 -> PC3 (путь стал немного длиннее).

Рисунок 7.7.2 Анимированный путь

В примере, показанном выше, перестроение топологии заняло около 30 секунд, благодаря тому что Root Port “явно” выключился (на коммутаторе порт перешел в состояние down). Перестроение может занять 50 секунд, если Root Port останется включен, и на него просто перестанут приходить BPDU. Так и было бы, если бы между sw-distr-1 и sw-access-1 стоял еще один коммутатор. Время указано при условии, что все таймеры настроены по умолчанию.

STP утилиты

PortFast – функция, разрешающая порту пропускать режимы Listening и Learning, таким образом при включении порт сразу переходит в состояние Forwarding.

BPDU Guard – порт с такой функцией выключается, если на него приходит BPDU.

Root Guard – эта функция устанавливается на интерфейс коммутатора, если известно, что этот порт ни при каких условиях не станет Root Port. Если на такой порт приходит BPDU от потенциального Root Bridge, то он переходит в состояние root-inconsistent, что равносильно состоянию listening – через этот порт ничего не передается.

Настроить PortFast можно двумя способами – глобально и локально. Глобально командой spanning-tree portfast default , которая включает функцию PortFast на всех access (не транковых) интерфейсах. Либо настраивать локально на каждом интерфейсе при помощи команды spanning-tree portfast

Добавьте на порт Fa0/2 коммутатора sw-access-1 функцию PortFast. Выключите этот порт и сразу включите, в Packet Tracer вы увидите, что он сразу загорится зеленым цветом. Если вы выключите и включите порт Fa0/1, который “смотрит” на PC1, то после включения порт будет подсвечен оранжевым цветом, т.к. после включения он проходит режимы Listening и Learning, и после 30 секунд загорится зеленым цветом (

обязательно настройте PortFast и оставьте эту конфигурацию

Общая информация

Packet Tracer version: 6.2.0

Рабочий файл: скачать

Тип: Самостоятельная работа

Версия файла: 2.0

Уже получили: 105 пользователей

Источник

Оцените статью