---------------------------------------------------------------
Origin: http://zipper.paco.net/~quaker/
---------------------------------------------------------------

    * ИНСТРУКЦИЯ О НАСТРОЙКЕ PPP/SLIP СОЕДИНЕНИЯ В ОС LINUX *




(С) Собченко Евгений
quaker@paco.net
Пят Июн 3 15:12:11 EEST 1999



В данной инструкции использовались фрагменты статьи
"Linux in networks" David Ganter'a из архивов сайта
SlashDot. (http://slashdot.org)








    I. ЧТО ТАКОЕ DNS



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

============================================================================
ТЕРМИН ОПИСАНИЕ
----------------------------------------------------------------------------
Домен (Domain) Логическая сущность или организация, представляющая
часть сети. Например, paco.net является базовым
доменом ISP PACO LINKS.
----------------------------------------------------------------------------
Имя домена (Domain Часть имен узла, представляющая домен, в котором
name) находится этот узел. Например, в адресе узла
zipper.paco.net именем домена будет paco.net.
----------------------------------------------------------------------------
Узел (Host) Компьютер в сети.
----------------------------------------------------------------------------
Сервер Имен (Name Компьютер, предоставляющий сервис DNS для
server) отображения доменных имен в IP адреса.
----------------------------------------------------------------------------
Разрешение (Resolve) Процесс трансляции доменного имени в IP-адрес.
----------------------------------------------------------------------------
Библиотека разрешения Библиотека или программа, извлекающая информацию DNS
имен (Resolver) c помощью сервера имен.
----------------------------------------------------------------------------
Обратное разрешение Вычисление имени домена по IP-адресу.
(Reverse resolution)
----------------------------------------------------------------------------
Фальсификация (Spoof) Процесс подстановки неверного IP-адреса или имени
домена.
============================================================================

Систему DNS концептуально можно разделить на три составные части.

1. ПРОСТРАНСТВО ДОМЕННЫХ ИМЕН. Это спецификация структуры древа,
определяющая набор узлов и предоставляющая о них информацию. Концептуально
каждый узел в дереве имеет базу данных, хранящую информацию о всех
подчиненных ему узлах. Запросы извлекают информацию из этой базы данных.
Другими словами, это просто список имен, IP-адресов, почтовых псевдонимов
ит.п., используемых при просмотре системой DNS.
2. СЕРВЕРЫ ИМЕН. Это программы, которые поддерживают актуальность данных,
хранящихся в пространстве доменных имен. Каждый сервер имен хранит полную
информацию о подчиненных пространствах имен, а также кэширует информацию о
других пространствах.
Сервер имен содержит полную информацию о подчиненной области. Эта информация
делится на зоны, каждая из которых может хранится на нескольких серверах
имен для обеспечения надежности. Каждый сервер имен знает о других серверах,
отвечающих за свои зоны.
3. БИБЛИОТЕКА РАЗРЕШЕНИЯ ИМЕН. Это просто программы и библиотеки функций,
которые извлекают информацию их серверов имен в соответствии с запросом.


*** /etc/host.conf

Библиотека резрешения имен настраивается в файле с именеи host.conf, который
находится в каталоге /etc. В этом файле указывается, какие сервисы и в
каком порядке использовать. Это обычный текстовый файл, в котором по одному
на строку указаны параметры библиотеки разрешения имен. Поля в файле
разделяются пробелами или символами табуляции.

Ниже приведен пример файла /etc/host.conf.
=================================================================
# Sample /etc/host.conf file
#
# Lookup names via NS then fall back to /etc/hosts
order bind hosts
# We dont have computers with multiple addresses
multi off
# Check for OP spoofing
nospoof on
# and warn us if someone attempts to spoof
alert on
# Trim the paco.net domain name for host lookups
trim paco.net
==================================================================

*** /etc/resolv.conf

Когда библиотека разрешения имен в основном настроена, необходимо
сконфигурировать часть, относящуюся к DNS. Это нужно днлать только в том
случае, когда для разрешения имен используется DNS, т.е. если в файле
/etc/hosts.conf в параметре order указан атрибут bind.
Файл /etc/resolv.conf определяет, как библиотека использует DNS для
разрешения имен. В нем указываются серверы имен DNS, к которым необходимо
обращаться, а также локальное имя домена.
Ниже приведен пример файла /etc/resolv.conf для paco.net.

=====================================================================
# /etc/resolv.conf for paco.net
#
# Set our domain
domain paco.net
# Specify our primary name server
nameserver 195.114.128.50
======================================================================
ВНИМАНИЕ! В КАЧЕСТВЕ АРГУМЕНТА В ПАРАМЕТРЕ NAMESERVER НЕОБХОДИМО УКАЗЫВАТЬ
IP-АДРЕС, А НЕ ИМЯ УЗЛА. ЕСЛИ УКАЗАТЬ ИМЯ УЗЛА, ТО DNS НЕ БУДЕТ ЗНАТЬ, К
КАКОМУ СЕРВЕРУ ИМЕН ОБРАЩАТЬСЯ ДЛЯ ТОГО, ЧТОБЫ РАЗРЕШИТЬ ИМЯ СЕРВЕРА.


    II. ИСПОЛЬЗОВАНИЕ SLIP и PPP




* SLIP

Ядро Linux поддерживает два протокола передачи IP-трафика: SLIP (Serial Line
Internet Protocol) и PPP (Point-to-Point protocol)
Чтоба заработали SLIP или PPP, необходимо убедиться, что в ядре системы и в
конфигурационных файлах установлено все необходимое для этого. Необходимо,
чтобы в файле /etc/resolv.conf находился адрес сервера DNS и домен вашей
сети. И соответственно файл /etc/hosts.conf содержал характерную для него
информацию о вашей системе.

Использование DIP дя автоматизации SLIP

Под OS Linux существует множество программ, которые позволяют устанавливать
SLIP-соединение. Драйвер DIP (Dial-up Protocol) является одним из наиболее
гибких средств. Он позволяет использовать язык сценариев для автоматизации
процесса установления соединения и автоматической настройки сетевого
интерфейса. Синтаксис запуска DIP следующий:

$ dip [-atvi] [-m mtu] [scriptfile]

Ниже, в таблице, описываются параметры, используемые при запуске DIP.

===========================================================================
ПАРАМЕТР ОПИСАНИЕ
---------------------------------------------------------------------------
-a Требует от пользователя введения имени пользователя
и пароля.
---------------------------------------------------------------------------
-t Запускает DIP в командном режиме. Командный режим
предоставляет доступ ко всем возможностям DIP,
позволяя вручную устанавливать SLIP-соединение.
---------------------------------------------------------------------------
-v Указывает DIP работать в ружиме ввода. Используется
для предоставления сервиса SLIP для удаленного
подключения к машине.
---------------------------------------------------------------------------
-m mtu Указывает DIP максимальный размер передаваемого блока
данных.
---------------------------------------------------------------------------
scriptfile Имя файла, содержащего сценарий, который должен
выполнять dip.
============================================================================

Запуск DIP с параметром -t приводит к запуску в командном режиме. Этот режим
позволяет напрямую управлять DIP и является прекрасным средством для
создания и отладки сценариев.
Из командной строки DIP можно выполнить любую команду, набрав ее и нажав
клавишу . Команда help отображает список всех доступных команд с их
обьяснениями.
Кроме того, программой DIP поддерживаются множество переменных, которые
можно использовать в сценарии. Например, некоторым переменным можно
присваивать значния для хранения локального и удаленного IP-адресов; другие
доступны только для чтения и используются для диагностики и в информационных
целях. Каждая переменная начинается со знака доллара и должна быть набрана
строчными буквами. В таблице перечислены поддерживаемые переменные и их
значения.

============================================================================
ПЕРЕМЕННАЯ ОПИСАНИЕ
----------------------------------------------------------------------------
$local Имя локального узла
----------------------------------------------------------------------------
$locip IP-адрес, присвоенный локальному узлу
----------------------------------------------------------------------------
$remote Имя удаленного узла
----------------------------------------------------------------------------
$rmip IP-адрес удаленного узла
----------------------------------------------------------------------------
$mtu Размер максимального передаваемого блока данных
----------------------------------------------------------------------------
$modem Тип используемого модема
----------------------------------------------------------------------------
$speed Скорость установленная для последовательного порта
----------------------------------------------------------------------------
$errlvl Код результата последней выполненной команды. Ноль
обозначает успешное завершение, другие значения обозначают
ошибку
============================================================================

Советую внимательно прочитать manpage по программе DIP, после чего можите
смело начать написание DIP-сценариев.

ВНИМАНИЕ! ПРОГРАММА DIP ДОЛЖНА ИСПОЛНЯТЬСЯ С ПРАВАМИ АДМИНИСТРАТОРА!



* PPP

PPP (Point-to-Point protocol) - еще один протокол для пересылки датаграмм
по последовательному соединению. Разработанный после SLIP, PPP имеет много
возможностей, отсутствующих в SLIP. Он может автоматически устанавливать
такие опции, как IP-адрес, размер датаграмм и идентефикацию клиента.
Более того, он может работать не только с IP-пакетами.


Автоматизация PPP-связи c помощью pppd и chat

Протокол PPP работает с помощью двух компонентов: драйвера PPP в ядре
системы Linux и программы pppd, которую должен запускать пользователь.
Запуск PPP осуществляется следующим образом: пользователь подключается к
удаленному узлу с помощью коммуникационной программы, регистрируется, а
затем запускает программу pppd как на удаленном компьютере, так и на
локальном компьютере. Однако для установления PPP-соединения намного удобнее
использовать с программой pppd сценарий chat, управляющий модемом,
рeгистрацией и запуском pppd на удаленном узле.
Запуски программ pppd и chat можно комбинировать по-разному. Можно в
командной строке указать все параметры как для pppd, так и для chat, можно
поместить параметры pppd или сценарий chat в файл. Ниже приведен простой
пример запуска программ, когда в командной строке перечислены все параметры
обеих программ:

$ pppd connect 'chat "" ATDT8673413 ogin: vasya word: lalalapa'\
/dev/ttyS0 57600 lock debug crtscts modem defaultroute

Эта команда запускает pppd с простым сценарием chat, который набирает номер
и регистрирует пользователя vasya на удаленной машине. Указаны также
параметры, задающие устройство, скорость, максимально принимаемый блок данных
и другие.

С другой стороны можно поместить параметры pppd в файл, а так же заставить
chat читать сценарий тоже из файла. Тогда запуск pppd будет выглядеть так:

$ pppd /dev/ttyS0 57600 connect 'chat -f chatscript.chat'

В этом случае в файле /etc/ppp/options необходимо поместить параметры для
pppd:

=========================================================================
# Global PPP Options File
lock
modem
crtscts
persist
defaultroute
noipdefault
=========================================================================

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

=========================================================================
'ABORT' 'BUSY'
'ABORT' 'ERROR'
'ABORT' 'NO CARRIER'
'ABORT' 'NO DIALTONE'
'ABORT' 'Invalid Login'
'ABORT' 'Login incorrect'
'' '\d+++\dATZ'
'OK' 'ATL2'
'OK' 'ATM1'
'OK' 'ATDT8673413'
'CONNECT' ''
'ogin:' 'vasya'
'ord:' 'lalalapa'
'TIMEOUT' '5'
==========================================================================

Вот и все... :)


    * ДОКУМЕНТАЦИЯ ПО РЕДАКТОРУ VI *





(С) Собченко Евгений
quaker@paco.net
Вск Авг 8 14:33:32 EEST 1999


Vi - это редактор, предназначенный для созданя текстовых файлов. Vi
(сокращенно Visual, визуальный) остается наиболее широко применяемым
текстовым редактором в UNIX-подобных операционных системах, и присутствует в
каждом дистрибутиве Linux. В нем предусмотрены три режима работы: командный
режим, режим ввода и режим построчного редактирования.
В каждом из этих режимов клавиатура работает
по-разному. В режиме ввода клавиатура становится аналогом клавиатуры пишущей
машинки и нажатие той или иной клавиши обеспечивает ввод в текстовый файл
соответствующего символа. При переходе в режим построчного редактирования в
нижней части экрана появляется строка, которая позволяет ввести команду
построчного редактирования.
Если вам необходимо отредоктировать конкретный файл, его имя нужно указать в
командной строке shell, которая используется для вызова редактора Vi.
Сохранение файлов и выход из файлов осуществляется соответственно
посредством команд 'w' и 'q!'. Эти команды вводятся в режиме построчного
редактирования. Переход в данный режим осуществляется с помошью команды ':'.
Команда 'zz' завершает сеанс, сохраняет файл и выходит из Vi.
При работе с редактором Vi пользователь постоянно переходит из режима ввода
в командный режим и обратно. Команды ввода, например 'a' и 'i', позволяют
пользователю перейти в режим ввода непосредственно. Команды замены, такие
как 'cc', сначала удаляют текст и лишь затем дают возможность пользователю
перейти в режим ввода. Для переходя в режим ввода предусмотренно несколько
способов, а для выхода из него - только один, с помощью клавиши Esc. Нажатие
этой клавиши в режиме ввода возвращает пользователя в командный режим.
Vi - это развитый редактор с обширным набором команд, обеспечивающих
полноэкоранную обработку текста. Его команды позволяют перемещать курсор по
словам, предложениям и абзацам. У большинства команд, односимвольные имена
вводятся прописными буквами. Например, эквивалентом команды 'i' является
команда 'I', с помощью которой выполняется переход в режим ввода в начало
строки.
Команды редактирования оперируют символами, строками, словами, предложениями
и абзацами. В Vi есть команды замены, копирования и удаления, которые
оперируют всеми этими фрагментами текста. Пользователь может перемещать и
копировать текст, отменять изменения в тексте, выполнять прямой и обратный
поиск образцов. Эти команды часто содержат похожие компоненты с небольшими
вариациями. Команда 'x' используется для удаления символа, а команда 'dd' -
для удаления строки. Бывают случаи, когда пользователи случайно удаляют или
заменяют текст; команда 'u' позволяет отменить предыдущую (ошибочную)
операцию редактирования.
В редакторе Vi предусмотрен обширный набор опций, которые устанавливаются с
помощью команды 'set'. Эти опции включают и выключают такие функции
редактирования, как нумерация и перенос слов. Опции можно установить
вручную из редактора либо присвоить имя взятой в кавычки команды 'set'
переменной EXINIT в регистрационном файле инициализации или в файле
инициализации shell. Опции, указанные в команде set, автоматически
устанавливаются при вызове редактора. Можно также создать файл инициализации
редактора, .exrc, и поместить команды 'set' в него. При вызове Vi
выполняются команды, содержащиеся в файле .exrc, имеющимся в текущем
каталоге.



    Cводка основных команд редактора Vi



