Глава 1. Изучение Samba

Самба является чрезвычайно полезным инструментом для создания любых сетей в которых одновременно и Windows, и Unix системы подключены к интернету. Установленная на системе Unix, она позволяет Windows обмениваться файлами и принтерами с Unix хостом, и она также позволяет пользователям Unix получить доступ к общим ресурсам Windows систем.

Хотя может показаться естественным использовать Windows-сервер для обслуживания файлов и принтеров в сети, содержащий Windows клиентов, имеются веские причины для предпочтения Samba-сервера для этой службы. Самба является надежным программным обеспечением, которое работает на надежных операционных системах Unix, в результате чего уменьшается число проблем и снижается стоимость обслуживания. Samba также показывает лучшую производительность при тяжелых нагрузках, превышает Windows 2000 Server на коэффициент 2 к 1 на идентичных аппаратных средствах ПК, согласно публикациям сторонних (ориентиров). При общих, недорогих аппаратных средствах компьютера, не удовлетворяющих потребности клиента при огромной нагрузке, Samba-сервер может быть легко перенесен на «большоге железо» Unix ЭВМ, которые могут превзойти Windows работают на компьютере во много раз дольше. Если этого недостаточно, Самба имеет очень хорошее преимущество: это бесплатность. Не только само программное обеспечение в свободном доступе, но на клиента не требуется лицензии, и она работает на высококачественных, свободных операционных системах, таких как Linux и FreeBSD.

После прочтения предыдущего пункта, можно прийти к выводу о том, что Samba широко используются крупными организациями с тысячами пользователей в их сети — и вы правы! Samba пользователей включают в себя базы организаций по всей планете, всех типов и размеров: от международных корпораций, до среднего и малого бизнеса, и лиц, которые запустили Samba на своих Linux-ноутбуках. В последнем случае средство, такое, как VMware используется для запуска Windows на одном компьютере, Samba позволяет двум операционным системам обмениваться файлами.

Число пользователей даже увеличивается — Samba используется корпорациями, банками и другими финансовми институтами, правительственными и военными организациями, школами, публичными библиотеками, художественными галереями, семьями, и даже авторами! Эта книга была написана на Linux-системе с VMware и Windows 2000, с Adobe FrameMaker, работающем на Windows, и файлы документов, обслуживались Samba из файловой системы Linux.

Удовлетворяет ли все это ваши технологические аппетиты? Если это так, мы советуем вам прочесть, узнать о Самба, и следуя нашим примерам создать свой собственный Samba-сервер. В этой и последующих главах мы расскажем вам, как именно начать работу.

Что такое Samba?

Samba является набором приложений Unix, использующих Server Message Block (SMB) протокол. Операционные системы Microsoft Windows и операционная система OS/2 используют SMB для создания клиент-серверных сетей по обмену файлам и принтерам и связанных с ними операциями. Поддерживая этот протокол, Samba позволяет компьютерам под управлением Unix получить общение с тем же сетевым протоколом, как и Microsoft Windows, и являются в сети еще одной системой Windows, с точки зрения клиента Windows. Samba-сервер предоставляет следующие услуги:

  • Общие одно или более деревьев каталогов
  • Share one or more Distributed filesystem (Dfs) trees Общие один или несколько Дистрибьютор файловой системы (Dfs) деревьев
  • Общие принтеры, установленные на сервере Windows между клиентами сети
  • Оказание помощи клиентам в просмотре сети
  • Проверка клиентов при входе на домен Windows
  • Provide or assist with Windows Internet Name Service (WINS) name-server resolution Предоставление или содействие в Windows Internet Name Service (WINS) имя-сервера резолюции

Самба включает также набор инструментов клиента, что позволяет пользователям системы Unix доступ к папками и принтерам, которые системы Windows и Samba-серверы предлагают по сети.

