Руководство администратора сети в ОС Linux

         

Linux Automounter


Иногда, это расточительно для установки всех NFS значений пользователей, к которым возможно хотят обратиться.; или же из-за острого числа зачений которые должны быть установленны, или из-за времени, которое требовалось бы при запуске. Жизнеспособный вариантдля этого - так называемый automounter. Это - daemon, которая атоматически и понятно устанавливает любое NFS значение как необходимо, и неустанавливает их , если они не были использованны в течении некоторого времени. Одна из умных вещей относительно automounter - то, что возможно установить определенное значение из любых мест. Например, Вы можете сохранить копии Ваших Х программ и файлов поддержки на двух или трех хостах, и все

другин хосты устанавленные через NFS. При использовании automounter, Вы можете точно определить всех трех из них, чтобы быть установленными на /usr/X386; automounter затем попробует установить любой из них, пока одна из попыток установки не преуспевает.

Automounter, обычно используемый с Linux называется amd. Сначала он был написан Jan-Simon Pendry и был перенесен на Linux Rick Sladkey. Текущая версия amd-5.3.

Описание amd - вне этой главы; для хорошего описания, пожалуйста, обратитесь к источникам; они содержат файл texinfo с очень подробной информацией.



Linux сети


Будучи результатом концентрации усилие программистов всего мира, Linux не был бы возможен без глобальной сети. Так что не удивительно, что уже на ранних стадиях разработки, несколько людей начали работать над сетевыми возможностями. UUCP появился в Linux почти с самого начала, а работа над tcp/ip-основанной сетью была начата осенью 1992, когда Ross Biro и другие создали то, что теперь стало известным как Net-1.

Ross прекратил активную разработку в Мае 1993, Fred van Kempen начал работать над новой версией, переделывая главные части кода. Это усилие известно как Net-2. Первый общественный релиз, Net-2d, был сделан летом 1992 (как часть 0.99.10 ядра), и с тех пор поддерживался и расширялся несколькими людьми, наиболее сильно Alan Cox, как Net-2Debugged. После тяжелой отладки и многочисленных усовершенствований кода, он сменил название на Net-3. Эта версия кода в настоящее время включена в официальные выпуски ядра.

Net-3 предлагает драйвера устройств для разнообразного Ethernet, а также для SLIP (для работы сети по последовательным линиям), и PLIP ( для параллельных линий). С Net-3, Linux получил TCP/IP приложения, которые очень хорошо ведут себя в локальной сети и часто работают быстрее некоторых коммерческих. Существует несколько проектов, развитие которых будет увеличивать многосторонность Linux. Драйвер для PPP ( протокол point-to-point, другой способ работы по последовательным линиям), является в стадии Beta версии в настоящее время, а AX.25 драйвер для радио - в Alpha версии. Alan Cox создал драйвер для Novell's IPX протокола, но завершающие усилия для создания сети совместимой с Novell были отложены из-за нежелания Novell обеспечить необходимую документацию. Еще один проект - samba, свободный NetBIOS сервер, написанный Andrew Tridgell.



Login chat (Дружеская беседа Входв в уистему)


Выше мы уже сталкивались с сценарием дружеской беседы входа в систему (login chat script), который сообщает uucico, как регистрироваться в удаленной системе. Он состоит из списка лексем(маркеров), определяя строки, ожидаемые и посланные локальным процессом uucico. Усилие состоит в том, чтобы заставить uucico ждать, пока удаленная машина не пошлет приглашение входа в систему, затем послать имя входа в систему, ждать, пока удаленную система пошлет приглашение на ввод пароля, и посылать пароль. Ожидание и посылка строки чередуются. Uucico автоматически добавляет символ \r возврата каретки к, любой посылаемой строке. Таким образом, простой сценарий дружеской беседы походил бы на:

login: vstout Password: catch22

Обратите внимание, что поля записи не содержат текста приглашений. Удостоерьтесь, что вы войдете в систему , даже если система посылает Login вместо login. Uucico также учитывает некоторые виды условного выполнения, например в случае, если getty удаленной машины должен быть сброшен перед посылкой приглашения. Для этого Вы можете присоединиться под-дружескую(sub-chat) беседу к ожидающейся строке, смещение черточкой. Sub-chat выполняется только если основное соединение не удалось, то есть произошла блокировка по времени. Один из способов использовать эту возможность состоит в том, чтобы послать BREAK, если удаленная система не отображает приглашение входа в систему. Следующий пример дает всесторонний сценарий дружеской беседы, который должен работать и в случае, если Вы должны нажать Enter прежде, чем войти в систему. Пустая строка ("") говорит UUCP ничего не ждать и продолжать посылать следующую строку немедленно.

"" \n\r\d\r\n\c login:-BREAK-login: vstout password: catch22

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

\t Cимвол табуляции.

\r символ возврата каретки.




\s Пробел. Вы нуждаетесь в нем , чтобы включить пробел в строку дружеской беседы.

\n перевод строки.

\\ обратный слэш ( Backslash).

В посылаемой строке, следующие ESC-символы и последовательности допустимы в дополнение к вышеупомянутым:

EOT -символ конца передачи (^D).

BREAK -Символ прерывания .

\ c Подавляет посылку возврата каретки в конце строки.

\d Задержка в течение 1 секунды.

\E Дает возможность эхо - проверки.Требует, чтобы uucico ждал ECHO всего, что это записывает, чтобы читаться в стороне от устройства прежде, чем это может продолжать дружескую беседу. Это прежде всего полезно когда используется в дружеских беседах модема (с которым мы столкнемся ниже). По умолчанию эхо выключено. \e Отключает проверку эхо.

\K То же самое, что и BREAK.

\p Пауза в долю секунды.


Локальные Пользователи


Наиболее общий случай для локального адреса - обозначить mailbox пользователя. Этот mailbox - локализовался /var/spool/mail, и имеет имя пользователя. Если он не существует, он создан smail. Обратите внимание, что, хотя /var/spool/mail - в настоящее время стандартное место, чтобы поместить mailbox файлы, некоторое программное обеспечение почты может иметь другой paths, компилируемый в, например /usr/spool/mail. Имеются два адреса которые требуются smail: mailer - daemon и Постмастер. При производстве сообщения удара для почты undeliverable, машинописная копия послана постмастеру объяснение исследования (в случае, если это могло бы быть из-за проблемы конфигурации). Mailer - daemon используется как адрес отправителя для сообщения удара. Если эти адреса не называют допустимые счета на вашей системе, smail неявно отображает mailer - daemon как postmaser, и постмастера как root, соответственно. Вы должны обычно отменять это совмещением имени постмастера с тем, кто является ответственным за поддержание программного обеспечения почты.



Mailertable


Mailertable определяет специальное обращение для специфических главных ЭВМ или областей, основанных на отдаленном host или сетевом имени. Это часто используется на абоненте Internet, чтобы выбрать промежуточный relay host для почты или gateway, чтобы достигнуть отдаленной сети, и определить специфический протокол (UUCP или SMTP). UUCP абонент вообще не должен использовать этот файл. Порядок важен. Sendmail читает файл, нисходяще и обрабатывает сообщения согласно первому правилу, которому оно соответствует. Так что вообще нужно поместить наиболее явные правила наверху файла и более обобщенных правил ниже.

Предположите, что Вы хотите направлять всю почту для отделения Информатики в Университете Groucho Marx через UUCP relay host ada. Чтобы сделать так, Вам нужен пункт в mailertable, который походит на следующее: # (in mailertable) # # forward all mail for the domain .cs.groucho.edu via UUCP to ada UUCP- A,ada .cs.groucho.edu Предположите, что Вы хотите чтобы вся почта к groucho.edu области шла к другому relay host - bighub. Расширенные входы mailertable выглядели бы подобно: # (in mailertable) # # forward all mail for the domain cs.groucho.edu via UUCP to ada UUCP-A,ada .cs.groucho.edu # # forward all mail for the domain groucho.edu via UUCP to bighub UUCP- A,bighub .groucho.edu Как упомянуто выше, порядок важен. Реверсирование порядка из двух правил, показанных выше приводит к передаче всей почты к .cs.groucho.edu через более обобщенный bighub путь вместо явного ada пути, который действительно желателен. # (in mailertable) # # forward all mail for the domain .groucho.edu via UUCP to bighub UUCP- A,bighub .groucho.edu # # (it is impossible to reach the next line because # the rule above will be matched first) UUCP-A,ada .cs.groucho.edu # В примерах mailertable выше, UUCP-A mailer заставит sendmail использовать UUCP получение с заголовками области.

Запятая между mailer'ом и отдаленной системой сообщает о передаче сообщения к ada для получения. Mailertable входы(пункты) имеют формат: mailer delimiter relayhost host or domain Имеется ряд возможных mailer'ов. Различия - вообще в том, как они обрабатывают адреса. Типичные mailer'ы - TCP-A (TCP/IP с адресами - стиля Internet), TCP-U (TCP/IP с адресами uucp-стиля), и UUCP-A (UUCP с адресами -стиля Internet). Символ, который отделяет mailer от host слева в строке mailertable, определяет, как адрес изменяется mailertable. ! Отметка восклицания удаляет hostname получателя перед пересылкой к mailer'у. Это может использоваться, когда Вы хотите послать почту в неконфигурированный отдаленный пункт. , Запятая не изменяет адрес всегда. Сообщение просто будет послано через заданный mailer заданному relay host. : Двоеточие удаляет hostname получателя только, если имеются промежуточные главные ЭВМ между Вами и адресатом. Таким образом из foo!bar!Joe будет удален foo, в то время как xyzzy!Janet останется неизменным.



Маршрутизация через Gateway


В предыдущей секции, Я охватил только случай введения хоста с единственным Ethernet. Достаточно часто, однако, мы сталкивается с сетями, соединенными с помощью gateway. Этот gateway может просто связывать два или больше Ethernet, а может обеспечить связь с внешним миром, (например с Internet). Чтобы использовать gateway сервис, Вы должны обеспечить сетевому уровню дополнительную информацию о маршрутизации.

Например, Ethernet Виртуальной Пивоварни и Виртуальной Винодельни связаны через такой gateway, а именно хост vlager. Предположим, что vlager уже был отконфигурирован, и нам осталось только добавить новую запись в таблицу маршрутизации vstout, которая сообщает его ядру что он может достигнуть всех хостов на Сети Винодельни через vlager. Соответствующее описание маршрута показывается ниже; gw ключевое слово, которое сообщает что следующий аргумент обозначает gateway.

# route add wine-net gw vlager

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

Этот пример описывает только gateway который переключает пакеты между двумя изолированными Ethernet. Теперь предположите что vlager также имеет соединение с Internet ( работающее через дополнительную SLIP связь). Тогда мы хотели бы чтобы дэйтаграмы для любой сети, отличной от Пивоваренной, передавались vlager. Это может быть выполнено с помощью установки gateway по умолчанию для vstout:

# route add default gw vlager

Сетевое имя default(по умолчанию) связано с адресом 0.0.0.0, что обозначает маршрут установленный по умолчанию. Вы не должны добавлять это имя к /etc/networks, потому что это построено в route.

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



Маршрутизация и Получение Сообщений


Smail разбивает получение почты в три различных задачи, программу маршрутизации, руководитель, и транспортный модуль. Модуль программы маршрутизации распределяет все отдаленные адреса, определяя к которому host, сообщение должно быть послано следующему, и который транспорт должен использоваться. В зависимости от характера связи, различные транспортировщики типа UUCP или SMTP могут использоваться.

Транспортный модуль, в заключение, является ответственным за любой метод получения, который был выбран. Он пробует передавать сообщение, и в случае отказа или генерирует сообщение удара, или задерживает его для более позднего повторения. С smail, Вы имеете много свободы в конфигурировании этих задач. Для каждого из них, доступен ряд драйверов, из которого Вы можете выбирать те, в которых Вы нуждаетесь. Вы описываете их smail в паре файлов, а именно routers, directors, и transports в /usr/lib/smail. Если эти файлы не существуют, приняты приемлемые значения по умолчанию. Если Вы хотите изменить маршрутизацию smail, или изменить транспорт, Вы должны получить типовые файлы из smail исходного распределения, скопировать типовые файлы в /usr/lib/smail, и изменять их согласно вашим потребностям. Типовые файлы конфигурации также даны в Приложении(аппендиксе) 20.3.



Маршрутизация Почты в Internet


В Internet от главной ЭВМ адресата зависит полностью, выполняется ли любая специфическая маршрутизация почты вообще. Значение по умолчанию должно передать сообщение главной ЭВМ адресата непосредственно, и оставлять фактическую маршрутизацию данных IP транспортому уровню. Большинство пунктов будет обычно направлять всю почту к доступному серверу почты, который способен обработать все это движение. Чтобы объявить это обслуживание, пункт создает так называемую запись MX для их локальной области в DNS базе данных. MX замещает Экспреобразователь Почты и в основном заявляет, что главная ЭВМ сервера желает действовать как механизм продвижения данных почты для всех машин в этой области. MX записи можгут также использоваться, чтобы обработать траффик для главных ЭВМ, которые не соединены с Internet самостоятельно, подобно UUCP сетям, или сетям компаний с главными ЭВМ, несущими конфиденциальную информацию. MX записи также имеют приоритет, связанный с ними. Это - положительное целое число, которое позволяет определить очередность посылки почты. Предположите, что организация Foobar Inc, хочет всю их почту обрабатывать их машиной, называемой mailhub. Они будут иметь запись MX примерно так в DNS базе данных: foobar.com IN MX 5 mailhub.foobar.com

