Я решил сделать записи на память по использованию PowerShell для администрирования Windows сети, Firewall и Defender в описании Сергея Яремчука.
Сегодня пройдемся по настройкам сети. Оригинал был напечатан в журнале "Системный администратор", № 2014/6.
Microsoft заявляет, что постепенно классические консольные утилиты, к которым администраторы привыкли за долгое время, будут заменяться командлетами PowerShell.
С выходом PowerShell 4.0 модуль Net TCP/IP пополнился новыми командлетами, которые упростили настройку сети. За настройку параметров интерфейса вместо netsh interface ipv4 отвечают два командлета – New-NetIPAddress и Set-NetIPAddress, синтаксис у них схож, оба могут создавать новые настройки, но второй позволяет модифицировать текущие.
New-NetIPAddress -InterfaceAlias Ethernet -IPv4Address 192.168.0.2 -DefaultGateway 192.168.0.1
Set-NetIPAddress -InterfaceAlias Ethernet -PrefixLength 24
Вместо InterfaceAlias удобнее использовать индекс InterfaceIndex, его легко узнать, просмотрев вывод Get-NetIPInterface. Для удаления настроек IP используется командлет Remove-NetIPAddress.
Remove-NetIPAddress -IPAddress 192.168.0.2
Для корректной работы нам понадобится настроить адреса DNS-серверов, это решается с помощью командлета Set-DNSClientServerAddress (из состава модуля DNSClient):
Get-DnsClientServerAddress
Set-DNSClientServerAddress -InterfaceIndex 12 -ServerAddresses "192.168.0.1","8.8.8.8"
Текущие сетевые настройки можно узнать из выводов Get-NetIPAddress и Get-NetIPConfiguration (алиас gip), являющихся аналогами ifconfig. Например, Get-NetIPConfiguration выводит полную информацию о сетевых настройках: IP-адреса интерфейса и шлюза и DNS. Дополнительный параметр -Detailed позволит получить больше данных. Команда route долго использовалась для просмотра и настройки маршрутов, теперь ему на замену идет набор командлетов *-NetRoute, очень простых и понятных в использовании. Получаем текущие настройки маршрутизации и устанавливаем новый маршрут по умолчанию.
Get-NetRoute
New-NetRoute -DestinationPrefix "0.0.0.0/0" -NextHop "192.168.0.1" -InterfaceIndex 12
Чтобы проверить доступность определенного узла, PowerShell предлагает два командлета: Test-Connection и Test-NetConnection (сокращенно tnc). Первый входит в основной модуль PowerShell Management и для проверки использует ICMP (в работе напоминает обычный ping).
Второй входит в состав модуля NetTCPIP и обладает большими возможностями, позволяя проверить доступность определенного порта или системы с разных ПК. Например, проверим подключение к SRV01.example.org с двух систем:
Test-NetConnection -ComputerName SRV01.example.org -source localhost, SRV02.example.org
Чтобы получить больше информации достаточно добавить ключ -InformationLevel Detailed, ключ -TraceRoute позволит произвести трассировку подключения (аналог tracert). Для проверки, слушается ли порт, следует указать его номер (поддерживается четыре строковых параметра – SMB, HTTP, RDP и PING). Если ввести команду без указания узла, будет проверено подключение к Интернету.
Test-NetConnection -Port 80 -InformationLevel Detailed
Количество решаемых задач может быть очень велико, для каждых условий будут оптимальны разные настройки TCP, а установки по умолчанию эффективны не всегда. Для тюнинга TCP предназначен набор командлетов *-NetTCPSetting и *-NetTransportFilter.
С помощью Get-NetTCPSetting получаем список преднастроек. По умолчанию SettingName установлено в значение Automatic, и настройки пусты. Зато существенно различаются между собой InternetCustom, DatacenterCustom, Compat, Datacenter и Internet, назначение которых понятно и без объяснений. Но редактировать можно только профили InternetCustom и DatacenterCustom. Какие подключения будет использовать профиль, можно выяснить, выполнив Get-NetTCPConnections.
Включим расширения IP ECN (Explicit Congestion Notification, явное уведомление о перегруженности, см. RFC 3168) и протокол DCTCP (Data Center TCP) для DatacenterCustom.
Set-NetTCPSetting -SettingName DatacenterCustom -ECNCapability Enabled -CongestionProvider DCTCP
Чтобы применить параметр TCP к порту с номером или диапазону IP-адреса назначения, надо создать транспортный фильтр с помощью командлета New-NetTransportFilter.
New-NetTransportFilter –SettingName DatacenterCustom –DestinationPrefix 172.16.0.0/16
Дополнительно можно задать локальный и удаленный порты.
No comments:
Post a Comment
А что вы думаете по этому поводу?