Изучаем Linux, 302 (смешанные среды): Основные принципы

Основные принципы общего использования файлов и принтеров в смешанной среде

Эта статья поможет вам подготовиться к сдаче экзамена 302 сертификационной программы института Linux Professional Institute (LPI). Из этой статьи вы узнаете об основных принципах и концепциях протоколов Server Message Block (SMB) и Common Internet File System (CIFS) и технологии совместного использования файлов и служб печати в смешанной среде.

Шон Уолберг, старший сетевой инженер, P.Eng

Шон Уолберг работал с Linux- и UNIX-системами с 1994 года в академических, корпоративных и "провайдерских" кругах. Он широко освещает вопросы системного администрирования в течение нескольких последних лет. С ним можно связаться по адресу sean@ertw.com.



20.03.2012

Об этой серии

Эта серия статьей поможет вам освоить задачи администрирования операционной системы Linux. Вы можете использовать материалы этих статей для подготовки к экзаменам программы LPIC третьего уровня (LPIC-3).

Чтобы посмотреть описания статей этой серии и получить ссылки на них, обратитесь к нашему перечню материалов для подготовки к экзаменам LPIC-3. Этот перечень постоянно дополняется новыми статьями по мере их готовности и содержит текущие (по состоянию на ноябрь 2010 года) цели экзаменов сертификации LPIC-3.

Краткий обзор

Из этой статьи вы узнаете о следующих концепциях:

  • Протоколы Server Message Block (SMB) и Common Internet File System (CIFS).
  • Совместное использование файлов.
  • Службы печати.

Эта статья поможет вам подготовиться к сдаче экзамена LPI 302 (специализация "Смешанные среды") и содержит материалы цели 310.1 темы 310. Цель имеет вес 1.

Предварительные требования

Чтобы извлечь наибольшую пользу из наших статей, необходимо обладать продвинутыми знаниями о Linux и иметь работоспособный компьютер с Linux, на котором можно будет выполнять все встречающиеся команды. Кроме этого, у вас должен быть доступ к среде Windows, которую можно использовать для проверки доступа к файлам и принтерам.


Общий доступ к файлам и принтерам

О факультативном экзамене LPI-302

Как и многие другие программы, программа сертификации Linux Professional Institute (LPIC) предусматривает различные уровни сертификации, где для получения каждого последующего уровня необходимо обладать более глубокими знаниями и практическим опытом. Экзамен LPI-302 – это факультативный экзамен третьего уровня программы LPIC, требующий продвинутых знаний в области системного администрирования Linux.

Для получения сертификата LPIC третьего уровня (LPIC-3) необходимо успешно сдать два экзамена первого уровня (101 и 102), два экзамена второго уровня (201 и 202), а также базовый экзамен 301 третьего уровня (LPIC-3). Если вы получили сертификат третьего уровня, то вы можете сдавать факультативные экзамены по определенным специализациям, например, экзамен LPI-302.

Цель предоставления общего доступа к файлам и принтерам заключается в том, чтобы позволить компьютеру использовать жесткие диски и принтеры других компьютеров так, как если бы эти устройства были подключены локально. Эта функциональность позволяет большому числу пользователей использовать одни и те же ресурсы (которые могут быть дорогостоящими) и получать доступ к ним из любой точки сети. Являясь централизованными ресурсами, файлы и принтеры могут управляться и контролироваться настолько жестко, насколько это необходимо.

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

  • Решение должно работать в любой сети вне зависимости от ее типа (Ethernet, Token Ring и т. д.)
  • Приложениям не нужно знать о том, обращаются ли они к локальному жесткому диску или принтеру или к удаленному.
  • Необходимо предусмотреть механизм управления одновременными обращениями к одному и тому же ресурсу, например, когда двое сотрудников пытаются одновременно послать задание на один и тот же принтер.
  • Необходимо реализовать некую систему аутентификации, позволяющую определить, кто именно обращается к ресурсу, а также систему авторизации, которая разрешает доступ только заранее определенным пользователям.