Это объявляет mailhub.foobar.com как обработчик почты для foo- bar.com со значением предпочтения 5. Главная ЭВМ, которая хочет передавать сообщение joe@greenhouse.foobar.com, проверит DNS для foobar.com, и найдет запись MX, указывающую на mailhub. Если не имеется никакого MX с предпочтением меньше чем 5, сообщение будет передано на mailhub.



Маршрутизация Почты в Мире UUCP


Маршрутизация Почты на UUCP сетях намного больше сложна чем на Internet, потому что транспортное программное обеспечение не выполняет никакой маршрутизации непосредственно. В более ранних временах, вся почта была должна быть адресована, используя пути удара. Пути Удара определяли список главных ЭВМ для передачи сообщения, отделяемые метками восклицания, и с последующим именем пользователя. Чтобы адресовать письмо Janet Пользователю на машине, именованной moria, Вы использовали бы путь eek!swim!Moria!Janet. Это послало бы почту от вашей главной ЭВМ до eek, оттуда на swim и в заключение к moria. Очевидный недостаток этой методики состоит в том, что требуется, чтобы Вы помнили много относительно сетевой топологии, и т.д. Намного хуже, то что изменения в сетевой топологии --- подобно удаляемым связям или удаляемым главным ЭВМ --- могут заставлять сообщения терпеть неудачу просто потому что Вы не знали бо изменении. И в заключение, в случае, если Вы посылаете в различные места, Вы будете должны модифицировать все эти маршруты. Первый шаг в идентификации hostname был основание UUCP Отображающего Проекта. Он размещен в Rutgers Университете, и регистрирует все официальные UUCP hostname, наряду с информацией относительно их соседей UUCP и их географическего расположения, создавая уверенность, что никакой hostname не используется дважды. Информация, собранная Проектом Отображения издана как Карты Usenet, которые распределены регулярно через Usenet. (4) типичный вход системы в Карте (при удалении комментариев) походит на это: 4. Maps for sites registered with The UUCP Mapping Project are distributed through the newsgroup comp.mail.maps; other organizations may publish separate maps for their network.

moria bert(DAILY/2), swim(WEEKLY) Этот вход говорит, что moria имеет связь с bert, которую она вызывает дважды в день, и со swim, которую она вызывает еженедельно. Мы возвратимся к формату файлов Карты позже. Используя информацию связности, обеспеченной в картах, Вы может автоматически генерировать полные пути от вашей главной ЭВМ до любого пункта адресата. Эта информация обычно сохраняется в файле путей, также называемом pathalias база данных. Если Карты устанавливают, что Вы можете достигать bert через ernie, то pathalias вход для moria, сгенерированный из отрывка Карты выше выглядит следующим образом: moria ernie!bert!moria!%s Если, который Вы теперь даете адрес адресата janet@moria.uucp, ваш MTA, выберет маршрут, показанный выше, и пошлет сообщение ernie с адресом конверта bert! Moria! Janet. Формирование файла путей из полных карт Usenet - не очень хорошая идея. Информация, обеспеченная в них обычно искажается, и иногда устаревает. Следовательно, только ряд главных главных ЭВМ использует полные UUCP всемирные карты, чтобы формировать их файл путей. Большинство абонентов поддерживает информацию маршрутизации для абонента в их соседстве(окрестностях), и посылают почту абоненту, которого они не находят в их базах данных на более интеллектуальную главную ЭВМ с более полной информацией маршрутизации. Эта схема называется интеллектуально - главной маршрутизацией.



Маршрутизация Сообщений


Когда дано сообщение, smail проверяет, если адресат - локальный host, или отдаленный пункт. Если целевой адрес host является одним из локального hostname, конфигурированного в конфигурации, сообщение будет передано модулю управления. Иначе, smail вручает адрес ряду драйверов программы маршрутизации, чтобы выяснить которому host'у передано сообщение. Они могут быть описаны в файле routers; если этот файл не существует, используется набор заданных по умолчанию программ маршрутизации. Host адресата передается всем программам маршрутизации по очереди, и находящий наиболее специфический маршрут будет выбран. Рассмотрите сообщение, адресованное joe@foo.bar.com. Одна программа маршрутизации могла бы знать заданный по умолчанию маршрут для всех главных ЭВМ в bar.com области, в то время как другая имеет информацию для foo.bar.com непосредственно. Если там - две программы маршрутизации, которые обеспечивают "лучшее соответствие'', та что раньше в файле программ маршрутизации будет выбрана.

Эта программа маршрутизации теперь определяет транспорт, который нужно использовать, например UUCP, и генерирует новый адрес адресата. Новый адрес передан на транспорт наряду с host. В вышеупомянутом примере, smail мог бы выяснять, что foo.bar.com должен быть достигнут через UUCP использование пути ernie!Bert. Тогда генерируется новая цель из bert!Foo.bar.com!user, и используется UUCP транспорт, поскольку конверт адресован к ernie. При использовании заданной по умолчанию установки, следующие программы маршрутизации доступны: + Если, адрес host адресата может быть разрешен, используя gethostbyname или gethostbyaddr вызов из библиотек, сообщение, будет передано через SMTP. Единственое исключение - если адрес найден, чтобы обратиться к локальному host. Smail также распознает адреса IP, которые пишутся как точечная четверка, как допустимый hostname, если только они могут быть решены через gethostbyaddr обращение. Например, scrooge@ [149.76.12.4] был бы допустим, хотя это необычный почтовый адрес для scrooge на quark.physics.groucho.edu. Если ваша машина находится на Internet, эти программы маршрутизации - не то, что Вы ищете, потому что они не поддерживают записи MX. См. ниже что делать в этом случае. + Если pathalias база данных (/usr/lib/smail/paths) существует, smail пробует искать целевой host (минус любой конечный .uucp) в этом файле. Почта к адресу, согласованному этой программой маршрутизации будет передана используя UUCP, и используя путь, найденный в базе данных. + Адрес host (минус любой конечный .uucp) будет сравниваться с выводом команды uuname, чтобы проверить является ли целевой host фактически соседом UUCP. Если дело обстоит так, сообщение будет передан использованием UUCP транспорта. + Если, адрес не был согласован любой из вышеупомянутых программ маршрутизации, он будет передан smart host. Путь smart host также как транспорт, который нужно использовать установлен в файле конфигурации.


Эти значения по умолчанию работают для многих простых установок, но сбоят при более сложной маршрутизации. Если перед Вами стоит одна из проблем, обсужденных ниже, Вы будет должен установить ваши собственные программы маршрутизации. Возможно самые плохие проблемы возникают, когда ваш host живет в двойной области, и с телефонным вызовом по номеру IP и со связями UUCP. smail будет пытаться передавать любую почту через SMTP. Это - обычно не, что Вы хотите, потому что, даже если связь SLIP активизирована регулярно, SMTP - намного медленнее чем посылка почты над UUCP. С заданной по умолчанию установкой, не имеется никакого способа выйти из smail. Вы можете избегать этой проблемы при наличии проверки файла путей перед запросом решающего устройства, и помещении всех необходимых главных ЭВМ в файл путей. Если Вы не хотите посылать сообщения над SMTP когда-либо, Вы можете также закомментировать решающие рограммы маршрутизации в целом. Другая проблема состоит в том, что заданная по умолчанию установка не обеспечивает истинную маршрутизацию почты Internet, потому что решающая программа маршрутизации не оценивает записи MX. Чтобы давать возможность полной поддержке маршрутизации почты Internet, прокомментируйте эту программу маршрутизации, и разкомментируйте ту что используется BIND взамен. Имеются, однако, smail binaries включенные в некоторые распределения Linux, которые не имеют поддержки BIND. Если Вы даете возможность BIND, но получаете сообщение в paniclog файле, говорящее "программа маршрутизации inet hosts: драйвер связи не найден'', тогда Вы должны получить исходники и перетранслировать smail (см. раздел 15.2 выше). В заключение, это вообще не очень хорошая идея - использовать uuname драйвер.


Метрические значения


Динамическая маршрутизация основанная на RIP выбирает самый лучший маршрут к некоторому хосту или сети, основываясь на наборе "hops"(перелетов), то есть gateways дэйтаграм, рассылаемых перед передачей основной информации. Чем более короткий маршрут, тем лучше RIP его оценивает. Очень длинные маршруты с 16 или больше перелетов рассматриваются как неподходящие и отвергаются.

Чтобы использовать RIP для управления информацией, маршрутизируемой внутри вашей сети, Вы должны запустить gated на всех хостах. Во время загрузки gated проверяет все активные сетевые интерфейсы. Если имеется больше чем один активный интерфейс ( не считая loopback ), это предполагает что хост передает пакеты между несколькими сетями, и будет активно обмениваться маршрутной информацией. Иначе, он будет только пассивно получать RIP пакеты и модернизировать локальную таблицу маршрутизации.

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



Mode и default


Эти команды используются для того, чтобы переключить последовательную линию в SLIP режим и сконфигурировать interface.

Mode команда - последняя команда, выполненная dip перед гонгом в daemon режиме. Пока ошибка не появляется, команда ничего не возвращает.

Mode берет название протокола как аргумент. Dip постоянно распознает SLIP и CSLIP как подходящие имена. Текущая версия dip не понимает adcptive SLIP.

После отключения SLIP режима на последовательной линии, dip выполняет ifconfig для того, чтобы сконфигурировать interface как двухточечную связь(point-to-point link), и вызвать маршрут к множеству маршрутов незначительного хоста.

Если, кроме того, script выполняет заданную по умолчанию команду перед mode, то dip также задаcт по умолчанию точку маршрута на SLIP связь.



Набор номера с chat


Одна из вещей, которая может испугать Вас как неудобная в вышеизложенным примере - то, что Вы должны установить связь вручную прежде, чем Вы могли бы запустить pppd. В отличие от dip, pppd не имеет собственный script язык для набора незначительной системы и регистрации, но полагается на некоторую внешнюю программу или shell script для того, чтобы сделать это. Команда, которая будет выполнена может быть дана pppd с connect командой line option. Pppd переназначит вход и выход к последовательной линии. Одна полезная программа для этого - expect, написанная Don Libes. Она имеет очень мощный язык основанный на Tcl, и была разработана точно для этого сорта приложения.

Pppd пакет идет с подобной программой называемой called chat, которая позволяет Вам определить UUCP-style chat script. В основном, chat script состоит из чередующихся последовательности строк, которые мы ожидаем получить от отдаленной системы, и ответов, которые мы должны послать. Мы будем называть expect и send строки, соответственно. Это типичная выборка из chat script;

ogin: b1ff ssword: s3kr3t

Он сообщает chat чтобы ждать отает из отдаленной системы для того, чтобы послать login prompt, и вернуть login имя b1ff. Мы только ждем ogin: так чтобы было все равно стартует ли login prompt с верхнего регистра или с нижнего регистра I, или приходит искаженным. Следующяя строка - expect string снова, которая заставит chat ждать пароль, и посылать свой пароль в ответ.

Вот это в основном и все то, для чего предназначен chat scripts. Полный script для соединения с PPP сервером, несомненно должен включать соотствующие команды модема. Представте, что ваш модем понимает Hayes команды, и номер телефона сервера был 318714. Полный вызов chat для установки связи с c3po был бы:

$ chat -v '' ATZ OK ATDT318714 CONNECT '' ogin: ppp word: GaGariN

По определению, первая строка должна бы быть expect строкой, но так как модем не будет говорить что - нибудь прежде, чем мы пнули его, мы сделаем chat так, чтобы он сначала ожидал, опрзделкв пустую строку. Мы продолжаем и посылаем ATZ, reset команда для Hayes-совместимых модемов, и ждем реакцию (OK). Следующая строка посылает dial команду с номером телефона для chat, и ожидает сообщение CONNECT в ответ. За этим следует пустая строка снова, потому что мы не хотим посылать, но лучше подождать для быстрого входа в систему. Остаток от chat script работает точно так, как описано выше.


Опция - v делает caht log all activities к syslog daemon's local2 facility. (6)

Определение chat script на командной строке несет оправданный риск, потому что пользователи могут просматривать командную строку процессов с использованием ps команды. Вы можете избежать этого, помещая chat script в файл, скажем dial-c3po. Вы можете заставить chat прочесть script из файла вместо командной строки, давая ему опцию -f, сопровождаемой именем файла. Завершением колдовства над pppd теперь выглядело бы следующим образом:

# pppd connect "chat -f dial-c3po" /dev/cua3 38400 -detach \ crtscts modem defaultroute

6. Если Вы редактируете syslog.conf так, чтобы переназначить эти log сообщения к файлу, удостоверитесь, что этот файл не всемирно читаемый, так как chat также регестрирует введенный chat script по умолчанию - включая пароли и все.

Помимо соединяющейся опции, которая определяет dial-up script, мы добавили еще две опции к командной строке: - detach, которая сообщает рppd не отделяться от консоли и стать процессом предпосылки. Ключевое слово модема заставит его выполнить некоторые модем-определенные действия на последовательном устройстве, подобно "повесить трубку" прежде и после вызова. Если Вы не используете это ключевое слово, pppd не будет определять DCD линию, и будет не обнаруженна неожиданно.

