Проверка трассировки
Трассировка маршрута может показать скорость прохождения пакетов между маршрутизаторами, которые соединяют ПК, с которого идут запросы, и конечный сервер.
Для выполнения трассировки используется следующая команда:
Windows:
tracert <IP или домен>
например:
tracert wikipedia.org
Linux:
traceroute <IP или домен>
например:
traceroute wikipedia.org
Стоит отметить, что по умолчанию при трассировке также выполняется DNS-запрос на разрешение IP адреса в доменное имя для каждого проходящего маршрутизатора. Эту опцию можно отключить, таким образом, сократив время получения результатов трассировки.
Чтобы активировать эту опцию необходимо использовать следующий вид команды:
Windows:
tracert -d <IP или домен>
Linux:
traceroute -n <IP или домен>
- Настройка CloudFlare
- Что такое протокол HTTPS
- Как установить Joomla
- Как установить Metatrader на Linux
Наиболее распространённые причины, которые аналогичны работе в других версиях Windows
Безусловно, общий стандарт построения сетей един не только для компьютеров на базе Windows, но и других операционных сетей. Поэтому некоторые ошибки не специфичны для Windows 10, а просто распространяются во всех версиях этой операционной системы. И решать их нужно точно также, как и в любой другой
Потому не стоит на них в данной статье заострять серьёзное внимание, причины из за которых может быть не видим компьютер в сети:
- Введены разные группы IP адресов. Каждый компьютер имеет свой IP. Это обычно комбинация из 4 групп цифр. И вводиться он должен на каждом компьютере по определённым правилам. Наиболее удобный способ — если есть в сети сервер, который будет раздавать автоматически IP. В качестве такого сервера подойдёт обыкновенный WiFi-роутер или любая другая точка Интернета.
- На компьютере нет общих папок. Как и в любой другой ОС производства Microsoft компьютер под управлением Windows 10 не будет определяться в сети в том случае, если он не имеет открытых ресурсов. Принтеры, факсы, сканеры — не в счёт. Нужно открыть хотя бы одну папку в общий доступ. Пускай даже пустую. До этого компьютер просто будет в сети, но при входе будет выдавать отсутствие прав. Даже не будет пытаться запросить пароль.
- Не подключена сеть вообще, либо компьютеры подключены к разным сетям. Иногда бывает так, что между компьютерами сеть не проложена. То есть они могут быть подключены к сети, но при этом — разным. Например, к разным Интернет-точкам. И перехода между двумя этими точками просто нет. Другой вариант может состоять в подключении одного ПК к роутеру посредством простой проводной сети, а другого (например, ноутбука) — беспроводной. В таком случае, даже будучи подключёнными к одной Интернет-точке, компьютеры не будут видеть друг друга. Исправить это можно только построением локальной сети одинакового типа.
Вы не можете получить гостевой доступ к общей папке без проверки подлинности
Начиная с версии Windows 10 1709 (Fall Creators Update) Enterprise и Education пользователи стали жаловаться, что при попытке открыть сетевую папку на соседнем компьютере стала появляться ошибка:
Вы не можете получить доступ к этой общей папке, так как политики безопасности вашей организации блокируют гостевой доступ без проверки подлинности. Эти политики помогают защитить ваш компьютер от небезопасных или вредоносных устройств в сети.
An error occurred while reconnecting Y: to \nas1share Microsoft Windows Network: You can’t access this shared folder because your organization’s security policies block unauthenticated guest access. These policies help protect your PC from unsafe or malicious devices on the network.
При это на других компьютерах со старыми версиями Windows 8.1/7 или на Windows 10 с билдом до 1709, эти же сетевые каталоги открываются нормально. Эта проблем связана с тем, что в современных версиях Windows 10 (начиная с 1709) по умолчанию запрещен сетевой доступ к сетевым папкам под гостевой учетной записью по протоколу SMBv2 (и ниже). Гостевой (анонимный) доступ подразумевают доступ к сетевой папке без аутентификации. При доступе под гостевым аккаунтом по протоколу SMBv1/v2 не применяются такие методы защиты трафика, как SMB подписывание и шифрование, что делает вашу сессию уязвимой против MiTM (man-in-the-middle) атак.
При попытке открыть сетевую папку под гостем по протоколу SMB2, в журнале клиента SMB (Microsoft-Windows-SMBClient) фиксируется ошибка:
Source: Microsoft-Windows-SMBClient Event ID: 31017 Rejected an insecure guest logon.
В большинстве случае с этой проблемой можно столкнуться при использовании старых версий NAS (обычно для простоты настройки на них включают гостевой доступ) или при доступе к сетевым папкам на старых версиях Windows 7/2008 R2 или Windows XP /2003 с настроенным анонимным (гостевым) доступом (см. таблицу поддерживаемых версий SMB в разных версиях Windows).
В этом случае Microsoft рекомендует изменить настройки на удаленном компьютере или NAS устройстве, который раздает сетевые папки. Желательно переключить сетевой ресурс в режим SMBv3. А если поддерживается только протокол SMBv2, настроить доступ с аутентификацией. Это самый правильный и безопасный способ исправить проблему.
В зависимости от устройства, на котором хранятся сетевые папки, вы должны отключить на них гостевой доступ.
- NAS устройство – отключите гостевой доступ в настройках вашего NAS устройства (зависит от модели);
- Samba сервер на Linux — если вы раздаете SMB каталог с Linux, в конфигурационном файле smb.conf в секции нужно добавить строку:А в секции с описанием сетевой папки запретить анонимный доступ:
- В Windows вы можете включить общий доступ к сетевым папкам и принтерам с парольной защитой в разделе Control PanelAll Control Panel ItemsNetwork and Sharing CenterAdvanced sharing settings. Для All Networks (Все сети) в секции “Общий доступ с парольной защитой” (Password Protected Sharing) имените значение на “Включить общий доступ с парольной защитой” (Turn on password protected sharing). В этом случае анонимный (гостевой) доступ к папкам будет отключен и вам придется создать локальных пользователей, предоставить им доступ к сетевым папкам и принтерам и использовать эти аккаунты для подключения к общим папкам на этом компьютере.
Есть другой способ – изменить настройки вашего SMB клиента и разрешить доступ с него на сетевые папки под гостевой учетной записью.
Этот способ нужно использовать только как временный (!!!), т.к. доступ к папкам без проверки подлинности существенно снижает уровень безопасности ваших данных.
Чтобы разрешить гостевой доступ с вашего компьютера, откройте редактор групповых политик (gpedit.msc) и перейдите в раздел: Конфигурация компьютера -> Административные шаблоны -> Сеть -> Рабочая станция Lanman (Computer Configuration ->Administrative templates -> Network (Сеть) -> Lanman Workstation). Включите политику Enable insecure guest logons (Включить небезопасные гостевые входы).
В Windows 10 Home, в которой нет редактора локальной GPO, вы можете внести аналогичное изменение через редактор реестра вручную:
HKLMSYSTEMCurrentControlSetServicesLanmanWorkstationParameters “AllowInsecureGuestAuth”=dword:1
Или такой командой:
Description
traceroute tracks the route packets taken from an IP network on their way to a given host. It utilizes the IP protocol’s time to live (TTL) field and
attempts to elicit an ICMP TIME_EXCEEDED response from each gateway along the path to the host.
traceroute6 is equivalent to traceroute -6
The only required parameter is the name or IP address of the destination host . The optional packet_len‘gth is the total size of the probing
packet (default 60 bytes for IPv4 and 80 for IPv6). The specified size can be ignored in some situations or increased up to a minimal value.
This program attempts to trace the route an IP packet would follow to some internet host by launching probe packets with a small ttl (time to live) then
listening for an ICMP «time exceeded» reply from a gateway. We start our probes with a ttl of one and increase by one until we get an ICMP «port unreachable»
(or TCP reset), which means we got to the «host», or hit a max (which defaults to 30 hops). Three probes (by default) are sent at each ttl setting and a line
is printed showing the ttl, address of the gateway and round trip time of each probe. The address can be followed by additional information when requested. If
the probe answers come from different gateways, the address of each responding system will be printed. If there is no response within a 5.0 seconds (default),
an «*» (asterisk) is printed for that probe.
After the trip time, some additional annotation can be printed: !H, !N, or !P (host, network or protocol unreachable), !S
(source route failed), !F (fragmentation needed), !X (communication administratively prohibited), !V (host precedence violation),
!C (precedence cutoff in effect), or !<num> (ICMP unreachable code <num>). If almost all the probes result in some kind of
unreachable, traceroute will give up and exit.
We don’t want the destination host to process the UDP probe packets, so the destination port is set to an unlikely value (you can change it with the
-p flag). There is no such a problem for ICMP or TCP tracerouting (for TCP we use half-open technique, which prevents our probes to be seen by
applications on the destination host).
In the modern network environment the traditional traceroute methods can not be always applicable, because of widespread use of firewalls. Such firewalls
filter the «unlikely» UDP ports, or even ICMP echoes. To solve this, some additional tracerouting methods are implemented (including tcp), see LIST OF
AVAILABLE METHODS below. Such methods try to use particular protocol and source/destination port, in order to bypass firewalls (to be seen by firewalls
just as a start of allowed type of a network session).
Чем Tracert отличается от Ping?
Широкоизвестная команда PING используется для проверки связи с сервером. Ваш компьютер отправляет четыре пакета данных в пункт назначения, и как только они прибудут туда, пакеты вернутся обратно на ваш компьютер.
Если вы получили все или только часть пакетов данных на свой компьютер, это говорит о наличии общего соединения между вашим ПК и конечным пунктом. Кроме этого, вы получите данные о том, сколько по времени (в миллисекундах) заняло путешествие пакетов данных туда-обратно.
Traceroute даст нам больше информации – утилита не только проверит наличие связи с конечным пунктом назначения, но и с каждым маршрутизатором на этом пути. Она измерит время приема-передачи пакетов данных от каждого встреченного на пути маршрутизатора.
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.
Traceroute Example
Traceroute starts its journey towards its destination differently. It begins with a TTL=1 (instead of the default 51) and adds one until it reaches its final destination.
When beginning the Traceroute test, the next hop that receives the packet with a TTL=1, which in my case, is the gateway, will execute the TTL-1 by protocol, which will result in TTL=0. That means there will be no further forwarding and the packet will be discarded.
The next-hop (my gateway) will notify the source that the TTL exceeded with the “ICMP TTL exceeded” message, containing valuable information such as IP, hostname, and delay.
As mentioned in the previous section, the main job of the Traceroute command is to +1 to the TTL until the packet reaches the final destination.
So, back to our example, let’s traceroute 8.8.8.8.
The Traceroute example shows that the packet took 13 hops from the source (192.168.0.1) to reach its destination (8.8.8.8), along with all information from the hops in between.
From the same screenshot, you can see that the hop number 10 is “72.14.219.20” the same IP that we got from command “ping 8.8.8.8 -10”.
Диагностика разрешения имен (nslookup, dig)
Разобравшись с сетевой связностью и маршрутизацией приходим к следующему этапу — разрешение доменных имен. В большинстве случаев в работе с удаленными сервисами мы не используем IP-адреса, а указываем доменные имена удаленных ресурсов. За перевод символических имен в IP-адреса отвечает служба DNS — это сеть серверов, которые содержат актуальную информацию о соответствии имен и IP в пределах доверенных им доменных зон.
Самый простой способ проверить работает ли разрешение имен — запустить утилиту ping с указанием доменного имени вместо IP-адреса (например, ping ya.ru). Если ответные пакеты от удаленного сервера приходят, значит все работает как надо. В противном случае нужно проверить прописан ли DNS-сервер в сетевых настройках и удается ли получить от него ответ.
Способы выяснения какой DNS-сервер использует наш сервер различаются в зависимости от используемой версии и дистрибутива ОС Linux. Например, если ОС используется Network Manager для управления сетевыми интерфейсами (CentOS, RedHat и др.), может помочь вывод команды nmcli:
Скриншот №7. Команда nmcli
В настройках сетевого интерфейса, в разделе DNS configuration, мы увидим IP-адрес сервера. В Ubuntu 18.04 и выше, использующих Netplan, используем команду systemd-resolve —status:
Скриншот №8. Команда systemd-resolve —status
Используемый сервер также будет указан в настройках интерфейса, в разделе DNS Servers. В более старых версиях Ubuntu потребуется проверить содержимое файлов /etc/resolve.conf и /etc/network/interfaces. Если сервер не указан, воспользуйтесь статьей для ОС Ubuntu 18.04 или CentOS, чтобы скорректировать настройки.
Проверить работу сервиса разрешения имен нам помогут утилиты nslookup или dig. Функционально они почти идентичны: G-вывод утилиты dig содержит больше диагностической информации и гибко регулируется, но это далеко не всегда нужно. Поэтому используйте ту утилиту, которая удобна в конкретной ситуации. Если эти команды недоступны, потребуется доставить пакеты на CentOS/RedHat:
для Debian/Ubuntu:
После успешной установки сделаем тестовые запросы:
Скриншот №9. Тестовые запросы
В разделе Answer Section видим ответ от DNS сервера — IP-адрес для A-записи с доменным именем ya.ru. Разрешение имени работает корректно:
Скриншот №10. Подтверждение корректной работы
Аналогичный запрос утилитой nslookup выдает более компактный вывод, но вся нужная сейчас информация в нем присутствует.
Что же делать, если в ответе отсутствует IP-адрес? Возможно, DNS-сервер недоступен. Для проверки можно отправить тестовый запрос на другой DNS-сервер. Обе утилиты позволяют эти сделать. Направим тестовый запрос на DNS-сервер Google:
Скриншот №11. Отправка тестового запроса 1
Скриншот №12. Отправка тестового запроса 2
Если имена разрешаются публичным DNS-сервером корректно, а установленным по умолчанию в ОС нет, вероятно, есть проблема в работе этого DNS-сервера. Временным решением данной проблемы может быть использование публичного DNS-сервера в качестве сервера для разрешения имен в операционной системе. В том случае, если разрешение имен не работает ни через локальный, ни через публичный DNS сервер — стоит проверить не блокируют ли правила файрвола отправку на удаленный порт 53 TCP/UDP пакетов (именно на этом порту DNS-серверы принимают запросы).
Часто используемые параметры:
- nslookup имя сервер — разрешить доменное имя, используя альтернативый сервер;
- nslookup –type=тип имя — получить запись указанного типа для доменного имени (например, nslookup -type=mx ya.ru – получить MX-записи для домена ya.ru);
- dig @сервер имя — разрешить доменное имя, используя альтернативый сервер;
- dig имя тип — получить запись указанного типа для доменного имени (например, dig ya.ru mx — получить MX-записи для домена ya.ru).
Как обычно, полный набор опций и параметров для указанных утилит можно найти во встроенной справке операционной системы, используя команду man.
191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700
300
ООО «ИТГЛОБАЛКОМ ЛАБС»
700
300
Prerequisites
Requirements
Readers of this document should have basic knowledge of one of these operating systems:
-
Cisco IOS Software
-
Linux
-
Microsoft Windows
Components Used
The information in this document applies to these software and hardware versions:
-
Cisco Router that runs Cisco IOS Software Release 12.2(27)
-
PC that runs Red Hat Linux version 9
-
PC that runs MS Windows 2000
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Как отключить
Чтобы отключить функцию сохранения данных о файлах, которые были недавно открыты на компьютере, следует через основное меню перейти в раздел «Персонализация». Далее нужно перейти в «Параметры». После этого в новом окне нужно отключить данную функцию.
Это можно сделать также через групповую политику. Для отключения функции автоматического сохранения подобной информации следует сочетанием «Win» и «R» вызвать окно «Выполнить» и прописать «gpedit.msc».
После этого откроется окно, в котором необходимо перейти в «Административные шаблоны». В новом разделе можно отключить данную опцию.
Кроме того, Windows позволяет менять порядок сохранения информации о недавно запущенных файлах. Для этого необходимо в настройках системы перейти в раздел «Обновление и безопасность» и открыть «Служба архивации».
Здесь можно задать:
- периодичность сохранения файлов (каждые 10, 20 минут и так далее);
- временной интервал, в течение которого будут храниться эти данные;
- объем памяти на жестком диске, который могут занимать временные файлы.
В этом разделе можно задать имя диска («С», «D» и другой), на который будут сохранены временные файлы.
List Of Available Methods
In general, a particular traceroute method may have to be chosen by -M name, but most of the methods have their simple cmdline switches (you can see
them after the method name, if present).
default
- The traditional, ancient method of tracerouting. Used by default.
Probe packets are udp datagrams with so-called «unlikely» destination ports. The «unlikely» port of the first probe is 33434, then for each next probe it is
incremented by one. Since the ports are expected to be unused, the destination host normally returns «icmp unreach port» as a final response. (Nobody knows
what happens when some application listens for such ports, though).
This method is allowed for unprivileged users.
icmp -I
- Most usual method for now, which uses icmp echo packets for probes.
If you can ping(8) the destination host, icmp tracerouting is applicable as well.
tcp -T
- Well-known modern method, intended to bypass firewalls.
Uses the constant destination port (default is 80, http).
If some filters are present in the network path, then most probably any «unlikely» udp ports (as for default method) or even icmp echoes (as for
icmp) are filtered, and whole tracerouting will just stop at such a firewall. To bypass a network filter, we have to use only allowed protocol/port
combinations. If we trace for some, say, mailserver, then more likely -T -p 25 can reach it, even when -I can not.
This method uses well-known «half-open technique», which prevents applications on the destination host from seeing our probes at all. Normally, a tcp syn is
sent. For non-listened ports we receive tcp reset, and all is done. For active listening ports we receive tcp syn+ack, but answer by tcp reset (instead of
expected tcp ack), this way the remote tcp session is dropped even without the application ever taking notice.
There is a couple of options for tcp method:
syn,ack,fin,rst,psh,urg,ece,cwr
Sets specified tcp flags for probe packet, in any combination.
flags=num
Sets the flags field in the tcp header exactly to num.
ecn
Send syn packet with tcp flags ECE and CWR (for Explicit Congestion Notification, rfc3168)
sack,timestamps,window_scaling
Use the corresponding tcp header option in the outgoing probe packet.
sysctl
Use current sysctl (/proc/sys/net/*) setting for the tcp header options above and ecn. Always set by default, if nothing else
specified.
mss=num
Use value of num for maxseg tcp header option (when syn).
Default options is syn,sysctl.
tcpconn
- An initial implementation of tcp method, simple using connect(2) call, which does full tcp session opening. Not recommended for normal use, because a
destination application is always affected (and can be confused).
udp -U
- Use udp datagram with constant destination port (default 53, dns).
Intended to bypass firewall as well.
Note, that unlike in tcp method, the correspond application on the destination host always receive our probes (with random data), and most can
easily be confused by them. Most cases it will not respond to our packets though, so we will never see the final hop in the trace. (Fortunately, it seems that
at least dns servers replies with something angry).
This method is allowed for unprivileged users.
udplite -UL
- Use udplite datagram for probes (with constant destination port, default 53).
This method is allowed for unprivileged users.
Options:
coverage=num
Set udplite send coverage to num.
raw -P proto
- Send raw packet of protocol proto.
No protocol-specific headers are used, just IP header only.
Implies -N 1.
Options: - protocol=proto
- Use IP protocol proto (default 253).
Summary
This document has demonstrated how the traceroute command determines the path a packet takes from a given source to a given destination with the use of UDP and ICMP packets. The possible types of ICMP messages in the outputs are:
-
If the TTL is exceeded in transit, type=11, code=0, then the packet is sent back by the transit router in all the cases where the TTL of the probe packets expires before the packets reach the destination.
-
If the port is unreachable, type=3, code=3, then the packet is sent back in response to the UDP probe packets when they reach the destination (the UDP application is not defined). These packets are limited to one packet per 500 ms. This explains why the response from the destination (see the outputs for the and ) failed in the even responses. Device 7C does not generate the ICMP message, and the traceroute command output in each device waits for more than one second. In the case of the MS Windows tracert command output, the ICMP message is generated because the UDP port 137 does not exist in a Cisco router.
-
If there is an echo, type=8, code=0, then the echo probe packet is sent by the MS Windows PC.
-
If there is an echo reply, type=0, code=0, then a reply to the previous packet is sent when the destination is reached. This only applies to the MS Windows tracert command.
Why use the Traceroute or the Tracert command?
The benefits of using the traceroute command or its alternative for Windows called tracert command are:
- Complete route list. You will see all the routers on the way, with their IP addresses and the time it took. You can better understand the network.
- Route timing. See how much time does it take to finish the query. Is it ok for you? What can you do to speed it up? You can have a starting point for improvements.
- It is built-in. You don’t need to install additional software, and its use is free.
- Check if you can reach a target. See if there is a connection between your device and the hostname or IP address you put in the command.
- See problematic slow router. You can see how much time it took in each hop. So you can see a spot that significantly slows your network. You can fix the problem or add more presence in the area.