Создайте ваш собственный канал

Вы можете создать ваш собственный RSS, Atom или HTML канал обновлений и получать уведомления о новых или обновленных статьях нашего сайта. Для этого перейдите на страницу developerWorks RSS feeds, выберите зону Linux, установите флажок Статьи и введите в качестве ключевой фразы Linux Professional Institute, после чего выберите требуемый тип канала.

Существует несколько различных способов предоставления общего доступа к файлам и принтерам. Многие системы печати UNIX, такие, как Berkeley printing system, умели работать с сетью еще с начала 1980-х годов. В 1984 году компания Sun Microsystems представила сетевую файловую систему Network File System (NFS), позволяющую компьютерам под управлением операционной системы UNIX монтировать файловые системы по сети. Компании IBM и Microsoft разработали протокол SMB для выполнения многих сетевых задач, включая предоставление общего доступа к файлам и принтерам. Общий доступ к файлам и принтерам может предоставляться выделенными серверами, отдельными рабочими станциями, а также их различными комбинациями.

Общий доступ к файлам

Даже если общий доступ к файлу обеспечивает рабочая станция, устройство, предоставляющее ресурс в общее пользование, называется сервером, а устройства, обращающиеся к этому ресурсу называются клиентами. Говорят, что сервер экспортирует файловую систему (в терминах UNIX) или предоставляет общий доступ к диску или директории (в терминах Windows). Клиенты монтируют файловую систему как локальный диск или подключаются к общему ресурсу.

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

Другой особенностью, связанной с общим доступам к ресурсам, является концепция просмотра сетевого окружения. Просмотр сетевого окружения позволяет клиентам обнаруживать серверы в сети, как правило, на основе динамически обновляющихся списков.

Принтер может быть не подключен к серверу напрямую, поэтому для обеспечения общего доступа могут использоваться сервисы разных уровней. Когда несколько клиентов настроены на использование одного и того же принтера, обычно они обращаются к нему через службу, которая называется спулером (spooler). Задача спулера заключается в управлении списком заданий печати (очередью печати). Когда несколько пользователей отправляют задания на принтер, то спулер сохраняет их на диск. Когда принтер свободен, спулер может послать на него задание, не опасаясь конфликтов с другими заданиями.

Даже если принтер подключен к сети, обычно в качестве спулера используется сервер, который, в свою очередь, отправляет задания на принтер по сети. Это делается по трем причинам: во-первых, сервер имеет более надежную и объемную область для спулинга, чем у принтера, во-вторых, сервер может управлять доступом к устройству, и в-третьих, сервер может передавать клиентам необходимые драйверы принтера.


SMB и CIFS

SMB является протоколом, а не реализацией. Этот протокол реализован во многих операционных системах, начиная с Windows и заканчивая UNIX и даже мэйнфреймами.

История протокола

Протокол SMB был разработан IBM и реализован компанией Microsoft, когда она начала внедрять сетевую поддержку в свои продукты в начале 1990-х. В то время для поддержки SMB требовалось использование отдельного продукта, например, LAN Manager или Windows for Workgroups, но, в конечном счете, с появлением Microsoft Windows NT возможность совместного использования файлов и принтеров стала частью операционной системы.

Microsoft продолжала внедрять поддержку SMB в новых компонентах своих операционных систем и в итоге появилась версия этого протокола под названием CIFS, которую Microsoft пыталась утвердить как отраслевой стандарт комитета IETF (Internet Engineering Task Force).

Приблизительно в это же время австралийский студент Эндрю Триджелл (Andrew Tridgell) приступил к обратному инженерингу реализации SMB для мэйнфреймов и начал разрабатывать продукт, в итоге превратившийся в Open source-реализацию SMB и протоколов Microsoft и получивший имя Samba. Изначально целью проекта являлась передача файлов по сети, но в итоге превратился в полноценное клиент-серверное приложение, способное работать в качестве контроллера домена Windows, а затем и в качестве сервера Active Directory.