Самба является детищем Эндрю Tridgell, который в настоящее время руководит командой разработчиков Samba. Эндрю начал проект в 1991 году, во время работы в Digital Equipment Corporation (DEC) набор программного обеспечения выбрали Pathworks, предназначенный для подключения DEC VAX компьютеров к компьютерам, сделанным другими компаниями. Не зная значения того, что он делает, Эндрю создал файл-сервер программу для нечетных протоколов, который является частью Pathworks. Этот протокол позднее стал SMB. Несколькими годами позже он был расширен, по его заказу сделан SMB-сервер и началось распространение его в качестве продукта по Интернету под названием «SMB Server». Тем не менее, Эндрю не смог удержать это название - оно уже принадлежало другой компании-производителю, тогда он попытался для переименования применить Unix подход:

$ grep -i '^s.*m.*b' /usr/dict/words

И ответ был:

salmonberry
samba
sawtimber
scramble

Таким образом, родилось название «Самба».

Сегодня, Samba сюита вращается вокруг пары Unix демонов, которые обеспечивают общие ресурсы называемых акций или услуг для SMB-клиентов по сети. К ним относятся:

smbd

Демон который занимается файлами и принтерами и обеспечивает обмен аутентификации и авторизации для SMB клиентов.

nmbd

Демон, который поддерживает NetBIOS Name Service и WINS, который в Microsoft-реализации - сервер имен NetBIOS (NBNS). Он также помогает при просмотре сети.