Примеры, показанные выше были довольно просты; chct позволяет учитывать намного более комплексные chat script. Одна очень полезная особенность - способность к точному определению строки на которой можно прервать chat с ошибкой. Типичные аварийные строки - BUSY, или NO CARRIER, которые ваш модем обычно генерирует, когда вызываемый номер занят, или не поднимают трубку. Для того, чтобы сделать chat распознающим их немедленно, скорее быстрее чем выйдет время, Вы можете определить начало script, используя ключевое слово ABORT.

$ chat -v ABORT BUSY ABORT 'NO CARRIER' '' ATZ OK ...

В подобном режиме, Вы можете изменить значение блокировки по времени для частей chat scripts, вставляя TIME OUT опции. Для деталей, пожалуйста обратитесь к chat(8) справочника.

Иногда, вы может быть захотели бы иметь некоторый вид условного извлечения частей chat script. Например, когда Вы не получаете отдаленный end'slogin prompt, возможно Вы можете захотеть послать BREAK, или возврат каретки. Вы можете достичь этого, присоединяя sub-script к expect строке. Она состоит из последовательности send- и expect- строк, точно таких же как и полный script непосредственно, который отделен дефисами. Sub-script выполняется всякий раз, когда expected строка когда не было ничего получено. В примере изложенном выше, мы модифицировали бы chat script следующим образом:

ogin:-BREAK-ogin: ppp ssword: GaGariN

Теперь, когда chat не видит, что отдаленная система посылает быстрый вход в систему, sub-script выполняется сначала посылая BREAK, и затем ожидает для входа в систему снова. Если prompt теперь появится, то script будет продолжаться как обычно, иначе это прервется с ошибкой.


Национальный Набор Символов


Недавно имелись предложения исправить RFC 822 стандарт, чтобы поддерживать различные типы сообщений, типа простых текстовых, двоичных данных, файлов Postscript, и т.д. Набор стандартов и RFC, покрывающий эти аспекты, обычно упоминается как MIME, или Многоцелевые Расширения Почты Internet. Между прочим, это также позволяет получателю узнать, использовался ли набор символов отличный от стандартного ASCII, при написании сообщения. Это обеспечивается elm до некоторой степени. Набор символов, используемый Linux внутренне, чтобы представить символы обычно упоминается как ISO-8859-1, что является именем стандарта, которому он соответствует. Это также известно как Латинский -1. Любые символы в сообщении из этого набора символов должны иметь следующую строку в заголовке: Content-Type: text/plain; charset=iso-8859-1 Система получения должна распознать это поле и принять соответствующие меры при отображении сообщения. Значение по умолчанию для текстовых сообщений - значение charset us-ascii. Чтобы отображать сообщения с набором символов отличным от ASCII, elm должен знать, как печатать эти символы. По умолчанию, когда elm получает сообщение с charset полем отличным от us-ascii, она пробует отображать сообщение, используя команду, называемую metamail. Сообщения, которые требуют, чтобы мета почта отобразилась, показываются с " M " в самом первом столбце в экране краткого обзора. Так как Linux набор символов - ISO-8859-1, вызов metamail не необходим для отображения сообщения, использующего этот набор символов. Если еlm знает, что дисплей понимает ISO-8859-1, она не будет использовать metamail, а отобразит сообщение непосредственно. Это может быть выполнено, установкой следующей опции в глобальном elm .rc:

displaycharset = iso-8859-1 Обратите внимание, что Вы должны установить эти опции даже, когда Вы никогда не собираетесь посылать или получать сообщения, которые фактически содержат символы отличные от ASCII. Это - потому что люди, которые посылают такие сообщения обычно конфигурируют их mailerом, чтобы поместить соответствующий тип содержания: поле в заголовке почты по умолчанию, посылают или нет они только ascii сообщения. Однако, установки этой опции в elm .rc не достаточно. Проблема состоит в том, что при отображении сообщения, elm вызывает библиотечную функцию для каждого символа, чтобы определить является ли он печатаемым или нет. По умолчанию, эта функция распознает только символы ASCII, и отображает все другие символы как "^?". Вы можете преодолеть это, устанавливая переменную среды LC CTYPE как ISO-8859-1, которая сообщает, что библиотека приняла символы Latin-1 как печатаемые. Поддержка для этих и других возможностей доступна начиная с libc-4.5.8. При посылке сообщений, которые содержат специальные символы из ISO-8859-1, Вы должны удостовериться, что установлены еще две переменные в elm .rc файле: charset = iso-8859-1 textencoding = 8bit Это заставит elm сообщить набор символов как ISO-8859-1 в заголовке почты, и посылать это как 8 битовые значения (значение по умолчанию - все символы 7 бит). Конечно, любая из этих опций может также быть установлена в частном elmrc файле вместо глобального.



Наименование Места


Как и при работе с TCP/IP сетями,ваша главная ЭВМ(host) должна иметь имя для UUCP сетей. Пока Вы просто хотите использовать UUCP для передач файлов или соединения извне непосредственно,или по локальной сети, это имя не должно удовлетворять никакие стандартам. (4) 3. Если вы собираетесь пробовать UUCP, получите телефонный номер ближайшего архива. Запишите имя и пароль - они общеизвестны. В большинстве случаев они что - нибудь вроде /uucp uucp или nuucp/uucp. 4. Единственое ограничение - то, что имя не должно быть больше чем 7 символов, чтобы не путать ЭВМ с файловыми системами, которые накладывают узкое ограничение на имя файла.

Однако, если Вы используете UUCP для почты или новостей, Вы должны подумать о наличиb имени, зарегистрированног в UUCP Mapping project . UUCP Mapping psojectо описан в главе 14 .., Даже если Вы делите домен, Вы можете получить официальное имя UUCP для вашего участка сети. Часто, люди выбирают свое UUCP имя, чтобы соответствовать первому компоненту имени домена. Предположим, что адрес домена вашей ЭВМ - swim.twobirds.com, тогда имя главной ЭВМ UUCP было бы swim.Обычно именно так и бывает.Конечно, Вы можете также использовать любое UUCP имя. Однако не стоит использовать неквалифицированное имя в адресе почты, пока Вы не зарегистрировали его как ваше официальное имя UUCP. (5) В лучшем случае, почта на незарегистрированную ЭВМ UUCP отправится в мусорную корзину(big black bit bucket). Если Вы используете имя, уже присвоенное некоторому другому месту, эта почта не будет направлена к тому месту, и причине начальник почтового отделения никакой конец головных болей. По умолчанию, набор программ UUCP использует hostname как имя UUCP . Это имя обычно устанавливается в сценарие /etc/rc.local. Если ваше имя UUCP отлично от того, что Вы устанавливаете главным имя , Вы должны использовать опцию hostname в файле конфигурации, чтобы сообщить uucico о вашем имени UUCP. Это описано ниже.



Написание Файлов Конфигурации


Конфигурация для Пивоваренного завода работает следующим образом: все главные ЭВМ за исключением сервера почты vstout непосредственно направляют всю почту к серверу, используя маршрутизацию smart host. Vstout непосредственно посылает всю почту реальному smart host, который направляет всю почту Пивоваренного завода; этот host называется moria. Стандартный файл конфигурации для всех главных ЭВМ отличных от vstout походит на это:

# # Our domain: visible domain=vbrew.com # # What we name ourselves visible name=vbrew.com # # Smart-host routing: via SMTP to vstout smart path=vstout smart transport=smtp Это очень похоже на то, что мы использовали для uucp пункта. Основное различие - то, что транспорт, используемый, чтобы послать почту smart host, конечно, SMTP. Атрибут области заставит smail использовать имя области вместо локального hostname на всей почте. На UUCP воротах vstout, файл конфигурации немного отличный: # # Our hostnames: hostnames=vbrew.com:vstout.vbrew.com:vstout # # What we name ourselves visible name=vbrew.com # # in the uucp world, we're known as vbrew.com uucp name=vbrew.com # # Smart transport: via uucp to moria smart path=moria smart transport=uux # # we're authoritative for our domain auth domains=vbrew.com Этот файл конфигурации использует отличную схему, чтобы сообщить smail, чем локальный host вызывается. Вместо того, чтобы давать список областей и позволять находить hostname системным вызовом, он определяет список явно. Вышеупомянутый список содержит, и полностью квалифицированные и неквалифицированные hostname, и область. Это заставит smail распознать janet@vbrew.com как локальный адрес, и передавать сообщение janet.

Auth переменная областей называет области, для которых vstout является авторитарным. То есть если smail получает любую почту, адресованную host .vbre.com, где host не называет существующую локальную машину, он отклоняет сообщение и возвращает это отправителю. Если этот вход не представлен, любое такое сообщение будет послано smart-host, который возвратит его к vstout, и так далее, пока оно не будет отброшено из-за превышения максимального счета посылки на небольшое расстояние.



Написание hosts и networks файлов


После того, как Вы разбили на подсети вашу сеть, Вы должны подготовиться к некоторому простому виду поиска адреса по имени использующего файл /etc/hosts. Если Вы не собираетесь использовать DNS или NIS для этого, Вы должны помещать все хосты в hosts файл.

Даже если Вы хотите использовать DNS или NIS, Вы можете иметь некоторое подмножество имен и в /etc/hosts. Например, если вы хотите иметь некоторый вид поиска по имени даже когда никакие сетевые интерфейсы не запущены, например во время загрузки. Это не только вопрос удобства, но также позволяет Вам использовать символические имена хостов в ваших rc.inet скриптах. Таким образом, при изменении IP адресов, Вы должны будите только копировать обновленный файл хостов на все машины, вместо того чтобы редактировать большое количество rc файлов. Обычно, Вы будете помещать все локальные имена и адреса в hosts, добавлением их на любой gateways и NIS сервера, если они используется.

Также, в течение проверки, Вы должны удостовериться, что ваш resolver использует информацию только из файла hosts. Ваше DNS или NIS программное обеспечение может прибыть с файлами примеров, которые могут дать странные результаты при их использовании. Чтобы заставить все приложения использовать исключительно /etc/hosts при поиске IP адреса хоста, Вы должны отредактировать файл /etc/host.conf. Закоментируйте все строки, начинающиеся с ключевого слова order и вставьте строку

order hosts

Конфигурация resolver библиотеки будет подробно описана в главе7.