Сравнение SMB и CIFS

С технической точки зрения CIFS является диалектом SMB. Протокол SMB видоизменялся на протяжении многих лет, поэтому и для клиента, и для сервера необходимо согласовать диалект протокола, на котором они общаются. CIFS относится к семейству расширений NT LAN Manager (NTLM). По странному стечению обстоятельств этот протокол не идентифицирует себя с помощью строки CIFS, а использует для этого строку NT LM 0.12.

На практике можно использовать оба термина, SMB и CIFS, поскольку они взаимозаменяемы, а CIFS является диалектом SMB, использующимся в настоящее время. Кстати, CIFS произносится так же, как и пишется ("siffs"), тогда как название SMB произносится по буквам.


Обзор протокола SMB

Поскольку SMB является клиент-серверным протоколом, он обеспечивает связь клиента с сервером. Изначально приложения, работающие с SMB, должны были использовать API-интерфейс под названием сетевая базовая система ввода-вывода (Network Basic Input/Output System, NetBIOS). Этот программный интерфейс обеспечивал поддержку нескольких служб, используемых SMB, а также нескольких служб, связанных с разрешением имен и просмотром сетевого окружения. Работая в связке с NetBIOS, SMB мог работать поверх следующих протоколов:

  • "Сырой" Ethernet. В этом случае SMB использует передачу кадров NetBIOS посредством интерфейса NetBEUI.
  • Протокол Internetwork Packet Exchange (IPX)/Sequenced Packet Exchange(SPX), разработанный Novell. В этом случае SMB использует протокол NBX (NetBIOS поверх IPX/SPX).
  • Стек TCP/IP. В этом случае SMB использует протокол NBT (NetBIOS поверх TCP/IP).

NetBIOS обеспечивает в сетях Microsoft работу трех ключевых служб:

  • Служба имен для поиска компьютеров в сети.
  • Служба сеансов для надежного взаимодействия и передачи данных между клиентом и сервером.
  • Служба распространения дейтаграмм для передачи небольших сообщений и широковещательных рассылок

Наиболее важной службой для SMB является служба сеансов, тем не менее, две другие службы также используются, например, служба имен используется для нахождения IP-адреса сервера.

В конечном счете, широкое распространение стека протоколов TCP/IP и переход Microsoft на использование службы доменных имен Domain Name System (DNS) привели к тому, что SMB стал запускаться непосредственно поверх TCP/IP методом прямой передачи (direct hosting). Тогда как протокол NBT использовал TCP- и UDP-порты 137-139, прямая передача задействует TCP/UDP порт 445.

Протокол SMB в модели OSI

На рисунке 1 показана сетевая модель взаимодействия открытых систем (Open Systems Interconnection, OSI), которая широко используется для описания взаимодействий сетевых протоколов передачи данных. Модель OSI описывает функции, необходимые для работы сетевых приложений, и разделяет их на несколько уровней. Каждый уровень использует все функции нижележащих уровней и обслуживает все вышележащие уровни.

Рисунок 1. Сетевая модель OSI
Рисунок 1. Сетевая модель OSIl

Уровни 1 (физический) и 2 (канальный) полностью обеспечивают работу стандарта Ethernet. На этих двух уровнях небольшие фрагменты данных (пакеты) передаются от одного узла сети другому. На следующих двух уровнях работают протоколы TCP (транспортный уровень) и IP (сетевой уровень). Сетевой уровень обеспечивает сквозную маршрутизацию, а транспортный уровень позволяет передавать сообщения большего объема, составленные более мелких сообщений (пакетов) и работать нескольким службам на одном сервере. Каждый уровень использует все функции нижележащих уровней, поэтому находясь на сетевом уровне, нет необходимости знать о том, как каждый узел сети использует физический и канальный уровни и т. д.

Если в сети работает NetBIOS, то используется сеансовый уровень. Сеансовый уровень отвечает за службу сеансов, которая обсуждалась ранее. Протокол SMB работает на уровне приложений (уровень представления здесь не используется); это означает, что SMB использует функции всех нижележащих уровней.

Если в сети не используется NetBIOS, то не используется и сеансовый уровень. Протокол TCP обладает достаточными возможностями для работы с большинством сеансовых служб, а службы имен обрабатываются протоколом DNS.

Универсальное соглашение об именовании

Вам наверняка знакомы универсальные идентификаторы ресурсов (Universal Resource Identifiers, URIs) вида http://ibm.com/developerworks, которые используются в Интернете. Идентификаторы URI определяют, где можно найти тот или иной документ или другое содержимое. В нашем примере префикс http обозначает схему, которая говорит о том, что доступ к документу осуществляется по протоколу HTTP. Далее следует имя узла ibm.com, на котором хранится нужное нам содержимое, и заключительная часть /developerworks, являющаяся именем конечного запрашиваемого ресурса.

Точно так же, UNC-пути (Uniform Naming Convention – универсальное соглашение об именовании) служат для идентификации ресурсов в сетях Windows. UNC-путь имеет следующий вид: \\shorty\documents\public\photo.jpg. UNC-путь начинается с двух обратных слешей ( \\), после которых указывается имя сервера, еще один обратный слеш и имя общей директории. Далее указывается путь к требуемому ресурсу относительно этой общей директории.

UNC-пути имеют следующие отличия от идентификаторов URI:

  • Нет необходимости указывать схему, поскольку всегда используется SMB.
  • Вместо прямых слешей (/) используются обратные, хотя в некоторых случаях могут использоваться и прямые.
  • Имя общей директории используется лишь для ссылки на общий ресурс, расположенный на сервере. Объекта с именем общей директории может и не существовать в файловой системе сервера.

Samba

Samba позиционируется как стандартный пакет программ для Linux и UNIX, функционально совместимый с Windows ("standard Windows interoperability suite of programs for Linux and UNIX"). Несмотря на то, что в Linux и других версиях UNIX имеются различные способы монтирования общих файловых ресурсов SMB, ни один из них не может сравниться с Samba по уровню функциональности как в области клиент-серверного взаимодействия, так и в области интеграции с сетями Windows.

Samba состоит из нескольких демонов, работающих в фоновом режиме и предоставляющих сервисы и ряд инструментов командной строки для взаимодействия со службами Windows или Samba. Все демоны и инструменты будут подробно рассмотрены в оставшихся частях этой серии, но сейчас мы отметим несколько наиболее важных исполняемых файлов:

  • smbd. Демон, являющийся SMB-сервером файловых служб и служб печати.
  • nmbd. Демон, предоставляющий службы имен NetBIOS.
  • mount.cifs. Эта утилита монтирует удаленную файловую систему SMB в локальную файловую систему UNIX, подобно локальному диску или общему ресурсу NFS.
  • smblient. Эта утилита предоставляет доступ из командной строки к ресурсам SMB, подобно клиенту FTP. Она также позволяет получать списки общих ресурсов на удаленных серверах и просматривать сетевое окружение.
  • smb.conf. Это конфигурационный файл, содержащий настройки для всех инструментов Samba. Хотя это и не исполняемый файл, его необходимо упомянуть в этом разделе, поскольку он достаточно важный.

Как и любое другое Open Source-приложение, Samba можно скомпилировать из исходного кода или загрузить в составе дистрибутива с помощью установочных сценариев инициализации системы и конфигурационных файлов.


Что дальше

Следующая статья этой серии содержит материалы цели 310.2 темы 310. В ней рассматриваются различные роли демонов Samba, а также различные режимы безопасности, в которых работают эти демоны.

Ресурсы

Научиться

Получить продукты и технологии

  • Загрузите Samba (EN) и следите за последними новостями этого проекта.

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux
ArticleID=806313
ArticleTitle=Изучаем Linux, 302 (смешанные среды): Основные принципы
publish-date=03202012