diff options
author | Gabor Kovesdan <gabor@FreeBSD.org> | 2012-09-24 11:18:39 +0000 |
---|---|---|
committer | Gabor Kovesdan <gabor@FreeBSD.org> | 2012-09-24 11:18:39 +0000 |
commit | ed4c4311fae9675f2348cedb71c67e28d85e429f (patch) | |
tree | c4b6aff3c9312c0b61480fd368830e2fbd776a61 | |
parent | c96a4769af7f4d37836c02ae31f60129edeb4462 (diff) | |
download | doc-ed4c4311fae9675f2348cedb71c67e28d85e429f.tar.gz doc-ed4c4311fae9675f2348cedb71c67e28d85e429f.zip |
- Remove stale files
Discussd with: taras
Notes
Notes:
svn path=/head/; revision=39614
-rw-r--r-- | ru_RU.KOI8-R/books/Makefile | 1 | ||||
-rw-r--r-- | ru_RU.KOI8-R/books/developers-handbook/driverbasics/chapter.sgml | 410 | ||||
-rw-r--r-- | ru_RU.KOI8-R/books/developers-handbook/locking/chapter.sgml | 340 | ||||
-rw-r--r-- | ru_RU.KOI8-R/books/developers-handbook/pci/chapter.sgml | 222 | ||||
-rw-r--r-- | ru_RU.KOI8-R/books/ppp-primer/Makefile | 28 | ||||
-rw-r--r-- | ru_RU.KOI8-R/books/ppp-primer/book.sgml | 2458 |
6 files changed, 0 insertions, 3459 deletions
diff --git a/ru_RU.KOI8-R/books/Makefile b/ru_RU.KOI8-R/books/Makefile index 1746d79488..458d3332e8 100644 --- a/ru_RU.KOI8-R/books/Makefile +++ b/ru_RU.KOI8-R/books/Makefile @@ -8,7 +8,6 @@ SUBDIR = faq SUBDIR+= handbook SUBDIR+= porters-handbook -SUBDIR+= ppp-primer ROOT_SYMLINKS = faq handbook diff --git a/ru_RU.KOI8-R/books/developers-handbook/driverbasics/chapter.sgml b/ru_RU.KOI8-R/books/developers-handbook/driverbasics/chapter.sgml deleted file mode 100644 index 39bb5ae739..0000000000 --- a/ru_RU.KOI8-R/books/developers-handbook/driverbasics/chapter.sgml +++ /dev/null @@ -1,410 +0,0 @@ -<?xml version="1.0" encoding="koi8-r" standalone="no"?> -<!-- - The FreeBSD Russian Documentation Project - - $FreeBSD$ - $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/developers-handbook/driverbasics/chapter.sgml,v 1.1 2001/01/10 08:45:03 andy Exp $ - - Original revision: 1.3 ---> - -<chapter id="driverbasics"> - <title>Написание драйверов устройств для FreeBSD</title> - - <para>Эту главу написал Мюррэй Стокели (Murray Stokely) на основе множества - источников, включая справочную страницу intro(4), созданную Джоргом - Вуншем (Joerg Wunsch).</para> - - <sect1> - <title>Введение</title> - - <para>Эта глава является кратким введением в процесс написания драйверов - устройств для FreeBSD. В этом контексте термин устройство используется - в основном для вещей, связанных с оборудованием, относящимся к системе, - таких, как диски, печатающие устройства или графические дисплеи с - клавиатурами. Драйвер устройства является программной компонентой - операционной системы, управляющей некоторым устройством. Имеются также - так называемые псевдо-устройства, в случае которых драйвер устройства - эмулирует поведение устройства программно, без наличия какой-либо - соответствующей аппаратуры. Драйверы устройств могут быть - вкомпилированы в систему статически или могут загружаться по требованию - при помощи механизма динамического компоновщика ядра `kld'.</para> - - <para>Большинство устройств в Unix-подобной операционной системе доступны - через файлы устройств (device-nodes), иногда также называемые - специальными файлами. В иерархии файловой системы эти файлы обычно - находятся в каталоге <filename>/dev</filename>. Пока система devfs - полностью не интегрирована во FreeBSD, каждый файл устройства должен - создаваться статически и вне зависимости от наличия соответствующего - драйвера устройста. Большинство файлов устройств в системе создаются - при помощи команды <command>MAKEDEV</command>.</para> - - <para>Драйверы устройств могут быть условно разделены на две категории; - драйверы символьных и сетевых устройств.</para> - </sect1> - - <sect1> - <title>Механизм динамического компоновщика ядра - KLD</title> - - <para>Интерфейс kld позволяет системным администраторам динамически - добавлять и убирать функциональность из работающей системы. Это - позволяет разработчикам драйверов устройств загружать собственные - изменения в работающее ядро без постоянных перезагрузок для - тестирования изменений.</para> - - <para>Для работы с интерфейсом kld используются следующие команды - администратора: - - <itemizedlist> - <listitem> - <simpara> - <command>kldload</command> - загружает новый модуль ядра - </simpara> - </listitem> - - <listitem> - <simpara> - <command>kldunload</command> - выгружает модуль ядра - </simpara> - </listitem> - - <listitem> - <simpara> - <command>kldstat</command> - выводит список загруженных в данный - момент модулей - </simpara> - </listitem> - </itemizedlist> - </para> - - <para>Скелет модуля ядра</para> - - <programlisting> -/* - * KLD Skeleton - * Inspired by Andrew Reiter's Daemonnews article - */ - -#include <sys/types.h> -#include <sys/module.h> -#include <sys/systm.h> /* uprintf */ -#include <sys/errno.h> -#include <sys/param.h> /* defines used in kernel.h */ -#include <sys/kernel.h> /* types used in module initialization */ - -/* - * Load handler that deals with the loading and unloading of a KLD. - */ - -static int -skel_loader(struct module *m, int what, void *arg) -{ - int err = 0; - - switch (what) { - case MOD_LOAD: /* kldload */ - uprintf("Skeleton KLD loaded.\n"); - break; - case MOD_UNLOAD: - uprintf("Skeleton KLD unloaded.\n"); - break; - default: - err = EINVAL; - break; - } - return(err); -} - -/* Declare this module to the rest of the kernel */ - -DECLARE_MODULE(skeleton, skel_loader, SI_SUB_KLD, SI_ORDER_ANY); - </programlisting> - - <sect2> - <title>Makefile</title> - - <para>Во FreeBSD имеются заготовки для включения в make-файлы, которые - вы можете использовать для быстрой компиляции собственных дополнений - к ядру.</para> - - <programlisting> -SRCS=skeleton.c -KMOD=skeleton - -.include <bsd.kmod.mk> - </programlisting> - - <para>Простой запуск команды <command>make</command> с этим make-файлом - приведет к созданию файла <filename>skeleton.ko</filename>, который - можно загрузить в вашу систему, набрав: - - <screen> -&prompt.root kldload -v ./skeleton.ko - </screen> - </para> - </sect2> - </sect1> - - <sect1> - <title>Обращение к драйверу устройства</title> - - <para>Unix дает некоторый общий набор системных вызовов для использования - в пользовательских приложениях. Когда пользователь обращается к - файлу устройства, высокие уровни ядра перенаправляют эти обращения к - соответствующему драйверу устройства. Скрипт - <command>/dev/MAKEDEV</command> создает большинство файлов устройств в - вашей системе, однако если вы ведете разработку своего собственного - драйвера, то может появиться необходимость в создании собственных - файлов устройств при помощи команды <command>mknod</command>.</para> - - <sect2> - <title>Создание статических файлов устройств</title> - - <para>Для создания файла устройства команде <command>mknod</command> - требуется указать четыре аргумента. Вы должны указать имя этого - файла устройства, тип устройства, старшее число устройства и младшее - число устройства.</para> - </sect2> - - <sect2> - <title>Динамические файлы устройств</title> - - <para>Файловая система устройств, devfs, предоставляет доступ к - пространству имен устройств ядра из глобального пространства имен - файловой системы. Это устраняет потенциальную проблемы наличия - драйвера без статического файла устройства или файла устройства без - установленного драйвера устройства. Devfs все еще находится в - разработке, однако она уже достаточно хорошо работает.</para> - </sect2> - </sect1> - - <sect1> - <title>Символьные устройства</title> - - <para>Драйвер символьного устройства передает данные непосредственно в - или из процесса пользователя. Это самый распространенный тип драйвера - устройства и в дереве исходных текстов имеется достаточно простых - примеров таких драйверов.</para> - - <para>В этом простом примере псевдо-устройство запоминает какие угодно - значения, которые вы в него записываете, и затем может выдавать их - назад при чтении из этого устройства.</para> - - <programlisting> -/* - * Simple `echo' pseudo-device KLD - * - * Murray Stokely - */ - -#define MIN(a,b) (((a) < (b)) ? (a) : (b)) - -#include <sys/types.h> -#include <sys/module.h> -#include <sys/systm.h> /* uprintf */ -#include <sys/errno.h> -#include <sys/param.h> /* defines used in kernel.h */ -#include <sys/kernel.h> /* types used in module initialization */ -#include <sys/conf.h> /* cdevsw struct */ -#include <sys/uio.h> /* uio struct */ -#include <sys/malloc.h> - -#define BUFFERSIZE 256 - -/* Function prototypes */ -d_open_t echo_open; -d_close_t echo_close; -d_read_t echo_read; -d_write_t echo_write; - -/* Character device entry points */ -static struct cdevsw echo_cdevsw = { - echo_open, - echo_close, - echo_read, - echo_write, - noioctl, - nopoll, - nommap, - nostrategy, - "echo", - 33, /* reserved for lkms - /usr/src/sys/conf/majors */ - nodump, - nopsize, - D_TTY, - -1 -}; - -typedef struct s_echo { - char msg[BUFFERSIZE]; - int len; -} t_echo; - -/* vars */ -static dev_t sdev; -static int len; -static int count; -static t_echo *echomsg; - -MALLOC_DECLARE(M_ECHOBUF); -MALLOC_DEFINE(M_ECHOBUF, "echobuffer", "buffer for echo module"); - -/* - * This function acts is called by the kld[un]load(2) system calls to - * determine what actions to take when a module is loaded or unloaded. - */ - -static int -echo_loader(struct module *m, int what, void *arg) -{ - int err = 0; - - switch (what) { - case MOD_LOAD: /* kldload */ - sdev = make_dev(<literal>&</literal>echo_cdevsw, - 0, - UID_ROOT, - GID_WHEEL, - 0600, - "echo"); - /* kmalloc memory for use by this driver */ - /* malloc(256,M_ECHOBUF,M_WAITOK); */ - MALLOC(echomsg, t_echo *, sizeof(t_echo), M_ECHOBUF, M_WAITOK); - printf("Echo device loaded.\n"); - break; - case MOD_UNLOAD: - destroy_dev(sdev); - FREE(echomsg,M_ECHOBUF); - printf("Echo device unloaded.\n"); - break; - default: - err = EINVAL; - break; - } - return(err); -} - -int -echo_open(dev_t dev, int oflags, int devtype, struct proc *p) -{ - int err = 0; - - uprintf("Opened device \"echo\" successfully.\n"); - return(err); -} - -int -echo_close(dev_t dev, int fflag, int devtype, struct proc *p) -{ - uprintf("Closing device \"echo.\"\n"); - return(0); -} - -/* - * The read function just takes the buf that was saved via - * echo_write() and returns it to userland for accessing. - * uio(9) - */ - -int -echo_read(dev_t dev, struct uio *uio, int ioflag) -{ - int err = 0; - int amt; - - /* How big is this read operation? Either as big as the user wants, - or as big as the remaining data */ - amt = MIN(uio->uio_resid, (echomsg->len - uio->uio_offset > 0) ? echomsg->len - uio->uio_offset : 0); - if ((err = uiomove(echomsg->msg + uio->uio_offset,amt,uio)) != 0) { - uprintf("uiomove failed!\n"); - } - - return err; -} - -/* - * echo_write takes in a character string and saves it - * to buf for later accessing. - */ - -int -echo_write(dev_t dev, struct uio *uio, int ioflag) -{ - int err = 0; - - /* Copy the string in from user memory to kernel memory */ - err = copyin(uio->uio_iov->iov_base, echomsg->msg, MIN(uio->uio_iov->iov_len,BUFFERSIZE)); - - /* Now we need to null terminate */ - *(echomsg->msg + MIN(uio->uio_iov->iov_len,BUFFERSIZE)) = 0; - /* Record the length */ - echomsg->len = MIN(uio->uio_iov->iov_len,BUFFERSIZE); - - if (err != 0) { - uprintf("Write failed: bad address!\n"); - } - - count++; - return(err); -} - -DEV_MODULE(echo,echo_loader,NULL); - </programlisting> - - <para>Перед тем, как устанавливать этот драйвер, в вашей файловой системе - вам нужно создать файл устройства при помощи команды, подобной - следующей:</para> - - <screen> -&prompt.root mknod /dev/echo c 33 0 - </screen> - - <para>Когда этот драйвер загружен, вы можете выполнять следующие - действия:</para> - - <screen> -&prompt.root echo -n "Test Data" > /dev/echo -&prompt.root cat /dev/echo -Test Data - </screen> - - <para>Об устройствах, обслуживающих реальное оборудование, рассказывается - в следующей главе..</para> - - <para>Дополнительные источники информации - <itemizedlist> - <listitem> - <simpara><ulink - url="http://www.daemonnews.org/200010/blueprints.html">Учебник - по программированию механизма динамического компоновщика ядра - (KLD)</ulink> - <ulink - url="http://www.daemonnews.org">Daemonnews</ulink> - Октябрь 2000 - </simpara> - </listitem> - - <listitem> - <simpara><ulink - url="http://www.daemonnews.org/200007/newbus-intro.html">Как - писать драйверы ядра в парадигме NEWBUS</ulink> - <ulink - url="http://www.daemonnews.org">Daemonnews</ulink> Июль 2000 - </simpara> - </listitem> - </itemizedlist> - </para> - </sect1> - - <sect1> - <title>Сетевые драйверы</title> - - <para>В случае драйверов сетевых устройств файлы устройств для доступа к - ним не используются. Их выбор основан на другом механизме, работающем - в ядре, и не использующем вызов open(); об использование сетевых - устройств в общем случае рассказано в описании системного вызова - socket(2).</para> - - <para>Почитайте справочную информацию о вызове ifnet(), устройстве - loopback, почитайте драйверы Билла Пола (Bill Paul), и так - далее..</para> - </sect1> -</chapter> diff --git a/ru_RU.KOI8-R/books/developers-handbook/locking/chapter.sgml b/ru_RU.KOI8-R/books/developers-handbook/locking/chapter.sgml deleted file mode 100644 index c1241c5207..0000000000 --- a/ru_RU.KOI8-R/books/developers-handbook/locking/chapter.sgml +++ /dev/null @@ -1,340 +0,0 @@ -<?xml version="1.0" encoding="koi8-r" standalone="no"?> -<!-- - The FreeBSD Russian Documentation Project - - The FreeBSD SMP Next Generation Project - - $FreeBSD$ - $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/developers-handbook/locking/chapter.sgml,v 1.1 2001/02/19 06:44:22 andy Exp $ - - Original revision: 1.2 ---> - -<chapter id="locking"> - <title>Замечания по блокировке</title> - - <para><emphasis>Эта глава поддерживается проектом FreeBSD SMP Next - Generation Project - <email>freebsd-smp@FreeBSD.org</email>.</emphasis></para> - - <para>Этот документ описывает механизм блокировки, используемый в ядре - FreeBSD для обеспечения эффективной поддержки нескольких процессоров в - ядре. Блокировку можно рассматривать с нескольких точек зрения. - Структуры данных могут быть защищены с помощью блокировок mutex или - &man.lockmgr.9;. Несколько переменных защищены просто в силу атомарности - используемых для доступа к ним операций.</para> - - <sect1> - <title>Мьютексы</title> - - <para>Мьютекс (mutex) - это просто блокировка, используемая для - реализации гарантированной исключительности. В частности, в каждый - момент времени мьютексом может владеть только один объект. Если - какой-то объект хочет получить мьютекс, который уже кто-то занял, он - должен дождаться момента его освобождения. В ядре FreeBSD владельцами - мьютексов являются процессы.</para> - - <para>Мьютексы могут быть затребованы рекурсивно, но предполагается, что - они занимаются на короткое время. В частности, владельцу мьютекса - нельзя выдерживать паузу. Если вам нужно выполнить блокировку на время - паузы, используйте блокировку через &man.lockmgr.9;.</para> - - <para>Каждый мьютекс имеет несколько представляющих интерес - характеристик:</para> - - <variablelist> - <varlistentry> - <term>Имя переменной</term> - <listitem> - <para>Имя переменной <type>struct mtx</type> в исходных текстах - ядра.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Логическое имя</term> - <listitem> - <para>Имя мьютекса, назначенное ему через - <function>mtx_init</function>. Это имя выводится в сообщениях - трассировки KTR и диагностических предупреждающих и ошибочных - сообщениях и используется для идентификации мьютексов в - отладочном коде.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Тип</term> - <listitem> - <para>Тип мьютекса в терминах флагов <constant>MTX_*</constant>. - Значение каждого флага связано с его смыслом так, как это описано - в &man.mutex.9;.</para> - - <variablelist> - <varlistentry> - <term><constant>MTX_DEF</constant></term> - <listitem> - <para>Sleep-мьютекс</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><constant>MTX_SPIN</constant></term> - <listitem> - <para>Spin-мьютекс</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><constant>MTX_COLD</constant></term> - <listitem> - <para>Этот мьютекс инициализируется очень рано. Поэтому он - должен быть объявлен через функции - <function>MUTEX_DECLARE</function>, а флаг - <constant>MTX_COLD</constant> должен быть передан в функцию - <function>mtx_init</function>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><constant>MTX_TOPHALF</constant></term> - <listitem> - <para>Этот spin-мьютекс не запрещает прерывания.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><constant>MTX_NORECURSE</constant></term> - <listitem> - <para>Этот мьютекс не разрешается блокировать - рекурсивно.</para> - </listitem> - </varlistentry> - </variablelist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Защиты</term> - <listitem> - <para>Список структур данных или членов структур данных, которые - защищает этот мьютекс. Для членов структур данных иям будет в - форме - <structname/имя структуры/.<structfield/имя члена - структуры/.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Зависимые функции</term> - <listitem> - <para>Функции, которые можно вызвать, если этот мьютекс - занят.</para> - </listitem> - </varlistentry> - </variablelist> - - <table frame="all" colsep="1" rowsep="1" pgwide="1"> - <title>Список мьютексов</title> - - <tgroup cols="5"> - <thead> - <row> - <entry>Имя переменной</entry> - <entry>Логическое имя</entry> - <entry>Тип</entry> - <entry>Защиты</entry> - <entry>Зависимые функции</entry> - </row> - </thead> - - <!-- Блокировка планировщика задач --> - <tbody> - <row> - <entry>sched_lock</entry> - <entry><quote>sched lock</quote></entry> - <entry> - <constant>MTX_SPIN</constant> | - <constant>MTX_COLD</constant> - </entry> - <entry> - <varname>_gmonparam</varname>, - <varname>cnt.v_swtch</varname>, - <varname>cp_time</varname>, - <varname>curpriority</varname>, - <structname/mtx/.<structfield/mtx_blocked/, - <structname/mtx/.<structfield/mtx_contested/, - <structname/proc/.<structfield/p_contested/, - <structname/proc/.<structfield/p_blocked/, - <structname/proc/.<structfield/p_flag/ - (<constant>P_PROFIL</constant> XXX, - <constant>P_INMEM</constant>, - <constant>P_SINTR</constant>, - <constant>P_TIMEOUT</constant>, - <constant>P_SWAPINREQ</constant> XXX, - <constant>P_INMEN</constant> XXX), - <structname/proc/.<structfield/p_nice/, - <structname/proc/.<structfield/p_procq/, - <structname/proc/.<structfield/p_blocked/, - <structname/proc/.<structfield/p_estcpu/, - <structname/proc/.<structfield/p_nativepri/, - <structname/proc/.<structfield/p_priority/, - <structname/proc/.<structfield/p_usrpri/, - <structname/proc/.<structfield/p_rtprio/, - <structname/proc/.<structfield/p_rqindex/, - <structname/proc/.<structfield/p_stats->p_prof/, - <structname/proc/.<structfield/p_stats->p_ru/, - <structname/proc/.<structfield/p_stat/, - <structname/proc/.<structfield/p_cpticks/ - <structname/proc/.<structfield/p_iticks/, - <structname/proc/.<structfield/p_uticks/, - <structname/proc/.<structfield/p_sticks/, - <structname/proc/.<structfield/p_swtime/, - <structname/proc/.<structfield/p_slptime/, - <structname/proc/.<structfield/p_runtime/, - <structname/proc/.<structfield/p_pctcpu/, - <structname/proc/.<structfield/p_oncpu/, - <structname/proc/.<structfield/p_asleep/, - <structname/proc/.<structfield/p_wchan/, - <structname/proc/.<structfield/p_wmesg/, - <structname/proc/.<structfield/p_slpq/, - <structname/proc/.<structfield/p_vmspace/ - (XXX - в <function>statclock</function>), - <varname>pscnt</varname>, - <varname>slpque</varname>, - <varname>itqueuebits</varname>, - <varname>itqueues</varname>, - <varname>rtqueuebits</varname>, - <varname>rtqueues</varname>, - <varname>queuebits</varname>, - <varname>queues</varname>, - <varname>idqueuebits</varname>, - <varname>idqueues</varname>, - <varname>switchtime</varname>, - </entry> - <entry> - <function>setrunqueue</function>, - <function>remrunqueue</function>, - <function>mi_switch</function>, - <function>chooseproc</function>, - <function>schedclock</function>, - <function>resetpriority</function>, - <function>updatepri</function>, - <function>maybe_resched</function>, - <function>cpu_switch</function>, - <function>cpu_throw</function> - </entry> - </row> - - <!-- The vm86 pcb lock --> - <row> - <entry>vm86pcb_lock</entry> - <entry><quote>vm86pcb lock</quote></entry> - <entry> - <constant>MTX_DEF</constant> | - <constant>MTX_COLD</constant> - </entry> - <entry> - <varname>vm86pcb</varname> - </entry> - <entry> - <function>vm86_bioscall</function> - </entry> - </row> - - <!-- Giant --> - <row> - <entry>Giant</entry> - <entry><quote>Giant</quote></entry> - <entry> - <constant>MTX_DEF</constant> | - <constant>MTX_COLD</constant> - </entry> - <entry>nearly everything</entry> - <entry>lots</entry> - </row> - - <!-- The callout lock --> - <row> - <entry>callout_lock</entry> - <entry><quote>callout lock</quote></entry> - <entry> - <constant>MTX_SPIN</constant> - </entry> - <entry> - <varname>callfree</varname>, - <varname>callwheel</varname>, - <varname>nextsoftcheck</varname>, - <structname/proc/.<structfield/p_itcallout/, - <structname/proc/.<structfield/p_slpcallout/, - <varname>softticks</varname>, - <varname>ticks</varname> - </entry> - <entry> - </entry> - </row> - </tbody> - </tgroup> - </table> - </sect1> - - <sect1> - <title>Блокировки менеджера блокировок</title> - - <para>Блокировки, которые даются через интерфейс &man.lockmgr.9;, - являются блокировками менеджера блокировок. Эти блокировки являются - блокировками на чтение/запись и ими могут владеть процессы в состоянии - ожидания.</para> - - <table> - <title>Список блокировок &man.lockmgr.9;</title> - - <tgroup cols="2"> - <thead> - <row> - <entry>Имя переменной</entry> - <entry>Защиты</entry> - </row> - </thead> - <tbody> - <row> - <entry><varname>allproc_lock</varname></entry> - <entry> - <varname>allproc</varname> - <varname>zombproc</varname> - <varname>pidhashtbl</varname> - <structname/proc/.<structfield/p_list/ - <structname/proc/.<structfield/p_hash/ - <varname>nextpid</varname> - </entry> - <entry><varname>proctree_lock</varname></entry> - <entry> - <structname/proc/.<structfield/p_children/ - <structname/proc/.<structfield/p_sibling/ - </entry> - </row> - </tbody> - </tgroup> - </table> - </sect1> - - <sect1> - <title>Атомарно защищенные переменные</title> - - <para>Переменной, защищенной атомарно, является особая переменная, - которая не защищается явной блокировкой. Вместо этого для доступа к - данным переменных используются специальные атомарные операции, как - описано в &man.atomic.9;. Лишь несколько переменных используются таким - образом, хотя другие примитивы синхронизации, такие как мьютексы, - реализованы с атомарно защищенными переменными.</para> - - <itemizedlist> - <listitem> - <para><varname>astpending</varname></para> - </listitem> - - <listitem> - <para><structname/mtx/.<structfield/mtx_lock/</para> - </listitem> - </itemizedlist> - </sect1> -</chapter> diff --git a/ru_RU.KOI8-R/books/developers-handbook/pci/chapter.sgml b/ru_RU.KOI8-R/books/developers-handbook/pci/chapter.sgml deleted file mode 100644 index 32a689d1a4..0000000000 --- a/ru_RU.KOI8-R/books/developers-handbook/pci/chapter.sgml +++ /dev/null @@ -1,222 +0,0 @@ -<?xml version="1.0" encoding="koi8-r" standalone="no"?> -<!-- - The FreeBSD Russian Documentation Project - - $FreeBSD$ - $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/developers-handbook/pci/chapter.sgml,v 1.1 2001/02/19 06:50:23 andy Exp $ - - Original revision: 1.1 ---> - -<chapter id="pci"> - <title>Устройства PCI</title> - - <para>Эта глава посвящена механизмам FreeBSD по написанию драйверов - устройств, работающих на шине PCI.</para> - - <sect1><title>Обнаружение и подключение</title> - - <para>Здесь находится информация о том, как код шины PCI проходит по - неподключенным устройствам и распознает возможность загруженного драйвера - kld выполнить подключение к какому-либо из них.</para> - - <programlisting> -/* - * Simple KLD to play with the PCI functions. - * - * Murray Stokely - */ - -#define MIN(a,b) (((a) < (b)) ? (a) : (b)) - -#include <sys/types.h> -#include <sys/module.h> -#include <sys/systm.h> /* uprintf */ -#include <sys/errno.h> -#include <sys/param.h> /* defines used in kernel.h */ -#include <sys/kernel.h> /* types used in module initialization */ -#include <sys/conf.h> /* cdevsw struct */ -#include <sys/uio.h> /* uio struct */ -#include <sys/malloc.h> -#include <sys/bus.h> /* structs, prototypes for pci bus stuff */ - -#include <pci/pcivar.h> /* For get_pci macros! */ - -/* Function prototypes */ -d_open_t mypci_open; -d_close_t mypci_close; -d_read_t mypci_read; -d_write_t mypci_write; - -/* Character device entry points */ - -static struct cdevsw mypci_cdevsw = { - mypci_open, - mypci_close, - mypci_read, - mypci_write, - noioctl, - nopoll, - nommap, - nostrategy, - "mypci", - 36, /* reserved for lkms - /usr/src/sys/conf/majors */ - nodump, - nopsize, - D_TTY, - -1 -}; - -/* vars */ -static dev_t sdev; - -/* We're more interested in probe/attach than with - open/close/read/write at this point */ - -int -mypci_open(dev_t dev, int oflags, int devtype, struct proc *p) -{ - int err = 0; - - uprintf("Opened device \"mypci\" successfully.\n"); - return(err); -} - -int -mypci_close(dev_t dev, int fflag, int devtype, struct proc *p) -{ - int err=0; - - uprintf("Closing device \"mypci.\"\n"); - return(err); -} - -int -mypci_read(dev_t dev, struct uio *uio, int ioflag) -{ - int err = 0; - - uprintf("mypci read!\n"); - return err; -} - -int -mypci_write(dev_t dev, struct uio *uio, int ioflag) -{ - int err = 0; - - uprintf("mypci write!\n"); - return(err); -} - -/* PCI Support Functions */ - -/* - * Return identification string if this is device is ours. - */ -static int -mypci_probe(device_t dev) -{ - uprintf("MyPCI Probe\n" - "Vendor ID : 0x%x\n" - "Device ID : 0x%x\n",pci_get_vendor(dev),pci_get_device(dev)); - - if (pci_get_vendor(dev) == 0x11c1) { - uprintf("We've got the Winmodem, probe successful!\n"); - return 0; - } - - return ENXIO; -} - -/* Attach function is only called if the probe is successful */ - -static int -mypci_attach(device_t dev) -{ - uprintf("MyPCI Attach for : deviceID : 0x%x\n",pci_get_vendor(dev)); - sdev = make_dev(<literal>&</literal>mypci_cdevsw, - 0, - UID_ROOT, - GID_WHEEL, - 0600, - "mypci"); - uprintf("Mypci device loaded.\n"); - return ENXIO; -} - -/* Detach device. */ - -static int -mypci_detach(device_t dev) -{ - uprintf("Mypci detach!\n"); - return 0; -} - -/* Called during system shutdown after sync. */ - -static int -mypci_shutdown(device_t dev) -{ - uprintf("Mypci shutdown!\n"); - return 0; -} - -/* - * Device suspend routine. - */ -static int -mypci_suspend(device_t dev) -{ - uprintf("Mypci suspend!\n"); - return 0; -} - -/* - * Device resume routine. - */ - -static int -mypci_resume(device_t dev) -{ - uprintf("Mypci resume!\n"); - return 0; -} - -static device_method_t mypci_methods[] = { - /* Device interface */ - DEVMETHOD(device_probe, mypci_probe), - DEVMETHOD(device_attach, mypci_attach), - DEVMETHOD(device_detach, mypci_detach), - DEVMETHOD(device_shutdown, mypci_shutdown), - DEVMETHOD(device_suspend, mypci_suspend), - DEVMETHOD(device_resume, mypci_resume), - - { 0, 0 } -}; - -static driver_t mypci_driver = { - "mypci", - mypci_methods, - 0, - /* sizeof(struct mypci_softc), */ -}; - -static devclass_t mypci_devclass; - -DRIVER_MODULE(mypci, pci, mypci_driver, mypci_devclass, 0, 0); - </programlisting> - - <para>Дополнительная информация - <itemizedlist> - <listitem><simpara><ulink - url="http://www.pcisig.org">PCI Special Interest - Group</ulink></simpara> - </listitem> - <listitem><simpara>PCI System Architecture, Fourth Edition by - Tom Shanley, et al.</simpara></listitem> - </itemizedlist> - </para> -</sect1> -</chapter> diff --git a/ru_RU.KOI8-R/books/ppp-primer/Makefile b/ru_RU.KOI8-R/books/ppp-primer/Makefile deleted file mode 100644 index d2c46588c4..0000000000 --- a/ru_RU.KOI8-R/books/ppp-primer/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -# -# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/ppp-primer/Makefile,v 1.2 2001/07/25 10:17:01 phantom Exp $ -# $FreeBSD$ -# Original revision: 1.1 -# -# Build the PPP Primer -# - -MAINTAINER=athome@ukrpost.net - -DOC?= book - -FORMATS?= html-split html - -INSTALL_COMPRESSED?= gz -INSTALL_ONLY_COMPRESSED?= - -# -# SRCS lists the individual SGML files that make up the document. Changes -# to any of these files will force a rebuild -# - -# SGML content -SRCS= book.sgml - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/ru_RU.KOI8-R/books/ppp-primer/book.sgml b/ru_RU.KOI8-R/books/ppp-primer/book.sgml deleted file mode 100644 index ca52e96dfe..0000000000 --- a/ru_RU.KOI8-R/books/ppp-primer/book.sgml +++ /dev/null @@ -1,2458 +0,0 @@ -<?xml version="1.0" encoding="koi8-r" standalone="no"?> -<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN" - "../../../share/sgml/freebsd42.dtd" [ -<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//RU" "../../share/sgml/entities.ent"> -%entities; -]> - -<!-- - The FreeBSD Russian Documentation Project - - $FreeBSD$ - $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/ppp-primer/book.sgml,v 1.9 2004/07/16 12:06:27 den Exp $ - - Original revision: 1.11 ---> - -<book lang="ru"> - <bookinfo> - <title>Подробное руководство по PPP</title> - - <authorgroup> - <author> - <firstname>Стив</firstname> - <surname>Симс</surname> - <affiliation> - <address><email>SimsS@IBM.net</email></address> - </affiliation> - </author> - </authorgroup> - - <releaseinfo>$FreeBSD$</releaseinfo> - - <abstract> - <para>Это подробное руководство по конфигурированию FreeBSD-систем, - функционирующих как маршрутизаторы/шлюзы коммутируемого доступа в - локальных сетях (LAN). Подразумевается, что все, что описано в данном - руководстве относится к версии FreeBSD 2.2+, кроме случаев, специально - оговоренных.</para> - </abstract> - </bookinfo> - - <preface> - <title>Краткий обзор:</title> - - <para>На данный момент настраиваемый пользователем PPP-коммутатор версии - FreeBSD 2.2 (также известный как <emphasis remap="it">"IIJ-PPP"</emphasis>) - поддерживает совмещение пакетов для коммутируемых соединений с Интернет. - Эта особенность, известная также как "<emphasis - remap="it">Маскарад</emphasis>", "<emphasis - remap="it">IP-совмещение</emphasis>" или "<emphasis remap="it">Трансляция - Сетевых Адресов (NAТ)</emphasis>", позволяет FreeBSD-системе - функционировать как коммутирующий маршрутизатор между локальной сетью на - базе Ethernet и Интернет-провайдером (ISP). Системы в локальной сети - могут использовать FreeBSD-систему для отправки информации в Интернет, - используя одно единственное коммутируемое соединение.</para> - - <para>Это руководство объясняет как: - - <itemizedlist> - <listitem> - <para>конфигурировать FreeBSD-систему для установки исходящих - соединений,</para> - </listitem> - - <listitem> - <para>использовать это соединение совместно с другими системами - локальной сети,</para> - </listitem> - - <listitem> - <para>конфигурировать Windows-системы для использования - FreeBSD-системы как шлюза в Интернет.</para> - </listitem> - </itemizedlist> - </para> - - <para>Хотя основной целью данного руководства является оказание помощи при - конфигурировании IP-совмещения, оно также включает определенные примеры - этапов процесса настройки, необходимых для конфигурирования и установки - каждого отдельного компонента; каждый раздел руководства является - самостоятельным и может быть использован для облегчения процесса - конфигурирования различных аспектов межсетевого взаимодействия с - использованием FreeBSD-систем.</para> - </preface> - - <chapter> - <title>Построение локальной сети</title> - - <para>Хотя программа PPP может, а обычно так и есть, быть сконфигурирована - <emphasis>только</emphasis> для самой FreeBSD-системы, она также может - быть использована в качестве "шлюза" (или "маршрутизатора") между - другими, присоединенными к локальной сети, ресурсами и Интернетом или - другими коммутируемыми службами.</para> - - <sect1> - <title>Типичная топология сети</title> - - <para>В качестве примера, который мы будем использовать в этом - руководстве, рассмотрим типичную локальную сеть, представленную на - рисунке: - - <programlisting> -+---------+ ----> Коммутируемое соединение с Интернет -| FreeBSD | \ (т.е.: NetCom, AOL, AT&T, EarthLink и т.д.) -| |-------- -| "Curly" | -| | -+----+----+ - | -|----+-------------+-------------+----| <-- Сеть Ethernet - | | | - | | | -+----+----+ +----+----+ +----+----+ -| | | | | | -| Win95 | | WFW | | WinNT | -| "Larry" | | "Moe" | | "Shemp" | -| | | | | | -+---------+ +---------+ +---------+ - </programlisting> - </para> - </sect1> - - <sect1> - <title>Параметры локальной сети, принятые в данном руководстве</title> - - <para>Ниже приведены принятые в этом руководстве параметры нашей - локальной сети:</para> - - <para>Имеются в наличии три рабочие станции и сервер, соединенные сетевым - Ethernet-кабелем: - <itemizedlist> - <listitem> - <para>Сервер под управлением FreeBSD ("Curly") с сетевым адаптером - NE-2000, сконфигурированным как 'ed0'</para> - </listitem> - - <listitem> - <para>Рабочая станция под управлением Windows '95 ("Larry") с - "родными" 32-битными драйверами протоколов Microsoft - TCP/IP</para> - </listitem> - - <listitem> - <para>Рабочая станция под управлением Windows for Workgroups - ("Moe") с 16-битными Microsoft TCP/IP-расширениями</para> - </listitem> - - <listitem> - <para>Рабочая станция под управлением Windows NT ("Shemp") с - "родными" 32-битными драйверами протоколов Microsoft - TCP/IP</para> - </listitem> - </itemizedlist> - </para> - - <para>IP-адреса сетевых Ethernet-интерфейсов этой локальной сети взяты из - пула адресов, зарезервированных (по RFC 1918) для использования в - закрытых локальных сетях. Таким образом Вы смело можете использовать - эти же самые адреса в своей локальной сети в любое время, когда - пожелаете. IP-адреса распределены так:</para> - - <informaltable> - <tgroup cols="3"> - <thead> - <row> - <entry>Имя</entry> - <entry>IP-адрес</entry> - <entry>Описание</entry> - </row> - </thead> - <tbody> - <row> - <entry><hostid>Curly</hostid></entry> - <entry><hostid role="ipaddr">192.168.1.1</hostid></entry> - <entry>Система FreeBSD</entry> - </row> - - <row> - <entry><hostid>Larry</hostid></entry> - <entry><hostid role="ipaddr">192.168.1.2</hostid></entry> - <entry>Система Windows '95</entry> - </row> - - <row> - <entry><hostid>Moe</hostid></entry> - <entry><hostid role="ipaddr">192.168.1.3</hostid></entry> - <entry>Система Windows for Workgroups</entry> - </row> - - <row> - <entry><hostid>Shemp</hostid></entry> - <entry><hostid role="ipaddr">192.168.1.4</hostid></entry> - <entry>Система Windows NT box</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>В данном руководстве считается, что модем на FreeBSD-системе - подключен к первому последовательному устройству - ('<filename>/dev/cuaa0</filename>' или '<emphasis - remap="tt">COM1:</emphasis>' как принято в DOS-терминологии).</para> - - <para>И наконец, мы будем считать, что Ваш Интернет-провайдер - автоматически предоставляет IP-адреса как для Вашей машины с - PPP/FreeBSD, так и для своей. (т.е. используются динамические - IP-адреса на обеих сторонах соединения.) Подробнее о конфигурировании - вызывающего PPP-узла Вы сможете прочитать во 2-ом разделе руководства - "Конфигурирование FreeBSD-системы".</para> - </sect1> - </chapter> - - <chapter id="system-config"> - <title>Конфигурирование FreeBSD-системы</title> - - <para>Перед тем как Вы начнете настраивать локальную сеть, Вашей - FreeBSD-системе должны быть известны три основные части - информации:</para> - - <para> - <itemizedlist> - <listitem> - <para>имя узла FreeBSD-системы; в нашем примере - это "Curly",</para> - </listitem> - - <listitem> - <para>конфигурация сети,</para> - </listitem> - - <listitem> - <para>файл <filename>/etc/hosts</filename>, который описывает - соответствия имен и IP-адресов других машин в Вашей локальной - сети.</para> - </listitem> - </itemizedlist> - </para> - - <para>Если Вы выполняли установку FreeBSD, используя сетевое соединение, то - некоторые параметры возможно уже сконфигурированы для Вашей - FreeBSD-системы.</para> - - <para>Даже, если Вы уверены, что FreeBSD-система была правильно - сконфигурирована на момент установки, рекомендую Вам еще раз проверить - правильность этой информации для предотвращения возникновения проблем в - дальнейшем.</para> - - <sect1> - <title>Проверка имени узла FreeBSD-системы</title> - - <para>Возможно, что имя узла FreeBSD-системы уже было определено и - сохранено в процессе первичной установки. Для проверки, что это - действительно так, введите следующую команду:</para> - - <para> - <informalexample> - <screen> -# hostname - </screen> - </informalexample> - </para> - - <para>Появится имя узла FreeBSD-системы. Если имя выглядит корректным - (а это очень субъективно :-) переходите к <xref - linkend="verify-ether-if-config"/>.</para> - - <para>Например, для нашей локальной сети, в результате работы команды - `hostname`, мы бы увидели 'curly.my.domain', если бы имя узла было - установлено правильно в процессе или после установки. (На данном этапе - не сильно обращайте внимание на часть ".my.domain", мы рассмотрим это - позже. Самая важная часть - это имя, которое находится перед первой - точкой.)</para> - - <para>Если же имя узла не было определено в процессе установки FreeBSD - возможно Вы увидите такой ответ 'myname.my.domain`. Тогда Вам - необходимо отредактировать файл <filename>/etc/rc.conf</filename> для - установки имени машины.</para> - - <sect2> - <title>Конфигурирование имени узла FreeBSD-системы</title> - - <para><emphasis><emphasis remap="bf">Памятка: Вы должны быть - зарегистрированы в системе как пользователь 'root' для редактирования - системных конфигурационных файлов!</emphasis></emphasis></para> - - <para><emphasis><emphasis remap="bf">ПРЕДУПРЕЖДЕНИЕ: Если Вы допустите - ошибку при редактировании системных конфигурационных файлов, может - случиться так, что система НЕ СМОЖЕТ ЗАГРУЗИТЬСЯ правильно! Будьте - предельно осторожны!</emphasis></emphasis></para> - - <para>Конфигурационный файл, в котором определяется имя узла - FreeBSD-системы при загрузке называется - <filename>/etc/rc.conf</filename>. Используйте обычный текстовый - редактор ('<emphasis remap="tt">ee</emphasis>') для редактирования - этого файла.</para> - - <para>После того, как вы зарегистрируетесь в системе как пользователь - 'root' загрузите файл <filename>/etc/rc.conf</filename> в редактор, - используя следующую команду: - <informalexample> - <screen> -# ee /etc/rc.conf - </screen> - </informalexample> - </para> - - <para>Используя клавиши управления курсором, перемещайтесь в конец - файла до тех пор, пока не найдете строку, которая определяет имя - узла FreeBSD-системы. По умолчанию, эта строка выглядит так: - <informalexample> - <screen> ---- -### Basic network options: ### -hostname="myname.my.domain" # Set this! ---- - </screen> - </informalexample> - - Внести в эту секцию такие изменения (в нашем примере): - <informalexample> - <screen> ---- -### Basic network options: ### -hostname="curly.my.domain" # Set this! ---- - </screen> - </informalexample> - </para> - - <para>Изменив имя узла, нажмите клавишу 'Esc' для выхода в командное - меню. Выберите пункт "покинуть редактор" и ответьте утвердительно на - запрос "сохранить изменения?".</para> - </sect2> - </sect1> - - <sect1 id="verify-ether-if-config"> - <title>Проверка конфигурации Ethernet-интерфейса</title> - - <para>Напомню Вам, что в данном руководстве подразумевается, что - Ethernet-интерфейс в системе FreeBSD называется '<emphasis - remap="tt">ed0</emphasis>'. Это стандартное название для интерфейсов - NE-1000, NE-2000, WD/SMC (моделей 8003, 8013) и сетевых адаптеров - Elite Ultra (8216).</para> - - <para>Другие модели сетевых адаптеров могут иметь различные имена в - системе FreeBSD. Обратитесь к сборнику часто задаваемых вопросов (FAQ) - по спецификации Вашего сетевого адаптера. Если у Вас возникли - сложности при определении имени устройства для Вашего сетевого - адаптера, обратитесь к FAQ по FreeBSD, найдите правильного имя - устройства и замените его в случае необходимости (т.e. на: '<emphasis - remap="tt">de0</emphasis>', '<emphasis remap="tt">zp0</emphasis>' - и т.д.).</para> - - <para>Как и в случае с именем узла, Ethernet-интерфейс FreeBSD-системы - уже может быть сконфигурирован в процессе установки системы.</para> - - <para>Для вывода конфигурации интерфейсов Вашей FreeBSD-системы (Ethernet - и других), введите следующую команду: - <informalexample> - <screen> -# ifconfig -a - </screen> - </informalexample> - -(Или простым человеческим языком: "Покажи мне <emphasis remap="bf">И</emphasis> -нтер<emphasis remap="bf">Ф</emphasis>ейс <acronym>КОНФИГ</acronym>урацию -для моих сетевых устройств.") </para> - -<para>Пример: -<informalexample> -<screen># ifconfig -a - ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 - inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255 - ether 01:02:03:04:05:06 - lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 - tun0: flags=8050<POINTOPOINT,RUNNING, MULTICAST> mtu 1500 - sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552 - ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 - lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 - inet 127.0.0.1 netmask 0xff000000 -# _</screen> -</informalexample> -</para> - -<para>В этом примере, показаны следующие устройства:</para> - -<para><emphasis remap="tt">ed0:</emphasis> Интерфейс Ethernet</para> - -<para><emphasis remap="tt">lp0:</emphasis> Интерфейс параллельного порта (в -данном руководстве не рассматривается)</para> - -<para><emphasis remap="tt">tun0:</emphasis> "Туннельное" устройство; -<emphasis>Это один из режимов использования ppp!</emphasis></para> - -<para><emphasis remap="tt">sl0:</emphasis> SL/IP устройство (в данном -руководстве не рассматривается)</para> - -<para><emphasis remap="tt">ppp0:</emphasis> Еще одно устройство PPP (для ядра -ppp; в данном руководстве не рассматривается)</para> - -<para><emphasis remap="tt">lo0:</emphasis> Устройство "локальной петли" (в -данном руководстве не рассматривается)</para> - -<para>Как видно из примера, устройство 'ed0' в активном состоянии и запущено. -Параметры устройства: -<orderedlist> - -<listitem> -<para>Его состояние "<acronym>АКТИВНО</acronym>",</para> -</listitem> - -<listitem> -<para>Имеет Интернет- ("<emphasis remap="tt">inet</emphasis>") адрес, (в данном -случае 192.168.1.1)</para> -</listitem> - -<listitem> -<para>Указана допустимая маска подсети ("маска сети"; 0xffffff00 то же самое, -что и 255.255.255.0), and</para> -</listitem> - -<listitem> -<para>Указан допустимый широковещательный адрес (в данном случае 192.168.1.255). -</para> -</listitem> - -</orderedlist> -</para> - -<para>Если же информация для Ethernet-карты выглядит как показано ниже: -<informalexample> -<screen>ed0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 - ether 01:02:03:04:05:06</screen> -</informalexample> - -то она (карта) еще не была сконфигурировна.</para> - -<para>Если конфигурация Ethernet-интерфейса верна, то Вы можете перейти к -<xref linkend="list-lan-hosts"/>.</para> - -<sect2 > -<title>Конфигурирование Ethernet-интерфейса</title> - -<para><emphasis><emphasis remap="bf">Памятка: Вы должны быть зарегистрированы в -системе как пользователь 'root' для редактирования системных конфигурационных -файлов!</emphasis> -</emphasis></para> - -<para><emphasis><emphasis remap="bf">ПРЕДУПРЕЖДЕНИЕ: Если Вы допустите ошибку -при редактировании системных конфигурационных файлов, может так случиться, что -система НЕ СМОЖЕТ ЗАГРУЗИТЬСЯ правильно! Будьте осторожны!</emphasis></emphasis></para> - -<para>Параметры для настройки сетевого интерфейса при загрузке системы находятся -в файле <filename>/etc/rc.conf</filename>. Для редактирования этого файла Вы -можете использовать обычный текстовый редактор ('ee') .</para> - -<para>После того, как вы зарегистрируетесь в системе как пользователь 'root', -загрузите файл <filename>/etc/rc.conf</filename> в редактор, используя -следующую команду:</para> - -<para><command> # ee /etc/rc.conf</command></para> - -<para>Примерно в районе 20-й строки сверху в файле <filename>/etc/rc.conf</filename> -Вы заметите секцию, которая описывает те сетевые интерфейсы, которые будут -задействованы при загрузке системы. В стандартном конфигурационном файле эта -строка выглядит так, как показано ниже:</para> - -<para> -<informalexample> -<screen>network_interfaces="lo0" # List of network interfaces (lo0 is loopback).</screen> -</informalexample> -</para> - -<para>Вам необходимо исправить эту строку, чтобы сообщить FreeBSD о том, что Вы -желаете добавить другое устройство, имеющее имя '<emphasis remap="tt">ed0</emphasis>'. -Измените эту строку так, как показано ниже:</para> - -<para> -<informalexample> -<screen>network_interfaces="lo0 ed0" # List of network interfaces (lo0 is loopback).</screen> -</informalexample> -</para> - -<para>(Обратите внимание на пробел между определениями устройства локальной -петли ("<emphasis remap="tt">lo0</emphasis>") и устройством Ethernet -("<emphasis remap="tt">ed0</emphasis>")! </para> - -<para><emphasis><emphasis remap="bf"> Памятка: Если Ваша Ethernet-карта имеет имя, -отличное от '<emphasis remap="tt">ed0</emphasis>', то вместо него укажите имя, -которое соответствует Вашему устройству.</emphasis></emphasis></para> - -<para>Если Вы устанавливали FreeBSD, используя сетевое соединение, то строка -'<literal>network_interfaces=</literal>' уже должна включать информацию о Вашем -сетевом адаптере. И если это так, то еще раз проверьте правильность установки -имени устройства.</para> - -<para>Установите настройки для Ethernet-устройства ('<emphasis remap="tt">ed0</emphasis>'):</para> - -<para>Под строкой, определяющей активные интерфейсы, находятся строки, которые -определяют текущие настройки для каждого интерфейса. В стандартном файле -<filename>/etc/rc.conf</filename> есть строка, в которой указано:</para> - -<para> -<informalexample> -<screen>ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration. -</screen> -</informalexample> -</para> - -<para>Вам необходимо добавить другую строку, после нее, чтобы определить настройки -для устройства '<emphasis remap="tt">ed0</emphasis>'.</para> - -<para>Если Вы устанавливали FreeBSD, используя сетевое соединение, то строка -'<literal>ifconfig_ed0=</literal>' уже должна присутствовать после определения -локальной петли. Если это так, то проверьте правильность указанных параметров. -</para> - -<para>В нашем примере мы добавим строку сразу после определения устройства -локальной петли, которая будет выглядеть так:</para> - -<para> -<informalexample> -<screen>ifconfig_ed0="inet 192.168.1.1 netmask 255.255.255.0"</screen> -</informalexample> -</para> - -<para>После окончания редактирование файла <filename>/etc/rc.conf</filename> -секция определения и настройки сетевых интерфейсов будет выглядеть примерно -так:</para> - -<para> -<informalexample> -<screen>--- -network_interfaces="ed1 lo0" # List of network interfaces (lo0 is loopback). -ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration. -ifconfig_ed1="inet 192.168.1.1 netmask 255.255.255.0" ----</screen> -</informalexample> -</para> - -<para>Как только все необходимые изменения в файл <filename>/etc/rc.conf</filename> -будут внесены, нажмите клавишу 'Esc' для вызова меню. Выберите "покинуть -редактор" и подтвердите запрос "сохранить изменения?".</para> - -</sect2> -</sect1> - -<sect1> -<title>Включение режима отправки пакетов</title> - -<para>По умолчанию FreeBSD-система не отправляет IP-пакеты между различными -сетевыми интерфейсами. Другими словами, функции маршрутизации (также известные -как функции шлюза) отключены.</para> - -<para>Если Вы предполагаете использовать FreeBSD-систему как самостоятельную -рабочую станцию Интернет, но не как шлюз между узлами локальной сети и -Вашим Интернет-провайдером , то можете пропустить этот раздел и перейти к -<xref linkend="list-lan-hosts"/>.</para> - -<para>Если же Вы предполагаете использовать программу PPP на FreeBSD-машине как -маршрутизатор для рабочих станций Вашей локальной сети, то Вам необходимо -включить режим отправки IP-пакетов.</para> - -<para>Для включения режима отправки IP-пакетов Вам необходимо отредактировать -файл <filename>/etc/rc.conf</filename>.</para> - - <para>Этот файл содержит переопределения параметров, указанных в - стандартном файле <filename>/etc/defaults/rc.conf</filename>. За - установку шлюза по умолчанию отвечает строка</para> - - <programlisting>gateway_enable="NO"</programlisting> - - <para>в этом файле. Чтобы включить режим отправки IP-пакетов исправьте - строку как показано</para> - - <programlisting>gateway_enable="YES"</programlisting> - - <para><filename>/etc/rc.conf</filename>.</para> - -<para><emphasis><emphasis remap="bf">ПРИМЕЧАНИЕ: Строка может уже выглядеть как -'<literal>gateway_enable="YES"</literal>', если режим отправки IP-пакетов был -включен при установке FreeBSD-системы.</emphasis></emphasis></para> - -</sect1> - -<sect1 id="list-lan-hosts"> -<title>Создание списка всех узлов локальной сети (<filename>/etc/hosts</filename>)</title> - -<para>Заключительным этапом при конфигурировании локальной сети является создание -списка имен и IP-адресов всех систем, которые подключены к Вашей локальной сети. -Этот список содержится в файле '<filename>/etc/hosts</filename>'.</para> - -<para>Стандартная версия этого файла содержит только одну строку и одно имя. -Это имя и адрес устройства локальной петли ('lo0'). По сетевым соглашениям -принято, что это устройство имеет имя "localhost" и всегда имеет IP-адрес -127.0.0.1. <xref linkend="verify-ether-if-config"/>.</para> - - -<para>Чтобы отредактировать файл <filename>/etc/hosts</filename> введите -следующую команду: -<informalexample> -<screen> # ee /etc/hosts </screen> -</informalexample> -</para> - -<para>Опустите курсор в конец файла (обращайте внимание на комментарии; они -содержат много полезной информации!) и введите, используя пример нашей локальной -сети, следующие IP-адреса и имена: -<informalexample> -<screen> -192.168.1.1 curly curly.my.domain # Система FreeBSD -192.168.1.2 larry larry.my.domain # Система Windows '95 -192.168.1.3 moe moe.my.domain # Система Windows for Workgroups -192.168.1.4 shemp shemp.my.domain # Система Windows NT</screen> -</informalexample> -</para> - -<para>(Строка '<emphasis remap="tt">127.0.0.1 localhost</emphasis>' не -нуждается в изменениях.)</para> - -<para>Как только все необходимые изменения в файл <filename>/etc/hosts</filename> -будут внесены, нажмите клавишу 'Esc' для вызова меню. Выберите "покинуть -редактор" и подтвердите запрос "сохранить изменения?".</para> - -</sect1> - -<sect1> -<title>Тестирование FreeBSD-системы</title> - -<para>Поздравляем! FreeBSD-система сконфигурирована как присоединенная к сети -Unix-система! Если Вы вносили изменения в файл <filename>/etc/rc.conf</filename>, -то Вам возможно понадобиться перезагрузить Вашу FreeBSD-систему. Этим вы -"убьете двух зайцев": -<itemizedlist> - -<listitem> -<para>вступят в силу изменения, внесенные в конфигурацию интерфейсов, и</para> -</listitem> - -<listitem> -<para>вы проверите, что система перезапускается без всяких явных ошибок в -конфигурации.</para> -</listitem> - -</itemizedlist> -</para> - -<para>После перезагрузки системы рекомендуется проверить сетевые интерфейсы. -</para> - - -<sect2> -<title>Проверка функционирования устройства локальной петли</title> - -<para>Для проверки правильности конфигурации устройства локальной петли, -зарегистрируйтесь в системе как пользователь 'root' и введите: -<informalexample> -<screen># ping localhost</screen> -</informalexample> -</para> - -<para>Вы должны увидеть следующие -<informalexample> -<screen># ping localhost -PING localhost.my.domain. (127.0.0.1): 56 data bytes -64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=0.219 ms -64 bytes from 127.0.0.1: icmp_seq=1 ttl=255 time=0.287 ms -64 bytes from 127.0.0.1: icmp_seq=2 ttl=255 time=0.214 m -[...]</screen> -</informalexample> - -сообщения, которые будут появляться до тех пор, пока Вы не нажмете комбинацию -клавиш Ctrl-C.</para> - -</sect2> - -<sect2> -<title>Проверка функционирования Ethernet-устройства</title> - -<para>Для проверки правильности конфигурации Ethernet-устройства, введите: -</para> - -<para> -<informalexample> -<screen># ping curly</screen> -</informalexample> -</para> - -<para>Вы должны увидеть следующие -<informalexample> -<screen># ping curly -PING curly.my.domain. (192.168.1.1): 56 data bytes -64 bytes from 192.168.1.1: icmp_seq=0 ttl=255 time=0.219 ms -64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=0.200 ms -64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=0.187 ms -[...]</screen> -</informalexample> - -сообщения.</para> - -<para>Самое главное, на что Вы должны обратить внимание в этих двух примерах, -это то, что имена (loopback и curly) должны корректно коррелировать с -присвоенными им IP-адресами (127.0.0.1 и 192.168.1.1). Это будет гарантом того, -что файл <filename>/etc/hosts</filename> не содержит ошибок.</para> - -<para>Если же IP-адрес узла "curly" не соответствует значению 192.168.1.1 или -IP-адрес узла "localhost" не соответствует значению 127.0.0.1, вернитесь к -<xref linkend="list-lan-hosts"/> и проверьте записи в файле -'<filename>/etc/hosts</filename>'.</para> - -<para>Если имена и адреса, выдаваемые в результате выполнения команды PING, -соответствуют действительности, но выдаются какие-то ошибки из-за того, что -что-то упущено в конфигурации интерфейса, то вернитесь к -<xref linkend="system-config"/> и проверьте все с самого начала.</para> - -<para>После того, как все будет окончательно проверено, можете приступить к -следующему разделу.</para> - -</sect2> -</sect1> -</chapter> - -<chapter> -<title>Конфигурирование PPP-соединения</title> - -<para>PPP-драйвер поддерживает два основных режима функционирования: -"Интерактивный" (или "Диалоговый") и "Автоматический".</para> - -<para>В интерактивном режиме Вы:</para> - -<para> -<itemizedlist> - -<listitem> -<para>вручную устанавливаете соединение с Вашим Интернет-провайдером,</para> -</listitem> - -<listitem> -<para>просматриваете сайты, перемещаетесь по Интернет, передаете файлы, почту -и т.д., и т.п...,</para> -</listitem> - -<listitem> -<para>вручную "разрываете" соединение с Вашим Интернет-провайдером.</para> -</listitem> - -</itemizedlist> -</para> - -<para>В автоматическом режиме, программа PPP в фоне следит за процессами, -происходящими в системе FreeBSD, и автоматически устанавливает соединение с -Интернет-провайдером, и также автоматически "разрывает" его при необходимости, -что делает Интернет обычным элементом Вашей локальной сети.</para> - -<para>В этом разделе мы будем рассматривать конфигурирование обоих режимов -работы, но больше внимания уделим конфигурированию ppp-среды для -функционирования в автоматическом режиме.</para> - -<sect1> -<title>Создание копий оригинальных конфигурационных файлов PPP</title> - - <note> - <para>В большинстве последних версий FreeBSD в каталоге - <filename>/usr/share/examples/ppp</filename> присутствуют примеры - конфигурационных файлов, так что этот процесс необязателен.</para> - </note> - -<para>Однако, перед внесением любых изменений в файлы, которые будут -использоваться программой PPP, рекомендуется сделать копии стандартных файлов, -которые были созданы в процессе установки FreeBSD-системы.</para> - -<para>Зарегистрируйтесь в системе как пользователь 'root' и выполните -следующие действия:</para> - -<para>войдите в каталог '<filename>/etc</filename>:</para> - -<para><emphasis remap="tt"># cd /etc</emphasis></para> - -<para>сделайте копии оригинальных файлов в каталоге 'ppp':</para> - -<para><emphasis remap="tt"># cp -R ppp ppp.ORIGINAL</emphasis></para> - -<para>После чего в каталоге '<filename>/etc</filename>' Вы должны увидеть два -подкаталога '<emphasis remap="tt">ppp</emphasis>' и -'<filename>ppp.ORIGINAL</filename>' .</para> - -</sect1> - -<sect1> -<title>Создание собственных конфигурационных файлов PPP</title> - -<para>По умолчанию, в процессе установки FreeBSD создается несколько примеров -конфигурационных файлов в каталогах <filename>/etc/ppp</filename> и -<filename>/usr/share/examples/ppp</filename>. Пожалуйста выберите время для -ознакомления с этими файлами; они были взяты с работающих систем и полное -представление об особенностях и возможностях программы PPP.</para> - -<para>Мы <emphasis>настоятельно</emphasis> рекомендуем Вам изучить эти файлы и -использовать их при настройке собственной конфигурации по мере необходимости. -</para> - -<para>Более подробную информацию о программе `ppp` Вы можете получить, прочитав -man-страницу справочного руководства по ppp: -<informalexample> -<screen># man ppp</screen> -</informalexample> -</para> - -<para>Более подробную информацию о языке скриптов `chat`, используемого -программой PPP, Вы можете получить, прочитав man-страницу справочного -руководства по chat: -<informalexample> -<screen># man chat</screen> -</informalexample> -</para> - -<para>В этом разделе описано рекомендуемое содержание конфигурационных файлов -программы PPP.</para> - -<sect2> -<title>Файл '<filename>/etc/ppp/ppp.conf</filename>'</title> - -<para>В файле '<filename>/etc/ppp/ppp.conf</filename>' содержится информация и -настройки, необходимые для установки PPP-соединения. В этом файле может -содержаться более одной конфигурации. Более детальное описание содержания и -синтаксиса этого файла Вы можете получить в <ulink -url="../handbook/index.html">Руководстве по FreeBSD</ulink>.</para> - -<para>Этот раздел описывает только минимальную конфигурацию для получения -нормального "рабочего" соединения.</para> - -<para>Ниже приведен пример файла /etc/ppp/ppp.conf, который будет использоваться -для обеспечения Интернет-шлюза для нашей локальной сети: - -<note> - <para>Полное описание синтаксиса для <filename>/etc/ppp/ppp.conf</filename> - Вы можете найти в странице Справочника &man.ppp.8;. В частности - обратите внимание, что все строки которые не являются метками - заканчивающимися двоеточием (например <literal>default:</literal>, - <literal>interactive:</literal>), или командой начинающейся с - <quote>!</quote> (например <literal>!include</literal>), или - комментарием <emphasis>обязаны</emphasis> иметь отступ в начале - строки (indented)!</para> -</note> - -<programlisting>############################################################################### -# Конфигурационный файл PPP ('/etc/ppp/ppp.conf') -# -# Стандартные установки; они всегда выполняются при запуске программы PPP -# и применяются для конфигурации всех систем. -############################################################################### -default: - set device /dev/cuaa0 - set speed 57600 - disable pred1 - deny pred1 - disable lqr - deny lqr - set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0 OK-AT-OK\\dATDT\\T TIMEOUT 40 CONNECT" - set redial 3 10 -############################################################################### -# -# Для интерактивного режима используйте следующую конфигурацию: -# -# Формат вызова `ppp -alias interactive' -# -############################################################################### -interactive: - set authname Ваш_логин_на_удаленную_систему - set authkey Ваш_пароль_на_удаленную_систему - set phone Телефон_для_вызова_системы - set timeout 300 - set openmode active - accept chap -############################################################################### -# -# Для режима с дозвоном по необходимости (или автоматического) -# используйте следующую конфигурацию: -# -# Формат вызова: `ppp -auto -alias demand' -# -############################################################################### -demand: - set authname Ваш_логин_на_удаленную_систему - set authkey Ваш_пароль_на_удаленную_систему - set phone Телефон_для_вызова_системы - set timeout 300 - set openmode active - accept chap - set ifaddr 127.1.1.1/0 127.2.2.2/0 255.255.255.0 - add 0 0 127.2.2.2 -############################################################################### -# Конец файла /etc/ppp/ppp.conf</programlisting> - -Этот файл, взятый без изменений с работающей системы, содержит три -взаимосвязанные конфигурационные секции:</para> - -<sect3> -<title>"<emphasis remap="tt">Стандартная</emphasis>" секция</title> - -<para>'<emphasis remap="tt">Стандартная</emphasis>'секция содержит параметры и -настройки, используемые во всех остальных секциях этого файла. Эта секция -неявно добавляется в каждую секцию.</para> - -<para>В этой секции можно размещать "стандартные глобальные настройки", которые -применяются для всех сессий дозвона; например, настройки модема и префиксы -дозвона, которые обычно не изменяются, независимо от того с системой какого -типа будет произведено соединение.</para> - -<para>Ниже приведено описание каждой строки в "стандартной" секции примера файла -'<filename>/etc/ppp/ppp.conf</filename>': -<informalexample> -<screen>set device /dev/cuaa0</screen> -</informalexample> - -Эта строка сообщает программе PPP, что ей необходимо использовать первый -последовательный порт. В системе FreeBSD устройство '<filename>/dev/cuaa0</filename>' -- это тот же самый порт, который известен под именем "<emphasis remap="tt">COM1:</emphasis>" -в системах DOS, Windows, Windows 95 и т.д...</para> - -<para>Если Ваш модем подключен к порту <emphasis remap="tt">COM2:</emphasis>, то -необходимо указать значение '<filename>/dev/cuaa1</filename>, -если <emphasis remap="tt">COM3:</emphasis> - '<filename>/dev/cuaa2</filename>'. -</para> - -<para> -<informalexample> -<screen>set speed 57600 </screen> -</informalexample> -</para> - -<para>Эта строка устанавливает скорость передачи и приема для соединения между -последовательным портом и модемом. И хотя модем, используемый в данной -конфигурации, имеет максимальную скорость 28.8К, устанавливая эту величину в -значение 57600 мы позволим последовательному соединению работать на более -высокой скорости, которая будет соответствовать высокой пропускной способности -канала, в результате использования сжатия данных, встроенного в последние -модели модемов.</para> - -<para>Если у вас возникнут проблемы при установке модемного соединения, -попробуйте изменить эту величину на значение 38400 или, еще меньше, на -19200.</para> - -<para> -<informalexample> -<screen>disable pred1 -deny pred1</screen> -</informalexample> -</para> - -<para>Эти две строки выключают режим сжатия "CCP/Predictor type 1", встроенный -в программу PPP. Текущая версия `ppp` поддерживает сжатие данных в соответствии -с требованиями стандартов сети Интернет. К сожалению, многие Интернет-провайдеры -используют оборудование, которое не поддерживает эту возможность. Большинство -модемов выполняют сжатие "на лету", однако Вы не потеряете многого в -производительности системы, выключив этот режим на своем узле и запретив -удаленному узлу принуждать Вас к его поддержке.</para> - -<para> -<informalexample> -<screen>disable lqr -deny lqr</screen> -</informalexample> -</para> - -<para>Эти две строки контролируют функции "отчета о качестве линии", которые -являются частью полной спецификации протокола Point-to-Point (PPP). -(За более подробной информацией обратитесь к RFC-1989.)</para> - -<para>Первая строка "disable lqr" сообщает программе PPP не пытаться сообщать -о состоянии качества линии устройству на удаленном узле.</para> - -<para>Вторая строка "deny lqr" сообщает программе PPP запретить любые попытки -удаленного узла сообщать о качестве линии.</para> - -<para>Поскольку современные модемы имеют встроенную автоматическую коррекцию -ошибок и детектирование, а режим сообщения о качестве линии в продуктах многих -производителей применяется не полностью, то включить эти две строки в -стандартную конфигурацию будет очень не плохо с точки зрения безопасности -системы.</para> - -<para> -<informalexample> -<screen>set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0 -OK-AT-OK\\dATDT\\T TIMEOUT 40 CONNECT"</screen> -</informalexample> -</para> - -<para><emphasis>ПРИМЕЧАНИЕ: (Этот оператор необходимо ввести одной строкой; -все переносы строк, которые Вы встретите в этом документе должны -игнорироваться.)</emphasis></para> - -<para>Эта строка сообщает программе PPP как работать с модемом и определяет -некоторые устаревшие директивы для его управления: -<itemizedlist> - -<listitem> -<para>Попытки дозвона ошибочны, если модем вернул код "BUSY" ("ЗАНЯТО"),</para> -</listitem> - -<listitem> -<para>Попытки дозвона ошибочны, если модем вернул код "NO CARRIER" ("НЕТ НЕСУЩЕЙ"),</para> -</listitem> - -<listitem> -<para>Программа PPP ожидает завершение каждого последующего события в течение -5-секундного интервала: -<itemizedlist> - -<listitem> -<para>Первоначально программа PPP не ожидает от модема никаких событий -(определяется выше указанием символов \"\" в операторе dial)</para> -</listitem> - -<listitem> -<para>Программа будет посылать модему строку инициализации "ATE1Q0M0" и ждать -ответа "OK". Если ответ не будет получен, то программа будет вынуждена послать -на модем команду "AT" и снова ожидать ответа "OK", </para> -</listitem> - -<listitem> -<para>Перед посылкой в модем строки дозвона программа вынуждена ждать около -1 секунды (определено символами "\\d" в операторе dial). Часть выражения "ATDT" -есть стандартный модемный префикс для дозвона с использованием тонового набора -номера; если Ваша телефонная линия не поддерживает тоновый набора, замените -"ATDT" на "ATDP". Символы "\\T" определяют место расположения для реального -номера телефона (который будет автоматически вставляться из параметра -"set dial").</para> -</listitem> - -</itemizedlist> -</para> -</listitem> - -<listitem> -<para>И наконец, перед тем как закончится максимальный тайм-аут в 40 секунд, -программа PPP ожидает "увидеть" код "CONNECT"("СОЕДИНЕНИЕ"), возвращаемый -модемом.</para> -</listitem> - -</itemizedlist> -</para> - -<para>Ошибка в любой точке этого "диалога" будет интерпретироваться как ошибка -дозвона и программа PPP откажет в соединении.</para> - -<para>(Более детальную информацию по языку мини-скриптов, используемого -дозвонщиком PPP можно получить, обратившись к man-странице справочного -руководства по "chat".)</para> - -<para> -<informalexample> -<screen>set redial 3 10</screen> -</informalexample> - -Эта строка определяет количество попыток дозвона (максимум 3), используемых -программой PPP в случае, если соединение не может быть установлено сразу. -Интервал между попытками равен 10 секундам.</para> - -</sect3> - -<sect3> -<title>"<emphasis remap="tt">Интерактивная</emphasis>" секция</title> - -<para>'<emphasis remap="tt">Интерактивная:</emphasis>' секция содержит параметры и -настройки, используемые для установки "интерактивных" PPP-сессий с определенными -удаленными системами. В настройки этой секции будут автоматически добавлены -строки, находящиеся в "стандартной" секции.</para> - -<para>В примере, используемом в этой секции данного руководства подразумевается, -что Вы будете соединяться с удаленной системой, которая "понимает" как -идентифицировать пользователя без использования языка скриптов. То есть, в этом -примере используется протокол CHAP для установки соединения.</para> - -<para>Считается, что если дозвонщик системы Windows '95 может установить -соединение простым нажатием кнопки "Подключиться", то такой пример конфигурации -должен работать на "ура".</para> - -<para>С другой стороны, когда Вы соединяетесь с Вашим Интернет-провайдером, -используя механизм дозвона Microsoft Windows '95, Вам необходимо использовать -инструментарий создания скриптов дозвона из пакета Microsoft Plus! или Вы -должны включить флажок "Вывести окно терминала после соединения" в свойствах -соединения для Windows '95, а затем Вам необходимо заглянуть в примеры -конфигурационных файлов PPP и справочную информацию по ppp, для того, чтобы -написать скрипты "ожидание / ответ" для установки соединения с Вашим -Интернет-провайдером. Команда "set login" используется как раз для этой -цели.</para> - -<para>А еще лучше, найдите такого Интернет-провайдера, который знает как -обеспечить PAP- или CHAP-идентификацию!</para> - -<para>Примеры конфигурации, показанные здесь были успешно использованы для -соединения с: -<itemizedlist> - -<listitem> -<para>Various Shiva LanRovers</para> -</listitem> - -<listitem> -<para>IBM Network (<ulink url="http://www.ibm.net">http://www.ibm.net</ulink>)</para> -</listitem> - -<listitem> -<para>AT&T WorldNet (<ulink url="http://att.com/worldnet">http://att.com/worldnet</ulink>)</para> -</listitem> - -<listitem> -<para>Erol's (<ulink url="http://www.erols.com">http://www.erols.com</ulink>)</para> -</listitem> - -</itemizedlist> -</para> - -<para>Ниже приведено описание каждой строки в "интерактивной" секции примера -файла '<filename>/etc/ppp/ppp.conf</filename>':</para> - -<para> -<informalexample> -<screen>set authname Ваш_логин_на_удаленную_систему</screen> -</informalexample> - -Эта строка определяет имя, которое будет использовано для регистрации на -удаленной системе.</para> - -<para> -<informalexample> -<screen>set authkey Ваш_пароль_на_удаленную_систему</screen> -</informalexample> - -Эта строка определяет пароль для регистрации на удаленной системе.</para> - -<para> -<informalexample> -<screen>set phone Телефон_для_вызова_системы</screen> -</informalexample> - -Эта строка определяет номер телефона, по которому будет производиться вызов -удаленной системы. Если у Вас установлена своя мини-АТС перед номером телефона -необходимо указать цифру '<emphasis remap="tt">9</emphasis>'.</para> - -<para> -<informalexample> -<screen>set timeout 300</screen> -</informalexample> - -Эта строка сообщает программе PPP, чтобы она автоматически "вешала" трубку, -если в течение 300 секунд (5 минут) по каналу не производится передача данных. -Вы можете указать необходимый интервал, который удовлетворяет Вашим требованиям. -</para> - -<para> -<informalexample> -<screen>set openmode active</screen> -</informalexample> - -Эта строка сообщает программе PPP о том, что как только модемы произведут -соединение, она должна немедленно пытаться произвести настройку соединения. -Некоторые удаленные узлы делают это автоматически, некоторые нет. Установка -этого параметра инструктирует Вашу сторону соединения взять на себя инициативу -и пытаться настроить соединение.</para> - -<screen>accept chap</screen> - -<para>Эта строка сообщает программе PPP использовать "Challenge-Handshake -Authentication Protocol" ("протокол аутентификации запрос-рукопожатие") для -Вашей аутентификации. Значения идентификатора пользователя и пароля, -передаваемые между локальной и удаленной стороной, берутся из полей 'authname' -и 'authkey', указанных выше.</para> - -</sect3> - -<sect3> -<title>Секция "<emphasis remap="tt">запрос</emphasis>"</title> - -<para>"<emphasis remap="tt">Demand</emphasis>"-секция содержит параметры и -настройки, используемые для установки PPP-соединения "с вызовом по требованию" -с определенной удаленной системой. Настройки этой секции также будут включать -строки из "стандартной" секции, которые будут включены сюда автоматически. -</para> - -<para>За исключением двух последних линий эта секция полностью идентична -конфигурационной секции, которая определяет "интерактивную" конфигурацию.</para> - -<para>Как было замечено раньше, примеры, находящиеся в этом разделе данного -руководства подразумевают, что Вы соединяетесь с удаленной системой, которая -понимает как использовать протокол CHAP для установки соединения.</para> - -<para>Ниже приведено описание каждой строки секции "demand" в примере файла -'<filename>/etc/ppp/ppp.conf</filename>':</para> - -<para> -<informalexample> -<screen>set authname Ваш_логин_на_удаленную_систему</screen> -</informalexample> - -Эта строка определяет имя, которое будет использовано для регистрации на -удаленной системе.</para> - -<para> -<informalexample> -<screen>set authkey Ваш_пароль_на_удаленную_систему</screen> -</informalexample> - -Эта строка определяет пароль, который будет использован для регистрации на -удаленной системе.</para> - -<para> -<informalexample> -<screen>set phone Телефон_для_вызова_удаленной_системы</screen> -</informalexample> - -Эта строка определяет номер телефона, по которому будет производиться вызов -удаленной системы.</para> - -<para> -<informalexample> -<screen>set timeout 300</screen> -</informalexample> -</para> - -<para>Эта строка сообщает программе PPP, чтобы она автоматически "вешала" -трубку, если в течение 300 секунд (5 минут) по каналу не производится передача -данных. Вы можете указать необходимый интервал, который удовлетворяет Вашим -требованиям.</para> - -<para> -<informalexample> -<screen>set openmode active</screen> -</informalexample> -</para> - -<para>Эта строка сообщает программе PPP о том, что как только модемы произведут соединение, -она должна немедленно пытаться произвести настройку соединения. Некоторые -удаленные узлы делают это автоматически, некоторые нет. Установка этого -параметра инструктирует Вашу сторону соединения взять на себя инициативу и -пытаться настроить соединение.</para> - -<para> -<informalexample> -<screen>accept chap</screen> -</informalexample> -</para> - -<para>Эта строка сообщает программе PPP использовать "Challenge-Handshake -Authentication Protocol" ("протокол аутентификации запрос-рукопожатие") для -Вашей аутентификации. Значения идентификатора пользователя и пароля, -передаваемые между локальной и удаленной стороной, берутся из полей 'authname' -и 'authkey', указанных выше.</para> - -<para> -<informalexample> -<screen>set ifaddr 127.1.1.1/0 127.2.2.2/0 255.255.255.0</screen> -</informalexample> -</para> - -<para>Эта команда устанавливает пару "фальшивых" IP-адресов для локальной и -удаленной сторон PPP-соединения. Она инструктирует программу PPP создать -IP-адрес 127.1.1.1 для локальной стороны '<emphasis remap="tt">tun0</emphasis>' -(туннельного) устройства и 127.2.2.2 для удаленной стороны. Добавление -'<filename>/0</filename>' к каждому адресу сообщает программе PPP, что в этих -адресах нет значимых битов и они могут (и фактически должны!) быть -переданы между локальной и удаленной системами, когда соединение установилось. -Строка 255.255.255.0 сообщает программе PPP какую маску подсети применять для -этих псевдо-интерфейсов.</para> - -<para>Запомните, мы считаем, что Ваш Интернет-провайдер предоставил Вам -IP-адреса для обеих сторон соединения! Если Ваш Интернет-провайдер присвоил Вам -определенный IP-адрес, то Вы обязаны при конфигурации Вашей системы ввести его -здесь <emphasis>вместо</emphasis> адреса <emphasis remap="tt">127.1.1.1 -</emphasis>.</para> - -<para>К слову, если Ваш Интернет-провайдер сообщил Вам определенный IP-адрес, -который он использует на своей стороне, Вы обязаны ввести этот адрес здесь -<emphasis>вместо</emphasis> адреса <emphasis remap="tt">127.2.2.2</emphasis>. -</para> - -<para>В обоих случаях, возможно хорошей идеей будет оставить символы -'<filename>/0</filename>' в конце каждого адреса. Это дает программе PPP -возможность изменять адрес(а) соединения, если это будет -<emphasis>необходимо</emphasis>.</para> - -<para> -<informalexample> -<screen>add 0 0 127.2.2.2</screen> -</informalexample> -</para> - -<para>Эта последняя строка сообщает программе PPP, что она должна добавить -маршрут по умолчанию для IP-трафика, который указывает на (фальшивый) IP-адрес -системы Интернет-провайдера.</para> - -<para><emphasis><emphasis remap="bf">Примечание: Если Вы используйте определенный -Вашим Интернет-провайдером адрес вместо <emphasis remap="tt">127.2.2.2</emphasis> -в предыдущей строке, используйте этот же номер и здесь, вместо -<emphasis remap="tt">127.2.2.2</emphasis></emphasis></emphasis>.</para> - -<para>Добавив этот "фальшивый" маршрут для IP-трафика, программа PPP получает -возможность в момент простоя: -<itemizedlist> - -<listitem> -<para>Принимать пакеты, которые FreeBSD-система уже не знает куда отправлять, -</para> -</listitem> - -<listitem> -<para>Устанавливать соединение с Интернет-провайдером -"<emphasis>на лету</emphasis>",</para> -</listitem> - -<listitem> -<para>Переконфигурировать IP-адреса локальной и удаленной сторон соединения, -</para> -</listitem> - -<listitem> -<para>Отправлять пакеты между Вашей рабочей станцией и Интернет-провайдером -</para> -</listitem> - -</itemizedlist> - -автоматически!</para> - -<para>Как только интервал времени (в секундах), указанный в качестве тайм-аута -в "стандартной" секции, истечет и в течение этого промежутка времени трафик -TCP/IP будет равен нулю, программа PPP будет автоматически закрывать соединение -(попросту говоря "класть" трубку) и процесс будет повторяться заново.</para> - -</sect3> -</sect2> - -<sect2> -<title>Файл '<filename>/etc/ppp/ppp.linkup</filename>'</title> - -<para>Другие файлы, необходимые для полной конфигурации PPP находятся в -'<filename>/etc/ppp/ppp.linkup</filename>'. Этот файл содержит инструкции -для функционирования программы PPP после того как коммутируемое соединение будет -установлено.</para> - -<para>В случае использования конфигурации "дозвона при необходимости" программа -PPP будет вынуждена удалить маршрут по умолчанию, который был установлен для -удаленной стороны соединения и указывал на фальшивый адрес (127.2.2.2 в нашем -примере из предыдущего раздела) и установить новый маршрут по умолчанию, -который указывает на реальный IP-адрес удаленной машины (который будет опознан -в процессе настройки коммутируемого соединения).</para> - -<para>Демонстрационный файл '<filename>/etc/ppp/ppp.linkup</filename>': -<informalexample> -<screen>#########################################################################= - -# Файл установки соединений PPP ('/etc/ppp/ppp.linkup') -# -# Этот файл обрабатывается после того, как PPP установит сетевое соединение. -# -# Обработка этого файла производится в следующем порядке. -# -# 1) Сначала, производится поиск присвоенного нам IP-адреса и выполняются -# связанные с этим команды. -# -# 2) Если IP-адрес не найден, то производится поиск имени, определенного -# во время запуска PPP и выполняются связанные с этим команды. -# -# 3) Если не найдено ничего из выше перечисленного выше, то выполняются -# команды 'MYADDR:'. -# -##############################################################################= -# -# Эта секция используется в конфигурации "demand" в файле /etc/ppp/ppp.conf: -demand: - delete ALL - add 0 0 HISADDR -# -# Все другие конфигурации в файле /etc/ppp/ppp.conf используют это: -# -MYADDR: - add 0 0 HISADDR -############################################################################## -# Конец файла /etc/ppp/ppp.linkup</screen> -</informalexample> - -Заметьте, что секция, имеющая название "demand:" в этом файле идентична -имени конфигурации, используемому в файле '<filename>/etc/ppp/ppp.conf</filename>'. -Эта секция сообщает программе PPP о том, что как только соединение будет -установлено, с использованием этой конфигурации, она должна: -<orderedlist> - -<listitem> -<para>Удалить любую информацию об IP-маршрутизации, которую создала программа -PPP</para> -</listitem> - -<listitem> -<para>Добавить маршрут по умолчанию, указывающий на реальный IP-адрес удаленной -стороны.</para> -</listitem> - -</orderedlist> -</para> - -<para>Критичным моментом является то, что те конфигурации в файле -'<filename>/etc/ppp/ppp.conf</filename>', которые включают операторы -'<emphasis remap="tt">set ifaddr</emphasis>' и -'<emphasis remap="tt">add 0 0</emphasis>' (т.e. настройки, используемые для -конфигурацию "дозвон при необходимости") выполняют команды "delete ALL" и -"add 0 0 HISADDR" в файле <filename>/etc/ppp/ppp.linkup</filename>.</para> - -<para><emphasis><emphasis remap="bf">Это механизм, который управляет -действительной конфигурацией соединения.</emphasis></emphasis></para> - -<para>Все конфигурации явно не указанные в файле -<filename>/etc/ppp/ppp.linkup</filename> будут использовать все команды, -указанные в секции "MYADDR:" этого файла. Эту секцию будут считывать -конфигурации без "дозвона при необходимости" (такие как в нашем -"интерактивном:" примера). Эта секция просто добавляет маршрут по умолчанию -на реальный адрес Интернет-провайдера (на удаленной стороне).</para> - -</sect2> -</sect1> - -<sect1> -<title>IP-совмещение</title> - -<para>Все этапы конфигурирования, которые описанные ниже так или иначе -относятся к любой FreeBSD-системе, которая будет использоваться для соединения -с Интернет-провайдером по коммутируемому каналу.</para> - -<para>Если, читая это руководство, Вы преследуете одну единственную цель - -подключить Вашу FreeBSD-систему к Интернету, используя ppp, Вы можете перейти -сюда <xref linkend="testing-the-network"/>.</para> - -<para>Одна из притягивающих особенностей программы PPP в режиме "дозвона при -необходимости" это ее возможность маршрутизировать IP-трафик между другими -системами в локальной сети автоматически. Эта особенность известна под разными -названиями: "<emphasis>IP-совмещение</emphasis>", -"<emphasis>трансляция сетевых адресов (NAT)</emphasis>", -"<emphasis>Маскарад адресов</emphasis>" или -"<emphasis>Прозрачное проксирование</emphasis>".</para> - -<para>Несмотря на терминологию, этот режим, однако, не является автоматическим. -Если программа PPP запущена нормально, то она не будет отправлять пакеты между -интерфейсами локальной сети и коммутируемым соединением. Фактически, только -FreeBSD-система имеет связь с Интернет-провайдером; другие же рабочие станции -не могут "совместно использовать" это же самое соединение.</para> - -<para>Например, если программа запускается одной из указанных ниже команд: -</para> - -<para><emphasis remap="tt"># ppp interactive (Интерактивный режим)</emphasis> -</para> - -<para> или</para> - -<para><emphasis remap="tt"># ppp -auto demand (Режим дозвона при необходимости), -</emphasis></para> - -<para>то система будет функционировать как рабочая станция Internet -<emphasis>только</emphasis> на FreeBSD-системе.</para> - -<para>Для запуска программы PPP как шлюза между ресурсами локальной сети и -Интернет, должна быть использована одна из ниже приведенных команд:</para> - -<para><emphasis remap="tt"># ppp -alias interactive (Интерактивный режим) -</emphasis></para> - -<para> или</para> - -<para><emphasis remap="tt"># ppp -auto -alias demand (Режим дозвона при -необходимости)</emphasis></para> - -<para>Или же Вы можете использовать команду -<emphasis remap="tt">``alias enable yes''</emphasis> в конфигурационном -файле программы PPP. (За более подробной информацией обратитесь к man-странице -справочного руководства).</para> - -<para>Имейте это в виду, если Вы собираетесь перейти к -<xref linkend="config-window-system"/>.</para> - -</sect1> -</chapter> - -<chapter id="config-window-system"> -<title>Конфигурирование Windows-систем</title> - -<para>Как было сказано в разделе 1, наша локальная сеть состоит из одной -FreeBSD-системы ("Curly"), которая функционирует как шлюз (или маршрутизатор) -между локальной сетью, содержащей два различных типа рабочих Windows-станций. -Для того, чтобы узлы локальной сети могли использовать "Curly" в качестве -маршрутизатора, они должны быть правильно сконфигурированы. Обратите внимание, -что этот раздел не объясняет как конфигурировать рабочие станции Windows для -коммутируемого сетевого взаимодействия. Если Вам необходимо более подробное -объяснение этой процедуры, я рекомендую Вам обратиться к -<ulink url="http://www.aladdin.co.uk/techweb">http://www.aladdin.co.uk/techweb</ulink>. -</para> - -<sect1> -<title>Конфигурирование Windows '95</title> - -<para>Процесс конфигурирования Windows '95 для функционирования в качестве -присоединенного к локальной сети ресурса относительно прост. Конфигурация сети -Windows '95 должна быть немного изменена для использования системы FreeBSD в -качестве шлюза по умолчанию к Вашему Интернет-провайдеру. Для этого выполните -следующие действия:</para> - -<para><emphasis remap="bf">Создайте файл "hosts" под Windows '95:</emphasis> -</para> - -<para>Для того, чтобы была возможность соединяться с другими системами по -протоколу TCP/IP внутри Вашей локальной сети, необходимо создать идентичную -копию файла "hosts", который был установлен на FreeBSD-системе в -<xref linkend="list-lan-hosts"/>. -<itemizedlist> - -<listitem> -<para>Нажмите кнопку "Старт", выберите пункт "Выполнить...", затем введите -строку "notepad \WINDOWS\HOSTS" (без кавычек) и нажмите кнопку "OK"</para> -</listitem> - -<listitem> -<para>В редакторе введите адреса и имена систем из файла "hosts", созданного в -<xref linkend="list-lan-hosts"/>.</para> -</listitem> - -<listitem> -<para>Когда закончите редактирование, закройте редактор, предварительно -сохранив файл!</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap="bf">Конфигурирование сетевых настроек TCP/IP -Windows '95</emphasis>: -<itemizedlist> - -<listitem> -<para>Нажмите кнопку "Старт" на панели задач, выберите пункт "Настройка" и -"Панель управления".</para> -</listitem> - -<listitem> -<para>Дважды нажмите на иконке "Сеть", чтобы открыть соответствующее окно. -</para> - -<para> -Появится окно с настройками сетевых параметров.</para> -</listitem> - -<listitem> -<para>На закладке "Конфигурация", выберите в списке установленных компонентов -строку "TCP/IP-><emphasis>тип_Вашего_сетевого_интерфейса</emphasis>", где -"<emphasis>тип_Вашего_сетевого_интерфейса</emphasis>" - имя или тип -Ethernet-адаптера Вашей системы).</para> - -<para>Если компонент TCP/IP отсутствует в списке установленных, нажмите кнопку -"Добавить" и установите его перед тем как продолжать настройку.</para> - -<para>(Подсказка: "Добавить | Протокол | Microsoft | TCP/IP | OK")</para> -</listitem> - -<listitem> -<para>Нажмите кнопку "Свойства", чтобы открыть окно настроек параметров -компонента TCP/IP.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap="bf">Конфигурация IP-адреса:</emphasis> -<itemizedlist> - -<listitem> -<para>Выберите закладку "IP-адрес"</para> -</listitem> - -<listitem> -<para>Выберите радио-кнопку "Указать IP-адрес явным образом". -</para> - -<para>(В нашей локальной сети система Windows '95 имеет имя "Larry".)</para> -</listitem> - -<listitem> -<para>В поле "IP-адрес" введите значение "192.168.1.2".</para> -</listitem> - -<listitem> -<para>В поле "Маска подсети" введите значение 255.255.255.0 .</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap="bf">Конфигурирование шлюза:</emphasis> -<itemizedlist> - -<listitem> -<para>Выберите закладку "Шлюз" -</para> - -<para>В нашей локальной сети FreeBSD-система будет функционировать как шлюз в -Интернет, который будет маршрутизировать пакеты между локальной сетью Ethernet -и коммутируемым PPP-соединением. Введите IP-адрес для Ethernet-интерфейса -FreeBSD-системы, 192.168.1.1, в поле "Новый шлюз" и нажмите кнопку "Добавить". -Если в списке определены другие шлюзы, Вы можете удалить их по Вашему -усмотрению.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap="bf">Конфигурирование DNS:</emphasis></para> - -<para>В данном руководстве подразумевается, что Ваш Интернет-провайдер -предоставил Вам список серверов доменных имен (или DNS-серверов), который Вы -должны использовать. Если же Вы желаете запустить DNS-сервер на Вашей -локальной FreeBSD-системе, обратитесь к разделу 6, "Упражнения для -интересующихся студентов". Этот раздел поможет Вам сделать это. -</para> - -<para> -<itemizedlist> - -<listitem> -<para>Выберите закладку "Конфигурация DNS"</para> -</listitem> - -<listitem> -<para>Убедитесь, что радио-кнопка "Включить DNS" выбрана. -</para> - -<para>(Если эта кнопка не выбрана, то будут доступны только те узлы, -которые Вы ввели в файле "hosts" и сетевой серфинг будет работать не так как -Вы бы того хотели!)</para> -</listitem> - -<listitem> -<para>В поле "Имя компьютера" введите имя системы Windows '95, в нашем случае: -"Larry".</para> -</listitem> - -<listitem> -<para>В поле "Домен" введите имя Вашей локальной сети, т.е.: "my.domain"</para> -</listitem> - -<listitem> -<para>В секции "Порядок просмотра серверов DNS", введите IP-адрес DNS-сервера, -которым(и) обеспечил Вас Ваш Интернет-провайдер и нажмите кнопку "Добавить". -Повторите эту процедуру столько раз, сколько необходимо для ввода всех адресов -DNS-серверов Вашего провайдера.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap="bf">Другие параметры TCP/IP в Windows '95:</emphasis></para> - -<para>В нашем случае параметры на закладках "Дополнительно", "Конфигурация WINS" -и "Привязка" не используются.</para> - -<para>Если Вы пожелаете использовать службу WINS, обратитесь к -<ulink url="http://www.localnet.org">http://www.localnet.org</ulink> для -получения более подробной информации о настройке этой службы, особенно в -отношении к разделению файлов прозрачно через Интернет.</para> - -<para><emphasis remap="bf">Завершение процесса конфигурирования:</emphasis> -<itemizedlist> - -<listitem> -<para>Нажмите кнопку "OK", чтобы закрыть окно свойств TCP/IP.</para> -</listitem> - -<listitem> -<para>Нажмите кнопку "OK", чтобы закрыть окно с настройками сети.</para> -</listitem> - -<listitem> -<para>Перезагрузите Ваш компьютер, если это необходимо.</para> -</listitem> - -</itemizedlist> -</para> - -<para>Это все!</para> - -</sect1> - -<sect1> -<title>Конфигурирование Windows NT</title> - -<para>Конфигурирование Windows NT для функционирования в качестве ресурса -локальной сети относительно прямолинейно. Процедура конфигурирования Windows NT -также проста как и для Windows 95. Незначительные отличия наблюдаются лишь в -пользовательском интерфейсе.</para> - -<para>Действия, описанные в этой секции, применимы к Windows NT 4.0 Workstation, -но принципы те же самые, как и в NT 3.5x. Вы можете обратиться к разделу -"Конфигурирование Windows for Workgroups", если Вы конфигурируете -Windows NT 3.5<emphasis remap="it">x</emphasis>, так как пользовательский -интерфейс NT 3.5 и Windows for Workgroups один и тот же.</para> - -<para>Выполните следующие действия: </para> - -<para><emphasis remap="bf">Создайте файл "hosts" под Windows NT:</emphasis></para> - -<para>Для того, чтобы была возможность соединяться с другими системами TCP/IP -внутри Вашей локальной сети, необходимо создать идентичную копию файла "hosts", -который был установлен на FreeBSD-системе в разделе 3.4. -<itemizedlist> - -<listitem> -<para>Нажмите кнопку "Старт" на панели задач, выберите пункт "Выполнить...", -затем введите строку "notepad \WINNT\SYSTEM32\DRIVERS\ETC\HOSTS" (без кавычек) -и нажмите кнопку "OK"</para> -</listitem> - -<listitem> -<para>В редакторе введите адреса и имена систем из файла, созданного в -разделе 3.4.</para> -</listitem> - -<listitem> -<para>Когда закончите редактирование, закройте редактор, предварительно -сохранив файл!</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap="bf">Конфигурирование сетевых настроек TCP/IP под -Windows NT</emphasis>: -<itemizedlist> - -<listitem> -<para>Нажмите кнопку "Старт" на панели задач, выберите "Настройка" и -"Панель управления".</para> -</listitem> - -<listitem> -<para>Дважды нажмите на иконку "Сеть", чтобы открыть соответствующее окно. -</para> -</listitem> - -<listitem> -<para>На закладке "Идентификация" проверьте поля "Имя компьютера" и -"Рабочая группа". В этом примере мы будем использовать "Shemp" в качестве -имени компьютера и "Stooges" в качестве имени рабочей группы. Нажмите кнопку -"Изменить" и измените эти поля на указанные.</para> -</listitem> - -<listitem> -<para>Выберите закладку "Протоколы". - -</para> - -<para>Вы увидите список установленных сетевых протоколов. В этом списке могут -присутствовать несколько протоколов, но с точки зрения этого руководства, нас -будет интересовать только один - "Протокол TCP/IP". Если "Протокол TCP/IP" -отсутствует в списке, то нажмите кнопку "Добавить" для его установки.</para> - -<para>(Подсказка: "Добавить | TCP/IP протокол | OK") </para> -</listitem> - -<listitem> -<para>Выберите "Протокол TCP/IP" и нажмите кнопку "Свойства". -</para> - -<para>Появится окно с несколькими закладками, позволяющими установить -различные параметры протокола TCP/IP.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap="bf">Конфигурирование IP-адреса:</emphasis></para> - -<para>Убедитесь, что Ethernet-интерфейс выбран в списке "Адаптер". Если это не -так, то "прокрутив" список, найдите необходимую запись информации об адаптере. -<itemizedlist> - -<listitem> -<para>Выберите радио-кнопку "Указать IP-адрес явным образом", для активизации -трех текстовых полей. -</para> - -<para>В нашей локальной сети система Windows NT имеет имя "Shemp".</para> -</listitem> - -<listitem> -<para>В поле "IP-адрес" введите значение "192.168.1.4".</para> -</listitem> - -<listitem> -<para>В поле "Маска подсети" введите значение 255.255.255.0.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap="bf">Конфигурирование шлюза:</emphasis></para> - -<para>В нашей локальной сети FreeBSD-система будет функционировать как шлюз в -Интернет, который будет маршрутизировать пакеты между локальной сетью Ethernet -и коммутируемым PPP-соединением. -<itemizedlist> - -<listitem> -<para>Введите IP-адрес для Ethernet-интерфейса FreeBSD-системы, 192.168.1.1, -в поле "Новый шлюз" и нажмите кнопку "Добавить". -</para> - -<para>Если в списке "Установленные шлюзы" находятся другие шлюзы, Вы можете -удалить их по Вашему усмотрению.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap="bf">Конфигурирование DNS:</emphasis></para> - -<para>В данном руководстве подразумевается, что Ваш Интернет-провайдер -предоставил Вам список серверов доменных имен (или DNS-серверов), который Вы -должны использовать.</para> - -<para>Если же Вы желаете запустить DNS-сервер на Вашей локальной -FreeBSD-системе, обратитесь к разделу 6, "Упражнения для интересующихся -студентов". Этот раздел поможет Вам сделать это. -<itemizedlist> - -<listitem> -<para>Выберите закладку "DNS"</para> -</listitem> - -<listitem> -<para>В поле "Имя компьютера" введите имя системы Windows NT, в нашем случае: -"Shemp".</para> -</listitem> - -<listitem> -<para>В поле "Домен" введите имя Вашей локальной сети, т.е.: "my.domain"</para> -</listitem> - -<listitem> -<para>В секции "Порядок просмотра серверов DNS", введите IP-адрес DNS-сервера, -которым(и) обеспечил Вас Ваш Интернет-провайдер и нажмите кнопку "Добавить". -Повторите эту процедуру столько раз, сколько необходимо для ввода всех адресов -DNS-серверов Вашего провайдера.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap="bf">Другие параметры TCP/IP в Windows NT:</emphasis></para> - -<para>В нашем примере использование параметров "Адрес WINS" и "Маршрутизация" -не предусматривается.</para> - -<para>Если Вы желаете использовать Службу WINS, обратитесь по адресу -<ulink url="http://www.localnet.org">http://www.localnet.org</ulink> для более -подробной информации о настройке этой службы, особенно в отношении разделения -файлов прозрачно через Интернет.</para> - -<para><emphasis remap="bf">Завершение процесса конфигурирования:</emphasis> -<itemizedlist> - -<listitem> -<para>Нажмите кнопку "OK", чтобы закрыть окно свойств TCP/IP.</para> -</listitem> - -<listitem> -<para>Нажмите кнопку "Закрыть", чтобы закрыть окно с настройками сети.</para> -</listitem> - -<listitem> -<para>Перезагрузите Ваш компьютер, если это необходимо.</para> -</listitem> - -</itemizedlist> -</para> - -<para>Это все!</para> - -</sect1> - -<sect1> -<title>Конфигурирование системы Windows for Workgroups</title> - -<para>Конфигурирование системы Windows for Workgroups для функционирования -в качестве сетевого клиента требует наличия дискеты с драйвером Microsoft -TCP/IP-32, установленной на рабочей станции. Драйвера TCP/IP для Windows -for Workgroups не поставляются на установочных компакт-дисков или на дискетах. -Поэтому, если они Вам необходимы, скопировать их Вы можете по адресу -<ulink url="ftp://ftp.microsoft.com:/peropsys/windows/public/tcpip">ftp://ftp.microsoft.com:/peropsys/windows/public/tcpip</ulink>.</para> - -<para>Как только драйверы TCP/IP будут загружены, выполните следующие действия: -</para> - -<para><emphasis remap="bf">Создайте файл "hosts" под Windows for Workgroups: -</emphasis></para> - -<para>Для того, чтобы была возможность соединяться с другими системами TCP/IP -внутри Вашей локальной сети, необходимо создать идентичную копию файла "hosts", -который был установлен на FreeBSD-системе в разделе 3.4. -<itemizedlist> - -<listitem> -<para>В Менеджере Программ выберите меню "Файл", затем выберите пункт -"Выполнить...", введите строку "notepad \WINDOWS\HOSTS" (без кавычек) и нажмите -кнопку "OK".</para> -</listitem> - -<listitem> -<para>В редакторе введите адреса и имена систем из файла, созданного в разделе -3.4.</para> -</listitem> - -<listitem> -<para>Когда закончите редактирование, закройте редактор, предварительно -сохранив файл!</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap="bf">Конфигурирование сети TCP/IP под Windows for -Workgroups</emphasis> -<itemizedlist> - -<listitem> -<para>В главном окне Менеджера Программ откройте группу "Сеть" двойным -нажатием кнопки мыши на иконке. </para> -</listitem> - -<listitem> -<para>Нажмите два раза на иконке "Настройка сети". </para> -</listitem> - -<listitem> -<para>В списке "Сетевые устройства" нажмите два раза на записи -"Microsoft TCP/IP-32". </para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap="bf">Конфигурирование IP-адреса системы Windows for -Workgroups:</emphasis> </para> - -<para>Убедитесь, что в списке "Адаптер" выбран правильный Ethernet-интерфейс, -в противном случае выберите его из списка доступных. -<itemizedlist> - -<listitem> -<para>Убедитесь, что флажок "Включить автоматическую настройку DHCP" выключен. -</para> -</listitem> - -<listitem> -<para>В нашей локальной сети для системы Windows for Workgroups, которую мы -назвали "Moe" в поле "IP-адрес" введите значение "192.168.1.3".</para> -</listitem> - -<listitem> -<para>В поле "Маска подсети" введите значение 255.255.255.0.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap="bf">Конфигурирование шлюза:</emphasis></para> - -<para>В нашей локальной сети FreeBSD-система будет функционировать как шлюз в -Интернет, который будет маршрутизировать пакеты между локальной сетью Ethernet -и коммутируемым PPP-соединением. -<itemizedlist> - -<listitem> -<para>Введите IP-адрес FreeBSD-системы, 192.168.1.1, в поле "Шлюз по умолчанию". -</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap="bf">Конфигурирование DNS:</emphasis></para> - -<para>В данном руководстве подразумевается, что Ваш Интернет-провайдер -предоставил Вам список серверов доменных имен (или DNS-серверов), который Вы -должны использовать. Если же Вы желаете запустить DNS-сервер на Вашей -локальной FreeBSD-системе, обратитесь к разделу 6, "Упражнения для -интересующихся студентов". Этот раздел поможет Вам сделать это. -<itemizedlist> - -<listitem> -<para>Нажмите кнопку "DNS".</para> -</listitem> - -<listitem> -<para>В поле "Имя компьютера" введите имя системы Windows for Workgropus. В -нашем примере: "Moe".</para> -</listitem> - -<listitem> -<para>В поле "Домен" введите имя Вашей локальной сети. В нашем примере: -"my.domain"</para> -</listitem> - -<listitem> -<para>В секции "Порядок просмотра серверов DNS", введите IP-адрес DNS-сервера, -которым(и) обеспечил Вас Ваш Интернет-провайдер и нажмите кнопку "Добавить". -Повторите эту процедуру столько раз, сколько необходимо для ввода всех адресов -DNS-серверов Вашего провайдера.</para> -</listitem> - -<listitem> -<para>Нажмите кнопку "OK", чтобы закрыть окно с настройками DNS. -</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap="bf">Завершение процесса конфигурирования:</emphasis> -<itemizedlist> - -<listitem> -<para>Нажмите кнопку "OK", чтобы закрыть окно свойств TCP/IP.</para> -</listitem> - -<listitem> -<para>Нажмите кнопку "OK", чтобы закрыть окно настройки сети.</para> -</listitem> - -<listitem> -<para>Перезагрузите компьютер, если это будет необходимо. </para> -</listitem> - -</itemizedlist> -</para> - -<para>Это все!</para> - -</sect1> -</chapter> - -<chapter id="testing-the-network"> -<title>Тестирование сети</title> - -<para> Как только Вы завершите все описанные выше этапы конфигурирования, Вы -получите нормально функционирующий PPP-шлюз в Интернет.</para> - - -<sect1> -<title>Тестирование возможности установки соединения:</title> - -<para>Первое, что необходимо протестировать, - соединение, осуществляемое Вашим -модемом с Интернет-провайдером.</para> - -</sect1> - -<sect1> -<title>Тестирование локальной Ethernet-сети</title> - -<para> *** TBD ***</para> - -</sect1> -</chapter> - -<chapter> -<title>Упражнения для интересующихся студентов</title> - - -<sect1> -<title>Создание простого DNS-сервера</title> - -<para>В то время как управление иерархией DNS может быть довольно сложным -процессом, все же существует возможность настроить мини-DNS-сервер на нашей -FreeBSD-системе, которая к тому же функционирует в качестве шлюза к Вашему -Интернет-провайдеру.</para> - -<para>Основываясь на файлах каталога <filename>/etc/namedb</filename>, который -был установлен процессе установки системы FreeBSD, стало возможным создать -сервер имен, который будет одновременно и авторитетным для нашей локальной сети, -используемой в этом руководстве, и "парадной дверью" в архитектуре DNS сети -Интернет.</para> - -<para>Для этой минимальной конфигурации DNS, необходимы только три файла: -<informalexample> -<screen>/etc/namedb/named.boot -/etc/namedb/named.root -/etc/namedb/mydomain.db</screen> -</informalexample> -</para> - -<para>Файл <filename>/etc/namedb/named.root</filename> автоматически -устанавливается как часть базовой установки системы FreeBSD. Остальные два -файла должны быть созданы вручную.</para> - - -<sect2> -<title>Файл <filename>/etc/namedb/named.boot</filename></title> - -<para>Файл <filename>/etc/namedb/named.boot</filename> управляет параметрами -запуска DNS-сервера и содержит информацию, которую необходимо знать этому -серверу имен, а именно: -<orderedlist> - -<listitem> -<para>где искать конфигурационные файлы,</para> -</listitem> - -<listitem> -<para>за какие "доменные имена" он отвечает и</para> -</listitem> - -<listitem> -<para>где искать другие DNS-сервера.</para> -</listitem> - -</orderedlist> -</para> - -<para>Используя редактор '<emphasis remap="tt">ee</emphasis>', создайте файл -<filename>/etc/namedb/named.boot</filename> содержащий следующее: -<informalexample> -<screen>; загрузочный файл для мини-сервера имен - -directory /etc/namedb - -; type domain source host/file backup file - -cache . named.root -primary my.domain. mydomain.db</screen> -</informalexample> -</para> - -<para>Строки, начинающиеся с символа ";" являются комментарием. Строки, -которые несут самую существенную информацию в этом файле приведены ниже: -<itemizedlist> - -<listitem> -<para><command>directory /etc/namedb</command> -</para> - -<para>Сообщает серверу имен о том, где находятся конфигурационные файлы, на -которые имеются ссылки в последних секциях файла -'<filename>/etc/namedb/named.boot</filename>'.</para> -</listitem> - -<listitem> -<para><emphasis remap="tt">cache . named.root</emphasis> -</para> - -<para>Сообщает серверу имен о том, что список корневых DNS-серверов Интернет -находится в файле '<filename>named.root</filename>'. (Этот файл включен в -базовую установку FreeBSD и его содержимое не описывается в этом руководстве.) -</para> -</listitem> - -<listitem> -<para><emphasis remap="tt">primary my.domain. mydomain.db</emphasis> -</para> - -<para>Сообщает серверу имен о том, что он является "авторитетным" для домена -"my.domain" и что список имен и IP-адресов систем домена "my.domain" (локальная сеть) -находится в файле '<filename>mydomain.db</filename>'.</para> -</listitem> - -</itemizedlist> -</para> - -<para>После того, как файл <filename>/etc/namedb/named.boot</filename> будет -создан и сохранен, переходите к следующему разделу для создания файла -<filename>/etc/namedb/mydomain.db</filename>.</para> - -</sect2> - -<sect2> -<title>Файл <filename>/etc/namedb/mydomain.db</filename></title> - -<para>Файл <filename>/etc/namedb/mydomain.db</filename> содержит имена и -IP-адреса <emphasis>каждой</emphasis> системы в Вашей локальной сети.</para> - -<para><emphasis>За более подробной информацией по операторам, используемым в -этом файле обращайтесь к man-странице справочного руководства по -<emphasis remap="tt">named</emphasis>.</emphasis></para> - -<para>Файл <filename>/etc/namedb/mydomain.db</filename> для нашего небольшого -DNS-сервера содержит следующее: -<informalexample> -<screen>@ IN SOA my.domain. root.my.domain. ( - 961230 ; Serial - 3600 ; Refresh - 300 ; Retry - 3600000 ; Expire - 3600 ) ; Minimum - IN NS curly.my.domain. - -curly.my.domain. IN A 192.168.1.1 # The FreeBSD box -larry.my.domain. IN A 192.168.1.2 # The Win'95 box -moe.my.domain. IN A 192.168.1.3 # The WfW box -shemp.my.domain. IN A 192.168.1.4 # The Windows NT box - -$ORIGIN 1.168.192.IN-ADDR.ARPA - IN NS curly.my.domain. -1 IN PTR curly.my.domain. -2 IN PTR larry.my.domain. -3 IN PTR moe.my.domain. -4 IN PTR shemp.my.domain. - -$ORIGIN 0.0.127.IN-ADDR.ARPA - IN NS curly.my.domain. -1 IN PTR localhost.my.domain.</screen> -</informalexample> -</para> - -<para>Простыми словами, этот файл объявляет, что локальный DNS-сервер: -<itemizedlist> - -<listitem> -<para>имеет полномочия ("SOA") на домен с именем 'my.domain',</para> -</listitem> - -<listitem> -<para>является сервером имен ("NS") для домена 'my.domain',</para> -</listitem> - -<listitem> -<para>является ответственным за обратное преобразование для всех IP-адресов, -которые начинаются с '192.168.1.' и '127.0.0.' ("$ORIGIN ...")</para> -</listitem> - -</itemizedlist> -</para> - -<para>Добавляя информацию о новой рабочей станции в этот файл, Вы должны -добавлять две строки для этой системы: одну, в верхнюю секцию, которая отвечает -за преобразование имени системы в Интернет-адрес ("IN A"), а другую, которая, -наоборот, преобразует адрес в имя узла, в секцию <filename>$ORIGIN -1.168.192.IN-ADDR.ARPA</filename>.</para> - -</sect2> - -<sect2> -<title>Запуск DNS-сервера</title> - -<para>По умолчанию DNS-сервер ('<filename>/usr/sbin/named</filename>') не -запускается при загрузке системы. Однако, вы можете дать указание системе -запустить DNS-сервер, изменив одну единственную строку в файле -'<filename>/etc/rc.conf</filename>':</para> - -<para>Используя редактор '<emphasis remap="tt">ee</emphasis>', загрузите файл -<filename>/etc/rc.conf</filename>. Опустите курсор примерно на 40 строк вниз и -Вы заметите секцию, которая выглядит как показано ниже: -<informalexample> -<screen>--- -named_enable="NO" # Run named, the DNS server (or NO). -named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled). ----</screen> -</informalexample> - -Измените эту секцию как показано ниже: -<informalexample> -<screen>--- -named_enable="YES" # Run named, the DNS server (or NO). -named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled). ----</screen> -</informalexample> - -Сохраните файл и перезагрузите систему.</para> - -<para>Альтернативный способ: запустите демон сервера имен, введя следующую -команду: -<informalexample> -<screen># named -b /etc/namedb/named.boot</screen> -</informalexample> -</para> - -<para>Какие бы изменения Вы не производили в любом из файлов каталога -<filename>/etc/namedb</filename>, Вам необходимо прервать выполнение сервера -имен, для того, чтобы изменения вступили в силу. Это выполняется с помощью -следующей системной команды: -<informalexample> -<screen># kill -HUP `cat /var/run/named.pid`</screen> -</informalexample> -</para> - -</sect2> -</sect1> - -<sect1> -<title>Использование PPP-фильтров</title> - -<para>Программа PPP имеет возможность применять правила фильтрации пакетов для -контроля трафика, который она маршрутизирует. Несмотря на то, что эти правила -действуют далеко не так как обычный брандмауэр, они обеспечивают некоторый -контроль доступа по мере того, как используется соединение.</para> - -<para>(Используйте '<emphasis remap="tt">man ipfw</emphasis>' для получения более -подробной информации по настройке системы безопасности для FreeBSD-систем.) -</para> - -<para>Более полную документацию по различным фильтрам и правилам для PPP Вы -можете получить, воспользовавшись man-страницей справочного руководства по PPP. -</para> - -<para>Существуют 4 отличных класса правил, которые могут использоваться -программой PPP: -<itemizedlist> - -<listitem> -<para><emphasis>alive</emphasis>-фильтры - Фильтры "счетчик доступа" -(или "поддержка подключения") -</para> - -<para>Эти правила фильтрации управляют событиями, которые будут игнорироваться -выражением <literal>set timeout=</literal> в конфигурационном файле.</para> -</listitem> - -<listitem> -<para><emphasis>dial</emphasis>-фильтры - Фильтры дозвона -</para> - -<para>Эти правила фильтрации управляют событиями, которые будут игнорироваться -в режиме "дозвон при необходимости" программы PPP.</para> -</listitem> - -<listitem> -<para><emphasis>in</emphasis>-фильтры - Входные фильтры -</para> - -<para>Контролируют входящие пакеты: будут ли они пропущены в систему или -отброшены системой.</para> -</listitem> - -<listitem> -<para><emphasis>out</emphasis>-фильтры - Выходные фильтры -</para> - -<para>Контролируют исходящие пакеты: будут ли они пропущены или отброшены -системой.</para> -</listitem> - -</itemizedlist> -</para> - -<para>Ниже приведена "вырезка" из конфигурации системы, которая обеспечивает -хорошую основу для "нормальной" работы в Интернет, запрещая PPP "прокачивать" -<emphasis>все</emphasis> данные через коммутируемое соединение. Краткие -комментарии описывают логику каждого правила: -<informalexample> -<screen># -# Фильтры, поддерживающие соединение -# Не поддерживать соединения пакетами ICMP,DNS и RIP -# - set filter alive 0 deny icmp - set filter alive 1 deny udp src eq 53 - set filter alive 2 deny udp dst eq 53 - set filter alive 3 deny udp src eq 520 - set filter alive 4 deny udp dst eq 520 - set filter alive 5 permit 0/0 0/0 -# -# Фильтры дозвона: -# Примечание: ICMP будет производить дозвон в этой конфигурации! -# - set filter dial 0 permit 0/0 0/0 -# -# Разрешить опознанные пакеты -# - set filter in 0 permit tcp dst eq 113 - set filter out 0 permit tcp src eq 113 -# -# Разрешить telnet-подключения к Интернет -# - set filter in 1 permit tcp src eq 23 estab - set filter out 1 permit tcp dst eq 23 -# -# Разрешить доступ в Интернет по ftp -# - set filter in 2 permit tcp src eq 21 estab - set filter out 2 permit tcp dst eq 21 - set filter in 3 permit tcp src eq 20 dst gt 1023 - set filter out 3 permit tcp dst eq 20 -# -# Разрешить доступ к поиску в DNS -# - set filter in 4 permit udp src eq 53 - set filter out 4 permit udp dst eq 53 -# -# Разрешить передачу зоны DNS -# - set filter in 5 permit tcp src eq 53 - set filter out 5 permit tcp dst eq 53 -# -# Разрешить доступ внутри локальной сети -# - set filter in 6 permit 0/0 192.168.1.0/24 - set filter out 6 permit 192.168.1.0/24 0/0 -# -# Разрешить ответы ping и traceroute -# - set filter in 7 permit icmp - set filter out 7 permit icmp - set filter in 8 permit udp dst gt 33433 - set filter out 9 permit udp dst gt 33433 -# -# Разрешить cvsup -# - set filter in 9 permit tcp src eq 5998 - set filter out 9 permit tcp dst eq 5998 - set filter in 10 permit tcp src eq 5999 - set filter out 10 permit tcp dst eq 5999 -# -# Разрешить протокол NTP для синхронизации времени -# - set filter in 11 permit tcp src eq 123 dst eq 123 - set filter out 11 permit tcp src eq 123 dst eq 123 - set filter in 12 permit udp src eq 123 dst eq 123 - set filter out 12 permit udp src eq 123 dst eq 123 -# -# SMTP - будет неплохо! -# - set filter in 13 permit tcp src eq 25 - set filter out 13 permit tcp dst eq 25 -# -# -# Мы часто используем `whois`, поэтому разрешим это -# - set filter in 14 permit tcp src eq 43 - set filter out 14 permit tcp dst eq 43 - set filter in 15 permit udp src eq 43 - set filter out 15 permit udp dst eq 43 -# -# Если пакет не удовлетворяет ни одному указанному выше условию, то он будет -# блокирован. -#-------</screen> -</informalexample> -</para> - -<para>В каждом классе правил фильтрации пакетов можно применить до 20 явных -фильтров. Правила в каждом классе представляют собой последовательные номера -от 0 до 20, <emphasis>но ни одно из правил для конкретного класса фильтров не -возымеет действия до тех пор, пока будет определено правило с номером '0'! -</emphasis></para> - -<para>Если Вы решили <emphasis>не</emphasis> использовать правила фильтрации -пакетов в конфигурации PPP, то в этом случае на время соединения с Вашим -Интернет-провайдером через Вашу систему будет разрешен <acronym>ВЕСЬ</acronym> -входящий и исходящий трафик.</para> - -<para>Если Вы решите, что Вам необходимо использовать правила фильтрации -пакетов, добавьте строки, описанные выше в Ваш файл -<filename>/etc/ppp/ppp.conf</filename> в одну из секций "стандартную:", -"demand:" или "интерактивную:" (или же во все, по Вашему усмотрению).</para> - -</sect1> -</chapter> -</book> |