Что такое служба smb direct
SMB Windows 10: настройка и как включить SMB1 и SMB2
Всем привет! Сегодня столкнулся с такой проблемой. При построении локальной сети с двумя компьютерами первый (Windows 10) наотрез отказывается видеть другой комп (Windows 7). Все настройки я произвел правильно и открыл общий доступ. Но как потом оказалось, вся проблема в специальном сетевом протоколе SMB 1. Дело в том, что это старый протокол, который работает на олдскульных ОС. И он есть в десятке, но на последних обновлениях операционной системы Microsoft решила его отключить (во имя безопасности).
Симптомы достаточно простые. Вы выполнили все нужные настройки, заходите в раздел сети, а там ничего кроме вашего маршрутизатора не отображается. Бывает такое, что компьютер вы видите, и даже можете на него зайти, но вот при попытке открыть расшаренную папку можно лицезреть вот такое вот сообщение:
«Вы не можете подключиться к общей папке, так как она небезопасна. Эта общая папка работает по устаревшему протоколу SMB1, который не безопасен и может подвергнуть вашу систему риску атаки.»
Может быть еще вот такой текст ошибки: «Не удалось выполнить сопоставление сетевого диска из-за следующей ошибки». Ну и дальше все в том же духе.
Кстати, некоторые старые роутеры, также исползают устаревший SMB1 протокол – поэтому если у вас еще наблюдается проблема с доступом к жесткому диску или флешке, которые подключены к роутеру, то дальнейшие инструкции вам также будут полезны. Что мы будем делать? – нам нужно просто включить протокол SMBv1, и проблема будет решена. Поехали!
Включения SMB1 на Windows 10
Открываем меню «Пуск» и в поисковой строке вводим «Включение и отключение компонентов Windows». Можете просто ввести не полное слово «компонент». Вы также можете зайти туда через «Панель управления» (нажимаем кнопки «Win» и «R» – вводим команду: control). Далее заходим в «Программы и компоненты» и слева выбираем тот же самый пункт с отключением и включением компонентов.
Находим раздел с упоминанием нашего любимого протокола и включаем в папке все галочки. В самом конце нажимаем «ОК», чтобы изменения были приняты.
После этого SMB-1 в Windows 10 будет включено, и проблемы с сетью возникнуть не должны. Я бы на всякий случай перезагрузил компьютер. Но если вы все равно не видите какой-то компьютер в сети, или есть проблемы с доступом, смотрим следующую главу.
Проверка настроек
Нам нужно посмотреть настройки общего доступа и есть ли они у вас вообще.
Включение SMB2
Сначала давайте проверим статус SMBv2. Для это откройте «PowerShell» с правами админа, нажав ПКМ по кнопке «Пуск».
Get-SmbServerConfiguration | Select EnableSMB2Protocol
Если вы видите значение «True», то значит протокол работает. Если стоит значение «False», то включить параметр можно также с помощью команды:
ПРИМЕЧАНИЕ! Таким же образом можно включить или выключить SMB1 – просто замените в команде одну цифру (2 на 1).
Далее кликаем по «Y» и на «Enter», чтобы подтвердить свои действия. Если же вы хотите отключить SMB2, то вместо «true» ставим «false». В конце не забываем перезагрузить систему.
Ничего не помогло, папку или компьютер не видно, ничего не работает
Если проблема остается, то есть несколько вариантов – от неправильных сетевых настроек до проблем с некоторыми службами в самой операционной системе. Все решения я уже описал в отдельной статье, и с ней вы можете ознакомиться по этой ссылке. То, что описано там, должно помочь.
Протокол SMB: определить, включить или отключить определенную версию SMB в Windows
Сетевой протокол SMB (Server Message Block) используется для предоставления совместного удаленного доступа к файлам, принтерам и другим устройствам через порт TCP 445. В этой статье мы рассмотрим: какие версии (диалекты) протокола SMB доступны в различных версиях Windows (и как они соотносятся с версиями samba в Linux); как определить версию SMB на вашем компьютере; и как включить/отключить клиент и сервер SMBv1, SMBv2 и SMBv3.
Версии протокола SMB в Windows
Есть несколько версии протокола SMB (диалектов), которые последовательно появлялись в новых версиях Windows:
При сетевом взаимодействии по протоколу SMB между клиентом и сервером используется максимальная версия протокола, поддерживаемая одновременно и клиентом, и сервером.
Ниже представлена сводная таблица, по которой можно определить версию протокола SMB, которая выбирается при взаимодействии разных версий Windows:
К примеру, при подключении клиентского компьютера с Windows 8.1 к файловому серверу с Windows Server 2016 будет использоваться протокол SMB 3.0.2.
Согласно таблице Windows XP, Windows Server 2003 для доступа к общим файлам и папкам на сервере могут использовать только SMB 1.0, который в новых версиях Windows Server (2012 R2 / 2016) может быть отключен. Таким образом, если в вашей инфраструктуре одновременно используются компьютеры с Windows XP (снятой с поддержки), Windows Server 2003/R2 и сервера с Windows Server 2012 R2/2016/2019, устаревшие клиенты не смогут получить доступ к файлам и папкам на файловом сервере с новой ОС.
Если Windows Server 2016/2012 R2 с отключенным SMB v1.0 используется в качестве контроллера домена, значить клиенты на Windows XP/Server 2003 не смогут получить доступ к каталогам SYSVOL и NETLOGON на контроллерах домена и авторизоваться в AD.
На старых клиентах при попытке подключиться к ресурсу на файловом сервере с отключенным SMB v1 появляется ошибка:
Как проверить поддерживаемые версии SMB в Windows?
Рассмотрим, как определить, какие версии протокола SMB поддерживаются на вашем компьютере Windows.
В Windows 10, 8.1 и Windows Server 2019/2016/2012R2 вы можете проверить состояние различных диалектов SMB протокола с помощью PowerShell:
Get-SmbServerConfiguration | select EnableSMB1Protocol,EnableSMB2Protocol
Данная команда вернула, что протокол SMB1 отключен ( EnableSMB1Protocol=False ), а протоколы SMB2 и SMB3 включены ( EnableSMB1Protocol=True ).
В Windows 7, Vista, Windows Server 2008 R2/2008:
Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object
Если в данной ветке реестра нет параметров с именами SMB1 или SMB2, значить протоколы SMB1 и SMB2 по умолчанию включены.
Также в этих версиях Windows вы можете проверить, какие диалекты SMB разрешено использовать в качестве клиентов с помощью команд:
sc.exe query mrxsmb10
sc.exe query mrxsmb20
В обоих случаях службы запущены ( STATE=4 Running ). Значит Windows может подключаться как к SMBv1, так и к SMBv2 серверам.
Вывести используемые версии SMB с помощью Get-SMBConnection
Как мы говорили раньше, компьютеры при взаимодействии по протоколу SMB используют максимальную версию, поддерживаемую как клиентом, так и сервером. Для определения версии SMB, используемой для доступа к удаленному компьютеру можно использовать командлет PowerShell Get-SMBConnection :
Версия SMB, используемая для подключения к удаленному серверу (ServerName) указана в столбце Dialect.
Можно вывести информацию о версиях SMB, используемых для доступа к конкретному серверу:
Если нужно отобразить, используется ли SMB шифрование (появилось в SMB 3.0), выполните:
Get-SmbConnection | ft ServerName,ShareName,Dialect,Encrypted,UserName
Чтобы на стороне сервера вывести список используемых клиентами версий протокола SMB и количество клиентов, используемых ту или иную версию протокола SMB, выполните команду:
В нашем примере имеется 825 клиентов, подключенных к серверу с помощью SMB 2.1 (Windows 7/Windows Server 2008 R2) и 12 клиентов SMB 3.02.
С помощью PowerShell можно включить аудит версий SMB, используемых для подключения:
События подключения затем можно извлечь из журналов Event Viewer:
Об опасности использования SMBv1
Последние несколько лет Microsoft из соображений безопасности планомерно отключает устаревший протокол SMB 1.0. Связано это с большим количеством критических уязвимостей в этом протоколе (вспомните историю с эпидемиями вирусов-шифровальщиков wannacrypt и petya, которые использовали уязвимость именно в протоколе SMBv1). Microsoft и другие IT компании настоятельно рекомендуют отказаться от его использования.
Однако отключение SMBv1 может вызвать проблемы с доступом к общий файлам и папкам на новых версиях Windows 10 (Windows Server 2016/2019) с устаревших версий клиентов (Windows XP, Server 2003), сторонних ОС (Mac OSX 10.8 Mountain Lion, Snow Leopard, Mavericks, старые версии Linux), различных старых NAS устройствах.
Если в вашей сети не осталось legacy устройств с поддержкой только SMBv1, обязательно отключайте эту версию диалекта в Windows.
В том случае, если в вашей сети остались клиенты с Windows XP, Windows Server 2003 или другие устройства, которые поддерживают только SMBv1, их нужно как можно скорее обновить или тщательно изолировать.
Включение и отключение SMBv1, SMBv2 и SMBv3 в Windows
Рассмотрим способы включения, отключения различных версий SMB в Windows. Мы рассматриваем отдельно включение клиента и сервера SMB (это разные компоненты).
Windows 10, 8.1, Windows Server 2019/2016/2012R2:
Windows 7, Vista, Windows Server 2008 R2/2008:
Отключить SMBv1 сервер:
Отключить SMBv1 клиент:
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled
Включить SMBv1 клиент:
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb10 start= auto
Отключить SMBv2 сервер:
Включить SMBv2 сервер
Отключить SMBv2 клиент:
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
sc.exe config mrxsmb20 start= disabled
Включить SMBv2 клиент:
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb20 start= auto
Для отключения SMBv2 нужно в этой же ветке установить параметр SMB2=0.
Для отключения SMBv1 клиента нужно распространить такой параметр реестра:
При отключении SMB 1.0/CIFS File Sharing Support в Windows вы можете столкнуться с ошибкой “0x80070035, не найден сетевой путь”, ошибкой при доступе к общим папкам, и проблемами обнаружения компьютеров в сетевом окружении. В этом случае вместо служба обозревателя компьютеров (Computer Browser) нужно использовать службы обнаружения (линк).
Общие сведения о совместном использовании файлов с помощью протокола SMB 3 в Windows Server
Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012
В этой статье описывается функция SMB 3 в Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 и Windows Server 2012, а также практическое применение совершенно новой или обновленной функциональной возможности этой версии по сравнению с предыдущими, а также требования к оборудованию. SMB также является протоколом структуры для решений программно-определяемого центра обработки данных (SDDC), например для Локальных дисковых пространств, реплик хранилища и др. SMB версии 3.0 появился в Windows Server 2012 и постепенно улучшался в последующих выпусках.
Описание компонента
Протокол SMB — это сетевой протокол для общего доступа к файлам, который позволяет приложениям компьютера читать и записывать файлы, а также запрашивать службы серверных программ в компьютерной сети. Протокол SMB может использоваться поверх протокола TCP/IP или других сетевых протоколов. С помощью протокола SMB приложение (или использующий его пользователь) может получать доступ к файлам и другим ресурсам удаленного сервера. Это позволяет приложениям читать, создавать и обновлять файлы на удаленном сервере. SMB может также обмениваться данными с любой серверной программой, которая настроена на получение клиентских запросов SMB. SMB — это протокол структуры, который используется вычислительными технологиями программно-определяемых центров обработки данных (SDDC), такими как Локальные дисковые пространства и реплики хранилища. Дополнительные сведения см. в статье Windows Server software-defined datacenter (Программно-определяемый центр обработки данных Windows Server).
Практическое применение
В этом подразделе описан ряд способов использования нового протокола SMB 3.0.
Если вам нужно сэкономить дисковое пространство в общем файловом ресурсе SMB, рассмотрите возможность использования Синхронизации файлов Azure с включенным распределением по уровням облака. Благодаря этому вы сможете кэшировать часто используемые файлы локально и распределять редко используемые файлы по уровням облака, сохраняя пространство в локальном хранилище и поддерживая производительность. Дополнительные сведения см. в статье Планирование развертывания Синхронизации файлов Azure.
Новые и измененные функции
В следующих разделах описываются функциональные возможности, добавленные в SMB 3, и последующие обновления.
Функции, добавленные в Windows Server 2019 и Windows 10 версии 1809
Функции, добавленные в Windows Server версии 1709 и Windows 10 версии 1709
Компонент или функция | Новинка или обновление | Сводка |
---|---|---|
Гостевой доступ к общим папкам отключен | Создать | Клиент SMB больше не разрешает следующие действия: доступ учетной записи гостя к удаленному серверу; откат к учетной записи гостя после ввода недопустимых учетных данных. Дополнительные сведения см. в статье Гостевой доступ в SMB2 отключен по умолчанию в Windows. |
Глобальное сопоставление SMB | Создать | Сопоставляет удаленную общую папку SMB с буквой диска, доступного всем пользователям на локальном узле, включая контейнеры. Это необходимо, чтобы включить операции ввода-вывода для контейнера в томе данных для прохода через удаленную точку подключения. Учтите, что при использовании глобального сопоставления SMB для контейнеров всем пользователям на узле контейнера предоставляется доступ к удаленной общей папке. Все приложения, работающие на узле контейнера, также получат доступ к сопоставленной удаленной общей папке. Дополнительные сведения см. в статье Container Storage Support with Cluster Shared Volumes (CSV), Storage Spaces Direct, SMB Global Mapping (Поддержка контейнера хранилища с общими томами кластера (CSV), Локальными дисковыми пространствами и глобальным сопоставлением SMB). |
Управление диалектом SMB | Создать | Теперь можно задать значения реестра, чтобы управлять минимальной (диалектом) и максимальной версией SMB. Дополнительные сведения см. в статье Controlling SMB Dialects (Управление диалектами SMB). |
Функции, добавленные в SMB 3.11 с Windows Server 2016 и Windows 10 версии 1607
Компонент или функция | Новинка или обновление | Сводка |
---|---|---|
Шифрование SMB | Обновлено | Шифрование SMB 3.1.1 в режиме AES-GCM выполняется быстрее, чем подписывание SMB или шифрование SMB предыдущей версии с использованием AES-CCM. |
Кэширование каталогов | Создать | SMB 3.1.1 включает дополнительные возможности для кэширования каталогов. Клиенты Windows теперь могут кэшировать каталоги гораздо большего размера (приблизительно с 500 000 записей). Клиенты Windows могут выполнять запросы к каталогу, используя буферы размером в 1 МБ, чтобы сократить круговые пути и увеличить производительность. |
Целостность предварительной проверки подлинности | Создать | В SMB 3.1.1 целостность предварительной проверки подлинности обеспечивает улучшенную защиту от атак типа «злоумышленник в середине», при которых несанкционировано изменяются подключения SMB и сообщения проверки подлинности. Дополнительные сведения см. в статье SMB 3.1.1 Pre-authentication integrity in Windows 10 (Целостность предварительной проверки подлинности с SMB 3.1.1 в Windows 10). |
Улучшения в шифровании SMB | Создать | SMB 3.1.1 предоставляет механизм для согласования алгоритма шифрования при каждом соединении с вариантами для AES-128-CCM и AES-128-GCM. AES-128-GCM используется по умолчанию для новых версий Windows, в то время как для более старых версий продолжается использование AES-128-CCM. |
Поддержка последовательного обновления кластера | Создать | Позволяет последовательно обновлять кластер, используя SMB для поддержки различных максимальных версий SMB для кластеров в процессе обновления. Дополнительные сведения об обмене данными SMB с помощью различных версий (диалектов) протокола см. в статье Controlling SMB Dialects (Управление диалектами SMB). |
Поддержка клиентов SMB Direct в Windows 10 | Создать | Windows 10 Корпоративная, Windows 10 для образовательных учреждений и Windows 10 Pro для рабочих станций теперь предусматривают поддержку клиентов SMB Direct. |
Встроенная поддержка вызовов API FileNormalizedNameInformation | Создать | Добавлена встроенная поддержка для запросов нормализованного имени файла. Дополнительные сведения см. в статье о FileNormalizedNameInformation. |
Дополнительные сведения см. в статье What’s new in SMB 3.1.1 in the Windows Server 2016 Technical Preview 2 (Новые возможности SMB 3.1.1 в Windows Server 2016 (техническая версия 2)).
Возможности, добавленные в SMB 3.02 с Windows Server 2012 R2 и Windows 8.1
Компонент или функция | Новинка или обновление | Сводка |
---|---|---|
Автоматическая повторная балансировка клиентов масштабируемого файлового сервера | Создать | Увеличивает масштабируемость и управляемость масштабируемых файловых серверов. Клиентские подключения SMB отслеживаются для каждого общего файлового ресурса (а не для каждого сервера), после чего клиенты перенаправляются в узел кластера с оптимальным доступом к тому, используемому общим файловым ресурсом. Это повышает производительность, снижая трафик перенаправления между узлами файлового сервера. Клиенты перенаправляются после начального подключения при перенастройке системы хранения данных кластера. |
Производительность в глобальной сети | Обновлено | В Windows 8.1 и Windows 10 улучшена работа CopyFile SRV_COPYCHUNK благодаря поддержке SMB при использовании проводника для удаленного копирования из одного расположения на удаленном компьютере в другую копию на том же сервере. Вы скопируете только небольшой объем метаданных через сеть (передается 1/2 КиБ на 16 МиБ данных файла). Это приводит к значительному увеличению производительности. Для SMB — это различие на уровне операционной системы и проводника. |
SMB Direct | Обновлено | Улучшает производительность нагрузок малого ввода-вывода, повышая эффективность при размещении нагрузок с малыми вводами-выводами (например, база данных оперативной обработки транзакций (OLTP) в виртуальной машине). Эти улучшения заметны при использовании более быстрых сетевых интерфейсов, таких как Ethernet 40 Гбит/с и InfiniBand 56 Гбит/с. |
Ограничения пропускной способности SMB | Создать | Теперь можно использовать Set-SmbBandwidthLimit, чтобы задать ограничения пропускной способности в трех категориях: VirtualMachine (трафик Hyper-V по протоколу SMB), LiveMigration (трафик динамической миграции Hyper-V по протоколу SMB) или по умолчанию (все остальные типы трафика SMB). |
Дополнительные сведения о новых и измененных функциях SMB в Windows Server 2012 R2 см. в статье What’s New in SMB in Windows Server (Новые возможности SMB в Windows Server).
Функции, добавленные в SMB 3.0 с Windows Server 2012 и Windows 8
Компонент или функция | Новинка или обновление | Сводка |
---|---|---|
Прозрачная отказоустойчивость SMB | Создать | Позволяет администраторам обслуживать аппаратное и программное обеспечение узлов кластерного файлового сервера, не прерывая работу приложений сервера, хранящих данные в этих файловых ресурсах. Кроме того, при сбое оборудования или программного обеспечения в узле кластера клиенты SMB подключатся к другому узлу кластера, не прерывая работу приложений сервера, хранящих данные в этих файловых ресурсах. |
Масштабирование SMB | Создать | Поддержка нескольких экземпляров SMB на масштабируемом файловом сервере. С помощью версии 2 общих томов кластера (CSV) администраторы могут создавать файловые ресурсы, предоставляющие одновременный доступ к файлам данных с прямыми операциями ввода-вывода через все узлы кластера файлового сервера. Это улучшает использование пропускной способности сети и балансировку нагрузки клиентов файлового сервера, а также оптимизирует производительность серверных приложений. |
Технология SMB Multichannel | Создать | Обеспечивает агрегирование пропускной способности и отказоустойчивости сети, если доступно несколько путей между клиентом SMB и сервером. Это позволяет приложениям сервера использовать всю доступную пропускную способность сети и быть устойчивыми к сетевым сбоям. |
SMB Multichannel в SMB 3 вносит значительные улучшения в производительность по сравнению с предыдущими версиями SMB.
SMB Direct в SMB 3 вносит значительные улучшения в производительность по сравнению с предыдущими версиями SMB.
В SMB 3 реализация SMB в Windows изменена для улучшения поведения кэширования на клиенте, а также увеличения пропускной способности.
SMB 3 предусматривает улучшения для API CopyFile (), а также для связанных инструментов, таких как Robocopy, позволяя отправлять значительно больше данных через сеть.
Требования к оборудованию
Для обеспечения прозрачной отказоустойчивости SMB необходимо соблюдать следующие требования.
Клиенты нижнего уровня могут подключаться к общим папкам со свойством «Постоянная доступность», но для таких клиентов прозрачная отказоустойчивость не поддерживается.
Для поддержки многоканальности SMB необходимо соблюдать следующие требования.
Для поддержки прямой технологии SMB необходимо соблюдать следующие требования.
Дополнительные сведения
Следующий список содержит дополнительные ресурсы со сведениями о работе в сети по протоколу SMB и связанным технологиям в Windows Server 2012 R2, Windows Server 2012 и Windows Server 2016.