hosts файл содержит по одной записи на строку, состоящую из IP адреса, имени хоста и необязательного списка псевдонимов имени. Поля отделяются пробелами или табуляцией, и поле адреса должно начинаться в первой колонке. Все, что следует после символа (#), расценивается как комментарий и игнорируется.

Имя хоста может быть также полностью квалифицированным или относительно локальной области. Для vale, Вы бы ввели полностью квалифицированное имя, vale.vbrew.com и vale само по себе, так, чтобы было известно и официальное имя и более короткое локальное.


Пример как выглядит файл хостов Виртуальной Пивоварне дан ниже. Два специальных имени , vlager-if1 и vlager-if2, дают адреса для обоих интерфейсов используемых на vlager.

# # Hosts file for Virtual Brewery/Virtual Winery # # IP local fully qualified domain name # 127.0.0.1 localhost # 191.72.1.1 vlager vlager.vbrew.com 191.72.1.1 vlager-if1 191.72.1.2 vstout vstout.vbrew.com 191.72.1.3 vale vale.vbrew.com # 191.72.2.1 vlager-if2 191.72.2.2 vbeaujolais vbeaujolais.vbrew.com 191.72.2.3 vbardolino vbardolino.vbrew.com 191.72.2.4 vchianti vchianti.vbrew.com

Точно также как с IP адресами хостов, можно дать символическое имя сетевым номерам. Поэтому, файл хостов имеет компаньона названного /etc/networks который отображает имя сети на сетевой номер и наоборот. В Виртуальной Пивоварне, мы могли бы устанавливать файл сетей подобно этому:

# /etc/networks for the Virtual Brewery brew-net 191.72.1.0 wine-net 191.72.2.0


Направление через связь PPP


После установки сетевого interface, pppd будет устанавливать хост маршрут только к своему peer. Если remote хост находится на LAN, Вы обязательно захотите быть способным соединится с хостами множествами "позади" Вашего peer; то есть сетевой маршрут должен быть установлен.

Мы уже видели, что pppd можно попросить уствновить заданный по умолчанию маршрут, используяю опцию defaultroute. Эта опция очень полезна если PPP сервер, с которым Вы связались будет действовать как ваши Internet ворота.

Обратный случай, где ваша система действует как ворота для единственного хоста, является также относительно простым для того, чтобы быть выполненым. Например, возьмите некоторых служащих в Virtual Brewery, чья локальная машина называется loner. При соединении с vlager через PPP, он использует адрес на подсети Brewery. В vlager, мы можем теперь дать pppd опцию proxyarp, которая установит полномочную ARP запись для loner. Это автоматически сделает loner доступным для всех и в Winery.

Однако, вещи далеко не всегда просты как это иногда кажется, например когда Вы соединяете две LAN. Это обычно требует добавления специального сетевого маршрута, потому что эти сети могут иметь свой маршрут заданный по умолчанию. Кроме того, имея обоих peer использование связи PPP как маршрут заданный по умолчанию генерировало бы цикл, где блоки к некзвеутным адресатам будут пинаться между peer пока их time-to-live истечет.

Как пример, предположите, что Virtual Brewery открывает ветвь в каком-нибудь другом городе. Подразделение запускает собственную Ethernet используя IP сетевой номер 191.72.3.0, который является подсетью 3 из Brewery класса B сети. Они хотят соединиться с Brewery's main Ethernet via PPP для тго, чтобы модифицировать базы данных заказчиков, и т.д. Снова, vlager действует как ворота; peer вызывается sub-etha и имеет адрес IP 191.72.3.1..

Когда sub-etha соединится с vlager, она примет заданный по умолчанию маршрут к vlager как обычный. На vlager, мы будем должны установить сетевой маршрут для подсети 3, который проходит к sub-etha. Для этого, мы используем особенность pppd, не обсужденного пока - ip-в готовности команды. Это shell script или программа, размещенная в /etc/ppp, которая выполнена после того, как PPP interface был сконфигурирован. Когда он существует, это вызывается со следующими пар


ip- up iface device speed local addr remote addr

Где iface называет сетевой interface используемым, device - тропа файла последовательного устройства используемого (/dev/tty, если stdin/stdout используется), и speed - быстродействие устройства. Local addr и remote addr дают IP адреса, используемые в обоих концах связи в dotted quad notation. В нашем случае, ip-up script, может содержать следующий кодовый фрагмент:

#!/bin/sh case $5 in 191.72.3.1) # this is sub-etha route add -net 191.72.3.0 gw 191.72.3.1;; esac exit 0

В подобном режиме, /etc/ppp/ip-down используется для того, чтобы отменить все действия ip-up после того, как связь PPP была демонтирована снова.

Однако, схемж матшрутов еще не полна. Мы установили маршрут входов таблицы на оба PPP хоста, но пока, все другие хосты на обих сетях не знают ничего относительно связи PPP. Это не большая проблема, если все хосты в подразделении имеют свои, заданные по умолчанию маршруты в sub- etha, и все хосты в Brewery направляются к vlager по умолчанию. Если это не так, то ваша единственная опция будет использовать daemon маршрут подобно воротам. После создания сетевого маршрута передал бы по радио новый маршрут ко всем хостам на присоединенной подсети.


Настройка Протокола Передачи


Все протоколы учитывают некоторое изменение в размерах пакета, блокировках по времени, и т.п.. Обычно значения по умолчанию, обеспечивающие работу при стандартных обстоятельствах, не оптимальны для вашей системы. Протокол g, например, использует размеры окна от 1 до 7, и размеры пакета в степенях 2 в пределах от 64 до 4096. (14), если ваша телефонная линия обычно настолько шумная, что теряется более 5% всех пакетов, Вы должны уменьшить размер пакета и сократить окно. С другой стороны, на очень хороших телефонных линиях непроизводительные затраты протокола при посылке запроса черз каждые 128 байт могут оказзаться расточительными, так что Вы можете увеличивать размер пакета до 512 или даже 1024. Taylor UUCP обеспечивает механизм настройки этих параметров командой protocol-parameter в файле sys. Например, чтобы установить пакет протокола g в 512 байт при обмене с pablo:

system pablo protocol-parameter g packet-size 512

14. Большинство binaries включенных в дистрибутивы Linux устанавливают по умолчанию размер окна 7 ,размер пакета 128 байт .

Настраиваемые параметры и их названия изменяются от протокола к протокола. Для полного списка см. документацию,поставляемую с Taylor UUCP.



Настройка вашей Системы.


Если Вы хотите настроить вашу систему для вызова извне, Вы должны разрешить вход в систему по последовательному порту, и настроить некоторые системные файлы, чтобы обеспечить счета UUCP(accounts). Это будет обсуждаться в следующем разделе.



Назначение IP Адресов


Если Вы конфигурируете сетевое программное обеспечение для автономного действия (например, чтобы он мог запустить INN netnews программное обеспечение), Вы можете благополучно пропустить эту секцию, потому что Вы будете нуждаться в IP адресе только для интерфейса loopback, который всегда равен 127.0.0.1.

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

Хосты в пределах локальной сети обычно должны использовать адреса от той же самой логической IP сети. Если Вы имеете несколько физических сетей, Вы или должны назначить им различные сетевые номера, или использовать подсети, чтобы расколоть ваш диапазон IP адресов в несколько подсетей.

Если ваша сеть не связана с Internet, Вы свободны выбрать любой правельный сетевой адрес. Вы только должны удостовериться, что выбрали его из классов A, B, или C, в противном случае большенство программ будут работать не правильно. Однако, если Вы намереваетесь в ближайшем будущем выйти в Internet, Вы должны получить официальный IP адрес. Самый лучший путь состoит в том, чтобы попросить вашего сетевого поставщика помочь Вам. Если Вы хотите получить сетевой номер только в случае когда вы выбираетесь в Internet, запросите бланк заявки на сетевой адреса от hostmaster@internic.net.

Чтобы оперировать несколькими Ethernet (или другими сетями), Вы должны разбить вашу сеть в несколько подсетей. Обратите Внимание, что подсети требуются только в случае, если Вы имеете больше чем одну сеть; Point-to-point связь не учитывается. Например, если Вы имеете один Ethernet и один или более SLIP соединений с внешним миром, Вы не нуждаетесь в подсети. Причина этого объясняется в главе 8..

Как пример, менеджер сети пивоварни обращается к NIC за сетевым номером класс В, и получает 191.72.0.0. Чтобы разместить два Ethernet, он решает использовать восемь битов части хоста как дополнительные подсетевые биты. Это оставляет другие восемь битов для хоста, то есть по 254 хостов на каждой полсети. Он также назначает подсеть 1 пивоварне и 2 -- винодельне. Их соответствующие сетевые адреса таким образом 191.72.1.0 и 191.72.2.0. Сетевая маска 255.255.255.0.

Vlager, который является gateway между двумя сетями, получил номер хоста, равный 1 на обоих из них, что дает ему IP адреса равные 191.72.1.1 и 191.72.2.1, соответственно. Картинка показывает две подсети, и gateway.

Обратите Внимание что в этом примере Я использую сеть класса B для простоты; класс C сеть был бы более реалистичным. С новым сетевым кодом, деление на подсети не ограничено границами байта, так даже сеть класса C может быть раздроблена на несколько полсетей. Например, Вы могли бы использовать 2 бита части хоста для сетевой маски, что дает Вам четыре возможные подсети с 64 хостами на каждой.

| |



Названия сервиса и конфигурация решающего устройства.


Как уже обсуждалось в главе 3., TCP/IP сеть может полагаться на различные схемы, чтобы преобразовать имена в адреса. Самый простой способ, у которого еще нет никаких преимуществ над способом, где все пространство имен было расщеплено на зоны, - таблица хостов, сохраненная в /etc/hosts. Это полезно только для малых LAN, которые управляются одним единственным администратором, и не имеющих никакого IP общения с внешним миром. Формат хост файлов был уже описан в главе 6. С другой стороны, Вы можете использовать BIND - Berkeley Internet Name Domain Service - для перевода хостов в IP адреса. Конфигурация BIND может быть настоящей хореей, но если только вы сделаете это, то изменения в сетевой топологии могут быть легко измены. На Linux, как и на многих других Unix-подобных cистемах, обслуживание обеспечивается через программу, называемую named. При запуске, эта программа загружает множество основных файлов в их собственный кэш, и ждет запрос от отдаленных или локальных пользовательских процессов. Имеющиеся способы требуют, чтобы Вы обязательно ввели имя сервера для каждого хоста. Эта глава делает немного больше, чем просто дает приблизительный эскиз того как работает сервер. Если Вы планируете использовать BIND в операционной среде с более чем малыми LAN и возможно Internet uplink, то Вы должны приобрести хорошую книгу по BIND, например Льюиса Крикета "DNS and BIND" (см. [GETST "liu-dns"]). Возможно Вы захотите проверить примечания, они содержатся в BIND источниках. Там также имеются вопросы newsgroup для DNS называемые comp.protocols.tcp-ip.domains.



Newgroup и rmgroup


Два сообщения имеют дело с созданием или удалением newsgroups - это newgroup и rmgroup. Newsgroups ниже " обычной " иерархии могут быть созданы только после того, как обсуждение и утверждение было проведено среди Usenet читателей. Правила, обращающиеся к alt иерархии учитывают что кое-что близко к анархии. Для подробной информации см. регулярные регистрации в news.announce.newusers и news.announce.newgroups. Никогда не посылайте newgroup или rmgroup сообщение самостоятельно, если Вы определенно не знаете, что Вам позволено.



Нежное Введение в Taylor UUCP


Сказать, что конфигурация UUCP является тяжелой,было бы замалчиванием темы.Это - действительно запутанная тема, и иногда краткий формат файлов конфигурации не делает вещи проще (хотя формат Talyor почти просто читается по сравнению с более старыми форматами в HDB или Версии 2). Что бы дать Вам понять как взаимодействуют все эти файлы, мы представим наиболее важное, и будем иметь просмотр в типовых входах этих файлов. Мы не будем объяснять все подробно; более точные сведения даны в отдельных разделах ниже.Если Вы хотите установить на вашу машину UUCP, лучше всего начать с некоторых типовых файлов, и адаптировать их постепенно.Вы можете выбирать из предложенного ниже,или того,что есть в вашем дистрибутиве Linux. Все файлы,описанные в этом разделе хранятся в /usr/lib/uucp или в его подкаталогах.Некоторые дистрибутивы Linux содержат UUCP binaries, которые поддерживают и HDB и Taylor конфигурации,и используют различные подкаталоги для каждого набора файлов конфигурации.Есть обычно README файл в /usr/lib/uucp. Чтобы UUCP работал правильно, эти файлы должны принадлежать собственно пользователю uucp. Некоторые из них содержат пароли и номера телефона, и следовательно должны иметь прва доступа 600. (2) Центральный файл конфигурации UUCP - /usr/lib/uucp/config используется, чтобы установить общие параметры.Наиболее важный из них (и теперь, единственный), является именем UUCP вашей ЭВМ. В Виртуальном Пивоваренном заводе, они используют vstout как их ворота UUCP:

# /usr/lib/uucp/config - основной файл конфигурации UUCP hostname vstout Следующий важный файл конфигурации - sys файл.Он содержит всю системно-привязанную информацию об участках сети, с которыми Вы связаны.Она включает имя участка(ЭВМ),и информацию относительно связи непосредственно,типа номера телефона при использовании связи модема.Типичный cценарий (сценарий - коммандный файл - script,далее сценарий) для модемной связи с pablo: # /usr/lib/uucp/sys - имена соседей UUCP #system pablo system pablo time Any phone 123-456 port serial1 speed 38400 chat ogin: vstout ssword: lorca Port задает порт,который нужно использовать,time определяет время в которое система может вызываться.Сhat описывает сценарии входа в систему - последовательность строк,которыми нужно обменяться,чтобы uucico зарегистрировал в pablo.Мы опишем сценарий входа позже.Команда порта не называет конкретный файл устройства типа /dev/cua1,но оба имени входят в файл port.Вы можете назначить любое походящее имя. 2.Обратите внимание, что хотя большинство команд UUCP должно устанавливать setuid для uucp, Вы должны удостовериться, что программа uuchk - нет. Иначе пользователи будут способны посмотреть пароли,даже если они имеют режим 600.


Файл port содержит информацию о связи непосредственно. Для модемной связи он описывает специальный файл устройства, который нужно использовать, скорость,и тип оборудования, соединенного с портом.Пример ниже описывает /dev/cua1 (a.k.a. COM 2),с которым соединен NakWell модем способный к перздачз на скорости до 38400bps.Имя порта должно соответствовать имени,данному в файле "sys". # /usr/lib/uucp/port - UUCP ports # /dev/cua1 (COM2) port serial1 type modem device /dev/cua1 speed 38400 dialer nakwell Информация,имеющая отношение к программам набора номера cохраняетсяняется в другом файле,называемом dial.Для каждого типа программы набора номера он содержит последовательность команд,которые требуются,чтобы вызвать удаленную машину по номеру телефона.Все это задано как chat script(сценарий дружеской системы).Пример для вышеупомянутого NakWell мог бы выглядеть следующим образом: # /usr/lib/uucp/dial - per-dialer information # NakWell modems dialer nakwell chat "" ATZ OK ATDT\T CONNECT Строка, начинающаяся с chat определяет дружескую беседу модема,которая является последовательностью команд, посланных и полученных от модема, чтобы инициализировать это и делать это,набирают желательный номер."\T" последовательность будет заменен на номер телефона uucico. Чтобы в общем показать Вам, как uucico работает с этими файлами конфигурации, предположим, что Вы дали команду:

$ Uucico -s pablo

Рисунок 18. Взаимодействие Файлов Конфигурации Taylor UUCP.

Первым делом uucico ищет pablo в "sys" файле.Из строки в файле " sys" для pablo она видит,что должна использовать serial1 порт для установки соединения.Файл port сообщает ей, что serial1 является портом модема,и что есть подключенный модем NakWell . Uucico теперь ищет набор кода,описывающий NakWell модем,и найдя первый,открывает /dev/cua1 последовательного порта и выполняет "дружескую беседу" программы набора номера.То есть поуылазт "ATZ", ждет "OK " в ответ,и т.д.. При столкновении с строкой "\T", он заменяет номер телефона (123 - 456) извлеченный из системного файла. После того,как соединение было установлено,Uucico возвращается к файлу "sys" и выполняет дружескую беседу входа в систему(login chat).В нашем примере она ждет приглашения "login: " затем послает имя пользователя (neruda), затем ждет приглашения "password:" ,и посылает пароль "lorca". После завершения разрешения, удаленная система активизирует собственный uucico.Они прводят фазу рукопожатия(handshake phase),описанную в предыдущем разделе. 13.3.1.Связи и зависимости файлов конфигурации также показаны на рисунке


NFS daemon(область)


Если Вы хотите обеспечить NFS обслуживание другим хостам, то Вы должны запустить nfsd и mountd daemons на вашей машине. Как rpc-основанные программы, они не управляются inetd, но запускаются при начальной загрузке, и регестрируют сами себя непосредственно с portmapper. Следовательно, Вы должны удостовериться в том, что они запущенны только после того, как rpc.portmap выполнилось. Обычно, Вы должны включить следующие две линии в вашем rc.inet2 script:

if [ -x /usr/sbin/rpc.mountd ]; then /usr/sbin/rpc.mountd; echo -n " mountd" fi if [ -x /usr/sbin/rpc.nfsd ]; then /usr/sbin/rpc.nfsd; echo -n " nfsd" if

Информация монопольного использования файлов NFS daemon обеспечивает своей клиентуре, обычно содержащей только численного пользователя и идентичность группы. Если и клиент и сервер подсоединят того же самого пользователя и группу имен с этой самой численной идентичностью, то им обязательно скажут разделить то же самое пространство uid/gid. Для примера, когда Вы используете NIS, чтобы распределить passwd информацию всем хостам на вашей LAN.

& " В некоторых случаях, они не соответствуют. Достаточно модифицированного uid's и gid's клиента, чтобы соответствовать таковому серверу, Вы может использовать ugidd mapping daemon, чтобы работать вокруг этого. Использование map daemon опцию объяснено ниже, Вы может сообщить nfsd отобразить uid/gid пространство сервера к пространству uid/gid клиента при помощи ugidd на клиента.

ugidd - rpc-основанный сервер, и запущен из rc.inet2 точно также как и nfsd и mountd.

if [ -x /usr/sbin/rpc.ugidd ]; then /usr/sbin/rpc.ugidd; echo -n " ugidd" fi



NIS против NIS +


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

Традиционный NIS имеет RPC номер версии 2, в то время как NIS + - версию - 3.

NIS + не кажется, очень широко используемым однако, и я действительно не знаю многого относительно этого. (Хорошо, почти ничего). По этой причине, мы не будет связываться с этим здесь. Если Вы заинтересованы в изучении большего, пожалуйста обратитесь к NIS Sun + справочника администратора ([GETST "nisplus"]).



NNTP Разрешение


При печати прописными буквами лексем(маркеров) доступа подобно xfer или read в nntp access файл, nntpd требует разрешения от клиента для соответственных операций. Например, при определении права Xfer или XFER, nntpd не будет допускать клиентские статьи к вашему пункту, если он не передает разрешение. Процедура разрешения выполнена посредством новой команды NNTP, именованной AUTHINFO. При использовании этой команды, клиент передает имя пользователя и пароль к NNTP серверу. Nntpd проверит правильность их, проверяя их против базы данных /etc/passwd, и проверит, что пользователь принадлежит группе nntp. Текущая реализация NNTP разрешения только экспериментальна, и не была выполнена очень переносимой. Результат - то, что это работает только с базами данных паролей с простым стилем; теневые пароли не будут распознаны.



Nntpd Взаимодействие с C News


При получении статьи, nntpd должен приписать ее к подсистеме новостей. В зависимости от того, было ли это получено в результате команды IHAVE или POST, статья вручена rnews или inews, соответственно. Вместо того, чтобы вызывать rnews, Вы можете также конфигурировать rnews (во времени компиляции) пакетировать входящие статьи и перемещать возникающие в результате пакеты в /var/spool/news/in.coming, где они остаются для relaynews, чтобы подбирать их в следующей выполненной очереди. Чтобы быть способным правильно выполнить ihave/sendme протокол, nntpd должен быть способен обратиться к файлу хронологии. Во времени компиляции, Вы следовательно должны удостовериться, что путь установлен правильно. Вы должны также удостовериться, что C news и nntpd договариваются о формате вашего файла хронологии. C news использует dbm хеш-функции, чтобы обратиться к нему; однако, имеется некоторое число отличных и немного несовместимых реализаций dbm библиотеки. Если C news был связан с различной dbm библиотекой чем Вы, имеете в вашем стандарте libc, Вы должны линковать nntpd с этой библиотекой, также. Типичный признак того что nntpd и C news не соглашаются относительно формата базы данных - сообщения об ошибках в файле регистрации системы, что nntpd не может открыть его правильно, или двойные статьи, полученные через NNTP. Хороший тест должен выбрать статью из вашей области spool, сделать telnet к nntp порту, и предлагать, это к nntpd как показано в примере ниже. Конечно, Вы должны заменить на ID-сообщение статьи, которую Вы хотите передать к nntpd снова.

$ telnet localhost nntp Trying 127.0.0.1... Connected to loalhost Escape characters is '^]'. 201 vstout NNTP[auth] server version 1.5.11t (16 November 1991) ready at Sun Feb 6 16:02:32 1194 (no posting) IHAVE 435 Got it. QUIT

Этот диалог показывает соответствующую реакцию nntpd; сообщение "Got it" сообщает Вам, что уже имеется эта статья. Если Вы получаете сообщение "335 Ok" взамен, поиск в файле хронологии, потерпел неудачу по некоторым причинам. Завершите диалог печатая Ctrl-D. Вы можете проверять, что шло неправильно, проверяя файл регистрации системы; nntpd регистрирует все виды сообщений в syslog. Несовместимая dbm библиотека обычно проявляется в сообщении, жалующемся что dbminit потерпел неудачу.



Номер телефона


Если связь с удаленной системой достигается по телефонной линии, поле телефона определяет номер, который модем должен набрать для связи. Он может содержать отдельные лексемы, интерпретируемые процедурой набора uucico's. Знак '=' означает " ждать вторичный тон набора кода", '_' генерирует паузу в одну секунду. Например, некоторые телефонные станции сбрасывают, если Вы не делаете паузу между набором префиксного кода и номера телефона. [Я не знгю соответствующий Английский термин для этого , но Вы знаете, что иногда на частной внутренней телефооной станции компании Вы должны набрать 0 или 9, чтобы получить выход наружу.] Любая встроенная символьная строка может использоваться, чтобы скрыть место-зависимую информацию(например код области). Любая такая строка транслируется с помощью файла dialcode. Предположим, что Вы имеете следующий dialcode файл:

# /usr/lib/uucp/dialcode - dialcode translation Bogoham 024881 Coxton 035119

С такими определениями Вы можете использовать номер телефона типа Bogoham7732 в файле sys, это делает все немного проще.



О DNS


DNS организовывает имена хостов по областям(domain). Область -- набор как-то связанных участков, это могут быть машины одной сети (на пример все машины в университетском городке, или всех хосты в BITNET), все они могут принадлежать определенной организации (типа американского правительства), или они просто географически близки. Например, университеты сгруппированы в edu области, с каждым Университетом или Коледжом, использующим отдельную подобласть, в которой и находятся все его хосты. Groucho Marx Университету можно давать groucho.edu область, Отделу математики -- maths.groucho.edu. Хост на данной сети к имени области добавляет свое имя и таким образом получает свое полное имя в Internet erdos был бы известен как erdos.maths.groucho.edu.

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

В зависимости от местоположения в иерархии имени, область может быть названа top-level, second-level, или third-level (верхнеуровневой, второго уровня, или третьего уровня). Больше количество уровней встречается редко. Вот несколько верхних областей, которые Вы можете часто увидеть:

edu ( Главным образом США ) образовательные учреждения подобно университетам, и т.д..

com Коммерческие организации, компании.

org некоммерческие организации. Часто частные UUCP сети находятся в этой области.

net Gateways и другие административные хосты в сети.

mil американские военные учреждения.

gov американские правительственные учреждения.

uucp Официально, все имена участков прежде используемые как UUCP имена без областей, были перемещены в эту область.

Технически, первый четыре из них принадлежат американской части Internet, но там встречаются и не американские участки. Это особенно верно для net области. Однако, mil и gov используются исключительно в США.


Вне США, каждая страна вообще использует собственную область, названую по имени страны и состоящая из двух букв определенных в ISO-3166. Финляндия, например, использует fi область, fr используется Францией, de Германией, au Австралией и т.д.. Ниже этой высокопоставленной области, NIC каждой страны может свободно раздавать имена хостам. Австралия, например, имеет области второго уровня подобные международным высшим областям, названным com.au, edu.au, и так далее. Другие, подобно Германии, не используйте этот дополнительный уровень, но используют слегка длинные имена, которые непосредственно относятся к организациям управляющих специфической областью. Например, на пример ftp.informatik.uni-erlangen.de.

чонечно, эти национальные области не подразумевают что хост расположенный ниже фактически расположен в той же стране; это только сигнализирует что хост регистрировался в NIC этой страны . Шведский изготовитель мог бы иметь отделение в Австралии, и все же регистрировать все хосты в se области.

Теперь, организация пространства имен в иерархии имен областей приятно решает проблему уникальности имен; с DNS, имя хоста должно быть уникально только в пределах одной области Кроме того, полностью квалифицированные имена весьма легко запомнить. Но DNS делает не только это: он позволяет Вам передать работу с подобластями местным администраторам. Например, администратор в Groucho Вычислительном Центре мог бы создать подобласть для каждого отдела; мы уже столкнулись с подобластями физиков и математиков. Когда он решит, что сеть в Отделе Физики слишком большая и хаотичная, чтобы справиться с ней из вне , он может просто передать контроль над physics.groucho.edu областью администраторам этой сети. Тогда они свободны использовать, любые имена хостов и назначать их IP адреса в пределах подсети без вмешательства сверху.

Так, пространство имени раздроблено на зоны, которая управляется своей областью. Обратите Внимание На различие между зоной и областью: область groucho.edu затрагивает все машины в Groucho Marx Университете, в то время как зона groucho.edu включает только хостов которые работают в компьютерном центре непосредственно, например в отделе математики. Хост в отделе физики принадлежат другой зоне, а именно physics.groucho.edu. На картинке 3.6.2, начало зоны отмечено маленьким кружочком справа от имени области.


Об Авторах


1. Olaf был UNIX пользователем и администратором пару лет пока изучал математику. В настоящее время он работает UNIX программистом и пишет книгу. Одно из его любимых спортивных состязаний делать такие вещи с помощью sed для которых другие люди использовали бы perl. Он получает от этого такое же удовольствие как другие люди от лазанья по горам с палаткой и рюкзаком.

2. с 1987 и в настоящее время управляет sendmail+IDA на приблизительно 300 UNIX машинах для более чем 2000 пользователей. Он признался, что провел много бессонных ночей за редактированием sendmail.cf файлов до открытия sendmail+IDA в 1990. Он также признает, что с тревогой ожидает поставки первой perl версии sendmail, для неясных пока забав (см. 4).

3. Terry Dawson может быть найден по адресу terryd@extro.ucc.su.oz.au.

4. Вы думаете что Вы могли бы сделать это в sed, Vince?

Olaf может быть найден по следующему адресу:

Olaf Kirch Kattreinstr. 38 64295 Darmstadt Германия okir@monad.swb.de

Vince может быть найден на:

Vince Skahan vince@victrola.wa.com

Мы открыты для ваших вопросов, комментариев, открыток, и т.д.. Однако, мы просим Вас писать нам только если это действительно важно.



Об этой книге


Когда я присоединился к LDP в 1992, я написал две маленькие главы об UUCP и smail, которые я хотел добавить к "Руководству для администратора системы". Разработка TCP/IP сети только начиналась, и когда те "маленькие главы" начали расти, я решил, что было бы хорошо иметь Руководство для администратора сети, пошел и написал первую версию Руководства Сети, которую и выпустил в сентябре 1993.

Новое Руководство для администратора сети, которое Вы сейчас читаете, описывает несколько новых приложений, которые стали доступными Linux пользователям после первого выпуска.

Книга организована как последовательность шагов, которые Вы должны сделать, чтобы отконфигурировать вашу систему для работы в сети. Все начинается с обсуждения основных концепции сетей вообще, и сетей, основанных на TCP/IP, в частности. Мы медленно пройдем путь от конфигурирования TCP/IP на уровне устройств к установке стандартных приложений типа rlogin и подобных, сетевой файловой системы, и информационной системы сети. К этому прилагается глава о том, как сделать вашу машину UUCP-узлом. Остаток книги посвящен двум главным приложениям, которые запускаются как над TCP/IP, так и над UUCP: электронная почта и новости.

Email часть более широко описывает механизмы транспортировки и маршрутизации почты, и множество схем адресации, с которыми вы можете столкнутся. Там же описывается конфигурирование и управление smail, агента транспортировки почты, обычно используемого на меньших почтовых центрах, и sendmail, который преддлагается для людей, которые должны заниматся сложной маршрутизацией или работать с большим количеством почты. Глава Sendmail была написана Vince Skahan.

Часть News пытается дать Вам краткий обзор работы Usenet новостей, наиболее широко используемое в настоящее время программное обеспечение для транспортировки новостей и использование NNTP для обеспечения доступа newsreader к местной сети. Книга заканчивается короткой главой о наиболее популярных newsreaders для Linux.



Обеспечение UUCP Счета(account)


Затем, Вы должны установить счета пользователя, которые разрешают удаленной системе регистрацию в вашей системе и устанавливают соединение UUCP. Вообще, необходимо дать отдельное имя каждой системе, которая взаимодействует с Вами. При установке имени для системы pablo, Вы (например) можете дать ей имя Upablo, как имя пользовауеля. Для систем, которые подключаются через последовательный порт, Вы должны добавить эти имена в файл паролей системы, /etc/passwd. Хорошим вкусом считается поместить все имена UUCP в специальную группу типа uuguest. Домашний каталог счета должен находиться в общем каталоге /var/spool/uucppublic; оболочка входа в систему - uucico.

Если Вы имеете теневой установленный набор программ пароля, Вы можете делать это с командой useradd:

# Useradd -d /var/spool/uucppublic -G uuguest -s /usr/lib/uucp/uucico uablo

Если Вы не используете теневой набор программ пароля, Вам нужно отредактировать /etc/passwd вручную и добавить строку, анологичную показанной ниже, где 5000 и 150 - числовой uid и gid, назначенные пользователю Upablo и группе uuguest, соответственно.

Upablo: x: 5000:150: UUCP Account:/var/spool/uucppublic:/usr/lib/ uucp/uucico

После установки счета, Вы должны активизировать его, установив пароль командой passwd. Чтобы позволить UUCP соединяться с вами поверх TCP, Вы должны установить inetd, чтобы обработать подключения на порте uucp. Это можно сделать, добавив следующую строку в /etc/inetd.conf: (12)

uucp stream tcp nowait root /usr/sbin/tcpd /usr/lib/uucp/uucico -l

С опцией -l uucico выполняет собственную проверку на вход в систему.Она запросит имя и пароль также, как и стандартная программа login, но положится на собственный файл паролей вместо /etc/passwd. Этот файл паролей называется /usr/lib/uucp/passwd и содержит пары имен входа в систему и паролей:

Upablo IslaNegra Ulorca co'rdoba

12. Обратите внимание, что обычно tcpd имеет режим 700, так что Вы вызвали это как корень пользователя, не uucp, поскольку Вы обычно делали бы.

Конечнп, этот файл должен принадлежать uucp и иметь доступ 600.


Если эта база данных звучит подобно такой хорошей идеи, Вы хотели бы использовать на нормальных последовательных входах в систему, также, Вы будете разочарованы, чтобы слышать, что это не возможно в настоящее время без главных искривлений. Сначала от, Вы нуждаетесь в Taylor UUCP 1.05 в этом, потому что это разрешает, чтобы getty передал имя входа в систему пользователя вызова к uucico использование опции -u. (13) Затем, Вы должны прием getty, который Вы используете в вызов uucico вместо обычного /bin/login. С getty ps, Вы можете делать это, устанавливая опцию LOGIN в файле конфигурации. Однако, это отключает интерактивные входы в систему в целом(вполне). Mgetty, с другой стороны, имеет хорошую возможность, которая разрешает, чтобы Вы вызвали различные команды входа в систему, основанные на имени обеспеченный пользователь. Например, Вы можете сообщать, чтобы mgetty использовал uucico для всех пользователей, которые обеспечивают имя входа в систему, начинающееся прописной буквой U, но допускают каждого еще обработано стандартной командой входа в систему. Защищайте ваших пользователей UUCP от вызывающих операторов, дающих ложную систему и snarfing всю их почту, Вы должны добавить команды вызываемого - входа в систему к каждому входу системы в системном файле. Это описано в разделе 13.5.3 выше.


Областные сервера имен (Domain Name Servers)


Сервера имен, которые содержат всю информацию относительно хостов в пределах данной зоны названы авторитарными для этой зоны и иногда упоминаются как master name servers. Любой запрос относительно хоста в пределах этой зоны будет в конце концов передан одному из этих серверов.

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

Одна из причин иметь несколько серверов имен состoит в том, чтобы распределять груз работы, другая -- надежность. Когда одна машина с сервером имен ломается, все запросы будут посылаться другим серверам. Конечно, эта схема не защищает Вас от сбоев сервера, при которых он отсылает неправильные ответы на все запросы DNS, например от ошибок в программе сервера.

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



Обработка Bounced-почты


define(POSTMASTERBOUNCE)dnl # postmaster gets bounces Многие абоненты находят, что важно гарантировать, что бы почта посылалась и получалась с гарантией 100 %. При исследовании sys-logd файлов регистрации полезен локальный администратор почты чтобы определить, была ли почта испорчена из-за ошибки пользователя или ошибки конфигурации на одной из включаемых систем. Определение POSTMASTERBOUNCE приводит к копии каждого плохого сообщения человеку, определенному как Постмастер системы.

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



Обратный поиск.


После обнаружения IP адреса, принадлежащего хосту, иногда желательно выяснять каноническое имя хоста, соответствующее данному адресу. Это называется reverse mapping(обратное отображение) и используется несколькими сервесами, чтобы проверить идентичность клиента. При использовании единственного hosts файла, обратный поиск заключается просто в проверке этого файла. В DNS, конечно не проводится просмотр всего адресного пространсва. Вместо этого, создана специальная область, inaddr.arpa, она содержит IP адреса всех хостов. в перевернутой dotted-quad записи Например, IP адрес 149.76.12.4 соответствует имени 4.12.76.149.in-addr.arpa. Тип записи ресурса, связывающий это имя с именем, называется PTR.

; ; Zone data for the groucho.edu zone. @ IN SOA { vax12.gcc.groucho.edu. hostmaster.vax12.gcc.groucho.edu. 233 ; serial no 360000 ; refresh 3600 ; retry 3600000 ; expire 3600 ; default ttl } .... ; ; Glue records for the physics.groucho.edu zone physics IN NS niels.physics.groucho.edu. IN NS gauss.maths.groucho.edu. niels.physics IN A 149.76.12.1 gauss.maths IN A 149.76.4.23 ...

Картинка 6. фрагмент файла named.hosts для GMU.

Создание зоны полномочий обычно означает что ее администраторам дают полный контроль над тем как назначать адреса и имена хостов. Так как они обычно управляют одной или более IP сетями или подсетями, одна DNS зона может охватывать несколько IP сетей. Отдел Физики, например, включает подсети 149.76.8.0, 149.76.12.0, и 149.76.14.0.

Как следствие, новые зоны должны быть записаны в in-addr.arpa области: 8.76.149.in-addr.arpa, 12.76.149.in-addr.arpa, и 14.76.149.in-addr.arpa. Иначе, установка нового хоста в Collider лаборатории требовала бы обращения к родительской области чтобы отметится в ее in-addr.arpa файле. Зональная база данных для подсети 12 показана на картинке 3.6.6. Соответствующие склеенные записи в базе данных зоны родителя показывается на картинке 3.6.6.

; ; the 12.76.149.in-addr.arpa domain. @ IN SOA { niels.physics.groucho.edu. hostmaster.niels.physics.groucho.edu. 233 360000 3600 3600000 3600 } 2 IN PTR otto.physics.groucho.edu. 4 IN PTR quark.physics.groucho.edu. 5 IN PTR down.physics.groucho.edu. 6 IN PTR strange.physics.groucho.edu.


Картинка 7. фрагмент файла named.rev для подсети 12.

; ; the 76.149.in-addr.arpa domain. @ IN SOA { vax12.gcc.groucho.edu. hostmaster.vax12.gcc.groucho.edu. 233 360000 3600 3600000 3600 } ... ; subnet 4: Mathematics Dept. 1.4 IN PTR sophus.maths.groucho.edu. 17.4 IN PTR erdos.maths.groucho.edu. 23.4 IN PTR gauss.maths.groucho.edu. ... ; subnet 12: Physics Dept, separate zone 12 IN NS niels.physics.groucho.edu. IN NS gauss.maths.groucho.edu. niels.physics.groucho.edu. IN A 149.76.12.1 gauss.maths.groucho.edu. IN A 149.76.4.23 ...

Картинка 8. фрагмент файла named.rev для сети

Одно важное следствие этого то, что зоны могут создаваться только как наборы IP сетей, и, даже круче, количество нулевых битов в netmasks должно выть кратно 8. Все подсети в Groucho Marx Университете имеют netmask 255.255.255.0, так что in-addr.arpa зона может быть создана для каждой подсети. Однако, если netmask 255.255.255.128, создание зон для подсети 149.76.12.128 будет невозможно, потому что нет никакой возможности сообщить DNS, что 12.76.149.in-addr.arpa область была раздроблена на две зоны, с именами хостов располагающимися от 1 до 127, и 128 до 255, соответственно.

| |


Общие Опции Конфигурации - config файл


Скорее всего Вы вообще не будете использовать этот файл, чтобы описать UUCP hostname. По умолчанию, UUCP использует имя, которое Вы устанавливаете командой"hostname, но вообще это хорошая идея - установить имя UUCP явно. Типовой config файл показывается ниже:

# /usr/lib/uucp/config - UUCP main configuration file Hostname vstout



Общие рассмотрения защиты


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

Одна проблема с pppd - то, что конфигурация сетевого устройства и таблицы маршрутов требуют привилегии root. Вы будете обычно разрешать эту сложность, выполняя setuid root. Однако, pppd позволяет пользователям установить различные защита-релевантные опции. Для защиты против любого нападения, пользователь может манипулировать этими опциями, Вам предложат установить пару значений по умолчанию в глобальном файле /etc/ppp/options, подобно тем показанным в типов 9.4. Некоторые из них, типа опознавательных опций, не могут быть отменены пользователем, и так что они обеспечивают приемлемую защиту против манипулирований.

Конечно, Вы должны защитить себя от систем, с которыми PPP также общается. Чтобы отразить хосты, Вы должны всегда иметь некоторый вид установления подлинности от вашего peer. Дополнительно, Вы не должпы позволять иностранным хостам использовать любой адрес IP какой они выберут, но ограничьте их по крайней мере несколькими. Следующий раздел будет связам с этими проблемами.

| |



Общие требования.


Для того, чтобы использовать SLIP или PPP, Вы должны сконфигурировать некоторую базисную работу с сетями, как описано в предыдущих главах. Наконец Вы должны установить looback interface, и обеспечить для name resolution. При соединении с Internet, Вы несомненно пожелаете использовать DNS. Самая простая опция - поместит адрес сервера в Ваш resolv.conf файл; этот сервер сделает запрос как только SLIP связь будет активизированна.

Однако, это решение не оптимально, потому что все поиски имен будут все еще проходить через вашу SLIP/PPP связь. Если Вы волнуетесь относительно ширины зоны, которую она требует, то Вы может также установить cache-only сервер. Он действительно не обслуживающий, он только действует как переключатель для всех DNS запросов, произведенных на Вашем хосте. Преимущество этой схемы - то, что она создает кэш, так, чтобы большинство запросов должны быть посланы через последовательные линии только один раз. Named.boot файл для cache-only серверов, выглядит так:

; named.boot file for caching-only server directory /var/named

primary 0.0.127.in-addr.arpa db.127.0.0 ; loopback net cache . db.cache ; root servers

В дополнение к этому файлу, Вы также должны установить

db.cache файл с подходящим списком root серверов. Это описывается ближе к концу главы "Конфигурация решающего устройства".



Обычно Используемые sendmail.mПараметры


Нескоторые предметы в файле sendmail.m4 требуются всегда; другие могут игнорироваться, если Вы можете избежать неприятностей со значениями по умолчанию. Следующие разделы описывают каждые из предметов в файле sendmail.m4 более подробно.

dnl #------------------ SAMPLE SENDMAIL.M4 FILE ------------------ dnl # (the string 'dnl' is the m4 equivalent of commenting out a line) dnl # you generally don't want to override LIBDIR from the compiled in paths dnl #define(LIBDIR,/usr/local/lib/mail)dnl # where all support files go define(LOCAL MAILER DEF, mailers.linux)dnl # mailer for local delivery define(POSTMASTERBOUNCE)dnl # postmaster gets bounces define(PSEUDODOMAINS, BITNET UUCP)dnl # don't try DNS on these dnl #------------------------------------------------------------- dnl # define(PSEUDONYMS, vstout.vbrew.com vstout.UUCP vbrew.com) dnl # names we're known by define(DEFAULT HOST, vstout.vbrew.com)dnl # our primary 'name' for mail define(UUCPNAME, vstout)dnl # our uucp name dnl # dnl #------------------------------------------------------------- dnl # define(UUCPNODES, |uuname|sort|uniq)dnl # our uucp neighbors define(BANGIMPLIESUUCP)dnl # make certain that uucp define(BANGONLYUUCP)dnl # mail is treated correctly define(RELAY HOST, moria)dnl # our smart relay host define(RELAY MAILER, UUCP-A)dnl # we reach moria via uucp dnl # dnl #--------------------------------------------------------------------dnl # dnl # the various dbm lookup tables dnl # define(ALIASES, LIBDIR/aliases)dnl # system aliases define(DOMAINTABLE, LIBDIR/domaintable)dnl # domainize hosts define(PATHTABLE, LIBDIR/pathtable)dnl # paths database define(GENERICFROM, LIBDIR/generics)dnl # generic from addresses define(MAILERTABLE, LIBDIR/mailertable)dnl # mailers per host or domain define(UUCPXTABLE, LIBDIR/uucpxtable)dnl # paths to hosts we feed define(UUCPRELAYS, LIBDIR/uucprelays)dnl # short-circuit paths dnl # dnl #--------------------------------------------------------------------dnl # dnl # include the 'real' code that makes it all work dnl # (provided with the source code) dnl # include(Sendmail.mc)dnl # REQUIRED ENTRY !!! dnl # dnl #------------ END OF SAMPLE SENDMAIL.M4 FILE -------



Обзор Передач UUCP и удаленного запуска


Ключ к пониманию UUCP - понятие задачи. Каждая передача, которую пользователь инициализирует с помощью uucp или uux, называется задачей. Она состоит из программы,которая будет выполнена на удаленной системе, и набора файлов, которые будут перемещены между системами. Одна из этих частей может отсутствовать. Например,примем, что на вашей ЭВМ Вы выдали следующую команду, которая заставляет UUCP копировать файл netguide.ps на ЭВМ pablo, и выполнить команду lpr, чтобы напечатать файл.

# $ Uux -r pablo! Lpr! Netguide.ps

UUCP не вызывает удаленную систему немедленно, чтобы выполнить задачу (иначе Вы могли это сделать kermit). Вместо этого он временно сохраняет описание задачи на удаленной системе. Это называется буферизацией задачи. Каталог, в котором сохраняется задача,называется буферным каталогом и обычно находится в /var/spool/uucp. В нашем примере, описание задачи содержало бы информацию относительно удаленной команды, которая будет выполнена (lpr), пользователя, который запросил выполнение, и пары других предметов. В дополнение к описанию задачи, UUCP должен сохранить входной файл (netguide.ps). Точное расположение и наименование буферных файлов может изменяться в зависимости от некоторых опций времени компиляции. HDB-совместимые UUCP вообще сохраняют буферные файлы в каталоге, именованном /var/spool/uucp/site, где site - имя удаленной машины. Скомпилированный для Taylor конфигурации, UUCP создаст подкаталоги в /var/spool/uucp/site для различных типов буферных файлов. Через определенные интервалы UUCP связывается с удаленной системой. Когда соединение установлено, UUCP передает файлы, описывающие задачу, плюс все входные файлы. Входящие задачи не будут выполнены немедленно, а только после разрыва уоединения . Это делает программа uuxqt, которая также заботится о пересылке любых задач, если они предназначены для другой машины. Для различия между важными и менее важными задачами, UUCP с каждой задачей связывает уровень приоритета . Это - один знак, в пределах от 0 до 9, от А до Z, и через z, в уменьшающемся старшинстве. Почта обычно записывается в буферный файл с приоритетом B или C, в то время как новости записываются с приоритетом N. Работы с более высоким приоритетом передаются раньше. Приоритеты могут быть назначены используя опцию -g при вызове uucp или uux. Вы можете также запретить передачу задач с приоритетом ниже данного в определенное время. Это также называется максимальным приоритетом буфера, позволяемым в течение диалога ( по умолчанию z). Обратите внимание на терминологическую неоднозначность : файл перемещен только, если он имеет приоритет выше максимального приоритета буфера.



Обзор следующих глав


Следующие несколько глав будут иметь дело с конфигурированием Linux для TCP/IP сети, и с управлением некоторыми главными приложениями. Прежде чем пачкать наши руки редактированием файлов и подобными вещами мы немного исследуем IP в 3 главе. Если Вы уже знаете относительно IP маршрутизации, и как выполняется address resolution, Вы можете пропустить эту главу.

Глава 4. Обсуждение основных проблем конфигурации, типа установка ядра и введения вашей Ethernet карты. Конфигурация ваших последовательных портов охвачена в отдельной главе, потому что их обсуждение не относится только к TCP/IP сети, но и к UUCP.

Глава 6. Помогает Вам отконфигурировать вашу машину для TCP/IP. Она также описывает несколько полезных инструментов, которые Вы можете использовать для проверки и отладки ваших установок Следующая глава рассказывает как конфигурировать hostname resolution и объясняет как установить сервер имен.

Это сопровождается двумя главами показывающими конфигурирование и использование SLIP и PPP. Глава 8. Объясняет как установить SLIP связь и дает детальные рекомендации по запуску программ, которые позволяют автоматизировать большинство необходимых шагов. Глава 9. охватывает PPP и pppd.

Глава 10. Дает короткое представление о некоторых из наиболее важных сетевых приложений, типа rlogin, rcp, и т.д., Она также охватывает услуги inetd и описывает как Вы можете ограничить определенные услуги для набора каких-либо хостов.

Следующие две главы обсуждают NIS, Сетевую Информационную Систему, и NFS, Сетевую Файловую Систему. NIS - полезный инструмент для распространения административной информации типа паролей пользователя в локальной сети. NFS позволяет Вам распределить файлы между несколькими хостами в вашей сети.

Глава 13. Дает Вам представление об администрированию Taylor UUCP, бесплатного UUCP пакета.

Остаток книги посвящен детальному путешествию по электронной почте и Usenet Новостям. Глава 14. представляет Вам основные концепциям электронной почты, типа того как выглядит адрес электронной почты и как система обработки почты получает ваше сообщение

Главы 15. И 16. Охватывают установку smail и sendmail, два агента транспортировки почты, которых Вы можете использовать в Linux. Эта книга описывает оба из них, потому что smail более легкий для установки (для начинающих), в то время как sendmail более гибок.

Главы 17. И 18. Объясняют пути управления новостями в Usenet и как установить и использовать C news, популярный пакет программ для управления Usenet новостями.

Глава 19. Кратко охватывает запуск NNTP daemon, чтобы обеспечить доступ к новостям для вашей локальной сети.

Глава 20. Наконец показывает Вам как конфигурировать и обслуживать различные newsreader.



Официально Напечатанная Версия


Осенью 1993, Andy Oram, человек который был в списке рассылки LDP почти с самого начала, спросил меня относительно публикации моей книги в фирме O'Reilly и Партнеры. Я был воодушевлен этим; Я никогда не мог вообразить, что моя книга пользуется успехом. Мы согласились что O'Reilly будет печатать "Официальную печатную версию руководства для администратора сети", в то время как Я сохранил первоначальные авторские права так, чтобы книга свободно распространялась. Это означает что Вы можете выбрать: получить LaTeX текст распространяемый по сети ( DVI или PostScript версии), и распечатать их. Или Вы можете купить официально напечатанную версию у O'Reilly, которая будет доступна несколько позже в этом году.

Непонятно, почему Вам захочется заплатить деньги за что-то, что Вы можете достать бесплатно? Не сошел ли Tim O'Reilly с ума, раз пытается продавать то что каждый может напечатать и даже продавать? Или есть некое различие между этими версиями?

Ответ -- "это зависит", "нет, определенно не," и "да и нет." O'Reilly и Партнеры рискует, публикуя это руководство, но Я надеюсь что это окупится. Если это произойдет, Я полагаю, что этот проект сможет послужить как пример того как мир бесплатного программного обеспечения и компании могут сотрудничать, чтобы произвести что-нибудь полезное и тем и другим. На мой взгляд, O'Reilly делает большую услугу Linux сообществу (кроме книге доступной в вашем местном книжном магазине) и тем, что это может помочь всем посмотреть на Linux как на что-то серьезное, как на жизнеспособную и полезную альтернативу коммерческим UNIX операционным системам для PC.

Так что же относительно различай между напечатанной версией и электронной? Andy Oram провел большую работу по преобразованию моей ранней версии в то, что можно печать. (Он просмотрел также и другие книги созданные под эгидой LDP, и повышал как мог профессиональный уровень нашей документации).

С тех пор Andy начал просматривать это Руководство и редактировать копии, которые Я послал ему, книга стала значительно лучше, чем еще пол года назад. И если бы не он то книга была бы гораздо хуже чем есть сейчас Все его изменения тут же вставлялись в электронную версию, и все последующие изменения, которые будут сделаны к Руководству для администратора сети во время редактирования их O'Reilly так же будут вставлены. Таким образом не будет никаких различай между этими версиями. Все же, версия O'Reilly будет несколько отличатся: С одной стороны, люди O'Reilly проделывают массу работы над внешним видом книги на таком уровне который вы никогда не получите от стандартного TEXа С другой стороны, там будет больше картинок, и улучшенный алфавитный указатель.



Ограничение NNTP Доступа


Доступ к NNTP ресурсам управляется файлом nntp access в /usr/lib/news. Строки в файле описывают права доступа, предоставленные иностранным главным ЭВМ. Каждая строка имеет следующий формат:

site read|xfer|both|no post|no [!exceptgroups]

Если клиент соединяется с NNTP портом, nntpd, пытается получать полностью квалифицированное имя области из адреса IP обратным поиском. Hostname клиента и адрес IP проверены против поля site каждого входа в порядке, в котором они появляются в файле. Соответствия могут быть или частичные или точные. Если вход соответствует точно, он применяется; если соответствие частично, он применяется, только если не имеется никакого другого соответствия. Пункт может быть определен одним из следующих способов:

hostname Это - полностью квалифицированное имя области host. Если оно соответствует каноническиому hostname клиента буквально, вход применяется, и все последующие входы игнорируются.

IP address Это - адрес IP в точечной записи четверки. Если адрес IP клиента соответствует этому, вход применяется, а все последующие входы игнорируются.

domain name Это - имя области, заданное как *.domain. Если hostname клиента соответствует имени области, вход соответствует.

network name Это - имя сети как определено в /etc/networks. Если сетевое число адреса IP клиента соответствует сетевому числу, связанному с сетевым именем, вход соответствует.

default Значение по умолчанию соответствует любому клиенту.

Входы с более общей спецификацией пункта должны быть определены ранее. Второе и третье поле описывают права доступа, предоставленные клиенту. Второе детализирует права, чтобы отыскать новости, перемещая (read), и передавать новости, выталкивая (xfer). Третье поле предоставляет клиенту право отправить по почте статьи, то есть статьи с незавершенной информацией заголовка, которая завершена программным обеспечением новостей. Если второе поле содержит No, третье поле, игнорируется. Четвертое поле необязательно, и содержит отделенный запятой список групп, с отклоненным доступом для клиента. Пример nntp файла доступа показывается ниже:

# # by default, anyone may transfer news, but not read or post default xfer no # # public.vbrew.com offers public access via modem, we allow # them to read and post to any but the local.* groups public.vbrew.com read post !local # # all other hosts at the brewery may read and post *.vbrew.com read post



Ограничение времени вызова


Taylor UUCP обеспечивает ряд способов,обеспечивающих ограничение времени обращения с удаленной системы. Вам потребуется сделать это или из- за ограничений, которае удаленная главная ЭВМ накладывает на услуги в течение деловых часов, или просто избегать времен с высокими ценами за услуги. Обратите внимание, что всегда возможно отменить ограничения времени обращения, запустив uucico с опцией -S или -f. По умолчанию, Taylor UUCP отвергнет соединения в любое время, так что Вы должны использовать некоторый вид спецификации времени в файле sys. Если Вы не очень заботитесь об ограничении времени обращения, Вы можете определить опцию времени со значением Аny (любой) в вашем файле sys. Самый простой способ ограничить время обращения - поле времени, которое сопровождается строкой, состоящей из дня и подполя времени. День может быть комбинацией Mo, Tu , We, Th, Fr, Sa, Su или Any(любой), Never(никогда), или Wk для дней недели. Время состоит из двух 24-часовых значений часов, отделяемых черточкой. Они определяют диапазон, в течение которого обращения допустимы. Комбинация этих лексем пишется без интервалов. Любая лексема дня и спецификация времени может быть сгруппирована вместе с запятыми. Например, время MoWe0300-0730, Fr1805-2000 допускает обращаться в понедельник и среду от 3 д о 7.30 утра, и в пятницу с 18.05 до 20.00. Когда поле времени охватывает полночь, и написано Mo1830- 0600, это фактически&ознвчает понедельник, между полночью и 6.00 утра, и между 18.30 пополудни и полночью(понедельника). Специальные строки Any и Never означают ВСЕГДА и НИКОГДА. Команда time задает параметр, который описывает время повтора в минутах. Когда попытка установить соединение не удалась, uucico не допустит другой попытки вызвать удаленную ЭВМ втечение некоторого интервала. По умолчанию, uucico использует показательную функцию схемы backoff , где интервал повтора увеличивается с каждым последующим отказом. Например, когда Вы определяете, что время повторения 5 минут, uucico откажется вызывать удаленную систему втечение 5-ти минут после последнего отказа. Команда timegrade разрешает Вaм придать максимальную степень буферизации к плану. Допустим, что Вы имеете следующие команды timegrade во входе системы:


Timegrade N Wk1900-0700, SaSu Timegrade C Any

Это допускает задачи с приоритетом буферизации(spoolgrade) C и выше (обычно почта имеет степень B или C), они будут приняты всякий раз, когда обращение установлено, в то время как новости (обычно поставленный в очередь со степенью N) будут перемещены только ночью и в входные. Точно так же как команда time, команда timegrade берет интервал повторения в минутах как дополнительный третий параметр. Однако есть и недостатки высоких приоритетов буферизации: опция timegrade применяется только к тому, что ваша система посылают; удаленная система может все еще передать все, что угодно. Вы можете использовать опцию calltimegrade, чтобы явно запросить послать только работы выше некоторой данной степени буферизации ; но нет никакой гарантии, это удовлетворит условиям этого запроса. (8) Аналогично, timegrade поле не проверяется, когда удаленная система вызывает вашу, и любые работы, поставленные в очередь для системы вызова будут ей посланы. Однако, удаленная система может явно запрашивать ваш uucico, чтобы пграпичить себя некоторым приоритетом задач.


Опции ядра в Linux и выше


После того, как основная часть вопросов задана, конфигуратор продолжит спрашивать Вас относительно различных особенностей типа SCSI драйверов, и т.д..

Последующий список вопросов относится к проблемам поддержки сети. Точный набор опций конфигурации постоянно меняется, из-за продолжающейся разработки. Типичный список опций предлагаемых большинством версий ядра (в основном в 1.0 1.1) напоминает этот ( комментарии даются italics шрифтом): * * Network device support * Network device support? (CONFIG ETHERCARDS) [y]

Несмотря на макро название указанное в скобках, Вы должны ответить на этот вопрос y, если Вы хотите использовать любой тип сетевых устройств, независимо от того является ли оно Ethernet, SLIP, или PPP. При ответе y, поддержка для устройств Ethernet-типа разрешается автоматически. Поддержку для других типов сетевых драйверов нужно разрешить отдельно:

SLIP (serial line) support? (CONFIG SLIP) [y] SLIP compressed headers (SL COMPRESSED) [y] PPP (point-to-point) support (CONFIG PPP) [y] PLIP (parallel port) support (CONFIG PLIP) [n]

Эти вопросы касаются различных протоколов связи поддерживаемых Linux. SLIP позволяет Вам транспортировать IP дэйтаграмы через последовательные линии. Опция сжатия заголовков обеспечивает поддержку CSLIP, позволяющий сжимать TCP/IP заголовки всего в три байта. Обратите Внимание что эта опция ядра не включает CSLIP автоматически, она просто обеспечивает необходимые функции для него.

PPP - другой протокол для построения сетей на последовательными линиях. Он еще более гибок чем SLIP, и не ограничен только IP, но также поддерживает IPX. Так как поддержка PPP была закончена только недавно, эта опция может быть не представлена в вашем ядре.

PLIP обеспечивает пересылку IP дэйтаграм через параллельный порт. Он главным образом используется для того чтобы связаться с PC под управлением DOS.

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

NE2000/NE1000 support (CONFIG NE2000) [y] WD80*3 support (CONFIG WD80x3) [n] SMC Ultra support (CONFIG ULTRA) [n] 3c501 support (CONFIG EL1) [n] 3c503 support (CONFIG EL2) [n] 3c509/3c579 support (CONFIG EL3) [n] HP PCLAN support (CONFIG HPLAN) [n] AT1500 and NE2100 (LANCE and PCnet-ISA) support (CONFIG LANCE) [n] AT1700 support (CONFIG AT1700) [n] DEPCA support (CONFIG DEPCA) [n] D-Link DE600 pocket adaptor support (CONFIG DE600) [y] AT-LAN-TEC/RealTek pocket adaptor support (CONFIG ATP) [n] * * CD-ROM drivers *

Наконец, в секции файловой системы, скрипт конфигурации спросит Вас хотите ли Вы поддержку NFS. NFS позволяет Вам экспортировать файловые системы с других хостов, так что файлы и директории кажутся находящимися на одной машине.

NFS filesystem support (CONFIG NFS FS) [y]


Если Вы хотите использовать меньшие размеры пакетов для данных посланных определенным хостам (потому что, например, данные проходят через SLIP связь), Вы можете cделать это используя mtu опции маршрутизации, которые кратко обсуждены в конце этой главы.

Disable NAGLE algorithm (normally enabled) (CONFIG TCP NAGLE OFF) [n]

Правила Nagle используются чтобы избежать посылки маленьких IP пакетов, также названные tinygrams. Tinygrams обычно создаются диалоговыми сетевыми программами, которые передают отдельные символы, типа telnet или rsh. Tinygrams может стать особенно неудобными при связи по узкополосным линиям. Nagle алгоритм пытается избегать их сдерживая при некоторых обстоятельствах передачу TCP данных. Вам стоит отключить Nalge алгоритм, только если у вас есть серьезные проблемы с получением пакетов.

The IPX protocol (CONFIG IPX) [n]

Это опция включает поддержку IPX, транспортный протокол используемый Novell сетями. Он все еще в разработке и не очень полезен. Единственная польза -- обмен данными с IPX утилитами DOS и передача данных между вашими novell сетями через PPP связь. Поддержка протоколов высокого уровня для Novell сети в обозримом будущем не будет, так как спецификации бесплатно не достать.

В ядре 1.1.16, Linux поддерживается еще один тип драйвера, dummy driver (фиктивный драйвер). Следующий вопрос появляется в начале секции драйверов устройств.

Dummy net driver support (CONFIG DUMMY) [y]

Фиктивный драйвер в действительности делает немного, но весьма полезен на автономном или SLIP хосте. Это в основном замаскированный loopback интерфейс. Этот вид интерфейса нужен на хостах, которые имеют SLIP но не имеют Ethernet, но хотят иметь интерфейс, который все время держит ваш IP адрес. Чуть больше он обсуждается в секции 6.7.7 в главе 6 ..


Опции командной строки uucico


Этот раздел описывает наиболее важные опции командной строки для uucico. Для полного списка, пожалуйста обратитесь к странице руководства uucico(1). -s системный вызов по имени системы, если нет запрета в соответствии c ограничениями времени обращения.

-S системный вызов по имени системы безоговорочно.

-r1 запукает uucico в режиме главного. Это опция по умолчанию,когда -s или -S заданы. Опция -r1 заставляет uucico пробовать вызывать все системы в sys", если не запрещено обращение и не настало ограничение времени повторения.

-r0 запускает uucico в режиме подчинённого. Это - значение по умолчанию,когда -s или -S не заданы. В непривилегированном режиме, любой стандартный ввод - вывод соединяется с последовательным портом, порт TCP используется если опция -p задана.

YYY

-x typy, -X type Включают отладку заданного типа.Несколько типов могут быть разделены запятой.Следующие типы допустимы: abnormal, chat,handshake,uucp-proto, proto, port, config, spooldir, execute,incoming, outgoing. Использование all включает все опции Для совместимости с другими реализациями UUCP,взамен может быть определен номер, который включает отладку для первых n предметов"из вышеупомянутого списка.

Отладочные сообщения будут регистрироваться в файле DEBUG в /var/spool/uucp.

| |



Опции Port и Speed


Опции Port и Speed используется, чтобы выбрать устройство, используемое для вызова удаленной системы, и установки максимального быстродействия. (7) вход системы может использовать или опцию единственные, или обе опции в конъюнкции. При поиске подходящего устройства в файле port, только те порты ,могут быть выбраны, которые соответствуют имени порта и(или) диапазону скоростей. Вообще, использование опции speed должен удовлетворить. Если Вы имеете только одно последовательное устройство, описанное в port, uucico будет всегда выбирать правильно, во всяком случае, так что Вы только должны дать этому желательное быстродействие. Если у Вас несколько модемов, присоединенных к вашей системе, Вы все еще часто не хотите к.

7. Скорость в бодах Вашего tty (телетайпа) должна быть по крайней мере так же высока, как максимально возможная скорость передачи.

Назовите специфический порт, потому что, если uucico находит, что имеются отдельные пары, это пробует каждое устройство по очереди, пока это не находит неиспользуемый.



Опции управления связью


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

Две наиболее важных опции, которые могут быть заключены LCP - максимум получает единицу и Асинхронное Отображение Управляющего символа. Имеется ряд других LCP опций конфигурации, но они слишком специализированны для обсуждения их здесь. Пожалуйста обратитесь к RFC 1548 для описания этого.

Асинхронное отображение управляющего символа, разговорно называемого async отображение, используется на асинхронных связях типа телефонных линий для опознавания управляющих символов, которых нужно найти (заменить специфической последовательностью с двумя характерами). Например, Вы может быть захотите избежать XON и XOFF, используемые для рукопожатия программного обеспечения, потому что некоторый плохо сконфигурированный модем мог бы удушить получения стоп- сигнала. Ctrl-] (telnet символ ESC). PPP позволяет Вам выходить из любого из знака с ASCII кодировкой от 0 до 31, точно определяя их в аsync отображении.

Async отображение - растр шириной 32 бита, с самым младшим битом, соответствующим ASCII NUL знаку, и старшим битом соответствующим 31 ASCII. Если бит установлен, то оп сообщает соответствующему знаку, который должен выйти перед посылкой через связь. Первоначально, async отображение - множество к 0xffffffff, то есть все управляющие символы будут esaped.

Для того, чтобы сообщить вашему peer, что это он не должен escaped все управляющие символы, а только несколько из них, Вы можете точно определять новый asyncmap к pppd используя опцию asyncmap. Например, если только ^S и ^Q (ASCII 17 и 19, обычно используемый для старт-сигнала(XON) и стоп-сигнала(XOFF)) должно быть escaped, то Вам надо использовать следующую опцию:

Asyncmap 0x000A0000

Максимум получает единицу, или MRU, сообщает peer максимальный размер HDLC рамки, которую мы хотим получить. Хотя это может напомнить Вам значение MTU (Максимальная Порция обмена), то эти два имеет немного общего. MTU - параметр kernel устройства работы с сетями, и описывает максимальную структуру inerface делая его способным к обработке. MRU более, чем совета к remote end для того, чтобы не генерировать любой фрейм больший чем MRU; interface должен однако быть способен 1500 байт.


Выбор MRU не такой большой вопрос того что как связь способна к пересылке, но того, что даст Вам самый лучший throughput. Если Вы имеете в виду интерактивные приложения над связью, то установки MRU к значениям всего 296 - хорошая идея, так, чтобы случайный больший блок (говорят, из FTP сеанса) не сделал бы ваш курсор "jump''. Чтобы сообщить pppd чтобы он запросил MRU 296, Вы бы дали ему опцию mru 296. Малый MRUs, однако, только имеет смысл, если Вы не имеете эту опцию (это отключается по умолчанию).