=============================================================================
Перемещения Результат
курсора
-----------------------------------------------------------------------------
h Перемещение влево
l Перемещение вправо
( Перемещение в предыдущее предложение
) Перемещение в конец предложения
k Перемещение вверх
j Перемещение вниз
E Перемещение вперед в конец следующего отделенного
пробелом слова
O Перемещение в начало строки
$ Перемещение в конец строки
- Перемещение в начало предыдущей строки
+ Перемещение в начало следующей строки
{ Перемещение в начало абзаца
} Перемещение в следующий абзац
[Ctrl+f] Перемещение на следующую экранную страницу
[Ctrl+b] Перемещение на предыдущую экранную страницу
[Ctrl+d] Прокрутка вперед на половину экранной страницы
[Ctrl+u] Прокрутка назад на половину экранной страницы
H Перемещение в верхнюю часть экрана
L Перемещение в нижнюю часть экрана
M Перемещения в середину экрана
G Перемещение в последнюю или указанную строку
-----------------------------------------------------------------------------
Ввод Результат
-----------------------------------------------------------------------------
a Добавляет текст после курсора
A Добавляет текст в конец строки
i Вставляет текст перед курсором
I Вставляет текст в начало строки
o Вводит новую строку перед текущей
O Вводит новую строку над текущей
-----------------------------------------------------------------------------
Удаление Результат
-----------------------------------------------------------------------------
x Удаляет символ, на котором стоит курсор
X Удаляет символ перед курсором
dd Удаляет строку
D Удаляет часть строки, расположенную после курсора
dG Удаляет часть файла, расположенную после курсора
d) Удаляет предложение
d} Удаляет абзац
-----------------------------------------------------------------------------
Перемещение Результат
-----------------------------------------------------------------------------
p Вставляет удаленный или скопированный текст
dd p Перемещает строку
d) p Перемещает предложение
d} Перемещает абзац
-----------------------------------------------------------------------------
Замена Результат
-----------------------------------------------------------------------------
s Заменяет символ, на котором стоит курсор, на указанную
строку символов; команда завершается нажатием Esc.
r Заменяет символ, на котором стоит курсор, на указанный в
качестве аргумента данной команды
cc Заменяет строку
S Заменяет строку
C Заменяет часть строки, расположенную после курсора
cG Заменяет часть файла, расположенную после курсора
cw Земеняет слово
c) Заменяет предложение
c} Заменяет абзац
R Заменяет текст
-----------------------------------------------------------------------------
Копирование Результат
-----------------------------------------------------------------------------
y Копирует строку
уу Копирует строку
yG Копирует часть файла, расположенную после курсора
y) Копирует предложение
y) Копирует абзац
-----------------------------------------------------------------------------
Поиск Результат
-----------------------------------------------------------------------------
/ Прямой поиск образца
? Обратный поиск образца
n Повторяет поиск
N Повторяет поиск в противоположном направлении
=============================================================================