Введение
В двух предыдущих статьях данного цикла вы узнали о структуре и настройке IPv4 и маски подсети средствами графического интерфейса. В операционных системах Windows за настройку, поддержку и анализ проблем в TCP/IP сетях отвечает оболочка сетевых сервисов Netsh. Netsh – это системная утилита-сценарий командной строки, позволяющая управлять конфигурацией различных сетевых служб, как на локальном, так и на удаленном компьютерах. По сути, Netsh предоставляет свою командную строку, которую вы можете использовать как в интерактивном, так и в неинтерактивном режимах. Утилита Netsh для корректной работы тесно взаимодействует с другими компонентами операционной системы, используя динамические библиотеки. В свою очередь, каждый Netsh Helper DLL обеспечивает данную утилиту обширным набором функций, называемых контекстами, которые представляют собой группу команд, предназначенных для управления сетевыми компонентами. В интерактивном режиме вы входите в оболочку, в командной строке вводите netsh и указываете имя контекста нужной для вас сетевой службы. Например, библиотека Dhcpmon.dll предоставляет утилите Netsh контекст и набор команд, предназначенных для настройки и поддержки DHCP-серверов.
Для этой утилиты существуют десятки различных контекстов, при помощи которых вы можете выполнять большинство операций, связанных с сетевыми сервисами. Каждый контекст утилиты netsh имеет свой набор доступных команд, причем, некоторые команды могут вызывать другие подконтексты, у которых тоже есть свои команды. Также стоит обратить внимание на то, что для переключения в нужный контекст из любого места в утилите netsh вам нужно только лишь ввести полное имя необходимого контекста. Для просмотра и управления сетевой TCP/IPv4-конфигурацией локального или удаленного компьютера, воспользуйтесь контекстом Interface IPv4 (включая адресацию, маски подсети, шлюзы по умолчанию, DNS- и WINS-сервера). Учтите, что некоторые команды контекста IPv4 доступны для работы только на локальном компьютере. В этой статье речь пойдет о настройке конфигурации IPv4 средствами командной строки, а именно при помощи контекста Interface IPv4 утилиты Netsh.
Добавление IPv4 адресов
Иногда вам может понадобиться, чтобы один компьютер выглядел в сети как несколько компьютеров или, чтобы ваша сеть была разделена на разные подсети и компьютеру необходим доступ к обеим подсетям только с одним сетевым адаптером. В операционных системах Windows, начиная с Windows Vista и Windows Server 2008, вы можете привязать несколько IPv4-адресов к компьютеру, даже если у него есть только один физический сетевой адаптер. При помощи утилиты командной строки Netsh и команды Add Address вы можете выполнить такие действия, то есть добавить новые IPv4 адреса и основные шлюзы на определенный интерфейс со статическим адресом. Стоит обратить внимание на то, что если для сетевого интерфейса IPv4-адреса будут назначаться DHCP-сервером, при добавлении адреса она будет отключена. Синтаксис команды следующий:
Netsh Interface IPv4 Add Address name=[имя_подключения] address=[ IPv4-адрес] mask=[маска] type=[тип] gateway=[шлюз] gwmetric=[метрика_шлюза] остальные_параметры
Где доступны следующие параметры:
Name. Этот параметр отвечает за имя или индекс вашего сетевого интерфейса. В большинстве случаев вы имеете дело с интерфейсом «Подключение по локальной сети» (Local Area Connection).
Address. Значеним этого параметра является статический IPv4 адрес, указанный в десятеричной системе счисления с разделительными точками, причем после этого адреса вы можете указывать префикс подсети.
Mask. Данный параметр отвечает за маску подсети для указанного IP-адреса.
Type. При помощи этого параметра вы можете указать, что данный адрес является адресом многоадресной рассылки (значение unicast) или произвольной рассылки (значение anycast). Данный параметр является опциональным
Gateway. Этот параметр определяет основной шлюз для добавляемого IPv4 адреса.
Gwmetric. Значением данного параметра выступает метрика основного шлюза. Метрика шлюза сообщает относительную цену использования этого шлюза. Если к определённому IPv4-адресу ведет несколько маршрутов, первым используется именно тот шлюз, цена метрики которого минимальная. В том случае, если компьютер не может связаться с первым шлюзом, операционная система Windows попытается задействовать шлюз со следующей наименьшей метрикой. По умолчанию метрика шлюза не назначается.
Validlifetime. При помощи текущего параметра вы можете указать время жизни добавляемого вами адреса.
Preferredlifetime. Данный параметр определяет время жизни, в течение которого добавляемый вами адрес является основным.
Subinterface. Используя этот параметр, вы можете указать LUID для подчиненного интерфейса, на котором существует основной шлюз.
Store. Используя этот параметр, вы можете указать, будет ли после следующей загрузки данный адрес потерян (значение active) или будет ли адрес постоянным (значение persistent). Этот параметр опциональный и по умолчанию он не используется.
В этом примере добавим IP-адрес 192.168.137.5 для сетевого подключения «Подключение по локальной сети», где основной шлюз будет 192.168.137.1, а метрика будет равна 1:
Add address name=«Подключение по локальной сети» address=192.168.137.5 mask=255.255.255.0 gateway=192.168.137.1 gwmetric=1
Увеличить рисунок
Рис. 1. Добавление нового IP-адреса средствами командной строки
Настройка конфигурации IPv4
Как администраторам, так и штатным пользователям операционных систем Windows как минимум один раз в жизни приходилось менять IP-конфигурацию на своем компьютере. При обнаружении сетевой платы во время установки операционной системы по умолчанию включаются две версии протокола IP – IPv4 и IPv6. Также по умолчанию всем подключениям IPv4-адреса назначаются автоматически для того чтобы компьютер мог подключаться к DHCP-серверам. Компьютеры с таким типом подключения называются DHCP-клиентами. Из командной строки вы можете настраивать IP-адресацию вручную или автоматически. При настройке вручную вы назначаете компьютеру статический IP-адрес. Как вы уже знаете, такой адрес является фиксированным и не изменится до тех пор, пока вы вручную его не поменяете. При динамической настройке вы конфигурируете компьютер так, чтобы он получал свой IP-адрес от DHCP-сервера, расположенного в той же сети. Такой адрес всегда назначается при загрузке компьютера, и он может меняться.
Для настройки IP-конфигурации сетевых подключений вы также можете использовать утилиту командной строки Netsh, где статические и динамические IP-адреса назначаются в контексте Interface IPv4при помощи команды Set Address. Для работы с данной командой используется следующий синтаксис:
Netsh Interface IPv4 Add Address name=[имя_подключения] source=[dhcp | static] address=[ IPv4-адрес] mask=[маска] gateway=[шлюз] gwmetric=[метрика_шлюза] остальные_параметры
Как видно в этом синтаксисе, большинство параметров для данной команды ничем не отличаются от параметров команды Add Address. Параметр Name отвечает за имя подключения, параметр Address – за статический IP4v-адрес и т.д. Для этой команды вы можете использовать такие дополнительные параметры как type, subinterface и store, которые были подробно рассмотрены в предыдущем подразделе. Рассмотрим параметр, который не встречался в предыдущей команде:
Source. При помощи этого параметра вы объявляете команде, каким образом вам нужно настроить данное сетевое подключение. Если значением данного параметра будет dhcp, то данное сетевое подключение будет отконфигурировано под динамические настройки. В том случае если значением данного параметра будет выступать static, то для сетевого подключения будет назначаться статический IPv4-адрес.
В этом примере изменим статический IPv4-адрес для интерфейса с именем «Подключение по локальной сети» с 192.168.137.1 на 192.168.137.3 и добавим адрес основного шлюза 192.168.137.1:
Set Address name=«Подключение по локальной сети» source=static address=192.168.137.3 mask=255.255.255.0 gateway=192.168.137.1
Увеличить рисунок
Рис. 2. Изменение IPv4-адреса и основного шлюза при помощи командной строки
Отображение сведений конфигурации IPv4
Во время настройки сетевых подключений вам может понадобиться просмотреть конфигурацию существующих подключений. Функционал утилиты контекста Interface IPv4 утилиты Netsh позволяет вам выполнять такие действия. Команда Show addresses предназначена для проверки доступных интерфейсов и их текущей конфигурации. Для этой команды доступен лишь один параметр Name, при помощи которого вы можете указать только одно подключение, для которого будет выведена конфигурация.
В выводе команды отображаются данные по следующим строкам:
- DHCP включен. Эта строка отображает, является ли адрес статическим или использует DHCP-конфигурацию;
- IP-адрес. В данной строке вы можете увидеть IP-адрес, настроенный для данного интерфейса;
- Маска подсети. Здесь указана маска подсети, которая связана с указанным выше IP-адресом;
- Основной шлюз. В этой строке вы можете увидеть IP-адрес основного шлюза для текущего интерфейса;
- Метрика шлюза. В этой строке отображается метрика основного шлюза, который указан выше и отображается она только в том случае, если существует несколько основных шлюзов;
- Метрика интерфейса. Данная строка показывает метрику текущего интерфейса и также, как и предыдущая строка, отображается только при наличии нескольких сетевых интерфейсов.
В этом примере выведем конфигурацию подключения «Подключение по локальной сети»:
Show addresses name=«Подключение по локальной сети»
Увеличить рисунок
Рис. 3. Просмотр конфигурации сетевого подключения средствами командной строки
Удаление IPv4 адресов
Контекст Interface IPv4 утилиты Netsh командной строки также позволяет вам удалять некоторые конфигурационные параметры TCP/ IP. Синтаксис у данной команды следующий:
Delete address name=[имя_сетевого_подключения] address=[ IPv4-адрес] gateway=[имя_шлюза]
С этой командой вы можете использовать следующие параметры:
Name. Имя сетевого подключения, для которого будет выполняться удаление адреса или основного шлюза;
Address. Этот параметр отвечает за удаляемый IPv4-адрес. Например, для удаления статического адреса для сетевого подключения «Подключение по локальной сети», вы можете выполнить такую команду: Delete address name=«Подключение по локальной сети» address=192.168.156.21.
Gateway. При помощи этого параметра вы можете удалить основной шлюз. Данный параметр поддерживает несколько значений:
- Удаление статического IP-адреса основного шлюза. В этом случае применение команды будет выглядеть следующим образом: Delete address name=«Подключение по локальной сети» gateway=192.168.1.1
- Удаление всех статических IP-адресов шлюзов в указанном интерфейсе. В этом случае значением данного параметра будет all. Например: Delete address name=«Подключение по локальной сети» gateway=all.
Store. При помощи этого параметра вы можете указать, что удаление данного адреса будет действовать только до перезагрузки компьютера (значение active) или удаление будет выполнено окончательно (значение persistent), что и задано по умолчанию.
В этом примере удалим IPv4-адрес и основной шлюз, созданный в одном из предыдущих разделов данной статьи для подключения «Подключение по локальной сети»:
Delete address name=«Подключение по локальной сети» address=192.168.137.3 gateway=192.168.137.1
Увеличить рисунок
Рис. 4. Удаление статического адреса и основного шлюза средствами командной строки
Заключение
В этой статье вы познакомились с утилитой командной строки Netsh, предназначенной для управления конфигурацией различных сетевых служб на компьютерах. Также вы познакомились с контекстом Interface IPv4, позволяющим управлять сетевой TCP/ IPv4-конфигурацией. Были рассмотрены примеры с добавлением IP-адресов и шлюзов, изменением настроек статического адреса, просмотра сетевой конфигурации и удаления параметров TCP/ IP. В следующей статье данного цикла вы познакомитесь с утилитами командной строки, предназначенными для устранения неполадок сетевых подключений.