Обрыв соединения с сервером. трассировка и пинг

Принцип работы traceroute

Для определения промежуточных маршрутизаторов traceroute отправляет целевому узлу серию ICMP-пакетов (по умолчанию 3 пакета), с каждым шагом увеличивая значение поля TTL («время жизни») на 1. Это поле обычно указывает максимальное количество маршрутизаторов, которое может быть пройдено пакетом. Первая серия пакетов отправляется с TTL, равным 1, и поэтому первый же маршрутизатор возвращает обратно ICMP-сообщение «time exceeded in transit», указывающее на невозможность доставки данных. Traceroute фиксирует адрес маршрутизатора, а также время между отправкой пакета и получением ответа (эти сведения выводятся на монитор компьютера). Затем traceroute повторяет отправку серии пакетов, но уже с TTL, равным 2, что заставляет первый маршрутизатор уменьшить TTL пакетов на единицу и направить их ко второму маршрутизатору. Второй маршрутизатор, получив пакеты с TTL=1, так же возвращает «time exceeded in transit».

Процесс повторяется до тех пор, пока пакет не достигнет целевого узла. При получении ответа от этого узла процесс трассировки считается завершённым.

На оконечном хосте IP-датаграмма с TTL = 1 не отбрасывается и не вызывает ICMP-сообщения типа срок истёк, а должна быть отдана приложению. Достижение пункта назначения определяется следующим образом: отсылаемые traceroute датаграммы содержат UDP-пакет с заведомо неиспользуемым номером порта на адресуемом хосте. Номер порта будет равен 33434 + (максимальное количество транзитных участков до узла) — 1. В пункте назначения UDP-модуль, получая подобные датаграммы, возвращает ICMP-сообщения об ошибке «порт недоступен». Таким образом, чтобы узнать о завершении работы, программе traceroute достаточно обнаружить, что поступило ICMP-сообщение об ошибке этого типа.

Назначение и применение tracert на практике

Tracert – не просто некая абстрактная команда, которую понимает командная строка, а полноценная программа. Точнее, служебное консольное (не имеющее оконного интерфейса) Windows-приложение, предназначенное для определения пути, по которому направляются сетевые пакеты от одного узла к другому. Имя приложения образовано от «trace route», что означает «трассировка маршрута».

Программа Tracert является собственным компонентом Windows (устанавливается на компьютер вместе с ОС), ее исполняемый файл – TRACERT.exe, постоянно находится в папке %windir%/system32.

Для простоты понимания работы трассировщика представим сетевой пакет как обычную посылку, которую вы отправили по почте в соседний город. На пути следования к адресату (конечному узлу), посылка делает несколько остановок на сортировочных пунктах (промежуточных узлах), где ее регистрируют и отсылают дальше.

Подобным образом работает и Tracert. Только он предоставляет информацию о не почтовых, а о сетевых отправлениях.

Обратите внимание на сходство этих записей:

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

Утилита MTR

Программа MTR существует в версиях для большинства операционных систем. Принцип ее работы очень похож на команду tracer (traceroute). Она опрашивает заданный узел в течение определенного промежутка времени, при этом позволяя зафиксировать изменения задержек.

Версия утилиты для Windows имеет название WinMTR и распространяется бесплатно.

Пользователям Linux также придется MTR устанавливать дополнительно из репозиториев. В этих операционных системах обычно используется консольная версия утилиты. Пользователю доступны разнообразные параметры, позволяющие задать количество отправляемых пакетов, запись отчета в файл, таймаут. Также версия для Linux может использовать для тестирования определенные порты или TCP-пакеты.

Как работает traceroute?

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

Каждый пакет проходит на своем пути определенное количество узлов, пока достигнет своей цели. Причем, каждый пакет имеет свое время жизни. Это количество узлов, которые может пройти пакет перед тем, как он будет уничтожен. Этот параметр записывается в заголовке TTL, каждый маршрутизатор, через который будет проходить пакет уменьшает его на единицу. При TTL=0 пакет уничтожается, а отправителю отсылается сообщение Time Exceeded.

Команда traceroute linux использует UDP пакеты. Она отправляет пакет с TTL=1 и смотрит адрес ответившего узла, дальше TTL=2, TTL=3 и так пока не достигнет цели. Каждый раз отправляется по три пакета и для каждого из них измеряется время прохождения. Пакет отправляется на случайный порт, который, скорее всего, не занят. Когда утилита traceroute получает сообщение от целевого узла о том, что порт недоступен трассировка считается завершенной.

О трассировке

Traceroute отправляет пакеты данных на целевой компьютер, сервер или веб-сайт и записывает любые промежуточные шаги, через которые проходят пакеты. Результатом команды traceroute будут IP-адреса и доменные имена, через которые проходят пакеты. Эти записи также показывают, сколько времени требуется, чтобы пакеты достигли каждого пункта назначения. Это может объяснить, почему некоторые веб-сайты загружаются дольше, чем другие, поскольку количество переходов трафика может варьироваться.

Traceroute также полезен для отображения локальных сетей. Понимание топологии и подключений локальной сети можно найти при запуске инструмента.

Обратите внимание, что при использовании traceroute некоторые устройства могут плохо взаимодействовать. Это может быть связано с ошибками маршрутизаторов, ограничивающими скорость сообщениями ICMP интернет-провайдерами, устройствами, не настроенными для отправки пакетов ICMP (для предотвращения распределенных DoS-атак) и т.д

Некоторые сети также настроены на блокировку запросов трассировки.

What is the Traceroute command?

The Traceroute command (tracert on Windows) is a small network diagnostic software that you have built-in on your device and servers for tracing the route, hop by hop to a target.
Many network administrators use the Traceroute command daily. It is a convenient tool that you can use under different operation systems – Windows (Tracert), macOS, Linux (Traceroute), and even on mobile (Android and iOS).
To access the traceroute, you will need to use the Terminal (Linux and macOS) or the Command Prompt (Windows).
You can use the Traceroute and see the full route that the packets take to their destination (domain or IP address). Apart from that, you will see the hostnames and IPs of the routers on the way and the latency, the time it takes for each device to receive and resend the data.
You can see which gateway is discarding your data, and later you can fix it.

Пример в Windows

Запуск программы производится из командной строки. Для этого вы должны войти в неё. Для операционных систем семейства Windows существует несколько способов запуска командной строки:

  1. Пуск — Выполнить — В графе «Открыть» написать «cmd» и нажать Ок.
  2. Сочетание клавиш Win (кнопка с логотипом Windows) + R (должны быть нажаты одновременно) — В графе «Открыть» написать «cmd» и нажать Ок.
  3. Пуск — Все программы (или просто «Программы», зависит от версии операционной системы) — Стандартные — Командная строка.

В открывшемся окне написать:

  tracert example.net

Где tracert — обращение к программе, а example.net — любой домен или IPv4 адрес.

  C:\Documents and Settings\Administrator>tracert ru.wikipedia.org
  
  Трассировка маршрута к rr.esams.wikimedia.org 
  с максимальным числом прыжков 30:
  
  1     1 ms    <1 ms    <1 ms  vpn4.kras.gldn 
  2     2 ms    <1 ms    <1 ms  C7604-BRAS4-FTTB.ranetka.ru 
  3     1 ms     1 ms     4 ms  C76-External.ranetka.ru 
  4     1 ms    <1 ms    <1 ms  pe-l.Krasnoyarsk.gldn.net 
  5    79 ms    79 ms    98 ms  cat01.Stockholm.gldn.net 
  6   131 ms   131 ms   132 ms  ams-ix.2ge-2-1.br1-knams.wikimedia.org 
  7   131 ms   131 ms   131 ms  te-8-2.csw1-esams.wikimedia.org 
  8   133 ms   134 ms   133 ms  rr.esams.wikimedia.org 
  
  Трассировка завершена.

Команда tracert (traceroute)

Очень часто пользователи задаются вопросом, с чем связана разница в написании
tracert и traceroute? На самом деле, команда tracert применяется в операционных системах
Windows, а traceroute — в операционных системах Linux и в операционной системе
маршрутизаторов Cisco.

