Особенности AppleTalk
Особенности AppleTalk
Подобно TCP/IP, AppleTalk использует 32-разрядные адреса. Подобно IP-адресу, адрес AppleTalk состоит из двух компонентов: адреса сети и адреса компьютера. В отличие от IP, длина каждого из компонентов фиксирована: 16 из 32 битов выделены для представления адреса сети, а остальные 16 битов — для идентификации компьютера. В сетях AppleTalk поддерживается процедура переговоров, предпринимаемых для получения компьютером сетевого адреса. Благодаря наличию такой процедуры администратор избавлен от необходимости явно указывать адреса. (Если вы захотите, можете задать адрес явно или запросить его из определенного диапазона, но обычно в этом нет надобности.)
Кроме адресов для идентификации компьютеров в AppleTalk-сетях существует система имен, предназначенная для того, чтобы упростить работу пользователей. Каждому компьютеру присваивается имя, кроме того, для этого компьютера определяется принадлежность к локальной группе машин, которая называется зоной. Полное имя состоит из имени компьютера и имени зоны. В небольших сетях информация о зоне может не использоваться, в этом случае компьютеры идентифицируются только посредством имени. Netatalk (основной пакет, предназначенный для поддержки AppleTalk в Linux) по умолчанию генерирует AppleTalk-имена на базе доменных имен TCP/IP. Так, например, если компьютеру соответствует доменное имя larch.threeroomco.com, Netatalk назначит ему имя larch. Информация о домене при этом будет утеряна. (Если сеть разбита на зоны, имя зоны также генерируется автоматически, но оно не имеет никакого отношения к имени домена TCP/IP.) Двухкомпонентные имена существенно ограничивают размеры AppleTalk-сетей, в частности, создать сеть, насчитывающую больше нескольких тысяч компьютеров, затруднительно.
Основное назначение AppleTalk — обеспечение совместного использования файлов и принтеров. Многие сетевые принтеры могут непосредственно взаимодействовать посредством протокола AppleTalk, а средства разделения файлов поддерживаются в MacOS, Windows NT и 2000, Linux, BeOS и других операционных системах. Для решения других задач AppleTalk используется лишь в сетях, состоящих из компьютеров, которые работают под управлением MacOS. В сетях, компоненты которых используют иные операционные системы, целесообразнее применять другие стеки протоколов. Если в состав сети входят различные машины, на компьютерах устанавливают систему MacOS X, обеспечивающую работу с NFS. Пакет Netatalk (http://nettalk.sourceforge.net), используемый для поддержки AppleTalk в Linux, будет рассматриваться в следующем разделе.
Совет
При маршрутизации пакетов AppleTalk с помощью обычных маршрутизаторов возникают серьезные трудности. Чтобы исключить возможность взлома извне, можно запретить поддержку TCP/IP на сервере Netatalk (подобные действия имеют смысл только в том случае, если вы абсолютно уверены, что никто из пользователей локальной сети не предпримет попытку взлома, пользуясь недостатками в системе защиты Netatalk). Очевидно, что эта мера обеспечения безопасности не является единственно возможной. Средства защиты сетей TCP/IP будут подробно обсуждаться в части IV.
Программы для поддержки AppleTalk в системе Linux
Пакет Netatalk, поставляемый в составе большинства дистрибутивных пакетов Linux, предназначен для поддержки сетевого взаимодействия посредством AppleTalk. В состав этого пакета входят три основных компонента.
• Файловый сервер AppleTalk. Программа afpd обеспечивает функционирование компьютера под управлением Linux в качестве файлового сервера. В роли клиентов в данном случае могут выступать системы Macintosh. Файловый сервер поддерживает как AppleTalk, так и TCP/IP, таким образом, Linux может обслуживать даже старые компьютеры Macintosh, работающие с совместимыми аппаратными средствами. (Если соответствующие сетевые аппаратные средства не поддерживаются, можно использовать преобразователи LocalTalk — Ethernet.) Настройка сервера осуществляется с помощью файла afpd.conf, который обычно располагается в каталоге /etc/atalk. Для контроля разделяемых каталогов используется файл AppleVolumes.default, а файл AppleVolumes.system отображает расширения файлов в типы Macintosh, предназначенные для сохранения в файловой системе MacOS.
• Сервер печати AppleTalk. Программа papd реализует на компьютере Linux сервер печати для систем Macintosh. В сочетании с Ghostscript (компонентом стандартной очереди печати Linux) papd позволяет использовать недорогой струйный принтер как полнофункциональное PostScript-устройство и решать с его помощью достаточно сложные задачи, связанные с отображением документов. Средства, реализующие сервер печати, могут работать только с AppleTalk и не поддерживают TCP/IP.
• Клиент печати AppleTalk. Программа pap позволяет компьютерам под управлением Linux передавать задачи печати на принтеры, поддерживающие AppleTalk, или на серверы печати. Эта возможность становится полезной тогда, когда система Linux работает в сети, состоящей в основном из компьютеров Macintosh, в которой используются принтеры, не поддерживающие другие протоколы. Вы даже можете обращаться с помощью данного инструмента к другим компьютерам под управлением Linux и передавать им задания на печать. Однако подобные действия часто бывают не оправданы. Как вы узнаете, прочитав главу 9, собственные средства печати Linux достаточно просты в настройке. Программа pap не использует конфигурационный файл; принтер, на который следует передать задание на печать, указывается с помощью опции -p. Так, например, команда pap -p Laser2 sample.ps означает, что файл sample.ps должен быть выведен на принтер Laser2.
Работа первых двух из описанных выше инструментов базируется на использовании программы atalkd, которая представляет компьютер в сети AppleTalk (в частности, она поддерживает AppleTalk-имя и адрес узла). Настройка этой программы производится с помощью конфигурационного файла atalkd.conf, который обычно располагается в каталоге /etc/atalk.
На заметку
Netatalk не содержит клиентских программ, предназначенных для разделения файлов, поэтому из системы Linux нельзя обращаться к файлам AppleTalk. Такую возможность предоставляет версия 1.03b-alpha пакета afpfs, но этот инструмент выпущен очень давно и работает ненадежно. Если вам необходимо, чтобы система Linux работала с файлами, расположенными на компьютерах Macintosh, можете воспользоваться для этого средствами NFS или SMB/CIFS, например установить в системе MacOS NFS-сервер или DAVE (http://www.thursby.com).
Как правило, установленные средства поддержки AppleTalk работают корректно, но по умолчанию они настроены так, что разделяемым становится только рабочий каталог пользователя. Для того чтобы изменить конфигурацию, надо внести изменения в файл AppleVolumes.default. Например, приведенные ниже две строки из этого файла сообщают системе о том что экспортироваться должен как рабочий каталог пользователя (запись, состоящая из символа ~), так и каталог /mnt.
~
/mnt "Mount Points" options=noadouble
Первая строка не содержит опций. Во второй строке указано имя, которое должно предоставляться клиенту Macintosh вместо /mnt, а также ключевое слово options, посредством которого задаются специальные опции. В данном случае указана единственная опция noadouble, которая означает, что файлы AppleDouble не должны создаваться, за исключением тех случаев, когда они абсолютно необходимы. (AppleDouble — специальные файлы, которые находятся в каталоге .AppleDouble и содержат данные, специфические для MacOS.)
Если Netatalk поставляется в составе дистрибутивного пакета, его компоненты, скорее всего, будут автоматически запускаться при загрузке операционной системы. Если запуск Netatalk не предусмотрен, вы можете воспользоваться SysV или локальным сценарием запуска. (Подробно процедура запуска серверов описана в главе 4.) В первую очередь следует запустить atalkd, а затем afpd и papd. Одна из особенностей Netatalk состоит в том, что для запуска atalkd требуется достаточно длительное время; при использовании старых аппаратных средств оно может превышать одну минуту. Чтобы устранить задержку, надо включить в сценарий запуска после вызова программы символ &.