Главная

Sunday, 25 February 2024

Работа с сетью в командной строке Windows, #1.

Всем привет.

При работе с сетью в командной строке Windows большинство сетевых утилит для полноценной работы требуют наличия административных привилегий. Для операционных систем семейства Windows достаточно того, чтобы пользователь работал под учетной записью члена группы администраторов. В среде операционных систем Widows интерпретатор cmd.exe должен быть запущен для выполнения с использованием пункта контекстного меню "Запустить от имени администратора". Командные файлы, в которых используются сетевые утилиты, также должны выполняться в контексте учетной записи с привилегиями администратора. 

В этом цикле статей будут представлены следующие сетевые утилиты командной строки для получения информации о сетевых настройках, выполнения операций по конфигурированию и диагностике сети: arp, ipconfig, getmac, nbtstat, netsh, netstat, net, nslookup, pathping, ping, route, telnet и tracert.


Утилита ARP

Утилита командной строки ARP.EXE присутствует во всех версиях Windows и имеет один и тот же синтаксис.

Команда ARP позволяет просматривать и изменять записи в кэш ARP (Address Resolution Protocol - протокол разрешения адресов), который представляет собой таблицу соответствия IP-адресов аппаратным адресам сетевых устройств. Аппаратный адрес - это уникальный, присвоенный при изготовлении, 6-байтный адрес сетевого устройства, например сетевой карты. Этот адрес также часто называют MAC-адресом (Media Access Control - управление доступом к среде) или Ethernet-адресом. В сетях Ethernet передаваемые и принимаемые данные всегда содержат MAC-адрес источника (Source MAC) и MAC-адрес приемника (Destination MAC). Два старших бита MAC-адреса используются для идентификации типа адреса:

- первый бит - одиночный (0) или групповой (1) адрес.

- второй бит - признак универсального (0) или локально администрируемого (1) адреса. 


Следующие 22 бита адреса содержат специальный код производителя MFG или OUI - универсальный код организации. 

Другими словами, любое сетевое устройство имеет аппаратный адрес, состоящий из 2- х частей. Старшую часть MAC - адреса, централизованно выделяемую по лицензии каждому производителю сетевого оборудования. Например, 00:E0:4C - для сетевых устройств REALTEK SEMICONDUCTOR CORP. Крупным производителям сетевого оборудования обычно принадлежит несколько диапазонов OUI . И младшую часть MAC-адреса, которая формируется при производстве оборудования, и уникальна для каждого экземпляра устройства. 

Отображение IP-адресов (формируемых программным путем), в аппаратные адреса, выполняется с помощью следующих действий:

- в сеть отправляется широковещательный запрос (ARP-request), принимаемый всеми сетевыми устройствами. Он содержит IP и Ethernet адреса отправителя, а также, целевой IP-адрес, для которого выполняется определение MAC-адреса.

- каждое устройство, принявшее запрос проверяет соответствие целевого IP-адреса, указанного в запросе, своему собственному IP-адресу. При совпадении, отправителю передается ARP-ответ (ARP-Reply), в котором содержатся IP и MAC адреса ответившего узла. Кадр с ARP-ответом содержит IP и MAC адреса как отправителя, так и получателя-составителя запроса.

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


Синтаксис ARP.EXE:

arp[-a [InetAddr] [-NIfaceAddr]] [-g [InetAddr] [-NIfaceAddr]] [-dInetAddr [IfaceAddr]] [-sInetAddr EtherAddr [IfaceAddr]]

-a[ InetAddr] [ -NIfaceAddr] - ключ -a - отображает текущую таблицу ARP для всех интерфейсов. Для отображения записи конкретного IP-адреса используется ключ -a с параметром InetAdd , в качестве которого указывается IP-адрес. Если узел, отправляющий ARP-запрос имеет несколько сетевых интерфейсов, то для отображения таблицы ARP нужного интерфейса, можно использовать ключ -N с параметром IfaceAddr, в качестве которого используется IP-адрес интерфейса.

-g[ InetAddr] [ -NIfaceAddr] ключ -g идентичен ключу -a. 

-d InetAddr[ IfaceAddr] - используется для удаления записей из ARP-кэш. Возможно удаление по выбранному IP или полная очистка ARP кэш. Для удаления всех записей, вместо адреса используется символ * Если имеется несколько сетевых интерфейсов, то очистку можно выполнить для одного из них, указав в поле IfaceAddr его IP .

-s InetAddr EtherAddr [ IfaceAddr] - используется для добавления статических записей в таблицу ARP. Статические записи хранятся в ARP-кэш постоянно. Обычно, добавление статических записей используется для сетевых устройств, не поддерживающих протокол ARP или не имеющих возможности ответить на ARP- запрос.

/? - получение справки по использованию arp.exe. Аналогично - запуск arp.exe без параметров. 


Примеры использования ARP: 

arp -a - отобразить все записи таблицы ARP.

arp -a 192.168.0.9 - отобразить запись, соответствующую IP-адресу 192.168.0.9

arp -a 192.168.1.158 -N 192.168.1.1 - отобразить таблицу ARP для адреса 192.168.1.158 на сетевом интерфейсе 192.168.1.1 

arp -a -N 10.164.250.148 - отобразить все записи таблицы ARP на сетевом интерфейсе 10.164.250.148 .

arp -s 192.168.0.1 00-22-15-15-88-15 - добавить в таблицу ARP статическую запись, задающую соответствие IP - адреса 192.168.0.1 и MAC-адреса 00-22-15-15-88-15 

arp -s 192.168.0.1 00-22-15-15-88-15 192.168.0.56 - то же самое, что и в предыдущем случае, но с указанием сетевого интерфейса, для которого выполняется добавление статической записи. 

arp -d 192.168.1.1 192.168.1.56 удаление записи из таблицы ARP для IP-адреса 192.168.1.1 на сетевом интерфейсе 192.168.1.56

arp -d * - полная очистка таблицы ARP. Аналогично - arp -d без параметров. Если имеется несколько сетевых интерфейсов, то очистка может быть выполнена только для одного из них - arp -d * 192.168.0.56. 


Некоторые замечания по практическому использованию команды ARP:

- разрешение адресов по протоколу ARP выполняется только при операциях передачи данных по протоколу IP . 

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

- если ответ на ping не приходит, а запись для данного IP-адреса присутствует в таблице ARP, то этот факт можно интерпретировать как блокировку ICMP-пакетов брандмауэром пингуемого узла. 

- невозможность подключения к удаленному узлу по протоколам TCP или UDP при наличии записей в таблице ARP для целевого IP, может служить признаком отсутствия служб обрабатывающих входящие подключения, или их блокировки брандмауэром (закрытые порты).

- ARP протокол работает в пределах локального сегмента сети. Поэтому, если выполнить ping на внешний узел ( например ping google.com ), то в таблице ARP будет присутствовать запись для IP - адреса маршрутизатора, через который выполняется отправка пакета во внешнюю сеть.


При использовании команды ARP для отображения таблицы, не помещающейся на экране, удобно пользоваться командой постраничного вывода more или перенаправлением стандартного вывода в файл:

arp -a | more

arp -a > C:\myarp.txt


Утилита IPCONFIG

Утилита командной строки IPCONFIG присутствует во всех версиях Windows. 

Команда IPCONFIG используется для отображения текущих настроек протокола TCP/IP и для обновления некоторых параметров, задаваемых при автоматическом конфигурировании сетевых интерфейсов при использовании протокола Dynamic Host Configuration Protocol (DHCP). 


Синтаксис:

ipconfig [/allcompartments] [/all] [/renew[Adapter]] [/release[Adapter]] [/renew6[Adapter]] [/release6[Adapter]] [/flushdns] [/displaydns] [/registerdns] [/showclassidAdapter] [/setclassidAdapter [ClassID]]


Параметры:

/? - отобразить справку по использованию IPCONFIG

/all - отобразить полную конфигурацию настроек TCP/IP для всех сетевых адаптеров. Отображение выполняется как для физических интерфейсов, так и для логических, как например, dialup или VPN подключения.

/allcompartments - вывести полную информацию о конфигурации TCP/IP для всех секций. Применимо для Windows Vista/Windows 7 .

/displaydns - отобразить содержимое кэш службы DNS - клиент. 

/flushdns - сбросить содержимое кэш службы DNS - клиент. 

/registerdns - инициировать регистрацию записей ресурсов DNS для всех адаптеров данного компьютера. Этот параметр используется для изменения настроек DNS сетевых подключений без перезагрузки компьютера. 

/release[Adapter] - используется для отмены автоматических настроек сетевого адаптера, полученных от сервера DHCP. Если имя адаптера не указано, то отмена настроек выполняется для всех адаптеров. 

/release6[Adapter] - отмена автоматических настроек для протокола IPv6 

/renew[Adapter] - обновить конфигурацию для сетевого адаптера настроенного на получение настроек от сервера DHCP. Если имя адаптера не указано, то обновление выполняется для всех адаптеров. 

/renew6[Adapter] - как и в предыдущем случае, но для протокола IPv6 

/showclassid Adapter и /setclassid Adapter[ ClassID] - эти параметры применимы для Windows Vista / Windows 7 и используются для просмотра или изменения идентификатора Class ID, если он получен от DHCP - сервера при конфигурировании сетевых настроек. 


    Изменение сетевых настроек с помощью команды IPCONFIG, в основном, применимо к тем сетевым адаптерам, которые настроены на автоматическое конфигурирование с использованием службы динамической настройки основных параметров на сетевом уровне DHCP (Dynamic Host Configuration Protocol) или службы автоматической настройки приватных IP - адресов APIPA (Automatic Private IP Addressing) . 

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

Для имен адаптеров применимо использование символа * в качестве шаблона:

* - любое имя

Локальн* - имя адаптера начинается с " Локальн "

* сети * - имя адаптера содержит строку " сети " 


Примеры использования:

ipconfig - отобразить базовые сетевые настройки для всех сетевых адаптеров. BR>

ipconfig /all - отобразить все сетевые настройки для всех сетевых адаптеров. 

ipconfig /renew "Подключение по локальной сети 2" - обновить сетевые настройки, полученные от DHCP - сервера только для адаптера с именем " Подключение по локальной сети 2"

ipconfig /dysplaydns - вывести на экран содержимое кэш службы разрешения имен DNS

ipconfig /showclassid "Подключение по локальной сети" - отобразить все допустимые для этого адаптера идентификаторы классов DHCP.

ipconfig /setclassid "Local Area Connection" TEST - установить для адаптера с именем "Local Area Connection" идентификатор класса DHCP "TEST". Если идентификатор класса DHCP не указан, то он будет удален. 


Пример отображаемой конфигурации сетевого адаптера : 

Ethernet adapter Подключение по локальной сети : - имя адаптера 

DNS-суффикс подключения . . . . . : - DNS-суффикс из настроек сетевого подключения 

Описание. . . . . . . . . . . . . : Realtek 8139d Adapter #2 - описание адаптера. 

Физический адрес. . . . . . . . . : 00-14-02-7B-ED-67 - MAC- адрес данного адаптера.

DHCP включен. . . . . . . . . . . : Да - признак использования DHCP для конфигурирования сетевого адаптера

Автонастройка включена. . . . . . : Да - признак автоматической настройки параметров адаптера с использованием функции автоматического назначения адресов (APIPA) при отсутствии сервера DHCP. Режим определяется значением ключа реестра

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\GUID адаптера\IPAutoconfigurationEnabled

Значение 0 (тип DWORD) параметра IPAutoconfigurationEnabled отключает APIPA. Если значение этого параметра равно 1 , или параметр отсутствует в реестре, APIPA активируется. 

Автонастройка IPv4-адреса . . . . : 169.254.254.18(Основной) - автоматически полученный локальный адрес, если используется APIPA

Локальный IPv6-адрес канала . . . : fe80::7c22:e7f8:3a71:8249%16(Основной) - локальный IPv6 адрес, если используется адресация IPv6

IPv4-адрес. . . . . . . . . . . . : 10.10.11.77(Основной) - используемый для данного адаптера IPv4 - адрес.

Маска подсети . . . . . . . . . . : 255.255.224.0 - маска подсети.

Аренда получена. . . . . . . . . . : 2 марта 2022 г. 22:44:48 - дата и время получения сетевой конфигурации от сервера DHCP

Срок аренды истекает. . . . . . . . . . : 3 марта 2022 г. 2:31:27 - срок истечения аренды сетевых настроек. Определяется сервером DHCP.

Основной шлюз. . . . . . . . . : 10.10.11.1 - IP - адрес маршрутизатора, используемого в качестве шлюза по умолчанию.

Код класса DHCPv4. . . . . . . . . . : TEST - код класса DHCP, если он существует. 

DHCP-сервер. . . . . . . . . . . : 10.10.11.11 - - IP-адрес DHCP-сервера, от которого получена сетевая конфигурация. 


Следующие 2 параметра (идентификатор участников DHCP - DUID и идентификатор арендованного адреса IAID) присутствуют при автоматическом конфигурировании настроек протокола IPv6 . В крупных сетях могут присутствовать несколько серверов DHCPv6. При автоматическом конфигурировании сетевого адаптера, все они получают от клиента специальный запрос DHCP REQUEST. Каждый из них проверяет, ему ли был направлен запрос. Сервер не приступает к обработке пакетов с DUID, отличающимся от его собственного. При совпадении DUID, сервер помечает адрес как присвоенный и возвращает ответ DHCP REPLY. На этом обработка запроса завершается. 

IAID - это специальный идентификатор арендуемого IPv6-адреса длиной 4 байта. Клиенту выделяется адрес на время, определенное сервером (срок аренды). Когда предпочитаемый срок действия адреса заканчивается, клиент отправляет серверу пакет DHCP RENEW с запросом на продление этого срока. В сообщение включается идентификатор IAID, код которого также хранится в базе данных DHCP сервера. Если сервер готов продлить срок действия адреса, он отправляет ответ DHCP REPLY и клиент получает возможность использования арендованного адреса без повторного получения настроек. 


IAID DHCPv6 . . . . . . . . . . . : 234890384 - идентификатор арендованного адреса IAID

DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-14-E2-78-C0-00-0C-1E-7C-29-E3 - идентификатор участников DHCP

DNS-серверы. . . . . . . . . . . : 94.25.128.74

                                                94.25.208.74 - адреса DNS - серверов, используемых для разрешения имен в IP-адреса узлов.

NetBios через TCP/IP. . . . . . . . : Включен - режим использования NetBios через протокол TCP/IP. 



Утилита GETMAC

Утилита командной строки GETMAC присутствует в версиях Windows XP и старше. Используется для получения аппаратных адресов сетевых адаптеров (MAC-адресов) как на локальном, так и на удаленном компьютере. 

Синтаксис:

GETMAC [/S <система> [/U <пользователь> [/P <пароль>]]] [/FO <формат>] [/NH] [/V]

Параметры: 

/S <система> - имя или IP-адрес удаленного компьютера.

/U [<домен>\]<пользователь> Имя пользователя. Если не задано, то используется текущая учетная запись. 

/P [<пароль>] - Пароль. Если задан параметр /U и не задан пароль, то он будет запрошен.

/FO <формат> - Формат, в котором следует отображать результаты запроса. Допустимые форматы: "TABLE" (таблица), "LIST" (список), "CSV" (разделяемые запятыми поля). Если параметр не задан, то используется вывод в виде таблицы (TABLE) .

/NH - Указывает, что строка заголовков столбцов не должна отображаться в результирующем файле. форматов TABLE и CSV.

/V - Отображение подробной информации. В отображаемой информации присутствует имя сетевого подключения и название сетевого адаптера.

/? - Вывод справки по использованию команды.


Примеры: 

GETMAC /? - отобразить краткую справку об использовании GETMAC. 

GETMAC /FO csv - выдать информации о MAC-адресах всех существующих на локальном компьютере сетевых адаптеров в формате CSV (полей с разделителями в виде запятой)

GETMAC /S COMPUTER /NH /V - получить MAC адреса сетевых адаптеров для удаленного компьютера COMPUTER, не отображать заголовки столбцов в таблице и использовать отображение подробной информации. Для подключения к удаленному компьютеру используется текущая учетная запись пользователя.

GETMAC /S 192.168.1.1 /NH /V - то же самое, но вместо имени компьютера задан его IP-адрес.

GETMAC /S COMPUTER /U user /P password - получить MAC - адрес адаптеров удаленного компьютера COMPUTER. Для подключения к нему используется имя пользователя "user" и пароль "password" 

GETMAC /S COMPUTER /U mydomain\user - для подключения к удаленному компьютеру используется учетная запись пользователя "user" в домене "mydomain". Пароль пользователя вводится по запросу. 

GETMAC /S COMPUTER /U mydomain\user /P password - то же самое, что и в предыдущем случае, но пароль задан в командной строке. 


Пример выводимой информации по GETMAC без параметров:

==============================================

Физический адрес             Имя транспорта 

==============================================

00-00-DB-CE-97-9C            \Device\Tcpip_{85E2B831-859B-45D4-9552-0E6DCFB57391}

00-2E-20-6B-0D-07             \Device\Tcpip_{158A50DF-F6F2-4909-8F15-DF94B51A81FF} 

По имени транспорта можно найти в реестре записи, связанные с данным сетевым адаптером. 


Продолжение следует.

No comments:

Post a Comment

А что вы думаете по этому поводу?