Самба в настоящее время поддерживается и со стороны группы добровольцев под активным наблюдением Эндрю Tridgell. Как и операционные системы Linux, Samba распространяется в виде программного обеспечения с открытым исходным кодом (http://opensource.org) его авторов и распространяется по GNU General Public License (GPL). С момента своего создания и развития Самба частично был спонсором Австралийского национального университета, где Эндрю Tridgell получил степень к.т.н. С тех пор многие другие организации стали соавторами разработчиков Samba, в том числе LinuxCare,В.А. Linux Systems, Hewlett-Packard и IBM. Это действительно свидетельствует о том, что как коммерческие, так и некоммерческих организации, готовы тратить деньги на поддержку разработки Samba с открытым исходным кодом.

Microsoft также предложила свое определение SMB протокола к Internet Engineering Task Force (IETF) в 1996 году в качестве Common Internet File System (CIFS). Хотя мы предпочитаем использовать термин «SMB» в этой книге, вы также часто найдёте протокол, называемый «CIFS». Это особенно справедливо в Microsoft о веб-сайте.

Что может сделать Samba для меня?

Как было объяснено ранее, Samba помогает Windows и Unix компьютерам сосуществовать в одной сети. Тем не менее, существуют некоторые конкретные причины, почему вы можете захотеть создать Samba-сервер в сети:

  • Вы не хотите платить за, или не можете себе позволить полноценный Windows-сервер, но вы по-прежнему нуждаетесь в функциональности, которую он обеспечивает.
  • The Client Access Licenses (CALs) которую Microsoft требует для каждого клиента Windows, для доступа к серверу Windows является недостаточной.
  • Вы хотите предоставить общую площадь для данных или каталогов пользователей для перехода с Windows-сервера на Unix, или наоборот.
  • Вы хотите распределить принтеры между Windows и Unix рабочими станциями.
  • Вы обслуживаете группу пользователей, имеющих смешанные Windows и Unix компьютеры.
  • Вы хотите включить Unix и Windows аутентификации, ведение единой базы данных учетных записей пользователей, которая работает с обеими системами.
  • Вы хотите сеть, состоящую из Unix, Windows, Macintosh (OS X) и других систем, использующую единый протокол.

Знакомство с SMB сетью

Давайте быстро посмотримна Самба в действии Предположим, что у нас следующие базовые конфигурации сети: Samba на Unix-системе, которой мы присвоим имя «toltec» и пара Windows клиентов, которым мы присвоим имена «maya» и «aztec», все подключены через локальную сеть (LAN). Давайте также предположим, что «toltec» также имеет подключенный к нему локальный струйный принтер «lp», и общий диск «spirit» — оба из которых он может предложить двум другим компьютерам. Схема этой сети, приводится в Figure 1-1.

Рисунок 1-1. Небольшая сеть, созданная с Samba-сервером

(In this network, each computer listed shares the same workgroup.)В этой сети каждый компьютер, причислен общим к одной и той же рабочей группе. Рабочая группа имеет имя группы, тег, который идентифицирует произвольный сбор компьютеров и их ресурсов по SMB сети. Одновременно в сети могут быть несколько рабочих групп, но в данном примере для нашей базовой сети у нас будет только одна: METRAN рабочая группа.

Служба совместного использования дисков

Если все правильно настроено, то мы должны видеть Samba-сервер «toltec» через Сетевое окружение «maya» на рабочем столе Windows. Фактически, Рисунок 1-2 показывает, сетевое окружение компьютера «maya», в том числе «toltec» и каждый компьютер, который находится в рабочей группе «METRAN». Примечание: в верхней части списка иконка «вся сеть». Как мы только что упомянули, что в SMB сети в любой конкретный момент времени может быть более чем одна рабочая группа. Если пользователь нажмёт на иконку «вся сеть», покажется список всех групп, которые существуют в настоящее время в сети.

Рисунок 1-2. Каталог «Сетевое окружение»

Мы можем подробно просмотреть сервер «toltec», дважды щелкнув на его значке. Это откроет «toltec» и покажет список общих файлов и принтер-ресурсы, которые предоставляет компьютер. В этом случае принтер с именем «lp», домашний каталог с именем «jay» и общий диск с названием «spirit» находятся на сервере, как показано на Рисунке 1-3.

Заметим, что Windows показывает имена хостов в смешанном виде (Toltec). Дело абсолютно не в хостах, так как можно видеть «toltec», «Toltec», и «TOLTEC» в различных (display) или командах вывода, но все они относятся к одной системе. Благодаря Samba, Windows 98 видит Unix-сервер, как действительный SMB-сервер и может получить доступ к папке «spirit», как если бы это были всего лишь еще один системный каталог.

Рисунок 1-3. Так выглядят сетевые ресурсы сервера Toltec с точки «maya»

Одной из популярных особенностей Windows является способность к буквенному обозначению общих дисков сети (например, E:, F:, или Z:), используя опцию «Карта сетевого диска» в Windows Explorer.[1] Как только Вы это сделаете, ваши приложения смогут получить доступ к папке по сети, используя буква диска. Вы можете хранить данные о ней, устанавливать и запускать программы из неё, и даже паролем защитить её от нежелательных посетителей. Смотрите рисунок 1-4 для примера буквенного обозначения диска для сетевых каталогов.

Рисунок 1-4. Обозначение сетевого диска в Windows буквой

Взгляните на Путь: выведен в диалоговом окне на рисунке 1-4. Эквивалентный способ указать каталог на сетевом компьютере, использовать двойной слэш, за которым следует имя сетевого компьютера, еще один слеш и имя сетевого каталога на компьютере, как показано ниже:

\\network-computer\directory

Это называется Universal Naming Convention(UNC) в мире Windows. Например, диалоговое окно на рисунке 1-4 показывает сетевую директорию на сервере «toltec» как:

\\toltec\spirit

Если это выглядит несколько знакомых вам, вы, вероятно, знаете uniform resource locators (URLs), адреса, которые веб-браузеры, такие, как Netscape Navigator и Internet Explorer разрешают использование системам в Интернет. Будьте уверены, что не смешиваются два протокола: URL, такие как http://www.oreilly.com используют впереди косую черту вместо слэш, а им предшествует первоначальная косая черта с протоколом передачи данных (например, ftp, http) и двоеточие (:). В действительности, URL и UNC две совершенно разные вещи, хотя иногда вы можете определить ресурс SMB, используя URL, а не UNC. URL, \\toltec\spirit будет определен как smb://toltec/spirit.

После того как сетевой диск создан, Windows и ее программы, ведут себя как будто сетевой каталог расположен на локальном диске. Если у Вас есть какие-либо приложения, которые поддерживают многопользовательскую функциональность по сети, вы можете установить эти программы на сетевом диске.[2] Рисунок 1-5 показывает, в результате, сетевой диск, как он будет отображаться с другими устройствами хранения данных на Windows 98 клиенте. Примечание: символ сети добавлен к пиктограмме диска J: , это свидетельствует о том, что это сетевой диск, а не стационарный.

Рисунок 1-5. Сетевой каталог обозначенный у клиента буквой J:

Мое Сетевое окружение, работающее в Windows Me, 2000 и XP отличается от работы сетевого окружения **. Необходимо нажать несколько иконок, но в конечном итоге мы можем получить именно toltec сервер, как показано на рисунке 1-6. Это из системы Windows 2000. Настройка сетевого диска с помощью опции Карта сетевого диска в Windows 2000 работает по аналогии с другими версиями Windows.

Рисунок 1-6. Сетевые ресурсы размещенные на Toltec (с точки «dine»)

Совместное использование принтера

Вы, наверное, заметили, что принтер lp появился в рамках имеющихся сетевых ресурсов на toltec, см. рисунок 1-3. Это свидетельствует о том, что Unix-сервер имеет принтер, который может быть доступен с различных SMB клиентов в рабочей группе. Данные отправленные на принтер от какого-либо из клиентов будут буферизованы на Unix-сервере и напечатаны в порядке получения.

Настройка Samba-принтера происходит на Windows стороне даже легче, чем создание сетевого диска. Двойным щелчком по принтеру и указав производителя и модель, вы можете установить драйвер этого принтера для Windows клиента. Windows сможет затем дать надлежащий формат любой информации, направленной на сетевой принтер и доступ к ней, как если бы это был локальный принтер. В Windows 98, двойной щелчок на значке Принтеры (Панель управления → Принтеры) открывает окно показаное на рисунке 1-7. Опять же, добавляется символ сети ниже принтера, который обозначает его как сетевой.

Рисунок 1-7. Сетевой принтер доступный на «Toltec»

Seeing things from the Unix side Посмотрим на Unix сторону

Как уже упоминалось ранее, Samba реализована в Unix, как набор программ-демонов. Вы можете просматривать их с Unix ПК командой, вы можете прочитать все сообщения, созданные при отладке пользовательских файлов или Unix системного журнала (в зависимости от того, как Samba настроена) и вы можете настроить их из одного файла конфигурации Samba: smb.conf. Кроме того, если вы хотите получить представление о том, что делают демоны, Samba имеет программу под названием smbstatus, которая выложит всё это в таблицу. Вот как это работает:

# smbstatus
Processing section "[homes]"
Processing section "[printers]"
Processing section "[spirit]"

Samba version 2.2.6
Service     uid    gid    pid     machine
-----------------------------------------
spirit      jay    jay    7735    maya     (172.16.1.6) Sun Aug 12 12:17:14 2002
spirit      jay    jay    7779    aztec    (172.16.1.2) Sun Aug 12 12:49:11 2002
jay         jay    jay    7735    maya     (172.16.1.6) Sun Aug 12 12:56:19 2002

Locked files:
Pid    DenyMode   R/W        Oplock     Name
--------------------------------------------------
7735   DENY_WRITE RDONLY     NONE       /u/RegClean.exe   Sun Aug 12 13:01:22 2002

Share mode memory usage (bytes):
   1048368(99%) free + 136(0%) used + 72(0%) overhead = 1048576(100%) total

Выводы Sambastatus предоставляют три набора данных, каждый разделен на отдельные секции. Первый раздел показывает системы, которые подключены к Samba-серверу, с указанием имени компьютера для каждого клиента (maya и aztec) и IP (Internet Protocol) адреса. Вторая часть показывает названия и статус файлов, которые являются в настоящее время общими на сервере, в том числе состояние чтение/запись и любые ограничения доступа к файлам. Наконец, Samba докладывает объем памяти, в настоящее время выделяемый на сетевые ресурсы, которыми она управляет, в том числе количество активно используемых ресурсов плюс дополнительные приложения. (Заметим, что это не то же самое, что общий объем памяти,используемый smbd и nmbd процессами.)

Не волнуйтесь, если вы не понимаете, эти статистические данные, они станут более понятны после прочтения книги.

Первое знакомство с SMB сетью

Теперь, после краткого обзора Самба, давайте уделим некоторое время, чтобы познакомиться с Samba, принятой в окружающую среду: SMB сети. Сетевые возможности SMB значительно отличается от работы с общими TCP/IP протоколами, такими как FTP и Telnet, поэтому надо усвоить ряд новых концепций и охватить много информации. Во-первых, мы обсудим основополагающие концепции SMB сети, после чего некоторые Microsoft реализации её, и, наконец, мы покажем вам, где Samba-сервер может и не вписываются в картину.

Понятие NetBIOS

Для начала, давайте сделаем шаг назад во времени. В 1984 году IBM создала простой интерфейс прикладного программирования (API) для взаимодействия своих компьютеров под названием Network Basic Input/Output System (NetBIOS). В NetBIOS API предусмотрена в зачаточном состоянии конструкция для подключения и обмена данными с другими компьютерами.

Это полезная идея использовать NetBIOS API в качестве расширения для вызовов сетей стандарта BIOS API. BIOS содержит низкоуровневой код файловой системы для выполнения операций на локальном компьютере. NetBIOS первоначально использовался для обмена инструкциями с компьютером через IBM PC или Token Ring сети. Именно поэтому требуется низкоуровневый транспортный протокол для выполнения запроса одного компьютера к другому.

В конце 1985, IBM выпущен один такой протокол, в котором он, объединённый с NetBIOS API стал NetBIOS Extended User Interface (NetBEUI ). NetBEUI был разработан для небольших локальных сетей, каждому компьютеру присваивалось имя (до 15 символов), которое не было ещё использовано в сети. «В малых LAN», мы имеем в виду меньше чем на 255 узлов сети, которые считались большим количеством в 1985 году!

NetBEUI протокол был очень популярен среди сетевых приложений, включая и работающие под Windows для Workgroups. Позже также появилась реализация NetBIOS через IPX Novell сетевые протоколы, которые конкурируют с NetBEUI. Однако, сетевой протокол выбранный бурно развивающимся Интернет-сообществом был TCP/IP и UDP/IP, и реализация NetBIOS API, через эти протоколы вскоре стала необходимостью.

Напомним, что TCP/IP использует номера, представляющие собой компьютерные адреса (192.168.220.100, например), в то время как NetBIOS использует только имена. Это было серьезной проблемой при попытке связать два протокола вместе. В 1987 году IETF были опубликованы документы по стандартизации под названием RFC 1001 и 1002, предписывающие, каким образом NetBIOS будет работать через TCP/UDP сети. Этот набор документов по прежнему регулирует осуществление всего, что существует сегодня, в том числе то, что предоставлено Microsoft с ее операционными системами Windows, а также Samba люкс.

С тех пор стандарт, который регламентирует этот документ стал известен как NetBIOS over TCP/IP, или, сокращённо, NBT.[3]

NBT стандарт (RFC 1001/1002), в настоящее время описывает три службы сети:

  • Служба имён
  • Две коммуникационные службы:
    1. Датаграммы (datagram)
    2. Сессии

Служба имён решает проблему название - адрес, упомяную выше, она позволяет каждому компьютеру объявлять точное имя по сети, которое может быть переведено в машиночитаемый IP-адрес, так же, как делает сегодняшняя система доменных имен (DNS) в Интернете. Службы datagram и сессий - вторичные коммуникационные протоколы для передачи данных взад и вперед с NetBIOS компьютеров через сеть.

Получение Имени

В NetBIOS мире каждый компьютер входящий в сеть хочет получить собственное название, это называется именем регистрации. Однако, не может существовать двух компьютеров в одной и той же рабочей группе, получающих одно и то же имя, это приведет к бесконечной путанице для любых компьютеров, которые желают общаться с любым из них. Есть два различных подхода, как обеспечить, чтобы этого не происходило:

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

Рисунок 1-8 иллюстрирует регистрацию имени (неудачную), с учетом и без учета NBNS.

Рисунок 1-8. Broadcast против регистрации имени NBNS

Как уже упоминалось ранее, необходим способ разрешения NetBIOS имён на конкретные IP адреса, это известно как name resolution. Здесь также есть два различных подхода с NBT :

  • Каждый компьютер докладывает свой IP адрес, когда он «слушает» эфир по запросу его NetBIOS имени.
  • Использование NBNS, чтобы преобразовать NetBIOS имена в IP-адреса.

Рисунок 1-9 иллюстрирует два вида резолюции имён.

Рисунок 1-9. Broadcast по сравнению с разрешением имен NBNS

Как и ожидалось, NBNS значительно может помочь в вашей сети. Чтобы узнать, почему, давайте рассмотрим метод трансляции.

Здесь, когда компьютер-клиент загружается, он будет передавать сообщение о том, что он хотел бы зарегистрировать NetBIOS имя указаное в качестве собственного. Если никто не возражает против использования имени, оно сохраняется. С другой стороны, если другой компьютер в локальной подсети в настоящее время, использует запрошенное имя, он будет посылать сообщения назад к клиенту с уведомлением о том, что имя уже занято. Это называется защита имени хоста. Этот тип системы полезен, когда один клиент неожиданно покидает сеть — другой может безусловно занять его имя — но для этого требуется неоправданный объем трафика по сети для того, чтобы просто регистрировать имена.

С NBNS происходит то же самое, только общение ограничивается запросами компьютера и NBNS. При регистрации имени компьютера опроса сети не происходит, регистрационное сообщение просто отправляется непосредственно от клиента к NBNS, и ответ NBNS не зависит от того, что название уже занято. Это называется point-to-point communication, и это зачастую полезно сетям с более чем одной подсетью. Это происходит потому, что маршрутизаторы обычно настроены блокировать входящие пакеты, которые транслируются на все компьютеры в подсети.

Те же принципы применимы для разрешения имен. Без NBNS, NetBIOS резолюция имён также сделает запрос механически. Все пакеты запроса будут направлены на каждый компьютер в сети, с надеждой на то, что хоть один компьютер, который может быть затронут, ответит непосредственно на компьютер, с которого запрашивали. Использование NBNS и «point-to-point» коммуникации для этой цели даёт намного меньшую нагрузку на сеть, чем сеть, наводнённая широковещательными запросами на разрешение каждого имени.

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

Типы узлов

Вы можете сказать, как стратегия каждого клиента в сети будет использоваться при использовании имени регистрации и резолюции? Каждый компьютер в сети NBT получает одно из следующих обозначений, в зависимости от этого обрабатывается имя регистрации и резолюция: b-node, p-node, m-node, and h-node. Поведение каждого типа узлов, приводятся в таблице 1-1.

Таблица 1-1. Типы узлов NetBIOS

b-node - Использует только широковещательную регистрацию и резолюцию.

p-node - Использует только «точка-точка» регистрацию и резолюцию.

m-node (mixed) - Использует широковещательную регистрацию. В случае успеха уведомляет NBNS о результате. Использует широковещательную резолюцию; использует NBNS, если вещание является неудачным.

h-node (hybrid) - Использует NBNS регистрацию и резолюцию; использует широковещание если NBNS не определяется или отключена.

В случае с Windows клиентами, вы найдете их, как правило, перечисленными как h-nodes или hybrid nodes. Первые три типа узлов появились в RFC 1001/1002, а h-nodes были изобретены позже, Microsoft, как более отказоустойчивый метод.

Вы можете найти тип узла Windows 95/98/Me компьютера, запустив winipcfg команду из Start → Run dialog (или из MS-DOS) и кликнув More Info>> кнопку. В Windows NT/2000/XP, вы должны использовать команду ipconfig /all в командной строке. В любом случае, поиск по строке с надписью Node Type.

———-продолжение следует——→

 
soft/samba1.txt · Последние изменения: 01.03.2016 в 18:18 (внешнее изменение)
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki