Расширение бизнеса в других частях мира за счет филиалов является перспективной идей, но очень часто представляет значительную проблему для сетевых специалистов по архитектуре и конструкторов. Подключение каждого филиала к центральному местоположению требует наличия физической или логической связи, пропускная способность которой, в большинстве своем, гораздо меньше, чем в локальной сети. Низкая пропускная способность с тенденцией к централизации данных организации приводит к перегрузке каналов филиала, в результате чего снижается производительность приложений. Более того, многие типы каналов глобальной сети (WAN) являются дорогостоящими и могут вызвать значительные затраты, связанные с запуском и ежемесячными издержками.
Для лучшего использования канала WAN или предотвращения возникновения затрат, связанных с увеличением пропускной способности канала WAN, вы можете использовать различные средства оптимизации WAN. Некоторые из этих средств требуют дополнительного оборудования. Самым эффективным на данный момент способом оптимизации WAN, является кэширование; данные, полученные через канал WAN, кэшируются в филиале. Компьютер в филиале, который запрашивает данные, уже запрошенные другим компьютером, получит данные из кэша филиала, а не будет получать через канал WAN.
Технологии BranchCache в Windows 7 и Windows Server 2008 R2 являются реализацией оптимизации WAN с помощью кэширования для снижения нагрузки на каналы филиала. В центральном офисе развертывание BranchCache состоит из серверов содержимого, на которых установлен сервер Windows Server 2008 R2; в филиале — из запрашивающих компьютеров с Windows 7 или Windows Server 2008 R2; и в филиале — из компьютеров кэширования с Windows 7 или Windows Server 2008 R2.
Серверы содержимого предоставляют запрашиваемую информацию и дополнительные метаданные, которые могут использоваться компьютерами кэширования для определения кэшированных данных в филиале. Запрашивающие компьютеры выполняют запросы данных с сервера содержимого и указывают, что эти данные имеют поддержку BranchCache. Компьютеры кэширования хранят раннее запрашиваемые данные с сервера содержимого, работающего на Windows 7 или Windows Server 2008 R2, или с сервера кэширования хоста с Windows Server 2008 R2. У BranchCache имеется два режима работы, которые соответствуют тому, используете ли вы клиентов (режим распределенного кэша), или сервер кэширования хоста (режим кэширования хоста) для хранения кэшированных данных.
Каждая реализация кэширования должна отвечать на следующие вопросы:
- Каким образом сервер содержимого, запрашивающий компьютеры кэширования, определяет кэшированное содержимое?
- Когда данные кэшируются в филиале?
- Каким образом сервер содержимого и запрашивающие компьютеры определяют измененное содержимое?
- Каким образом запрашивающий компьютер обнаруживает кэшированное содержимое в филиале?
- Каким образом BranchCache предотвращает возможность несанкционированного получения данных?
После того, как узнаем, каким образом работает BranchCache, вернемся к этим вопросам и разберемся с ответами.
Работа BranchCache и оптимизация WAN
Основные возможности BranchCache в четыре шага:
Шаг 1. Запрашивающий компьютер в филиале запрашивает файл с сервера содержимого в центральном офисе. Сервер содержимого предварительно считывает и сохраняет метаданные, связанные с этим файлом. Так как запрашивающий компьютер определил поддержку BranchCache, сервер содержимого отправляет метаданные, связанные с файлом, в запрашивающий компьютер. Запрашивающий компьютер пытается найти файл на другом компьютере кэширования в филиале, используя метаданные файла в качестве идентификатора. Так как ни один из компьютеров кэширования в филиале не кэшировал данный файл, запрашивающий компьютер запрашивает файл с сервера содержимого.
Шаг 2. Запрашивающий компьютер кэширует файл и соответствующие метаданные в филиале, либо на своем диске (режим распределенного кэша), либо на сервере кэширования хоста (режим кэширования хоста).
Шаг 3. Второй запрашивающий компьютер пытается загрузить аналогичный файл с сервера содержимого в центральном офисе. Сервер содержимого предоставляет метаданные содержимого.
Шаг 4. Второй запрашивающий компьютер использует метаданные содержимого для загрузки документа с клиента или сервера кэширования хоста, расположенного в филиале. На рис. 1 показаны все основные шаги работы в режиме распределенного кэша.
Увеличить
Рис. 1 Основные возможности BranchCache в режиме распределенного кэша
Если данные можно разместить в филиале, то единственной информацией, передаваемой по каналу WAN, будут метаданные. Требования к пропускной способности снижаются почти в 2000 раз; метаданные могут быть в 2000 раз меньше, чем размер соответствующих данных. Однако это относится к файлам, которые многократно запрашивались, и к файлам, размером более 64 Кб.
Теперь, когда мы узнали об основных возможностях работы BranchCache, давайте вернемся и ответим на несколько фундаментальных вопросов, связанных с кэшированием. На вопрос: "BranchCache использует метаданные, считанные сервером содержимого, для определения кэшированного содержимого. Метаданные содержат набор хэшей сегментов и блоков, считанных сервером содержимого с помощью алгоритма SHA (Secure Hash Algorithm)-256".
На вопрос: "Когда данные кэшируются в филиале?" ответим так: "BranchCache кэширует данные в филиале после получения компьютером с поддержкой BranchCache данных, на основе протоколов SMB 2.0, или HTTP 1.1, для файлов размером более 64 Кб с сервера содержимого с поддержкой BranchCache".
Вопрос: "Каким образом сервер содержимого и запрашивающие компьютеры определяют измененное содержимое?"; ответ: "При попытке запрашивающего компьютера получить данные, сервер содержимого посылает новые хэши. Например, если документ Microsoft Word был изменен, сервер содержимого считывает новые хэши блоков и сегментов и отправляет новые метаданные для всего файла на запрашивающий компьютер". Вопрос:
"Каким образом запрашивающий компьютер обнаруживает кэшированное содержимое в филиале?"; ответ: "Запрашивающий компьютер посылает запрос для метаданных непосредственно в настроенный компьютер кэширования хоста (для режима кэшированного хоста) или использует многоадресный протокол обнаружения веб-служб (WS-Discovery) для обнаружения клиентского компьютера, содержащего кэшированные данные, а затем отправляет запрос на получение данных (для режима распределенного кэша)".
В нашем примере для документа Word, содержимое которого было изменено, запрашивающий компьютер будет запрашивать файл целиком с сервера содержимого, который в ответ передаст метаданные, содержащие хэши блоков и сегментов для всего файла. Так как были изменены только специфические хэши блоков и сегментов, запрашивающий компьютер должен получить неизменные блоки с компьютера кэширования в филиале, а измененные блоки с сервера содержимого через канал WAN. Во многих случаях, тем не менее, изменяются все блоки файла, и сервер содержимого перешлет весь файл через канал WAN.
Обеспечение безопасности работы BranchCache
На последний вопрос: "Каким образом BranchCache предотвращает несанкционированное получение данных?" — ответить сложнее, потому что это зависит от элементов безопасности, реализованных до применения технологии кэширования. Эти элементы безопасности включают в себя проверку подлинности запрашивающего пользователя или компьютера, авторизацию, возможность компьютера или пользователя получить доступ к запрашиваемым данным и конфиденциальность информации в сети.
Когда клиент запрашивает данные, сервер содержимого не предоставляет метаданные или данные до тех пор, пока учетные данные пользователя или компьютера не будут аутентифицированы и иметь полномочия на доступ к данным. Метаданные состоят из хэшей блоков и сегментов, а также закрытого ключа (SK) для каждого сегмента. Сервер содержимого считывает ключ SK из хэша сегмента и секретный ключ, известный только серверу содержимого. Метаданные отправляются аналогично данным. Например, если содержимое файла отправляется в зашифрованном виде в запрашивающий компьютер, метаданные также отправляются в зашифрованном виде.
Из метаданных запрашивающий компьютер считывает ключ обнаружения сегмента (SD), который используется запрашивающими компьютерами и компьютерами кэширования в качестве идентификатора сегмента. В режиме кэширования хоста, запрашивающий компьютер отправляет ключ SD на запрос сервера кэширования хоста. В режиме распределенного кэша, запрашивающий сервер отправляет ключ SD в виде многоадресного сообщения локальной подсети. Когда компьютер кэширования получает запрос с ключом SD, он определяет соответствующий хэш сегмента и отправляет ответ с информацией о доступности запрашиваемых блоков внутри данного сегмента.
Затем запрашивающий компьютер запрашивает блоки, необходимые для данного сегмента, из компьютера кэширования. Во избежание перехвата данных, пересылаемых по сети филиала, запрашивающий компьютер и компьютер кэширования считывают аналогичный ключ шифрования, который основан на ключе SK. Компьютер кэширования отправляет зашифрованные блоки на запрашивающий компьютер, который зашифровал их. По умолчанию BranchCache использует стандарт шифрования AES с 128-разрядным ключом.
После расшифровки каждого блока запрашивающий компьютер считывает собственный хэш блока и проверяет на соответствие хэшу блока метаданных. Если они совпадают, данные успешно принимаются с компьютера кэширования, а блок данных возвращается в приложение.
Заключение
BranchCache в Windows 7 и Windows Server 2008 R2 представляет собой недорогое средство оптимизации WAN, которое сохраняет уровень безопасности вашей сети. Средство BranchCache может помочь снизить нагрузку трафика протоколов SMB 2.0 и HTTP 1.1 на дорогие каналы WAN с низкой пропускной способностью.
На правах примечания. Сохранение статус-кво в вопросах безопасности
Средство BranchCache использует шифрование между запрашивающим компьютером и компьютером кэширования для обеспечения статус-кво в вопросах безопасности вашей сети. Если при пересылке данных с сервера содержимого на запрашивающий компьютер шифрование отсутствует, средство BranchCache не предлагает дополнительных средств защиты при пересылке кэшированных данных в сеть филиала. Однако, если данные, пересылаемые с сервера содержимого на запрашивающий сервер зашифрованы, средство BranchCache обеспечивает конфиденциальность при пересылке кэшированных данных в сеть филиала.
Запросы данных в формате открытого текста могут перехватываться злоумышленниками в сети филиала. Так как BranchCache отправляет метаданные и данные с помощью того же способа, что и при пересылке данных без кэширования, злоумышленник в филиаленых то инникамиого на запрашивающий сервертераные:____________________________________________________________ может перехватить метаданные для сегмента, если они отправляются в незашифрованном виде: считать ключ SD и ключ шифрования из метаданных и затем использовать его для расшифровки блоков данных, когда они пересылаются из компьютера кэширования на запрашивающий компьютер. Однако это не является дополнительной проблемой безопасности, потому что исходные данные передавались в формате открытого текста и до использования BranchCache; пересылались в центральный офис при каждом запросе клиента в филиале. При использовании открытого текста, BranchCache не предлагает никаких дополнительных служб безопасности для кэшированных данных, передаваемых в сеть филиала.
Когда сервер содержимого отправляет данные на запрашивающий компьютер через зашифрованный канал, например, используя протокол IPsec или HTTPS, производится дополнительное шифрование между компьютером кэширования и запрашивающим компьютером, которое гарантирует, что перехватчик в филиале не сможет интерпретировать кэшированные данные. Так как сервер содержимого посылает метаданные через тот же зашифрованный канал, что и данные с сервера содержимого, перехватчик в филиале сначала должен расшифровать метаданные для сегмента, прежде чем он сможет считать ключ SD и ключ шифрования, а затем расшифровать блоки данных. Если перехватчик не сможет расшифровать метаданные, он не сможет расшифровать исходные данные.
Следовательно, в каналах зашифрованных данных между сервером содержимого и запрашивающим компьютером, использование ключа шифрования, полученного из ключа SK, защищает данные в двух направлениях. Во-первых, только аутентифицированные и авторизированные пользователи или компьютеры будут получать метаданные, которые включают и ключ SK. Во-вторых, так как ключ SK был послан через зашифрованный канал, злоумышленник не сможет определить ключ SK или соответствующий ключ шифрования и расшифровать кэшированные данные при их пересылке в сеть филиала.