Pppd понимает также пару LCP опций, которые конфигурируют полное поведение процесса переговоров, типа максимального номера из запросов конфигурации, которые могут быть обменены перед тем как связь будет прервана. & " В заключение, имеются две опции, которые обращаются к LCP ECHO сообщениям. PPP определяет эти два сообщения, запрос ECHO и ответ ECHO. Pppd использует эту особенность, чтобы проверить, действует ли связь все еще. Вы можете отключить это используя опцию lcp-echo-interval вместе со временем мгновенно. Если никакие структуры не получены от отдаленного хоста внутри этого интервала, то pppd сгенерирует запрос ECHO, и будет ожидает, какой ECHO ответ peer возвратит. Если peer не возвращает ответ, то связь будет прервана после некоторого числа посланных запросов. Этот номер может быть установлен используя опцию lcp-echo-failure. По умолчанию, эта особенность отключена в целом.


Описание устройств(Devices) - файл port


Файл port сообщает uucico о доступных портах. Это могут быть порты модема, другие типы последовательных соединений и гнезда TCP. Подобно файлу sys, port состоит из отдельных кусков, начинающихся с ключевого слова port, сопровождаемым именем порта. Это имя может использоваться в описании порта в файле sys. Нет потребности в уникальности имени файла; если существуют порты с одним и тем же именем, uucico перепробует все по очереди, пока это не найдет тот, который в настоящее время не используется. Команда port должна обязательно сопровождаться именем типа, которое задает какой порт описан. Допустимые типы - modem, direct для прямых соединений, и tcp для гнезд TCP. Если команда port отсутствует, по умолчанию тип порта - modem. В этом разделе, мы опишем лишь порты модема; порты TCP и прямые соединения будут обсуждаться далее. 8. Если удаленная система выполняет Talyor UUCP, это удовлетворит условиям.