Простейший и самый распространенный пример использования команды tracert —
«tracert ya.ru». При использовании команды tracert с буквенным адресом проверяемого хоста,
автоматически проверяется еще и работоспособность и доступность DNS — сервера. Ведь для того,
чтобы начать процесс трассировки, команда tracert должна сначала связаться с сервером DNS и получить
IP-адрес проверяемого хоста.

Пример вывода информации командой tracert:

c:\windows\system32>tracert ya.ru
Трассировка маршрута к ya.ru
с максимальным числом прыжков 30:
1    1 мs     1 мs      1 ms   psk-cr1-fe-0-0-v03.ellink.ru
2    1 мs     1 мs      1 мs   ge-2-2-0-v2.1g.m20-1-pskv.nwtelecom.ru
3    4 ms     4 ms      4 ms   ae0.20g.mx960-1-210.nwtelecom.ru
4    4 ms     4 ms      4 ms   as13238-yandex.gateway.nwtelecom.ru
5    12 ms    12 ms    12 ms   apollo-vlan304.yandex.net
6    12 ms    12 ms    13 ms   grechko-vlan121.yandex.net
7    15 ms    14 ms    14 ms   silicon-vlan4.yandex.net
8    14 ms    13 ms    13 ms   l3link-iva1-ugr1.yandex.net
9    14 ms    13 ms    15 ms   www.yandex.ru
Трассировка завершена.

Команда tracert последовательно опрашивает и измеряет время задержки до всех маршрутизаторов
на пути прохождения пакета, пока не будет достигнут целевой хост. Если между какими-либо двумя
маршрутизаторами наблюдается большой рост задержки, значит этот участок маршрута влияет на увеличение
пинга.

Следует также учитывать, что основная задача маршрутизаторов — это передавать пакеты с полезной
информацией, а не отвечать на команды tracert и ping. Поэтому, некоторые маршрутизаторы на пути
следования пакета могут пинговаться даже с потерей пакетов, но при этом целевой хост будет доступен
без потери пакетов. Поэтому прежде чем звонить в техподдержку провайдера с криком «Я знаю, где у
вас пропадают пакеты!», убедитесь, что целевой хост также пингуется с потерей пакетов. Иначе вам
попросту расскажут то, о чем написано выше.

How to Run Traceroute from Windows

If you find your site or service you are trying to contact unavailable, it may be caused by a server or network failure but is most often caused by an internet failure somewhere between your computer and the server. Running a traceroute will help you determine where the problem starts.

Detailed instructions on running windows traceroute:

General Usage:

TRACERT syntax:
tracert

target_name

Parameters (optional):
-d Specifies to not resolve addresses to host names.
-h maximum_hops Specifies the maximum number of hops to search for target.
-j host-list Specifies loose source route along the host-list.
-w timeout Waits the number of milliseconds specified by timeout for each reply.
target_name Name or IP address of the target host.

Example: To run a traceroute to this site and not resolve the host names the command would be: tracert -d support247webs.ca. Here’s the result.

1     1 ms    <1 ms    <1 ms  192.168.2.1
2    16 ms    15 ms    29 ms  10.11.1.17
3     17 ms    17 ms  10.178.206.20
4    16 ms    16 ms    16 ms  10.178.206.21
5    21 ms    17 ms    18 ms  64.230.110.32
6    21 ms    18 ms    18 ms  64.230.73.216
7    20 ms    18 ms    17 ms  64.230.50.13
8    17 ms    17 ms    17 ms  64.230.97.159
9    17 ms    17 ms    17 ms  63.243.172.25
10    28 ms    28 ms    28 ms  64.86.33.89
11    29 ms    29 ms    29 ms  66.198.96.61
12    28 ms    27 ms    28 ms  66.110.8.34
13    54 ms    35 ms    35 ms  216.187.114.197
14    37 ms    36 ms    36 ms  216.187.88.34
15    36 ms    36 ms    36 ms  209.15.202.79

To stop traceroute make sure the command window is active and press Control ‘C’. Example: Hold down the ‘Ctrl’ key and push the ‘C’ key.

Traceroute In WINDOWS XP and before

1. Click on ‘Start’ and then ‘Run’.

2. In the box type ‘cmd’ (without the quotes) and click OK.

3. At the command prompt that pops up in the black box type ‘tracert domain.ext’ (replace domain.ext with your domain name and extension). It may take a few seconds but will give a traceroute from your computer to the destination you typed in. In this example we typed ‘tracert support247webs.com’ without the quotation marks.

4. To copy the results, right click on the window and choose ‘Select All’. This will make the box contents turn white with black text and copy the contents to your clipboard .

6. You may now close the traceroute window.

Traceroute in WINDOWS VISTA and  WINDOWS 7

1. Click on Start icon  and select All Programs > Accessories and then Command Prompt

2. In the box type ‘cmd’ (without the quotes) and click OK.

3. At the command prompt that pops up in the black box type ‘tracert domain.ext’ (replace domain.ext with your domain name and extension). It may take a few seconds but will give a traceroute from your computer to the destination you typed in. In this example we typed ‘tracert support247webs.com’ without the quotation marks.

4. To copy the results, right click on the window and choose ‘Select All’. This will make the box contents turn white with black text and copy the contents to your clipboard .

6. You may now close the traceroute window.

Traceroute in Windows 8 and 8.1

1. Find the command prompt in the Metro Interface.

  Move your cursor to the lower right corner to bring up the Charms.

Click on the Search Icon.

2. In the search window type command prompt and click on the Command Prompt result.

3. At the command prompt that pops up in the black box type ‘tracert domain.ext’ (replace domain.ext with your domain name and extension). It may take a few seconds but will give a traceroute from your computer to the destination you typed in. In this example we typed ‘tracert support247webs.com’ without the quotation marks.

4. To copy the results, right click on the window and choose ‘Select All’. This will make the box contents turn white with black text and copy the contents to your clipboard .

6. You may now close the traceroute window.

How to Run Traceroute in Windows 10

  1. Find the command prompt. Search for command prompt in the search window, lower left.

2. At the command prompt that pops up in the black box type ‘tracert domain.ext’ (replace domain.ext with your domain name and extension). It may take a few seconds but will give a traceroute from your computer to the destination you typed in. In this example we typed ‘tracert support247webs.com’ without the quotation marks.

3. To copy the results, right click on the window and choose ‘Select All’. This will make the box contents turn white with black text and copy the contents to your clipboard .

5. You may now close the traceroute window.

Traceroute options for Windows

You can use the Tracert command with various options to perform more precise tests. The following options work on Windows Vista, Windows 7, Windows 8, and of course, Windows 10.

Option

Description

-d

Do not resolve addresses to hostnames.

-h aximum_hops

Maximum number of hops to search for target. You can put higher than 30, if you want to query a very remote target.

-j host-list

Loose source route along host-list (IPv4-only). Show only IPv4 addresses.

-w timeout Wait timeout milliseconds for each reply. Inscrease it, to see more about slower routers.

-R

Trace round-trip path (IPv6-only).

-S srcaddr

Source address to use (IPv6-only).

-4

Force using IPv4.

-6

Force using IPv6.

How Does Traceroute Works?

Each IP packet sent on the Internet has a field known as Time-To-Live (TTL). But this field is not explicitly related to the time measured by the number of hops. It is instead, the maximum number of hops that a packet can travel across the Internet before it gets discarded.

The TTL field in an IP packet is so essential because if there wasn’t one, the packet would keep flowing from one router to another forever searching for its destination, in a never-ending loop.

The TTL value helps in route poisoning, and most importantly, it can help Distance Vector protocols to avoid routing loops.

Traceroute depends on TTL to measure the distance between source and destination and to find the hops in between.

In a traceroute, the source re-defines the TTL value every time it gets a response and sends the packet with TTL= +1 until it reaches its destination.

When a packet reaches its maximum TTL, the last hop in line will send back an “ICMP TTL Exceeded” packet back to the source.

This communication is what traceroute is looking for. The “ICMP TTL Exceeded” contains valuable information, such as the time it took to reach that particular hop and the name of the server that is replying.

Как читать результат трассировки

Вернемся к анализу вывода Tracert. Мой запрос к сайту Yandex.ru совершил 16 прыжков – прошел через 15 «перевалочных пунктов» и шестнадцатым шагом достиг конечной цели. Порядковые номера прыжков отображены в столбце, обведенном красной рамкой. По умолчанию их максимальное число составляет 30.

Второй, третий и четвертый столбцы содержат значения RTT – времени, прошедшего от момента отправки запроса до получения ответа (как вы помните, партия состоит из трех пакетов). Чем оно меньше, тем быстрее осуществляется передача. Если оно больше 4 секунд, интервал ожидания считается превышенным.

Последний столбец – это имена и адреса промежуточных и конечного узлов.

Звездочки вместо значений не всегда указывают на недоступность или неисправность сетевого устройства (как пишут в некоторых источниках). Чаще всего это просто настройка, не позволяющая отправлять ответные ICMP-сообщения (меры по защите веб-узла от DDoS-атак). Если ваш запрос благополучно достиг конечной точки за приемлемое время, беспокоиться не о чем.

Причиной сбоя доставки ICMP-пакетов (если запрос так и не дошел до адресата) может быть неработоспособность (отключение или неисправность) сетевого устройства или политика безопасности (блокировка данного действия администратором сети).

ПримерыExamples

Чтобы выполнить трассировку пути к узлу с именем corp7.Microsoft.com, введите:To trace the path to the host named corp7.microsoft.com, type:

Чтобы проследить путь к узлу с именем corp7.Microsoft.com и предотвратить разрешение каждого IP-адреса в его имя, введите:To trace the path to the host named corp7.microsoft.com and prevent the resolution of each IP address to its name, type:

Чтобы выполнить трассировку пути к узлу с именем corp7.Microsoft.com и использовать свободный исходный маршрут 10.12.0.1/10.29.3.1/10.1.44.1, введите:To trace the path to the host named corp7.microsoft.com and use the loose source route 10.12.0.1/10.29.3.1/10.1.44.1, type:

Применение программ трассировки маршрута

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

Обычно, операционная система включает консольный вариант такой программы в стандартный пакет системы. Например, Windows имеет специальную утилиту tracert. Чтобы ее запустить, вам надо открыть консоль и ввести команду «tracert». При запуске без указания параметров, на экран выведется небольшой мануал по работе с программой. Но, функциональность таких утилит, обычно, близка к базовой, и не предусматривает дополнительных полезных возможностей, которые могут сильно сэкономить время при частом построении маршрутов.

На чьей стороне ошибка?

Итак, обрыв повторился. Но на этот раз запущенный пинг промежуточных узлов поможет «обличить» виновника. Тут все просто – с какого узла вам начало выдавать «Превышен интервал ожидания», тот и слабое звено.

Кто виноват – ясно, теперь нужно понять, что делать в конкретных ситуациях.

1. Последний узел.
Если последний узел сначала пинговался нормально (некоторые Windows-машины вообще не отвечают на пинг, это задается в настройках брандмауэра)…

…а после обрыва начал показывать «Превышен интервал ожидания», обрыв происходит на вашем сервере.

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

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

3. Все узлы одновременно.
Если все окна с пингом начали показывать «Превышен интервал ожидания», проблема в вашем компьютере или сети, к которой он подключен.

СинтаксисSyntax

ПараметрыParameters

ПараметрParameter ОписаниеDescription
/d/d Останавливает попытки разрешения IP-адресов промежуточных маршрутизаторов в имена.Stops attempts to resolve the IP addresses of intermediate routers to their names. Это может ускорить возврат результатов.This can speed up the return of results.
/h /h Указывает максимальное число прыжков в пути для поиска целевого объекта (назначение).Specifies the maximum number of hops in the path to search for the target (destination). Значение по умолчанию — 30 прыжков.The default is 30 hops.
/j /j Указывает, что сообщения эхо-запроса используют параметр свободного исходного маршрута в заголовке IP с набором промежуточных назначений, указанных в .Specifies that echo Request messages use the Loose Source Route option in the IP header with the set of intermediate destinations specified in . При свободной маршрутизации последовательные промежуточные назначения могут быть разделены одним или несколькими маршрутизаторами.With loose source routing, successive intermediate destinations can be separated by one or multiple routers. Максимальное число адресов или имен в списке — 9.The maximum number of addresses or names in the list is 9. Представляет собой последовательность IP-адресов (в точечно-десятичной нотации), разделенных пробелами.The is a series of IP addresses (in dotted decimal notation) separated by spaces. Используйте этот параметр только при трассировке IPv4-адресов.Use this parameter only when tracing IPv4 addresses.
/w /w Указывает время в миллисекундах, в течение которого должно ожидаться получение сообщения о превышении времени ICMP или эхо-ответа, соответствующего заданному сообщению запроса эха.Specifies the amount of time in milliseconds to wait for the ICMP time Exceeded or echo Reply message corresponding to a given echo Request message to be received. Если оно не получено в течение времени ожидания, отображается звездочка ( ).If not received within the time-out, an asterisk () is displayed. Время ожидания по умолчанию — 4000 (4 секунды).The default time-out is 4000 (4 seconds).
/R/R Указывает, что заголовок расширения маршрутизации IPv6 используется для отправки сообщения эхо-запроса на локальный узел с использованием назначения в качестве промежуточного назначения и проверки обратного маршрута.Specifies that the IPv6 Routing extension header be used to send an echo Request message to the local host, using the destination as an intermediate destination and testing the reverse route.
Ключ /S Указывает исходный адрес, используемый в сообщениях эхо-запроса.Specifies the source address to use in the echo Request messages. Используйте этот параметр только при трассировке IPv6-адресов.Use this parameter only when tracing IPv6 addresses.
/4/4 Указывает, что для этой трассировки tracert.exe может использовать только IPv4.Specifies that tracert.exe can use only IPv4 for this trace.
/6/6 Указывает, что для этой трассировки tracert.exe может использовать только IPv6.Specifies that tracert.exe can use only IPv6 for this trace.
Указывает назначение, определенное IP-адресом или именем узла.Specifies the destination, identified either by IP address or host name.
/?/? Отображение справки в командной строке.Displays help at the command prompt.

Альтернативы и дополнения к traceroute


Полученная с помощью tracemap графическая карта трассировки пути на корневые серверы DNS с хоста, расположенного в Киеве

  • tracepath — похожая на traceroute программа, но может строить асимметричные трассы и имеет некоторые другие отличия.
  • mtr — Интерактивная программа, способная постоянно выводить обновлённую статистику по трассе.
  • tracemap — программа, позволяющая выполнять трассировку пути на несколько хостов сразу и представить полученные данные в виде графической карты.
  • tcptraceroute (tracetcp) — аналогичная traceroute программа, но предназначена для диагностики TCP соединений; вместо UDP-пакетов использует TCP-пакеты открытия соединения (|) с указанным сервисом (по умолчанию — web-сервер, порт 80) интересующего хоста; в результате получаем информацию о времени прохождения данного вида TCP-пакетов через маршрутизаторы и информацию о доступности сервиса на интересующем хосте, либо, в случае проблем с доставкой пакетов — видим, в каком месте трассы они возникли.

Выводы

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

К сожалению, об этом многие забывают, если вас это не убедило, то представьте, что вы пришли к доктору на обследование, который в совершенстве умеет пользоваться своими докторскими инструментами: он знает, что стетоскоп нужно вставлять в уши, прикладывать другой его конец к груди и спине пациента, говорит дышите, не дышите, но этот доктор совершенно не знает ничего о том, как работает человеческое тело, он не понимает, что он слышит в своём стетоскопе и в конце концов поставит неверный диагноз. Аналогичная ситуация и с командой tracert, которой проще пользоваться, чем стетоскопом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector