Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Принципы маршрутизации трафика группового вещанияСодержание книги
Поиск на нашем сайте
Среди принципов маршрутизации трафика группового вещания можно отметить: § маршрутизацию на основе доменов; § учет плотности получателей группового трафика; § два подхода к построению маршрутного дерева; § концепцию продвижения по реверсивному пути. Маршрутизация на основе доменов. Значительный объем хранимой и передаваемой по сети служебной информации, используемой для поддержания группового вещания, стал фактором, ограничивающим масштабируемость данной технологии. Для улучшения масштабируемости разработчики технологии группового вещания предложили традиционный для Интернета иерархический подход, основанный на доменах. Подобно автономным системам (доменам маршрутизации) и DNS-доменам, вводятся домены группового вещания. Для доставки информации в пределах домена предлагаются одни методы и протоколы маршрутизации группового вещания, называемые внутридоменными, а в пределах многодоменной структуры — другие, называемые междоменными. Мы ограничимся в этом учебнике описанием средств продвижения пакетов группового вещания в пределах отдельного домена. Учет плотности получателей группового трафика. Внутридоменные протоколы маршрутизации разделяются на два принципиально отличных класса: § Протоколы плотного режима (Dense Mode, DM) разработаны в предположении, что в сетевом домене существует большое число принимающих узлов. Отсюда следует главная идея этих протоколов: сначала «затопить» сеть пакетами группового вещания по всем направлениям, останавливая продвижение пакетов, лишь когда находящийся на пути распространения трафика маршрутизатор явно сообщит, что далее ниже по потоку членов данной группы нет. § Протоколы разряженного режима (Sparse Mode, SM) рассчитаны на работу в сети, в которой количество маршрутизаторов с подключенными к ним членами групп невелико по сравнению с общим числом маршрутизаторов. В такой ситуации выгоднее не усекать некоторые пути распространения широковещательной рассылки, а использовать явные сообщения о необходимости присоединения подсетей к дереву рассылки. В сети, использующей протокол класса SM, необходимо существование центрального элемента, обычно называемого точкой рандеву, или встречи (Rendezvous Point, RP). Точка встречи должна существовать для каждой имеющейся в сети группы и быть единственной для группы. Все узлы, заинтересованные в получении информации, предназначенной той или иной группе, должны регистрироваться в соответствующей точке встречи. Функции точки (или нескольких точек) встречи выполняет специально назначенный для этого маршрутизатор. В сети может быть несколько маршрутизаторов, играющих роли точек встречи. ПРИМЕЧАНИЕ Сейчас согласно общепринятому мнению предпочтительнее применять протоколы разряженного режима даже в тех ситуациях, когда плотность приемников достаточно высока. Два подхода к построению маршрутного дерева. Как и при решении задачи маршрутизации на основе индивидуальных адресов, в сети с групповым вещанием маршрутизаторы анализируют топологию сети, пытаясь найти кратчайшие пути доставки данных от источников к получателям. При этом все протоколы маршрутизации группового вещания используют один из следующих двух подходов. Для всех источников данной группы строится единственный граф связей, называемый разделяемым деревом. Этот граф связывает всех членов данной группы (точнее, все маршрутизаторы, к которым подключены локальные сети, имеющие в своем составе членов данной группы). Разделяемое дерево может включать также и необходимые для обеспечения связности маршрутизаторы, не имеющие в своих присоединенных сетях членов данной группы. Разделяемое дерево служит для доставки трафика всем членам данной группы от каждого из источников, вещающих на данную группу. Для каждой группы строятся несколько графов по числу источников, вещающих на каждую из этих групп. Каждый такой граф, называемый деревом с вершиной в источнике, служит для доставки трафика всем членам группы, но только от одного источника Концепция продвижения по реверсивному пути — это еще одна концепция, которую необходимо понять всем, кто реализует групповое вещание. Механизм, используемый для маршрутизации трафика группового вещания, в определенном аспекте является прямо противоположным (реверсивным) тому механизму, который применяется для продвижения обычного трафика на основе индивидуальных адресов. Традиционная маршрутизация на основе индивидуальных адресов основывается на адресе назначения. То есть маршрутизаторы перемещают пакет с индивидуальным адресом по сети вперед, в направлении приемника. Напротив, все пакету с групповым адресом маршрутизаторы тиражируют и передают копии во все стороны — на все интерфейсы, кроме того, с которого этот пакет поступил. При этом в сложных сетях возможно образование петель — замкнутых маршрутов. Для правильной работы сети зациклившиеся пакеты необходимо распознавать и отбрасывать. Петля не может возникнуть, если ли пакет прибыл от источника по ожидаемому пути, проложенному в соответствии с обычным алгоритмом маршрутизации, основанном на анализе таблиц маршрутизации. А именно, маршрутизатор проверяет, является ли входной интерфейс, получивший групповой пакет, интерфейсом, через который пролегает кратчайший путь к источнику. Он делает это с помощью обычной таблицы маршрутизации, которая, как известно, содержит указания о рациональных путях ко всем сетям составной интерсети. Проверка факта выполнения данного условия называется продвижением по реверсивному пути (Reverse Path Forwarding, RPF). Такое название объясняется тем, что эта процедура связана не столько с путями, ведущими вперед от текущего места нахождения пакета к пункту назначения, сколько с обратным (реверсивным) путем, который уже пройден пакетом от того места, где он находится сейчас, до источника. Только пакеты, которые прошли RPF-проверку, являются кандидатами для дальнейшего продвижения вдоль путей, ведущих к потенциальным получателям трафика группового вещания. Концепция продвижения по реверсивному пути является главной при маршрутизации группового трафика независимо от того, какой протокол при этом использован. Механизм RPF применятся и в других вариантах организации группового вещания. Например, когда маршрутизатор пытается продвигать пакеты к точке встречи в сети, работающей в разряженном режиме, он выбирает интерфейс, от которого проходит кратчайший путь к точке встречи. На этом этапе мы не предъявляли специфических требований к таблицам маршрутизации, на основании которых выполняется RPF-проверка. Некоторые протоколы, такие как DVMRP, строят собственную таблицу маршрутизации, в то время как, например, протокол PIM работает с таблицами маршрутизации, построенными другими протоколами. Протокол DVMRP Дистанционно-векторный протокол маршрутизации группового вещания (Distance Vector Multicast Routing Protocol, DVMRP), описанный в спецификации RFC 1075, может быть характеризован с самых общих позиций следующим образом: § как следует из его названия, он основан на дистанционно-векторном алгоритме и, следовательно, обладает всеми особенностями, свойственными данному алгоритму; § относится к классу протоколов плотного режима, использующих проверку продвижения по реверсивному пути; § продвигает пакеты на основе деревьев с вершинами в источниках; § является протокольно зависимым в том смысле, что для принятия решений о продвижении пакетов он не может использовать обычные (для индивидуальной рассылки) таблицы маршрутизации. Протокол DVMRT был одним из первых протоколов продвижения группового трафика в исследовательской сети MBone. Групповая маршрутизация в ранней версии MBone была, в сущности, управляемой формой широковещания, когда пришедший пакет с групповым адресом передавался через все интерфейсы, кроме входного. Для борьбы с зацикливанием пакетов с групповыми адресами маршрутизаторы запоминали факт продвижения данного пакета и при его поступлении в следующий раз просто отбрасывали. Для сокращения бесполезного трафика в сети применялся протокол IGMP. С помощью этого протокола маршрутизаторы выясняли, имеются ли в непосредственно подключенных к нему сетях конечные узлы, принадлежащие к определенной группе, или нет. В том случае, когда маршрутизатор определял, что к некоторому интерфейсу подключена сеть, в которой нет членов группы, являющихся получателями группового пакета, он не передавал копию этого пакета чрез данный выходной интерфейс. Однако такой прием не исключает полностью избыточный трафик в сети, так как маршрутизатор не может судить о целесообразности передач дальше непосредственно подключенных к нему подсетей. Маршрутизатор передает пакет следующему маршрутизатору даже в том случае, если у того в подключенных сетях нет членов группы и ни один маршрут, проходящий через него, не ведет к сетям, в состав которых входят члены группы. На рис. 18.15 зачеркнуты избыточные маршруты группового трафика от узла S, по которым передаются пакеты туда, где нет ожидающих их получателей. Рис. 18.15. Управляемое широковещание
Чтобы модернизировать протокол DVMPR, понадобилось несколько лет дополнительных усилий. Цель модернизации состояла в распространении группового трафика от источника к получателям таким образом, чтобы пакеты продвигались только по тем путям, которые единственным и кратчайшим образом соединяли источник с каждым получателем. Такие пути образуют дерево с вершиной в источнике, соединяющее кратчайшими путями все маршрутизаторы, к которым непосредственно подключены локальные сети, содержащие получателей данной группы, с маршрутизатором, к которому непосредственно подсоединена сеть, содержащая источник. Дерево для источника S и членов показанной на рисунке группы образуется оставшимися (незачеркнутыми) путями. ПРИМЕЧАНИЕ Для построения деревьев с вершиной в источнике пригодны различные алгоритмы, в частности один из таких алгоритмов, разработанный и стандартизованный IEEE для мостов локальных сетей под названием STA, мы рассмотрели ранее в главе 14. Дальнейший прогресс в области алгоритмов маршрутизации для группового вещания был связан с разработкой алгоритма плотного режима, получившего название широковещание и усечение (broadcast-and-prune). Этот алгоритм рассчитан на то, что сети плотно «населены» членами различных групп, поэтому ситуация, когда в какой-либо подсети члены группы отсутствуют, считается редкой и отрабатывается особо. В этом «особом» случае маршрутизатор, обнаруживший подсеть, не содержащую членов группы, оповещает об этом другие маршрутизаторы и инициирует процедуру усечения избыточных маршрутов. Результирующее дерево называется деревом реверсивного кратчайшего пути. Для его построения необходимо выполнить следующие действия: 1. Источник отправляет пакет по своей локальной сети с групповым адресом. Присоединенный к локальной сети маршрутизатор получает пакеты и отправляет их на все выходные интерфейсы. 2. Каждый маршрутизатор, который получает пакеты, выполняет RPF-проверку. Маршрутизатор принимает пакеты по некоторому интерфейсу только в том случае, если считает, что через него проходит самый эффективный обратный путь к источнику. Все пакеты, принимаемые с «правильного» интерфейса, продвигаются на все выходные интерфейсы. Все остальные просто отбрасываются. 3. В конце концов пакет достигает тупикового маршрутизатора (лист на графе маршрутизаторов) с некоторым количеством присоединенных хостов. Такой маршрутизатор должен проверить, имеются ли в какой-либо из присоединенных к нему сетей члены группы, адрес которой указан в данном пакете. Для этого маршрутизатор периодически рассылает IGMP-запросы. Если члены группы присутствуют, то маршрутизатор распространяет пакет по локальной сети, а сообщение об усечении (prune) не посылает. Если же у маршрутизатора-листа нет получателей для группы, то он посылает сообщение об усечении по направлению к источнику через интерфейс RPF, то есть через интерфейс, который маршрутизатор-лист должен использовать для продвижения пакетов к данному источнику 4. Сообщения об усечении продвигаются в обратном направлении к источнику, и маршрутизаторы вдоль их пути фиксируют состояние усечения для интерфейса, через который получено сообщение об усечении. Как уже было сказано, протоколы широковещания и усечения относятся к классу протоколов плотного режима, они эффективно работают, когда сеть плотно «населена» членами групп, так что далее по потоку имеются члены групп и поэтому целесообразно дальнейшее продвижение пакетов. Только когда приходит непосредственно сообщение об усечении, маршрутизатор перестает продвигать групповой трафик. Главным недостатком протоколов плотного режима является то, что информация состояния для каждого источника должна храниться в каждом маршрутизаторе сети независимо от того, существуют ли члены групп вниз по потоку или нет. Если группа населена не очень плотно, то в сети нужно хранить значительный объем информации состояния и значительная часть пропускной способности может тратиться впустую. Этот недостаток и стал толчком к разработке нового класса протоколов, названных протоколами разряженного режима. Вместо ориентации на существование большого количества членов группы, протоколы разряженного режима подразумевают наличие их в небольшом количестве, причем рассеянном по сети, как это часто и бывает в действительности. Мы рассмотрим два протокола «разряженного» режима — MOSPF и PIM-SM. Протокол MOSPF Протокол MOSPF (Multicast extensions to OSPF — расширения протокола OSPF для группового вещания), описанный в спецификации RFC 1584, опирается на обычные механизмы OSPF для поддержки группового вещания. MOSPF-маршрутизаторы добавляют к информации о состоянии связей, распространяемой по протоколу OSPF, данные о членстве в группах узлов в непосредственно присоединенных сетях. Эти данные рассылаются по сети в дополнительном сообщении о членстве в группе (group membership). В результате помимо топологии связей, MOSPF-маршрутизаторам становится известно о наличии членов каждой из групп в каждой подсети области. На основании этой информации маршрутизатор находит дерево кратчайших путей для каждой группы. Это позволяет распространять групповые пакеты не широковещательно, а по кратчайшим путям от источника до подсетей, в которых есть активные члены группы. Для получения данных о том, в какие группы входят конечные узлы в связанных с ним подсетях, MOSPF-маршрутизатор использует запросы и ответы протокола IGMP, При каждом подключении узла к группе или исключении узла из группы маршрутизатор рассылает по сети новое сообщение о членстве в группе, так что можно считать, что протокол MOSPF задействует механизм явных уведомлений об изменении состава групп и поэтому относится к группе протоколов разряженного режима. Кроме того, известные положительные свойства протокола OSPF — устойчивое поведение при изменениях топологии сети, меньшие объемы служебного трафика по сравнению с протоколом RIP, а также возможность деления сети на области — полностью наследуются протоколом MOSPF, что делает его весьма привлекательным для применения в больших сетях. Протокол PIM-SM Протокол PIM-SM является одной из двух версий протокола PIM (Protocol Independent Multicast — независимое от протокола групповое вещание), описываемого в спецификации RFC 2362: § версии плотного режима PIM-DM (Protocol Independent Multicast — Dense Mode); § версии разряженного режима PIM-SM (Protocol Independent Multicast — Sparse Mode). Эти версии существенно отличаются друг от друга способом построения и использования покрывающего дерева, но у них есть и одно общее свойство. Оно вынесено в название каждого из этих протоколов и означает независимость данного протокола от конкретных протоколов маршрутизации. Если DVMPR использует в своей работе механизмы RIP, а протокол MOSPF является расширением протокола OSPF, то протокол PIM может работать совместно с любым протоколом маршрутизации. Протокол PIM задействует готовые таблицы маршрутизации для продвижения групповых пакетов и служебных сообщений и для него не имеет значения, с помощью какого протокола маршрутизаторы строят эти таблицы. Протокол PIM-DM похож на протокол DVMPR. Он, также являясь протоколом плотного режима, строит для доставки групповых пакетов деревья с вершиной в источнике, используя для этого проверки продвижения по реверсивному пути и технику широковещания и усечения. Основное отличие состоит в том, что PIM-DM применяет готовую таблицу маршрутизации, а не строит ее сам, как это делает DVMPR. Главной особенностью протокола PIM-SM является то, что он рассчитан на работу в разряженном режиме, то есть он посылает групповые пакеты только по явному запросу получателя. Для доставки данных каждой конкретной группе получателей протокол PIM-SM строит одно разделяемое дерево, общее для всех источников этой группы (рис. 18.16). Рис. 18.16. Разделяемое дерево протокола PIM-SM
Вершина разделяемого дерева не может располагаться в источнике, так как источников может быть несколько. В качестве вершины разделяемого дерева используется специально выделенный для этой цели маршрутизатор, выполняющий функции точки встречи (RP). Все маршрутизаторы в пределах домена PIM-SM должны обладать согласованной информацией о расположении точки встречи. Различные группы могут иметь как одну и ту же, так и разные точки встречи. Самым распространенным и возможно самым простым способом конфигурирования локальных (в пределах одного домена PIM-SM) точек встречи является назначение их статически среди множества маршрутизаторов данного домена. Это приводит к весьма определенной конфигурации и позволяет в дальнейшем легче находить ошибки, чем при других подходах. Для получателей каждой конкретной группы и источников, вещающих на эту группу, маршрутизатор точки встречи является посредником, который связывает их между собой. Процесс доставки протоколом PIM-SM группового трафика от источника к получателям, принадлежащим некоторой группе, может быть представлен трехэтапным: 1. Построение разделяемого дерева с вершиной в точке встречи, которое описывает пути доставки групповых пакетов между точкой встречи и членами данной группы. Это дерево называют также деревом точки встречи (Rendezvous Point Tree, RPT). 2. Построение дерева кратчайшего пути (Shortest Path Tree, SPT), которое будет доставлять пакеты между источником данной группы и точкой встречи. 3. Построение набора SPT-деревьев, которые ради повышения эффективности будут использованы для доставки пакетов непосредственно между источником и каждым из получателей группы. ПРИМЕЧАНИЕ Порядок следования этапов не фиксирован. Например, источники группового вещания могут начать передачу до того, как появятся слушатели, заинтересованные в этом трафике, или дерево кратчайшего пути между источником и его слушателями может уже быть построенным, когда будет сделан новый запрос на присоединение к группе. Рассмотрим работу протокола PIM-SM на простом примере. На рис. 18.17 показана однодоменная сеть, в которой протокол PIM-SM устанавливает связь между одним получателем А и одним источником S. Будем считать, что работа сети соответствует модели ASM (групповое вещание из любого источника), на всех узлах сети развернут протокол IGMP и все маршрутизаторы поддерживают протокол PIM-SM. Будем считать также, что точка встречи сконфигурирована статически: и источники, и получатели знают индивидуальный адрес точки встречи, роль которой в этой сети играет маршрутизатор D. Для оповещения узлов сети об адресе точке встречи имеется стандартный протокол автоматического оповещения, называемый протоколом загрузки. Рис. 18.17. Этап 1 — построение разделяемого дерева Этап 1 — построение разделяемого RPT-дерева от получателя к точке встречи. Когда разделяемое дерево уже построено, трафик группового вещания передается от точки встречи в направлении заинтересованных получателей. Однако процесс построения разделяемого дерева движется в обратном направлении — от получателей к точке встречи на основе пошагового (hop-by-hop) подхода. Итак, пусть хост A решает присоединиться к группе G, по этой причине он посылает IGMP- сообщение отчета о членстве, содержащее адрес группы G, в локальную сеть, к которой он подключен. Это сообщение будет получено маршрутизатором С, через который данная локальная сеть подключена к другим сетям. Маршрутизатор С, получив от хоста А это IGMP-сообщение, посылает сообщение протокола PIM-SM о присоединении (join) на индивидуальный адрес маршрутизатора D, выполняющего функции точки встречи. Это сообщение продвигается обычным образом на основе таблиц маршрутизации, построенных любыми протоколами маршрутизации. На всех промежуточных маршрутизаторах, расположенных вдоль пути от хоста-получателя к точке встречи, фиксируется состояние продвижения для данной группы. Каждый маршрутизатор добавляет интерфейс, принявший сообщение протокола PIM-SM о присоединении, к своему списку интерфейсов, через которые заинтересованным получателям может быть доставлен трафик группы, упомянутой в сообщении. В результате для данной группы формируется разделяемое дерево, и его корнем является точка встречи. В нашем примере на данном этапе нет активных источников, поэтому данные группового вещания еще не поступают к точке встречи (см. рис 18.17). Этап 2 — построение SPT-дерева от источника к точке встречи. Когда источник S становится активным и начинает посылать пакеты с групповым адресом в свою локальную сеть, маршрутизатор F, к которому эта сеть непосредственно подключена, замечает, что источник S стал источником группового вещания. Маршрутизатор F посылает РIМ-сообщение о регистрации (register) на индивидуальный адрес точки встречи (маршрутизатора D). При этом сообщение о регистрации инкапсулируется в пакет группового вещания от источника S (рис. 18.18). Когда маршрутизатор D (точка встречи) получает сообщение о регистрации, он реагирует на это двумя действиями. Во-первых, он продвигает инкапсулированные данные группового вещания по разделяемому дереву (RPT) от точки встречи до получателя, во-вторых, посылает PIM-сообщение о присоединении назад по направлению к источнику с тем, чтобы создать дерево кратчайшего пути (SPT). Это сообщение передается от одного маршрутизатора к другому, при этом информация о присоединении к группе фиксируется на соответствующих интерфейсах. Как только дерево кратчайшего пути от источника к точке встречи построено, маршрутизатор D начинает получать по две копии каждого пакета группового вещания. Одна копия приходит от источника S по вновь созданному кратчайшему пути, другая — от маршрутизатора F, который, продолжая реагировать на выявленную активность источника S, снова посылает сообщение о регистрации, в котором в инкапсулированном виде содержится вторая копия группового пакета. Когда маршрутизатор точки встречи распознает эту ситуацию, он посылает маршрутизатору F сообщение с требованием прекратить регистрацию (register stop). Получив это сообщение для данной пары источник-группа, маршрутизатор F прекращает генерировать сообщения о регистрации и инкапсулировать в них групповые пакеты источника[60]. Вместо этого он начинает посылать их в исходном виде с групповым адресом, так как к этому моменту источник уже присоединился к дереву группы, и это присоединение зафиксировано на нужных маршрутизаторах. Рис. 18.18. Этап 2 — регистрация источника с построением дерева кратчайшего пути
Таким образом, поток данных группового вещания от источника 5 начинает передаваться по SPT-дереву до точки встречи, а затем далее от точки встречи по разделяемому дереву ко всем заинтересованным получателям (в том числе на маршрутизатор С, к которому подключен хост А). Этап 3 — построение дерева кратчайшего пути от источника к получателю. Когда маршрутизатор С получает первый групповой пакет, он узнает из его заголовка IP-адрес отправителя, каковым в данном случае является источник S. На основании этого адреса маршрутизатор С пытается построить дерево кратчайшего пути непосредственно от источника до самого себя. В нашем примере кратчайший путь — это путь через маршрутизатор В. Маршрутизатор С посылает сообщение о присоединении маршрутизатору В, который затем, в свою очередь, посылает сообщение о присоединении маршрутизатору F. При этом каждый из них фиксирует интерфейс, на который он будет направлять пакеты для данной группы. Теперь, когда дерево кратчайшего пути для пары (источник 5, получатель А) построено, маршрутизаторы F, В и C начинают продвигать пакеты группового вещания вдоль него. Когда пакеты начинают прибывать на маршрутизатор С, он обнаруживает по две копии каждого пакета — одна приходит по новому кратчайшему пути через маршрутизатор В, другая по разделяемому дереву от маршрутизатора D. Чтобы прекратить дублирование, маршрутизатор С посылает PIM-сообщение об отсечении точки встречи (маршрутизатору D), который отсекает источник от разделяемого RPT-дерева (рис. 18.19).
Рис. 18.19. Этап 3 – построение дерева кратчайшего пути от источника к получателю. С этого момента маршрутизатор С получает только по одной копии каждого пакета от источника S через свое отдельное дерево кратчайшего пути и передает его в локальную сеть, в которой находится получатель. Для упрощения мы описали случай, когда в сети имеется только одна точка встречи и создается только одно разделяемое дерево. Однако технология допускает наличие в сети нескольких точек встречи. Решение о том, сколько в сети должно быть точек встречи и как их расположить, составляет предмет планирования сети и протоколом PIM не определяется. Информацию об иерархическом подходе к организации группового вещания вы можете найти на сайте www.olifer.co.uk в разделе «Междоменное групповое вещание».
|
|||||||
Последнее изменение этой страницы: 2017-02-05; просмотров: 710; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.198.230 (0.009 с.) |