Для модема и прямого соединения, Вы должны определить устройство для вызова устройства напрямую. Обычно это имя специального файла устройства в каталоге /dev( подобно /dev/cua1). (9)

В случае устройства модема, port также определяет, какой модем соединен с портом. Различные типы модемов должны быть конфигурированы по- разному. Четные модемы, что рекламация, чтобы быть Hayes совместимый не должна быть действительно совместима друг с другом. Следовательно, Вы должны сообщить uucico, как инициализировать Ваш модем и как соединяться с требуемым номером. Taylor UUCP хранит описания всех программ набора номера в файле dial. Чтобы использовать любую из них, Вы должны определить имя программы набора номера, используя команду dialer.

Иногда Вам подребуется использовать модем различными способами( в зависимости систепы,которую Вы вызываете. Например, некоторые старые модемы не понимают, когда быстродействующий модем пытается соединяться на скорости 14400bps; они просто пропускают строку вместо того, чтобы вести переговоры на скорости в 9600bps. Если Вы знаете, что некоторые места используют такой "немой" модем, для вызова их Вы должны настраивать ваш модем иначе. Для этого Вам нужно добавить строку port ... в файл порт, которая определит другую программу набора номера. Теперь Вы можете задать новому порту другое имя, типа serial1-slow, и использовать директиву port в описании системы в файле sys. Лучший способ отличать порты состоит в том чтобы отличать порты по скоростям, которые они поддерживают. Например, два описания порта для вышеупомянутого могут выглядеть следующим образом:


# NakWell modem; connect at hight speed port serial1 # port name type modem #modem port device /dev/cua1 # this is COM2 speed 38400 #support speed dialer nakwel #normal dialer

# NakWell modem; connect at low speed port serial1 # port name type modem # modem port device /dev/cua1 # this is COM2 speed 9600 # supported speed dialer nakwell-slow # don't attempt fast connect

Tеперь запрос был бы на serial1 как имя порта, но использовать только 9600bps . Uucico сделает это автоматически 9. Некоторые люди используют ttyS * устройства , которые предназначены только для входа (dial-in).

Используйте второй вход порта. Все остающиеся места, которые имеют быстродействие 38400bps , будут вызываться, используя первый кусок в port/