Версия для печати

Архив документации на OpenNet.ru / Раздел "Сети, протоколы, сервисы" (Многостраничная версия)

141001 г.Мытищи МО
Ул.Институтская д:1 ком:101
(095) 588-52-39, 588-55-62
E-mail: lscs@mgul.ac.ru

Московский Государственный Университет Леса
Сервер Лаб. Космической информатики каф.ВТ

 
 

Настройка сетевого соединения

Введение.
Сетевые адреса TCP/IP.
Файлы конфигурации TCP/IP.
Сетевые интерфейсы и маршруты: команды ifconfig и route.
Контроль состояния сети: программы ping и netstat.
Служба доменных имен (DNS).
Протоколы SLIP и РРР

ТАБЛИЦЫ

Протоколы комплекта TCP/IP.
Адреса и файлы конфигурации TCP/IP.
Программы для настройки сетевых соединений.
Опции команды ifconfig.
Опции команды netstat.
Опции и специальные символы программы chat.
Опции программы pppd.
Опции и команды программы dip.
Переменные программы dip.


Введение.

Linux-системы конфигурированы на подключение к сетям, в которых используются протоколы TCP/IP. Именно эти протоколы применяются в Internet и многих локальных сетях. Эти протоколы были разработаны в семидесятых годах в рамках специального проекта Управления перспективных исследований и разработок Министерства обороны США с целью развития системы связи между учебными заведениями и научно-исследовательскими институтами. Разрабатывались эти протоколы для Unix-систем, при этом основные исследования проводились в Калифорнийском университете (г. Беркли). ОС Linux во многом выигрывает благодаря этой изначальной ориентации протоколов на Unix.

Комплект TCP/IP состоит из нескольких различных протоколов, каждый из которых выполняет в сети определенную задачу. Базовых протоколов два:
протокол управления передачей (TCP), который обеспечивает отправку и прием сообщений, и межсетевой протокол (IP), который отвечает за маршрутизацию. Остальные протоколы выполняют различные сетевые функции. Служба доменных имен (DNS) обеспечивает преобразование адресов. Протокол пересылки файлов (ftp) управляет передачей файлов, а набор протоколов NFS обеспечивает доступ к удаленным файловым системам. Прото-колы комплекта TCP/IP представлены в табл. 20.1

Конфигурирование в Linux-системе сетевого соединения, устанавливаемого по протоколу TCP/IP, и управление им - не слишком сложная задача. К услугам пользователя имеется набор конфигурационных файлов, с помощью которых система настраивает и поддерживает сетевые соединения. Полный перечень этих файлов приведен в табл. 20.2. Многими из них можно управлять с помощью административных программ из интерфейса привилегированного пользователя, в частности с помощью утилиты netcfg. Допускается также использование более специализированных программ, например таких, как netstat, ifconfig и route. Некоторые конфигурационные файлы легко поддаются редактированию с помощью текстового редактора. Широко используемые программы для настройки сетевого соединения представлены в табл. 20.3.

Допустим, в процессе инсталляции вы ввели информацию о конфигурации сети. Это означает, что система полностью готова к работе. Если Linux-система уже подключена к сети, например к Ethernet, читать данный материал вам не нужно (если только вы не хотите понять, как ОС Lit настраивает сетевые соединения). Однако если вы входите в сеть через модем (например, связываетесь таким образом с провайдером Internet), вам 6yдет полезно ознакомиться с материалами, относящимися к протоколам SLII РРР. Сдесь рассказывается о том, как заставить Linux-систему связываться с провайдером Internet и правильно устанавливать сетев соединение. Если в процессе выхода в сеть у вас возникли проблемы, полезной будет вся информация, представленная в этом материале.


141001 г.Мытищи МО
Ул.Институтская д:1 ком:101
(095) 588-52-39, 588-55-62
E-mail: lscs@mgul.ac.ru

Московский Государственный Университет Леса
Сервер Лаб. Космической информатики каф.ВТ

 
 

Настройка сетевого соединения

Введение.
Сетевые адреса TCP/IP.
Файлы конфигурации TCP/IP.
Сетевые интерфейсы и маршруты: команды ifconfig и route.
Контроль состояния сети: программы ping и netstat.
Служба доменных имен (DNS).
Протоколы SLIP и РРР

ТАБЛИЦЫ

Протоколы комплекта TCP/IP.
Адреса и файлы конфигурации TCP/IP.
Программы для настройки сетевых соединений.
Опции команды ifconfig.
Опции команды netstat.
Опции и специальные символы программы chat.
Опции программы pppd.
Опции и команды программы dip.
Переменные программы dip.


Введение.

Linux-системы конфигурированы на подключение к сетям, в которых используются протоколы TCP/IP. Именно эти протоколы применяются в Internet и многих локальных сетях. Эти протоколы были разработаны в семидесятых годах в рамках специального проекта Управления перспективных исследований и разработок Министерства обороны США с целью развития системы связи между учебными заведениями и научно-исследовательскими институтами. Разрабатывались эти протоколы для Unix-систем, при этом основные исследования проводились в Калифорнийском университете (г. Беркли). ОС Linux во многом выигрывает благодаря этой изначальной ориентации протоколов на Unix.

Комплект TCP/IP состоит из нескольких различных протоколов, каждый из которых выполняет в сети определенную задачу. Базовых протоколов два:
протокол управления передачей (TCP), который обеспечивает отправку и прием сообщений, и межсетевой протокол (IP), который отвечает за маршрутизацию. Остальные протоколы выполняют различные сетевые функции. Служба доменных имен (DNS) обеспечивает преобразование адресов. Протокол пересылки файлов (ftp) управляет передачей файлов, а набор протоколов NFS обеспечивает доступ к удаленным файловым системам. Прото-колы комплекта TCP/IP представлены в табл. 20.1

Конфигурирование в Linux-системе сетевого соединения, устанавливаемого по протоколу TCP/IP, и управление им - не слишком сложная задача. К услугам пользователя имеется набор конфигурационных файлов, с помощью которых система настраивает и поддерживает сетевые соединения. Полный перечень этих файлов приведен в табл. 20.2. Многими из них можно управлять с помощью административных программ из интерфейса привилегированного пользователя, в частности с помощью утилиты netcfg. Допускается также использование более специализированных программ, например таких, как netstat, ifconfig и route. Некоторые конфигурационные файлы легко поддаются редактированию с помощью текстового редактора. Широко используемые программы для настройки сетевого соединения представлены в табл. 20.3.

Допустим, в процессе инсталляции вы ввели информацию о конфигурации сети. Это означает, что система полностью готова к работе. Если Linux-система уже подключена к сети, например к Ethernet, читать данный материал вам не нужно (если только вы не хотите понять, как ОС Lit настраивает сетевые соединения). Однако если вы входите в сеть через модем (например, связываетесь таким образом с провайдером Internet), вам 6yдет полезно ознакомиться с материалами, относящимися к протоколам SLII РРР. Сдесь рассказывается о том, как заставить Linux-систему связываться с провайдером Internet и правильно устанавливать сетев соединение. Если в процессе выхода в сеть у вас возникли проблемы, полезной будет вся информация, представленная в этом материале.


141001 г.Мытищи МО
Ул.Институтская д:1 ком:101
(095) 588-32-09, 588-55-62
E-mail: lscs@mgul.ac.ru

Московский Государственный Университет Леса
Сервер Лаб. Космической информатики каф.ВТ

 
 

Оглавление.

Сетевые адреса TCP/IP.

- Адрес сети.
- Широковещательный адрес.
- Адрес шлюза.
- Адрес сервера имен.
- Маска сети.

IP-адрес состоит из четырех сегментов -чисел, разделенных точками. Одна часть этого адреса представляет собй адрес сети, а другая используется для обозначения конкретного хост-компьютера в этой сети. Адрес сети обозначает сеть, частью которой являе данный хост-компьютер. Обычно сетевая часть адреса занимает первые три сегмента, а адрес машины - последний сегмент. В совокупности сегменты образуют уникальный адрес, с помощью которого идентифицируется любой компьютер в сети, работающей по протоколам TCP/IP. Hanpимер, в IP-адресе 199.35.209.72 сетевая часть - 199.35.209, а машинная часть - 72. Данный компьютер является частью сети, адрес которой 199.35.209.0.

IP-адрес хост-компьютера - это лишь один из нескольких адресов которые необходимы для подключения этого компьютера к сети. Кроме него вам потребуются адрес сети, широковещательный адрес, адрес шлюза (если таковой имеется), адрес сервера имен и маска сети. Все эти адреса система предлагает пользователю ввести во время инсталляции. Если вы их ввели, то они будут автоматически занесены в соответствующие конфигурационные файлы. Кроме того, в них вводятся все записи, которые вы делаете при помощи утилиты netcfg. (Типы используемых сетевых адресов перечислен в табл. 20.2.)

Адрес сети

    Адрес сети можно легко установить по адресу хост-компьютера - зто сетевая часть адреса хост-компьютера плюс нуль; например, в хост-адрессе 199.35.209.72 адрес сети - 199.35.209.0.
    Системы определяют адрес сети по адресу хост-компьютера с помощь маски сети. Для знакомых с программированием скажем, что поразрядная операция И, проведенная с маской сети и адресом хост-компьютера, приводит к обнулению машинной части адреса и получению его сетевой части.

Широковещательный адрес

    Широковещательный адрес позволяет системе посылать сообщение одновременно всем системам в сети. Как и сетевой адрес, широковещателый адрес можно легко определить по адресу хост-компьютера; машинная часть в нем установлена равной 255, а сетевая часть не меняется. Например, широковещательный адрес для адреса хост-компьютера 199.35.209.72 - 199.35.209.255 (т.е. сетевая часть адреса остается прежней, а машинная меняется на 255).

Адрес шлюза

    Довольно часто один из компьютеров сети назначают шлюзом, задача которого - обеспечивать взаимодействие с другими сетями. Все соединения, устанавливаемые из данной сети с какой-либо иной и наоборот, осуществляются через этот шлюзовой компьютер. Если вы работаете в такой сети, то необходимо указать адрес шлюза. Если же шлюза в сети нет либо вы работаете в автономной системе или через провайдера Internet, то адрес шлюза не нужен.
    Как правило, адрес шлюза имеет ту же сетевую часть, что и адрес хост-компьютера, но в его машинной части стоит 1. Например, если адрес хост-компьютера - 199.35.209.72, то адрес шлюза (возможно) - 199.35.209.1. Однако такая договоренность выполняется не всегда. Чтобы узнать адрес шлюза наверняка, обратитесь к администратору своей сети.

Адрес сервера имен

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

Маска сети

    Маска сети используется для получения адреса сети, к которой вы подключены. При определении маски сети адрес хост-компьютера выступает в роли трафарета. Все числа в сетевой части хост-адреса устанавливаются равными 255, а в машинной части ставится нуль. Это и есть маска сети. Так, маска сети для хост-адреса 199.35.209.72 - 255.255.255.0. Сетевая часть, 199.35.209, заменена на 255.255.255, а машинная часть, 72, заменена нулем. С помощью этой маски системы определяют по вашему хост-адресу адрес вашей сети. Они могут установить, какая часть адреса хост-компьютера является сетевой и из каких чисел она состоит.


Оглавление.


141001 г.Мытищи МО
Ул.Институтская д:1 ком:101
(095) 588-32-09, 588-55-62
E-mail: lscs@mgul.ac.ru

Московский Государственный Университет Леса
Сервер Лаб. Космической информатики каф.ВТ

 
 

Оглавление.

Таблица 20.1. Протоколы комплекта TCP/IP
Опции
Назначение
Протоколы, отвечающие за транспортировку пакетов
TCP
Протокол управления передачей. Переводит системы в режим прямой связи
UDP
Протокол пользовательских дейтаграмм
Протоколы, отвечающие за маршрутизацию
IP
Межсетевой протокол; с его помощью осуществляется передача данных
ICMP
Межсетевой протокол управляющих сообщений; осуществляется выдача сообщений, позволяющих корректировать маршрутиздцию, осуществляемую с помощью протокола IP
RIP
Протокол маршрутной информации; определяет маршрутизацию
OSPF
Открытый протокол выбора кратчайшего пути; определяет маршрутизацию
Сетевые адреса
ARP
Протокол разрешения адресов; определяет физические адреса сетевых интерфейсов по их IP-адресам
DNS
Доменная система имен; преобразует хост-имена в IP-адреса
RARP
Протокол обратного разрешения адресов; определяет IP-адреса по физическим адресам сетевых интерфейсов
Пользовательский сервис
FTP
Протокол пересылки файлов; передает файлы из одной системы в другую с использованием протокола TCP
TFTP
Простой протокол пересылки файлов; пересылает файлы с использо-ванием протокола UDP
TELNET
Протокол прикладного уровня из набора TCP/IP. Обеспечивает интерактивный доступ к ресурсам удаленного хост-компьютера
SMTP
Упрощенный протокол пересылки почты; обеспечивает пересылку электронной почты между системами
Шлюзы
EGP
Протокол внешнего шлюза; обеспечивает маршрутизацию для внешних сетей
GGP
Межшлюзовой протокол; обеспечивает маршрутизацию при пересылке сообщений между Internet-шлюзами
IGP
Протокол внутреннего шлюза; обеспечивает маршрутизацию для внутренних сетей
Сетевые службы
NFS
Сетевая файловая система; позволяет монтировать файловые системы на удаленных машинах
NIS
Сетевая информационная служба; обеспечивает сетевую поддержку функционирования бюджетов пользователей
RPC
Дистанционный вызов процедур; позволяет программам в удаленных системах связываться между собой
ВООТР
Протокол начальной загрузки; обеспечивает запуск системы с использованием загрузочной информации, находящейся на сетевом сервере
SNMP
Простой протокол управления сетью; выдает сообщения о состоянии и конфигурации TCP/IP

Таблица 20.2. Адреса и файлы конфигурации TCP/IP
Адрес
Описание
Хост-адрес
IP-адрес локальной системы. Сетевая часть обозначает сеть, в которой находится локальная система, а машинная часть обозначает собственно систему
Адрес сети
IP-адрес сети (это сетевая часть IP-адреса хост-системы с нулем в машинной части)
Широковещательный адрес
IP-адрес для отправки сообщений одновременно всем хост-машинам сети (сетевая часть IP-адреса хост-системы с числом 255 в машинной части)
Адрес шлюза
IP-адрес системы-шлюза, если таковая имеется (обычно представляет собой сетевую часть IP-адреса хост-системы с единицей в машинной части)
Адреса серверов доменных имен
IP-адреса серверов доменных имен, обслуживающих данную сеть
Маска сети
В сетевой части IP-адреса хост-машины - три числа 255, а в машинной части - нуль (255.255.255.0)
Файлы
/etc/hosts
Связывает хост-имена с IP-адресами
/etc/networks
Связывает доменные имена с адресами сетей
/etc/rc.d/init.d/inet
Сценарий, конфигурирующий при начальной загрузке сетевой интерфейс
/etc/host.conf
Список опций определителя (resolver) адресов
/etc/resolv.conf
Список имен серверов имен, IP-адресов (поле Name-server) и имен доменов, по которым можно найти удаленные системы (поле Search)
/etc/protocols
Список протоколов, имеющихся в системе
/etc/services
Список доступных сетевых служб, например ftp и telnet
/etc/hosts
Список доменных имен удаленных хост-машин с их IP-адресами
/etc/hostname
Содержит имя локальной системы

Таблица 20.3. Программы для настройки сетевых соединений
Программа
Описание
netcfg
Программа конфигурирования сетевых интерфейсов и управления ими (ее пиктограмма находится на рабочем столе пользователя root)
ifconfig
_хост_флаг IР_адрес опции
Программа конфигурирования сетевого интерфейса
route
действие IР_адрес
Программа маршрутизации сетевого интерфейса. При вызове без аргументов выдает таблицу маршрутизации
ping
хост_имя
Проверяет доступность удаленной системы. Останавливается командой [Ctrl+c]
netstat
Выдает отчеты о состоянии сетевых соединений
hostname
Выдает текущее хост-имя локальной системы
dip
опции dip _сценарий
Для модемной связи устанавливает SLIP-соединение
pppd
chat_cцeнapuй устройство скорость опции
Для модемной связи устанавливает РРР-соединение

Таблица 20.4. Опции команды ifconfig
Опция
Описание
interface
Имя сетевого интерфейса; обычно имена находятся в каталоге /dev, например, /dev/eth0
aftype
Задает имя поддерживаемого семейства адресов; по умолчанию - inet (этот вариант сейчас используется в Linux)
up
Активизирует интерфейс
down
Деактивизирует интерфейс
-arp
Активизирует либо останавливает работу протокола ARP; знак "-" останавливает
-trailers
Включает или выключает режим использования завершителей в Ethernet-кадрах; знак "-" выключает
-allmulti
Включает или выключает режим, при котором все поступающие кадры отслеживаются на уровне системного ядра; знак "-" выключает; обеспечивает текущий контроль сети
metric n
"Стоимость" маршрута для данного интерфейса (сейчас не поддерживается)
mtu n
Максимальное число байтов, которое может быть послано по данному интерфейсу за одну передачу
dstaddr адрес
IP-адрес конечного пункта соединения типа "точка-точка"
netmask маска
IP-маска сети
broadcast адрес
Широковещательный адрес; предшествующий этой опции знак "-" означает отмену режима широковещательной рассылки пакетов
point-to-point
адрес
Работа интерфейса в режиме "точка-точка"; если адрес указан, то он присваивается удаленной системе
hw адрес
Устанавливает физический адрес интерфейса
адрес
Хост-имя или IP-адрес, присвоенный интерфейсу

Таблица 20.5. Опции команды netstat
Опция
Описание
-a
Выдает информацию обо всех гнездах, включая гнезда, работающий только на прием
-i
Выдает статистическую информацию обо всех сетевых устройствах
-c
Непрерывно (каждую секунду) выдает информацию о состоянии се до тех пор, пока работа программы не будет прервана
-n
Выдает IP-адреса удаленной и локальной систем
-o
Выдает информацию о количестве повторно переданных байтов состоянии таймера (on/off)
-r
Выдает хранящуюся в ядре таблицу маршрутизации
-t
Выдает информацию только о TCP-гнездах, включая работающие на прием
-u
Выдает информацию только об UDP-гнездах
-v
Выдает информацию о версии программы netstat
-w
Выдает информацию только о "сырых" (raw) гнездах
-x
Выдает информацию о доменных гнездах типа Unix

Оглавление.


141001 г.Мытищи МО
Ул.Институтская д:1 ком:101
(095) 588-32-09, 588-55-62
E-mail: lscs@mgul.ac.ru

Московский Государственный Университет Леса
Сервер Лаб. Космической информатики каф.ВТ

 
 

Оглавление.

Файлы конфигурации TCP/IP.

- Идентификация хост-имен: файл /etc/hosts.
- Имена сетей: файл /etc/networks.
- Инициализация сетевого соединения: файл /etc/rc.d/init.d/inet.
- Файл /etc/HOSTNAME.

    Для настройки и поддержки работы сети, работающей под управлевд протоколов TCP/IP, используется набор файлов конфигурации, расположиных в каталоге /etc. В этих файлах содержится информация о сети, в частности имена хост-машин и доменов, IP-адреса и характеристики интерфейсов. Именно в эти файлы вводятся IP-адреса и доменные имена других хост-компьютеров Internet, к которым вы хотите получить доступ. Если в процессе инсталляции системы вы конфигурировали сеть, то вся эта информация в файлах конфигурации уже есть. Ввести конфигурационные данные в эти файлы можно с помощью программы netcfg (ее пиктограмма находится на вашем рабочем столе) или с помощью программы netconfig) (из командной строки).

Файл
Функция
/etc/hosts
Связывает хост-имена с IP-адресами
/etc/networks
Связывает доменные имена с адресами сетей
/etc/rc.d/init.d/inet
Содержит команды конфигурирования сетевого интерфейса при начальной загрузке
/etc/HOSTNAME
Содержит хост-имя вашей системы
/etc/host.conf
Опции конфигурирования
/etc/resolv.conf
Содержит список серверов доменных имен

Идентификация хост-имен: файл /etc/hosts

    Без уникального IP-адреса, которым в сети TCP/IP идентифицируруются компьютеры, нужный компьютер найти нельзя. Поскольку IP-адреса трудны для запоминания и работы, вместо них используются доменные имена. Каждому IP-адресу ставится в соответствие доменное имя. Система преобразует доменное имя, по которому пользователь обращается к определенному компьютеру, в соответствующий IP-адрес, и он используется для установления соединения с указанным компьютером.
    Вначале ведение списка хост-имен с их IP-адресами было обязанностью всех компьютеров сети. Этот список до сих пор хранится в файле /etc/host Получив от пользователя доменное имя, система ищет в файле hosts cooтветствующий адрес. За ведение этого списка отвечает системный администратор. Вследствие стремительного роста Internet и появления все новых новых очень больших сетей функции преобразования доменных имен в IP-адреса были переданы серверам доменных имен. Тем не менее файл hosts продолжает использоваться для хранения доменных имен и IP-адрес хост-компьютеров, соединения с которыми устанавливаются наиболее часто. Перед тем как обращаться к серверу имен, ваша система всегда буде проверять файл hosts и искать в нем IP-адрес заданного ей доменного имени.
    Каждая запись в файле hosts состоит из IP-адреса, пробела и доменного имени. Для хост-имени можно создавать псевдонимы. В одной строке c записью можно ввести комментарий, который всегда предваряется символом #. В файле hosts уже имеется запись для локального компьютера localhost с IP-адресом 127.0.0.1. Localhost - это специальный зарезервированный IP-адрес 127.0.0.1, которой позволяет пользователям вашей системы связываться друг с другом в локальном режиме. Он служит для идентификации так называемого закольцовывающего интерфейса.

/etc/hosts
127.0.0.1        turtle.trek.com     localhost
199.35.209.72    turtle.trek.com
204.32.168.56    pangol.train.com
202.211.234.1    rose.berkeley.edu

Имена сетей: файл /etc/networks

    В файле /etc/networks хранятся доменные имена и IP-адреса сетей, с которыми у вашей системы есть соединение, а не доменные имена конкретных компьютеров. Сети имеют сокращенные IP-адреса. В зависимости от типа сети в IP-адресах может использоваться одно, два или три числа. Сетевой IP-адрес для localhost - 127.0.0.0 . Этот сетевой адрес используется для закольцовывающего устройства.
    IP-адреса записываются в файле /etc/networks вместе с соответствующими им доменными именами сетей. Вспомните, что IP-адрес состоит из сетевой части и машинной части. Сетевая часть - это адрес сети, который хранится в файле networks. В этом файле всегда будет присутствовать отдельная запись для сетевой части IP-адреса вашего компьютера. Это и есть адрес сети, к которой подключен ваш компьютер.

/etc/networks
loopback 127.0.0.0 
trek.corn 199.35.209.0

Инициализация сетевого соединения: файл /etc/rc.d/init.d/inet

В файле /etc/rc.d/init.d/inet находятся команды, обеспечивающие конфигурирование сетевого соединения. Многие записи в этом файле автоматически создаются при использовании утилиты netcfg и конфигурировании сетевого соединения в процессе инсталляции. Например, здесь находятся команды ifconfig и route. Кроме того, здесь задаются хост-имя вашей системы, адрес сети и другие необходимые адреса. Непосредственно редактировать этот файл можно лишь в том случае, если вы уверены в том, что все делаете правильно и обладаете начальными познаниями в области программирования в shell. В других дистрибутивах Linux, например в Slackware, файл инициализации может иметь имя /etc/ rec.d/rc-inet1 или просто /etc/rc.inet1.

Файл /etc/HOSTNAME

В файле /etc/HOSTNAME содержится хост-имя вашей системы. Чтобы изменить имя, нужно отредактировать данный файл. Эту задачу можно решить с помощью программы netcfg, которая заменяет хост-имя и помещает новое имя в файл /etc/HOSTNAME. Хост-имя можно узнать не только путем вывода на экран этого файла, но и с помощью команды hostname.

$ hostname
turtle.trek.corn

Оглавление.


141001 г.Мытищи МО
Ул.Институтская д:1 ком:101
(095) 588-32-09, 588-55-62
E-mail: lscs@mgul.ac.ru

Московский Государственный Университет Леса
Сервер Лаб. Космической информатики каф.ВТ

 
 

Оглавление.

Сетевые интерфейсы и маршруты: команды ifconfig и route

- Утилиты Netcfg и Lisa.
- Команда ifconfig.
- Маршрутизация.

    Соединение с сетью система устанавливает посредством конкретно аппаратного интерфейса, например Ethernet-платы или модема. Даннь. проходящие через этот интерфейс, направляются в сеть. Команда ifconfig позволяет конфигурировать сетевые интерфейсы, а команда route обеспечивает необходимую маршрутизацию. Те же операции конфигурирования сетевых интерфейсов, которые выполняются с помощью команд ifconfi и route, в системе Caldera Network Desktop можно реализовать, воспользм вавшись окном NetCfg утилиты netcfg. Если вы конфигурируете интерфейс с помощью утилиты netcfg, то прибегать к помощи команд ifconfig и route уже не нужно. Если же вы работаете в другой Linux-системе, попробуйте воспользоваться утилитой netconfig, которая выполняет те же задачу что и netcfg. Однако при желании можно конфигурировать интерфейс непосредственно с помощью команд ifconfig и route.
    При каждом запуске системы сетевые интерфейсы и таблицы маршрутизации необходимо конфигурировать заново. Эта задача может решаться автоматически на этапе начальной загрузки - поместите команды ifconfig и route для каждого интерфейса в файл инициализации /etc/re.d/init.d/lnet, который выполняется каждый раз, когда система запускается. Если сетевые интерфейсы конфигурируются утилитой netcfg в системе Caldera Network Desktop, то соответствующие команды ifconfig и route автоматически добавляются, в файл /etc/rc.d/imt.d/inet. Если же утилиту netcfg вы не задействовали, эти команды придется ввести в файл инициализации самостоятельно.

Утилиты Netcfg и Lisa

    Самый простой способ создания сетевого интерфейса - использовать одну из программ конфигурирования, Lisa или netcfg. Чтобы использовать программу Lisa, введите в командной строке команду lisa и перейдите меню System Configuration/Network Configuration. Затем можно выбрать элемент Configure General Network Services для ввода адресов сервер доменных имен или ввести хост-имя.
    Для настройки сетевого интерфейса можно также воспользоваться прграммой netcfg с рабочего стола пользователя root Войдите в бюджет root и запустите рабочий стол командой startx. Вы увидите пиктограмму с надписью netcfg Дважды щелкните на ней, и появится окно с перечнем всех сетевых интерфейсов С помощью netcfg можно изменять и расширять конфигурацию сетевого соединения.
    В окне NetCfg представлена информация, относящаяся к интерфейсам, серверам имен и хост-компьютерам. Данные, относящиеся к каждой из этих групп, находятся в отдельном окне, имеющем свои кнопки В окне Interface дается список задействованных интерфейсов С помощью кнопок, расположенных в нижней части этого окна, можно добавлять, конфигурировать, активизировать и деактивизировать интерфейсы. При вводе нового интерфейса открывается еще одно окно с полями, предназначенными для ввода необходимой информации. В частности, здесь следует указать имя интерфейса и его IP-адрес После закрытия этого окна вы увидите, что запись для данного интерфейса появилась в окне Interface.     В окне Nameserver перечислены все текущие серверы имен. С помощью кнопок Add и Remove здесь можно добавлять новые серверы имен и удалять старые Любая запись, которую вы здесь делаете, автоматически заносится в файл /etc/resolv.conf В нижнем окне дается список хост-компьютеров с их именами и IP-адресами Это те компьютеры, с которыми у вашей системы есть соединение. С помощью , кнопок, расположенных под этим окном, можно вводить и удалять имена хост-компьютеров, а также редактировать их. Изменения и новые записи заносятся в файл /etc/hosts.
    Можно также изменить хост-имя своего компьютера. Выберите в меню NetCfg элемент hostname. Система пригласит ввести новое хост-имя. Введенное вами имя заменит предыдущее в файле /etc/hostname.
    Внеся все необходимые изменения, щелкните на кнопке Save Configulftion. Введенная вами новая информация будет занесена в соответствующие файлы конфигурации сетевых соединений.

Команда ifconfig

    В качестве аргументов команда ifconfig использует имя интерфейса и IP-адрес. Кроме того, она имеет ряд опций. Команда ifconfig используется для того, чтобы присвоить заданному сетевому интерфейсу указанный IP-адрес. Таким образом она дает вашей системе знать о том, что данный интерфейс существует и что она обращается к нему по указанному IP-адресу. Кроме того, можно указать, каким адресом является IP-адрес - адресом хост-компьютера или адресом сети. Вместо IP-адреса можно использован доменное имя при условии, что оно указано вместе с IP-адресом в файле /etc/hosts . Команда ifconfig имеет следующий синтаксис:

# ifconfig интерфейс -хост_сеть_флаг адрес опции
    Флаг -хост_сеть_флаг может принимать одно из двух значений - -host или -net. Флаг -host свидетельствует о том, что данный IP-адрес является адресом хост-компьютера, a -net означает, что данный IP-адрес являете адресом сети. По умолчанию принимается флаг -host. У команды ifconfig есть несколько опций, которые задают различные характеристики интерфейса, например максимальное число байтов, которое он может передать за оди раз (mtu), широковещательный адрес и т.д. Опция up активизирует интер фейс, а опция down деактивизирует его. В следующем примере коман ifconfig используется для конфигурирования интерфейса Ethernet.
# ifconfig ethO 204.32.168.56
    Для такой простой конфигурации, как эта, ifconfig автоматически создаёт стандартный широковещательный адрес и маску сети. Стандартный широковещателъный адрес - это сетевой адрес с машинной частью, указанной как 255. Напомним, что стандартная маска сети - 255.255.255.0. Если же вы подключены к сети с другой сетевой маской и конкретным широковещательным адресом, их необходимо указать в командной строке ifconfig . Широковещательный адрес указывается в опции broadcast, а маска сети - в опции netmask. Опции команды ifconfig перечислены в табл. 20.4. В следующее примере ifconfig задает сетевую маску и широковещательный адрес.
# ifconfig eth0 204.32.168.56 broadcast 204.128.244.127 
netmask 255.255.255.0
    Интерфейсы типа "точка-точка", такие как PLIP (межсетевой протокол для параллельного канала), SLIP (межсетевой протокол для последовательного канала) и РРР (протокол "точка-точка"), требуют включения в команде ifconfig опции pointopoint. Имя интерфейса PLIP обозначается словом plip и номером; например, plip0 - это первый интерфейс PLIP. Интерфейсы SLIP имеют имена slip0, slip1 и т.д., а интерфейсы РРР - имена ррр0, ррр1 и т.д. Двухточечные интерфейсы - это интерфейсы, работающие, как правило, между двумя хост-компьютерами, например между двумя машинами, соединенными через модем. Устанавливая опцию pointopoint, необходимо указать IP-адрес хост-машины. Позже вы узнаете, как с помощью интерфейсов SLIP и РРР можно связываться по телефонной линии с провайдером Internet и устанавливать с ним соединение.
    В следующем примере показано, как конфигурируется интерфейс PLIP, который соединяет компьютер, имеющий IP-адрес 199.35.209.72, с компьютером, адрес которого 204.166.254.14. Если бы в файле /etc/hosts были указаны доменные имена этих систем, то вместо IP-адресов можно было бы использовать их доменные имена.
# ifconfig plip0 199.35.209.72 pointopoint 204.166.254.14
    В случае необходимости можно с помощью команды ifconfig конфигурировать закольцовывающий интерфейс. Этот интерфейс имеет имя и специальный IP-адрес, 127.0.0.1. Процедура конфигурирования закольцовывающего интерфейса показана в следующем примере.
# ifconfig 1о 127.0.0.1
    Команда ifconfig очень полезна для проверки статуса интерфейса. Если ввести ее только с именем интерфейса, то ifconfig выдаст информацию об этом интерфейсе.
# ifconfig eth0
    Чтобы посмотреть, конфигурирован ли закольцовывающий интерфейс, нужно дать команду ifconfig с именем этого интерфейса, :
# ifconfig 1о 
lo    Link encap:Local Loopback
          inet addr:127.O.O.1 Beast:127.255.255.255 Mask:255.О.О.О
          UP BROADCAST LOOPBACK RUNNING MTU:2000 Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0
          TX packets:12 errors:0 dropped:0 overruns:0

Маршрутизация

    Пакет, являющийся частью передаваемых данных, на пути в пункт своего назначения проходит по определенному маршруту. В крупных сетях пакеты передаются из одного компьютера в другой до тех пор, пока не попадут к адресату. Маршрут определяет начальную точку процесса передачи пакета и показывает, в какой компьютер ваша система должна передать пакет, чтобы он достиг пункта назначения. В небольших сетях маршрутизация может осуществляться статически, т.е. маршрут, ведущий от одной системы к другой, строго фиксирован. В более крупных сетях и в Internet маршрутизация осуществляется динамически. Ваша система знает, в какой компьютер пакет должен быть послан вначале. Этот компьютер принимает паке передает его в другой компьютер, который определяет, куда следует передать пакет дальше. При динамической маршрутизации ваша система должна знать очень мало. Статическая маршрутизация может быть очень сложной, поскольку необходимо отслеживать все сетевые соединения.
    Маршруты содержатся в таблице маршрутизации, которая хранится файле /proc/net/route. Чтобы вывести ее на дисплей, нужно дать команду route без аргументов.

# route
Kernel routing table
Destination    Gateway  Genmask      Flags  MSS    Window Use   Iface
loopback           *    255.0.0.       U    1936     0     12    lo
pangol.train.com   *    255.255.255.0  U    1936     0      0    eth0
    Каждая запись таблицы маршрутизации состоит из нескольких полей содержащих такую информацию, как, например, конечный пункт маршрута и тип используемого интерфейса. Поля таблицы маршрутизации перечислены в следующей таблице.

Поле
Описание
DestinationIP-адрес конечного пункта маршрута
GatewayIP-адрес или хост-имя шлюза, используемого на данном маршруте; символ * говорит о том, что шлюз в сети не используется
GenmaskМаска сети маршрута
FlagsТип или состояние маршрута: U=активный, Н=хост, С=шлюз, D=динамический, М=модифицированный
MSSTCP MSS (Maximum segment size) для маршрута - максимально количество данных, которое может быть передано за один раз
Metric"Стоимость" маршрута (количество переходов до шлюза)
RefКоличество использований маршрута на текущий момент
WindowРазмер окна приема. Наибольшее количество данных, которое принимающая сторона может принять
UseКоличество пакетов, пересланных по данному маршруту
IfaceТип интерфейса, используемого на данном маршруте

    В таблице маршрутизации должна содержаться по крайней мере одна запись, предназначенная для закольцовывающего интерфейса, иначе это интерфейс придется конфигурировать командой route. IP-адрес интерфейс нужно ввести в таблицу до того, как этот интерфейс будет задействован. Адрес добавляется с помощью команды route с опцией add.

route add адрес
    В следующем примере показано, как в таблицу маршрутизации вводится IP-адрес закольцовывающего интерфейса.
# route add 127.0.0.1

    Опция add имеет несколько спецификаторов (они указаны на страницах диалогового руководства, посвященных команде route). Если вы добавляете конкретный статический маршрут, то эти спецификаторы понадобятся для ввода таких параметров, как маска сети, шлюз, интерфейс и адрес пункта назначения. Если же интерфейс уже конфигурирован командой ifconfig, то система может получить основную информацию из данных конфигурации интерфейса. Например, чтобы задать маршрут для Ethernet-соединения, которое уже конфигурировано командой ifconfig, нужно лишь ввести спецификатор -net и IP-адрес пункта назначения. С помощью этого адреса ifconfig находит соответствующий интерфейс и на основании этой информации организует маршрут. Задание маршрута для интерфейса Ethernet иллюстрируется следующим примером.

# route add -net 204.32.168.0

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

# route del -net 204.32.168.0

Оглавление.


141001 г.Мытищи МО
Ул.Институтская д:1 ком:101
(095) 588-32-09, 588-55-62
E-mail: lscs@mgul.ac.ru

Московский Государственный Университет Леса
Сервер Лаб. Космической информатики каф.ВТ

 
 

Оглавление.

Контроль состояния сети: программы ping и netstat

    Программа ping позволяет проверить наличие доступа к другому хост-компьютеру сети. Эта программа посылает в указанный компьютер запрос и ожидает ответа. Если ответ приходит, он выводится на экран. Запрос передается непрерывно до тех пор, пока пользователь не остановит программу нажатием клавиш [Ctrl+c]. При этом на экране один за другим появляются ответы запрашиваемого хост-компьютера. Если ping не может связаться с указанной машиной, она выдает сообщение о том, что машина недоступна. Такой результат свидетельствует о том, что сетевое соединение не работает. Причиной может быть конкретный интерфейс, проблема в конфигурации или просто плохой физический контакт. Запускается программа ping командой ping с именем хост-компьютера.

$ ping pang01.train.corn

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

# netstat
Active Internet connections
Proto Recv-Q Send-Q Local Address  Foreign Address  (State)  User
tcp     0    0   turtle.trek.com:01  pangol.train.com:ftp ESTABLISHED dylan
Active UNIX domain sockets
Proto RefCnt Flags            Type             State            Path
unix  1      [ ACC ]          SOCK_STREAM      LISTENING        /dev/pnnter
unix  2      [ ]              SOCK_STREAM      CONNECTED        /dev/log
unix  1      [ ACC ]          SOCK_STREAM      LISTENING        /dev/nwapi
unix  2      [ ]              SOCK_STREAM      CONNECTED        /dev/log
unix  2      [ ]              SOCK_STREAM      CONNECTED
unix  1      [ ACC ]          SOCK_STREAM      LISTENING        /dev/log

    Команда netstat без опций выдает список сетевых соединений данно системы. (Опции команды netstat приведены в табл. 20.5). Cначала перечисляются активные TCP-соединения, а затем активные гнезда домена типа UNIX. Гнезда этого домена заняты процессами, обеспечивающими установление соединения данной системы с другими системами. Поля перечислены в следующей таблице.

Поле
Описание
ProtoПротокол, используемый для данного соединения: TCP, UDP
Recv-QКоличество байтов, полученных, но еще не скопированных программой пользователя
Send-QКоличество байтов, посланных в удаленную систему, получение которых еще не подтверждено
Local AddressЛокальное хост-имя и номер порта
Foreign AddressУдаленное хост-имя и номер порта, назначенный соединению; номер порта может указываться как тип соединения, например telnet или ftp
(State)Состояние соединения с удаленной хост-машиной
ESTABLISHED      соединение установлено
SYN_SENT            производится попытка установления соединения
SYN_REC              соединение устанавливается
FIN_WAIT1           соединение прерывается
CLOSED                соединение прервано
LISTEN                  режим ожидания соединения с удаленной машиной
UNKNOWN           состояние неизвестно
Гнезда домена UNIX
ProtoПротокол, используемый для данного гнезда (обычно unix)
RefCntКоличество процессов, обслуживаемых гнездом на текущий момент
TapeТип доступа к гнезду
StateСостояние гнезда
FREE                          гнездо не используется
LISTENING                ожидание соединения
UNCONNECTED        соединения нет
CONNECTING           производится попытка установления соединения
CONNECTED             соединение есть
DISCONNECTING     прерывание соединения
PrthПутевое имя, используемое процессами для доступа к гнезду

Дав команду netstat с опцией -r, можно вывести на экран таблицу маршрутизации, а опция -i позволяет получить информацию об использовании различных сетевых интерфейсов. Содержание полей разъясняется в следующей ниже таблице.

# netstat -i
Kernel Interface table
I face MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR   Flags
lo    2000   0     0      0      0      0    58      0      0      0   BLRU
MTU    Максимальное число байтов в пакете
RX-OK    Пакеты, принятые без ошибок
RX-ERR    Пакеты, принятые с ошибками
RX-DRR    Пропавшие пакеты
RX-OVR    Ошибки из-за превышения скорости
TX-OK    Пакеты, переданные без ошибок
TX-ERR    Пакеты, переданные с ошибками
TZ-DRR    Пакеты, потерянные при передаче
TX-OVR    Пакеты, которые не смогли передать
Flags
 
 
 
 
 
 
 
 
 
 
    Характеристики интерфейса
        A        принимает пакеты в случае многоадресной передачи
        B        принимает широковещательные пакеты
        D        отладка включена
        L        закольцовывающий интерфейс
        M        изменяется динамически (переадресация)
        N        без обработки завершителей пакетов
        O        протокол преобразования адресов выключен
        P        интерфейс "точка-точка"
        R        интерфейс работает
        U        интерфейс активизирован

Оглавление.


141001 г.Мытищи МО
Ул.Институтская д:1 ком:101
(095) 588-32-09, 588-55-62
E-mail: lscs@mgul.ac.ru

Московский Государственный Университет Леса
Сервер Лаб. Космической информатики каф.ВТ

 
 

Оглавление.

Служба доменных имен (DNS)

- файл host.conf.
- Файл /etc/resolv.conf.
- Организация собственного сервера имен: демон named.

    Каждый компьютер, подключенный к сети, работающей по протоколу TCP/IP (например, к Internet), идентифицируется своим IP-адресом. IP-aдрес представляет собой комбинацию четырех чисел, определяющих конкретную сеть и конкретный хост-компьютер в этой сети. IP-адреса очень трудно запоминать, поэтому для идентификации хост-компьютера вместо его 1Р-адрреса можно пользоваться доменным именем. Доменное имя состоит из двух частей - хост-имени и имени домена. Хост-имя - зто собственно имя компьютера, а домен обозначает сеть, частью которой этот компьютер является. Домены, используемые в США, обычно имеют расширения, обозначающие тип сети. Например, для учебных заведений использую расширение .edu, а для коммерческих организаций - расширение .com. Международные домены обычно имеют расширения, которые обозначают страну в которой они расположены, например .du для Германии и .аu для Австралии. Комбинация хост-имени, имени домена и расширения представляет собой уникальное имя, по которому можно обращаться к компьютеру. Домен, в свою очередь, иногда разбивается на поддомены.
    Как вы знаете, компьютер в сети можно идентифицировать только по его IP-адресу, даже если он имеет доменное имя. Обратиться к компьютеру в сети по доменному имени можно, но это предполагает поиск соответствующего IP-адреса в базе данных. Сеть использует для доступа к компьютеру не доменное имя, а IP-адрес. До появления очень больших сетей с протоколами TCP/IP, в частности Internet, каждый компьютер сети мог вести файл, перечнем доменных имен и IP-адресов всех компьютеров, включенных в эту сеть. В случае обращения по доменному имени компьютер искал его в этом файле и находил соответствующий IP-адрес. Так можно поступать и сейча в отношении удаленных систем, соединения с которыми устанавливаются чаще всего.
    По мере роста сетей ситуация изменилась. Ведение отдельного списка всех доменных имен и IP-адресов на каждом компьютере стало непрактичным, а в случае с Internet - просто невозможным. Чтобы обеспечивать преобразование доменных адресов в IP-адреса, были разработаны и установлены на особые серверы базы данных, содержащие доменные имена и соответствующие им IP-адреса. Для того чтобы найти IP-адрес доменного имени, на сервер имен посылается соответствующий запрос. Сервер имен ищет IP-адрес и посылает его обратно. В крупной сети может быть нескольк серверов имен, обслуживающих различные части сети. Если какой-либо сервер имен не может найти необходимый IP-адрес, он посылает запрос на другой сервер. Серверы имен могут предоставлять и такую информацию, как наименование предприятия, на котором находится искомый компьютер, его адрес и даже фамилию лица, обслуживающего этот компьютер.
    Запросы на серверы имен посылают особые программы, которые называют определителями (resolver). Определитель - это программа, предназначенная для получения адресов с серверов имен. Чтобы пользоваться у себя в системе доменными именами, вам придется конфигурировать собственный определитель. Конфигурация локального определителя задается файлами /etc/host.conf и /etc/resolv.conf.

файл host.conf

    В файле host.conf содержатся опции программы-определителя (см. следующую таблицу). Каждая опция может иметь несколько полей, отделенных друг от друга пробелами или знаками табуляции. Для ввода комментария в начале строки нужно ставить знак #. Опции указывают определителю, каким сервисом пользоваться. Важное значение имеет порядок следования опций. Определитель начинает обработку с первой из указанных опций и переходит по очереди к следующим. Файл host.conf находится в каталоге /etc вместе с другими файлами конфигурации.

order 
 
 
 
 
 
 
 
Задает последовательность методов преобразования имен
hosts         Проверяется наличие имени в локальном файле /etc/host
bind          Запрашивается адрес у сервера имен DNS
nis            Для получения адреса используется база данных центра сетевой информации (NIS)
alert         Проверяет наличие в локальной системе адресов удаленных узлов, пытающихся получить к ней доступ; устанавливается и отменяется ключевыми словами on и off
nospoofПодтверждает правильность адресов удаленных узлов, пытающихся получить доступ к локальной системе
trimУдаляет имя домена из полного имени и проверяет наличие только хост-имени. Позволяет использовать вместо IP-адреса не полное имя хост.домен.расширение, а просто хост-имя, указанное в файле hosts.
multiПозволяет хост-машине иметь несколько IP-адресов в локальном файле hosts. Включается и выключается ключевыми словами on и off

    В следующем примере, где представлен файл host.conf, опция order дает программе-определителю указание искать имена в локальном файле /etc/ hosts, а в случае неудачи направлять запрос на сервер имен. Не допускается использование нескольких адресов системы.

/etc/host.conf
# host.conf file
# Lookup names in host file and then check DNS 
order bind host
# There are no multiple addresses 
multi off

Файл /etc/resolv.conf

    Для того чтобы программа-определитель могла выполнять свою задачу ей должен быть предоставлен доступ к серверам доменных имен. В фале resolv.conf содержатся адреса серверов имен, к которым имеет доступ данная система. В этом файле можно создавать три типа записей, каждая из которых предваряется одним из трех ключевых слов: domain, nameserver, search. В записи domain вводится доменное имя локальной системы. В записи search приводится список доменов на тот случай, если задается только хост-имя. Если к какой-либо системе пользователь обращается часто, он может ввести имя ее домена в запись search, а затем использовать в качестве адреса только хост-имя. Определитель попытается найти полное доменное имя по имени домена, указанному в записи search.
    После записей search идут записи nameserver, если таковые имеются. Для каждого сервера имен, к которому имеет доступ данная система, вводиься ключевое слово nameserver и IP-адрес. Таких серверов может быть несколько, и порядок их следования в списке очень важен. Во многих сетях имеется основной сервер имен и несколько вспомогательных. Основной сервер должен запрашиваться первым. Для этого его IP-адрес должен быть введен в первую запись nameserver.
    Ниже приведен пример файла resolv.conf. Домен хост- компьютера berkeley.edu. IP-адреса серверов имен этого домена указаны в записях name server. Запись search позволяет использовать в качестве адреса только xoct-имя для компьютеров в домене unc.edu. Например, чтобы обратиться системе sunsite.unc.edu , пользователь должен ввести в качестве адреса толькй хост-имя, sunsite.

/etc/resolv.conf
# resolv.conf file 
domain berkeley.edu 
search unc.edu 
nameserver 204.199.87.2 
nameserver 204.199.77.2

Организация собственного сервера имен: демон named

    Если, будучи администратором сети, вы решили организовать в ней сервер имен, то можно конфигурировать на работу в качестве такого сервера любую Linux-систему. Для этого необходимо запустить демон named. Этот демон запускается одновременно с системой и ожидает запросов о доменных именах. Демон named пользуется несколькими файлами конфигураци которые позволяют ему отвечать на запросы. В файле named.boot указывается домен, который обслуживает данный сервер, и имя каталога, предназначенного для его рабочих файлов. В файле named.hosts хранится информация об этом домене. Она состоит из Записей, содержащих сведения о хост-компьютерах, находящихся в данном домене. В этих записях используется весьма специфический формат, с кодами в соответствующих полях. Файл named.rev содержит данные о соответствии между IP-адресами и хост-именами. Файл named.ca организует кэширование для сервера имен. Процесс организации собственного сервера имен может быть довольно сложным. Следует обратиться к документам HOW TO, странице диалогового руководства по программе named и литературе по администрированию сети, включающей в свой состав Linux-системы.


Оглавление.


141001 г.Мытищи МО
Ул.Институтская д:1 ком:101
(095) 588-52-09, 588-55-62
E-mail: lscs@mgul.ac.ru

Московский Государственный Университет Леса
Сервер Лаб. Космической информатики каф.ВТ

 
 

Оглавление.

Протоколы SLIP и РРР.

- Подготовка к установлению соединения по протоколам SLIP и РРР.
- Протокол РРР.
- chat-сценарии.
- Опции РРР.
- Обеспечение функционирования РРР-соединений, устанавливаемых по инициативе удаленных систем.
- Защита РРР-соединений: протокол CHAP.
- SLIP и CSLIP: программа dip.
- Статические IP-адреса в dip-сценариях.
- dip-сценарий.
- Динамические IP-адреса и программа dip.
- Обеспечение SLIP-соединений, устанавливаемых со стороны удаленных систем: diplogin.

    В качестве альтернативы таким аппаратным сетевым соединениям, как Ethernet, можно воспользоваться модемом и телефонными линиями. Существуют два протокола, которые позволяют передавать IP-сообщения по телефонным линиям. Это протокол SLIP (Serial Line Internet Protocol - межсетевой протокол для последовательного канала) и протокол РРР (Point-to-Point Protocol - протокол "точка-точка"). SLIP - старый протокол, а РРР - более современный, и очень стабильный. Он применяется во многих высокоскоростных соединениях, используемых провайдерами Internet. Протоколы SLIP и РРР предназначены специально для тех пользователей, которые подключают свои системы к Internet через модем и телефонную линию. Как правило, соединение устанавливается с провайдером Internet, который предоставляет для этого свои собственные системы.
    Провайдер Internet использует на конкретной линии либо протокол SLIP, либо РРР, поэтому сначала нужно выяснить, какой протокол используется. Например, фирма Netcom для передачи данных использует протокол РРР, а фирма Shell передает большие объемы информации с использованием протокола SLIP.
    Настройка SLIP- и РРР-соединения может оказаться сложной задачей. Подробные пояснения можно найти в документах PPP-HOWTO и Net-2-HOWTO в каталоге /usr/doc/HOWTO . Кроме того, имеются инструкции на Web-странице, расположенной в каталоге /usr/doc/HTML.

Подготовка к установлению соединения по протоколам SLIP и РРР

    Чтобы установить соединение по протоколу SLIP или РРР, необходимо активизировать поддержку системой протокола TCP/IP и конфигурировать закольцовывающий интерфейс. Система Caldera Network Desktop делает это автоматически. Провайдеры Internet обычно имеют в своем распоряжении серверы доменных имен, услугами которых можно воспользоваться. Необходимо выяснить IP-адреса этих серверов и ввести их в файл /etc/resolv.conf. Для ввода адресов можно воспользоваться утилитой netcfg. В любом случае следует с помощью команды more или команды cat вывести содержимое файла /etc/resolv.conf на экран и проверить, введены ли в него доменные имена серверов. Если их там нет, то ни один вводимый вами адрес не будет распознан.

Протокол РРР

    Протокол "точка-точка" (РРР) - это более новый универсальный протокол, который завоевывает все большую популярность. Он обеспечивает гораздо более стабильное соединение и может поддерживать работу целого ряда сетевых протоколов помимо IP. Основную часть работы РРР выполняет автоматически. В отличие от SLIP, здесь не нужно для каждой операции создавать сценарий с целым набором команд. РРР автоматически определяет удаленные IP-адреса, как статические, так и динамические.
    РРР-соединение устанавливается с помощью программы pppd. Эта пр грамма конфигурирует соединение, устанавливает лимиты MTU и получа IP-адреса. В отличие от dip , однако, pppd не устанавливает предварительи соединение. Она не набирает через модем номер телефона провайдера и не предоставляет информацию о регистрационных именах и паролях. Чтобы использовать pppd, нужно сначала установить соединение с удаленной хост-системой. Это можно сделать с помощью программы chat, в которой используются свои опции и форматы. Сначала эта программа устанавливает соединение, а затем pppd конфигурирует его. Однако нет необходимости сначала вызывать chat, а затем pppd. Дело в том, что pppd в качеств аргумента использует имя программы, которая устанавливает соединение, в данном случае chat. Это имя нужно просто указать вместе с опциями команды chat в командной строке pppd. По сути дела, вся операция установления соединения с помощью pppd выполняется в одной командной строке, в отличие от dip-сценария.
    Программа pppd различает статические и динамические IP-адреса, проверяя, включил ли пользователь набор IP-адресов в качестве аргумента в командную строку, а также по наличию опции noipdefault. Если IР-адреса указаны, pppd считает, что это статическое соединение, и использует данные адреса как удаленный и локальный для установления статического соединения. Если адреса не указаны, pppd использует удаленный и локальный адреса, предусмотренные по умолчанию. Локальный адрес по умолчанию - это IP-адрес локальной системы, указанный в файле /etc/hostname. Удаленный адрес по умолчанию программа пытается определить из перечня адресов, указанного в файле /etc/hosts. Для того чтобы pppd считала, что используются динамические адреса, определяемые при установлении соединения, применяется опция noipdefault и адреса не указываются. Такий образом, опция noipdefault дает команде pppd возможность не использовать адреса, предусмотренные по умолчанию. Поскольку адреса не указаны, pppd считает, что динамические адреса будут получены от удаленной системы.
    Локальный и удаленный статические адреса вводятся в строке рядом через двоеточие, при этом локальный адрес указывается первым. В следующем примере задается локальный адрес 199.35.209.72 и удаленный адрес 163.179.4.22.

199.35.209.72:163.179.4.22

    Если используется динамический удаленный адрес, можно указать только локальный адрес с двоеточием. Программа pppd использует этот локальный адрес, а удаленный адрес получает от системы провайдера.

199 35.209.72:

    Поскольку локальный адрес, указанный в файле /etc/hostname , - это ваш локальный адрес по умолчанию, вводить его в командной строке не нужно. Просто введите команду pppd без адресов. Программа использует указанный в hostname адрес как локальный, а удаленный адрес получит от удаленной системы.
    Большинство провайдеров Internet, которые пользуются динамическими адресами, выдают своим клиентам и локальные, и удаленные адреса. В этом случае не нужно вводить вообще никаких адресов. Необходимо лишь установить опцию noifdefault. Она не позволит программе использовать указанный в файле hostname адрес в качестве локального адреса по умолчанию. При отсутствии обоих адресов программа pppd получит их от удаленной системы.

chat-сценарии

    Наиболее эффективный способ использования программы chat - вызов chat-сценария. Для установления соединения chat должна получить всю необходимую информацию о нем: номер телефона, регистрационное приглашение, идентификатор пользователя, приглашение для ввода пароля, пароль и строку инициализации модема. Всю эту информацию можно ввести в командной строке после команды chat , однако в результате команда станет очень длинной и сложной. Более удобный способ - создать файл с необходимой для работы chat информацией, а затем указать в команде chat опцию -f и имя этого файла. Такие файлы называются chat-сценариями.
    Chat-сценарий состоит из одной строки (line), разбитой на сегменты, соответствующие этапам процедуры соединения. Каждый сегмент состоит из строковой пары "ожидание-ответ". Первая часть пары - это то, что вы ожидаете получить, а вторая - то, что вы посылаете. Если получать нечего, то вводится пустое строковое значение, " ". Первый сегмент может быть строкой инициализации модема. Поскольку на первом этапе от модема никакой информации не поступает, то сегмент начинается пустым строковым значением. Затем указываются коды инициализации модема. При вводе кодов в строку инициализации необходимо все коды, начинающиеся со знака &, предварить обратной косой чертой, поскольку в chat знак & означает прерывание и приводит к остановке процесса. В приведенном ниже примере обратная косая черта стоит перед строковым значением &F2.

"" ATUF2V1L0

    В следующем сегменте сначала ожидается положительный ответ от модема (ОК), что означает отсутствие проблем с инициализацией. Затем можно набирать номер телефона.

 OK ATDP5885555

    В ответ, как правило, приходит строка подтверждения соединеня. В разных системах эти строки отличаются. Более того, строки подтверждения соединения может не быть вообще. Во многих системах строкой подтверждения соединения является слово CONNECT, в некоторых это скорость передачи в бодах и т.д. В нашем примере пользователь получает в качестве строки подтверждения соединения значение скорости передачи. В ответ на строку подтверждения соединения, как правило, ничего не посылается, но может быть послан символ новой строки. Как уже говорилось, отсутствие ответа обозначается пустым строковым значением, т.е. двумя двойными кавычками (" "). Новая строка (line) в chat-сценарии обозначается комбинацией символов \n. (Некоторые удаленные систеи требуют DOS-версии символа новой строки, которая представляет собой последовательность символа возврата каретки и символа перехода на нову строку, \r\n.) Перечень специальных символов chat-сценария приведен в табл. 20.6 . В следующем примере в ответ посылается символ новой строки.

57600 \n

    После строки соединения удаленная система обычно посылает регистрационное приглашение. Часто это слово "login" с двоеточием. Вам нужны только последние несколько символов, ogin:. Не забывайте про двоеточие. В ответ нужно послать свой идентификатор пользователя. В зависимости того, с каким провайдером Internet вы работаете, возможно, придется добавлять к идентификатору символ новой строки, например mylogin\n. Провайдер может потребовать включения и других символов, допустим, начального знака $.

ogin: mylogin

    После регистрационного имени следует ожидать получения приглашения ввести пароль. Опять-таки нужны только последние несколько символе word:. В ответ нужно сообщить свой пароль. При необходимости добавьте символ \n.

word: mypass

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

"" AT\&F2V1L0 OK ATDP8888888 CONNECT \n login: mylogin word: mypass

    Если вы не инициализируете модем, можете попробовать немного измененный вариант:

"" ATDP8888888 CONNECT \n login: mylogin word: mypass

    Если ваш провайдер не требует, чтобы при получении слова CONNECT указывался символ новой строки, вы можете опустить его:

"" ATDP8888888 login: mylogin word: mypass

    В chat-сценарии пары приема-передачи разрешается разбивать на отдельные строки, по одной паре на строку. Записи каждой пары разделяются пробелами или знаками табуляции. При желании можно все поместить в самую первую строку. Имя файла сценария имеет расширение .chat. В следующем примере показан сценарий mycon.chat, в котором пары введены в отдельных строках.

mycon.chat
"" AT\&F2V1L0 
OK ATDT4448888 
CONNECT\n 
ogin: mylogin 
word: mypass

    Этот сценарий можно вызывать командой chat с опцией -f, как показано ниже. Программа chat использует представленную в этом сценарии информацию для инициализации модема, набора номера телефона удаленной системы и регистрации с указанием вашего идентификатора пользователя и пароля.

chat -f mycon.chat

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

mycon.chat
ABORT 'NO CARRIER' 
ABORT BUSY 
"" AT\&F2V1L0 
OK ATDT5558888 
CONNEXCT\n 
ogin: mylogin 
word: mypass

    Обращение к программе chat можно встроить в вызов команды ррpd; chat устанавливает соединение, а затем pppd конфигурирует его.
    Демон протокола РРР (pppd) вызывается с несколькими опциями. Bот его стандартный синтаксис:

pppd опции имя_устройства скорость локальный:удаленный_адреса опции_ррр

    Имя_устройства (имеется в виду устройство, подключаемое к последовательному порту) - это имя устройства для модема. Вероятнее всего, это /dev/cua с номером (обычно от 0 до 3), соответствующим порту, к которому модем подключен. Порту 1 соответствует сuа0, порту 2 - cual и т.д. Скорость - это скорость передачи данных в бодах. Для модема, поддерживающего протоке v.28, это 38400 или даже 56700 бод. Максимальную скорость передачи можно узнать у провайдера Internet и из документации на модем.
    Опции команды pppd позволяют задать параметры конфигурации, например величину максимального передаваемого блока данных (MTU) и наличие динамического IP-адреса. Опция connect дает команде указание установить соединение. В качестве аргумента команда pppd использует Linux-команду, которая реализует это практически (как правило, ею является команда chat). В данном случае вводится имя демона pppd, затем опции connect, команда chat с опцией -f и, наконец, имя файла chat-сценария. Команда chat с опцией -f и именем chat-файла заключается в кавычки, чтобы отличить ее от других опций pppd. В следующем примере показано, как пользователь вызывает pppd с командой chat, пользуясь сhat-сценарием mycon.chat. Модем подключается к порту 4, /dev/сuа3, а скорость передачи данных составляет 57600 бод.

# pppd connect 'chat -t mycon.chat' /dev/сuа3 57600

    Для разрыва РРР-соединения необходимо вызвать команду pppd c опцией disconnect. Можно использовать chat-сценарий для подачи модему команд на разрыв соединения (например Н0):

# pppd disconnect 'chat -f turnoff.chat'
turnoff.chat
-\d+++\d\c OK 
ATH0 OK

    Чтобы упростить процедуру разъединения, можно поместить команду pppd в сценарий аналогично тому, как это было сделано для процедуры соединения.

Опции РРР

    У команды pppd имеется очень много опций. В табл. 20.7 представлены наиболее часто употребляемые опции, а их полный перечень можно найти, на страницах диалогового руководства, посвященных этой программе. Например, опция mru устанавливает размер "максимальной единицы приема". Программа pppd дает удаленной системе указание посылать пакеты, размеры которых не превышают эту величину. По умолчанию она принимается равной 1500 байтов; для менее скоростных модемов рекомендуется брать 296 или 542. Опция defaultroute дает pppd указание настраивать РРР-соединение как маршрут по умолчанию. Отсутствие адресов при наличии опции noipfdefault обеспечивает выявление и использование динамического IP-адреса, полученного от удаленной системы провайдера Internet. Эту опцию нужно указывать в том случае, если ваш провайдер предоставляет только динамические IP-адреса. Опция crtscts означает аппаратное управление потоком, а опция modem позволяет управлять модемом. Эти опции можно задавать в командной строке после указания скорости передачи, например:

# pppd -connect 'chat -f mycon.chat' /dev/cua1 57600 mru 1500 
defaultroute noipdefault crtscts modem

    В следующей команде наличие адресов означает, что программа pppd должна использовать эти адреса для установления статического соединения. Локальный адрес - 199.35.209.72, а удаленный - 163.179.4.22.

# pppd -connect 'chat -f mycon.chat' /dev/cua1 57600 
199.35.209.72:163.179.4.22 mru 1500 defaultroute crtscts modem

    При наличии многих опций такая командная строка получается очень длинной и сложной. В качестве альтернативного варианта pppd позволяет вводить опции в файл /etc/ppp/options, а также в файл .рррrс. При каждом вызове pppd автоматически читает и использует перечисленные в этих файлах опции. Количество опций не ограничено; каждая вводится в отдельной строке. Пользуясь знаком #, можно вводить комментарии, поясняющие функции той или иной опции и их значения. Файл /etc/ppp/options содержит опции команды pppd, принимаемые системой по умолчанию. Этот файл создается привилегированным пользователем и при вызове pppd проверяется в первую очередь. Файл .рррrс содержит опции, указанные конкретным пользователем, и читается после системного файла /etc/ppp/options. У каждого пользователя может быть собственный файл .ррргс, находящийся в его начальном каталоге. Ниже приведен краткий пример файла опций.

/etc/ppp/options
# /etc/ppp/optins-*-sh-*-general options for pppd
crtscts
defaultroute
modem
mru 542
asyncmap 0
netmask 255.255.255.0
noipdefault

    Чтобы облегчить процесс создания файла опций, в версии Red Hat Linux предусмотрен файл options.tpl (каталог /etc/ppp). Это - шаблон, в котором перечислены все опции со стандартными значениями и подробными пояснениями. Все они превращены в комментарии, т.е. в начале каждой строки стоит знак #. Вместо того чтобы создавать файл опций с нуля, мозжно скопировать options.tpl в файл options, сделав его файлом опций. Затем с помощью редактора (например, Vi) нужно убрать знак # из строк тех опций которые соответствуют потребностям пользователя. Например, чтобы установить опцию noipdefault, найдите с помощью редактора эту строку и удалите знак #. Если понадобится отменить действие опции, вновь поставьте этот знак в начало строки. Таким методом можно быстро задать все необходимые опции и в дальнейшем при вызове pppd их не вводить.
    Если опции заданы в файле /etc/ppp/options, то в командной строке pppd нужно указать только имя pppd, команду вызова программы chat, имя устройства для модема и скорость передачи данных.

$ pppd connect 'chat -f mycon.chat' /dev/cua1 57600

    Вы можете сократить и эту запись, включив вызов pppd в сценарий shell и затем просто выполняя этот сценарий. Напомним, что сценарий shell представляет собой текстовый файл, который можно создавать с помощью, любого текстового редактора. Строка вызова команды со всеми аргументами, вводится в этот файл так же, как в командную строку. Перед командой pppd не забудьте вставить команду ехес. Команда ехес не приводит к созданию нового процесса для выполнения pppd, а замещает shell данного сценария. Затем следует с помощью команды chmod 755 имя_сценария сделать этот сценарий исполняемым, а потом поместить его в каталог /usr/local/bin. Теперь, для того чтобы установить соединение с помощью pppd, нужно просто ввести в командной строке имя этого сценария и нажать клавишу Enter. В следующем примере вызов процедуры соединения pppd помещается в сценарий shell pppcon, и для вызова pppd пользователь просто вводит команду pppcon.

pppcon
ехес pppd connect 'chat -f mycon.chat' /dev/cua1 57600
$ pppcon

    Теперь можно попробовать установить с помощью pppd соединение с удаленной системой. При этом могут возникнуть самые разные проблемы. Например, строка подтверждения установления соединения может оказаться неверной, возможны ошибки в инициализации модема и т.д. Программа pppd регистрирует описания всех выполняемых ею действий в файле /var/log/messages. С помощью команд more, tail или cat можно вывести эти описания на экран даже в процессе работы pppd. Если соединение установлено, то вы увидите перечень IP-адресов (см. ниже).

$ tail /var/log/messages

    Приведенная ниже команда позволяет выводить на экран сообщения о ходе установления соединения по мере их ввода в файл /var/Iog/messages. Остановить этот процесс можно командой [Ctrl+c].

$ tail -f /var/log/message
Mar 23 20:01 03 richip pppd[208]:    Connected...
Mar 23 20:01 04 richip pppd[208]:    Using interface ppp0
Mar 23 20-01 04 richip kernel: ppp:  channel ppp0 mtu =1500, mru = 1500
Mar 23 20 01 04 richip kernel: ppp:  channel ppp0 open
Mar 23 20:01 04 richip pppd[208]:    Connected: pppO /dev/сuа3
Mar 23 20:01 09 richip pppd[208]:    local  IP adress 204.32.168.68
Mar 23 20:01 09 richip pppd[208]:    remote  IP adress 163.179.4.23

    В версии Red Hat Linux имеется образец регистрационного РРР-сценария (файл ррр-оn в каталоге /usr/sbin). С помощью текстового редактора можно присвоить определенным переменным, например Phone и Password, нужные значения. Аргументы и опции команд chat и pppd вводите внимательно, чтобы избежать ошибок. Если опции уже заданы в файле /etc/ppp/options, то большинство тех опций, которые обычно указываются в командной строке, можно удалить. Не забудьте правильно установить скорость передачи данных и имя устройства для модема. Для установления РРР-соединения по этому варианту нужно просто ввести команду ррр-оn. Для разрыва соединения можно использовать команду ppp-off . Это сценарий shell, расположенный в каталоге /usr/sbin и уничтожающий собственно процесс PPP.
    Вызвать команду pppd и настроить РРР-соединение можно также с помощью программы dip. Устанавливая в dip-сценарии режим PPP, вы фактически выполняете программу pppd. В этом случае chat-сценарий для установления соединения не нужен, поскольку это уже сделала программа dip. Однако следует отметить, что при вызове pppd должны быть установлены несколько опций, которые в dip-сценарии указать нельзя. Их нужно устанавливать в файле /etc/ppp/options, который pppd автоматически читает при выполнении.

Обеспечение функционирования РРР-соединений, устанавливаемых по инициативе удаленных систем

    Как и в случае работы по протоколу SLIP, локальную систему можно конфигурировать как сервер PPP, позволяя тем самым удаленным системам устанавливать РРР-соединения с локальной системой по телефонным линиям связи. Для этого нужно всего лишь создать один специальный бюджет и сценарий, содержащий команду вызова pppd с опциями -detach и silent. Обычно этот сценарий называется ppplogin. Вот его образец:

/etc/ppp/ppplogin
ехес pppd -detach silent modem crtscts

    Опция -detach не позволяет демону pppd освободить занимаемую им линию, а опция silent заставляет его ждать, пока удаленная система организует канал связи с локальной. Опция modem обеспечивает контроль модемных линий, а опция crtscts позволяет осуществить аппаратное управление потоком.
    Специальный бюджет носит имя ррр. Запись в файле /etc/passwd для этого бюджета может иметь следующий вид:

ррр:*:501:300:PPP Account:/tmp:/etc/ppp/ppplogin

Защита РРР-соединений: протокол CHAP

    Безопасность передачи информации с использованием РРР-соединений обеспечивается за счет применения дополнительных протоколов. Для РРР разработано два таких протокола: PAP (Password Authentification Protocol - протокол аутентификации паролей) и CHAP (Challenge Handshake Authentification Protocol - протокол аутентификации с квитированием связи). CHAP, считается более надежным. Он построен на базе алгоритма шифрования, требующего, чтобы две соединенные между собой системы непрерывно, идентифицировали друг друга. Ключи к шифру хранятся в файле /etc/ppp/chap-secrets. Чтобы использовать CHAP в РРР-соединениях, надо включить в команду вызова pppd опцию auth и ввести в файл /etc/ppp/chap-secrets необходимую информацию об удаленной системе. Ниже приведен пример записи из этого файла. Записи для протокола РАР имеют тот же формат.

/ect/ppp/chap-secrets
pangol.train.com	  turtle.trek.com    "my new hat"
*                   turtle.trek.com    "confirmed tickets"
turtle.trek.com	  pangol.train.com   "trek on again"

    Запись для протокола CHAP состоит максимум из четырех полей: хост-имени клиента, хост-имени серрера, секретного ключа и списка возможных IP-адресов. Пользователь локальной системы может потребовать от компьютера, пытающегося установить с нею соединение, ввода указанного ключа. В поле имени клиента можно поставить звездочку, которая означает, что ключ должны указывать все удаленные системы. Система, которая знает секретный ключ, имеет право установить соединение с локальной системой. Первая запись следующего примера относится к случаю, когда сервером является собственная система пользователя, turtle.trek.com. Она позволяет системе pangol.train.com установить соединение при условии, что та укажет заданный секретный ключ. Следующая запись позволяет любой удаленной системе установить соединение с локальной, если удаленная система знает ключ, в данном случае " confirmed tickets".

pangol.train.com   turtle.trek.com   "my new hat"
*                  turtle.trek.com   "confirmed tickets"

    В этом файле следует также сделать записи для удаленных систем, с которыми будет связываться локальная система. В этом случае удаленная система становится РРР-сервером, а локальная - клиентом. Из следующего примера видно, что система turtle может связаться с системой pangol по секретному ключу, в данном случае "trek on again".

turtle.trek.com  pangol.train.com  "trek on again"

SLIP и CSLIP: программа dip

    Существует два типа SLIP-соединений: стандартное, которое называется просто SLIP, и более новое соединение, функционирующее со сжатием передаваемой информации, которое называется Compress SLIP, или CSLIP. Обязательно узнайте, какое соединение предоставляет ваш провайдер Internet. При установлении соединения вам нужно будет указать тип соединения для выбора протокола. За исключением разницы при указании типа, процедура установления соединения в обоих случаях одинакова. Ссылки на SLIP относятся и к SLIP, и к CSLIP, если иного не указано.
    Управление SLIP-соединением и его настройка осуществляются с помощью программы dip. При наличии соответствующей информации данная программа автоматически устанавливает соединение с провайдером Internet. Это позволяет пользователю запускать в своей системе все Internet-приложения, например Netscape и ftp.
    Программа dip работает как интерпретатор команд. В файле, который называется dip-сценарием, пользователь указывает определенные команды, необходимые для входа в систему провайдера Internet и установления соединения. Программа читает команды из этого файла и выполняет их по очереди. Например, команда dial позволяет набрать с помощью модема номер телефона системы провайдера, dip-сценарий имеет расширение .dip. Подготовив dip-сценарий, можно давать команду dip с именем этого сценария. Опция -v позволяет выводить на экран в процессе выполнения каждую команду, что дает возможность контролировать ошибки. Ниже приведен базовый синтаксис командной строки программы dip.

$ dip -v файл_сценария.dip

    В табл. 20.8 приведены различные команды, вводимые в dip-сценарий. К ключевым командам относятся port, speed, dial, get, modem, mode и default. Команда dip использует также несколько специальных переменных, содержащих информацию о соединении. Например, в переменной $rmtip хранится IP-адрес удаленной системы.
    Сценарии несколько отличаются друг от друга, в зависимости от того, какую процедуру регистрации использует тот или иной провайдер Internet. Это касается, в частности, регистрационного приглашения, номера телефона и строки команд модема, необходимых для установления соединения. Кроме того, существуют две очень разные формы сценариев, выбор между которыми зависит от того, какой IP-адрес вам дает провайдер - постоянный или только на время соединения. Чтобы установить SLIP-соединение, определите, какого типа IP-адрес предоставлен вам провайдером.
    Если при установлении соединения с помощью dip-сценария возникав проблемы, рекомендуется запускать dip в интерактивном режиме (с опцией -t). В этом режиме dip вызывает собственный shell с приглашением DIP>. По этому приглашению можно по одной вводить dip-команды. Если наряду с опцией -t используется и опция -v, то dip выдает подробное описание всех действий, которые выполняет. Для выполнения регистрации можно также воспользоваться командой term, которая вводится по приглашению DIP>. Эта команда переводит программу dip в режим терминала, в котором система провайдера Internet предлагает пользователю ввести свой идентификатор и пароль. Возврат к приглашению DIP> после установления соединения осуществляется с помощью команды [Ctrl+]]. После этог можно продолжать работу, устанавливать маршрут и режим. Команда term позволяет увидеть, какие приглашения для регистрации и ввода пароли посылает вам удаленная система провайдера Internet. Если вы сами разработали процедуру установления соединения, то, конечно, гораздо проще пользоваться dip-сценарием.

# dip -t -v
DIP>

    Если нужно разорвать dip-соединение, дайте команду dip с опцией -k. Разорвать определенное соединение можно также с помощью этой команды с опцией -l, указав конкретную линию. Команда dip с одной только опцией -k разрывает самое последнее соединение. Опция -k полезна в том случае, если вы успешно установили соединение, но по какой-либо причине не можете зарегистрироваться или установить режим работы линии. Соединение остается активным до тех пор, пока вы не разорвете его явно, воспользовавшись командой dip с опцией -k.

$ dip -k

Статические IP-адреса в dip-сценариях

    Статический IP-адрес - это адрес, который предоставляет вам провайдер Internet в постоянное пользование. Ваш компьютер всегда идентифицируется этим адресом. Инициируя SLIP- соединение с удаленной хост-машиной провайдера, вы пользуетесь статическим IP-адресом для обозначения своей системы. В соединениях, использующих статический IP-адрес, вы присваиваете свой статический IP-адрес переменной $local, а адрес удаленной, хост-машины провайдера - переменной $remote. Присваивание значений переменным осуществляется с помощью команды get. Эти присваивания. выполняются в самом начале dip-сценария. Программа dip ищет в этих переменных соответствующие IP-адреса. После того как IP-адреса указаны, можно продолжать вводить команды процедуры регистрации. Перечень переменных программы dip приведен в табл. 20.9.

get $local статический_IР_адрес 
get $remote удаленный_IР_адрес

dip-сценарий

    Ниже приведен пример dip-сценария с использованием статического адреса. Пример этого сценария можно найти на странице диалогового руководства, посвященной программе dip. Сценарий начинается с ряда команд настройки модема. Сначала определяется устройство, на котором установлен модем. Порты com1, com2, com3 и соm4 соответствуют устройствам /dev/cua0, /dev/ cual, /dev/cua2 и /dev/сиа3. Отметим, что номера устройств начинаются с нуля, поэтому соm4 соответствует сuа3. Затем устанавливается скорость передачи данных, 57600 бод (стандартная установка для модема, поддерживающего протокол v.28). Команда init в качестве аргумента использует строку инициализации модема. Здесь вводятся специальные коды для модема. Команда reset использует эту строку для инициализации модема.

mystatic.dip
#For а static IP address assign your system's IP address to the variable $local 
get $local 199.35.209.72
#For a static IP address assign the remote system's IP address to the variable $remote 
get $remote 163.179.4.22
#Set the netmask to 255.255.255.0 
netmask 255.255.255.0
#Set port and speed. 
port cua3 
speed 57600 
init AT&F2V1M0 
reset
#The Standart errlvl values:
# 0-OK
# 1-CONNECT
# 2-ERROR
# 3-BUSY
# 4-NO CARRIER
# 5-NO DIALTONE
wait OK 2
if $errlvl != 0 goto modem_trouble
dial 555-8888
if $errlvl != 1 goto modem_trouble
#Connection made, now login to the system.
wait ogin: 20
if $errlvl != 0 goto error
send mylogin\n
wait word: 20
if $errlvl != 0 goto error
send mypass\n
#We are now logged in.
wait CONNECT 15
if $errlvl != 0 goto error
#Set up the SLIP operating parameters.
get $mtu 296
#Sets up SLIP connection as default route.
default
mode CSLIP
print Your are now connected to $locip as $rmtip
goto exit
modem_trouble:
print Trouble occured with the modem... 
error
print CONNECT FAILED to $remote 
quit 1 
exit:
exit:

    Переменным $lосаl и $remote присваиваются соответственно статический адрес локальной системы и IP-адрес системы удаленной. После этого начинается собственно процедура регистрации. Команда dial обеспечивает набор указанного номера телефона. Если установить соединение не удается, в переменную $еrrlvl возвращается код ошибки. Его значение проверяется сразу после выполнения команды dial, чтобы посмотреть, нет ли ошибки, и не выполнять в случае ошибки остальную часть сценария (с выдачей на экран соответствующего сообщения). Аргументом команды wait является строка подтверждения установления соединения, которую чаще называют, просто строкой соединения (connect string). Разные провайдеры Internet предпочитают использовать различные строки соединения. У одних это слово CONNECT, у других - число, соответствующее скорости передачи в бодах, например 57600. Команда wait непрерывно ищет строку соединения в сообщениях, которые вам посылает удаленная система. Число, указываемое в сценарии после строки соединения - это время в секундах, в течение которого нужно ее ждать. По истечении этого времени выдается сигнал, ошибки и переменной $errlvl присваивается соответствующее значение. Пользователь обязательно должен знать, как выглядит строка соединения. Это можно узнать непосредственно у провайдера. Другой вариант - эмулировать в вашей локальной системе терминал удаленной системы, зарегистрироваться в ней и посмотреть, что вам посылает удаленная система. В ответ на полученную строку соединения можно послать символ перехода на новую строку - \n. Некоторые удаленные хост-компьютеры могут потребовать DOS-версии символа перехода, которая состоит из двух символов, \r\n.
    Следующая команда wait ожидает от удаленной машины регистрационного приглашения. Вам нужна только последняя часть приглашения, а не все слово. Обычно приглашение имеет вид login:, поэтому вам нужно указать в dip-сценарии только ogin:. Если это не сработает, узнайте регистрационное приглашение у своего провайдера. После получения приглашения команда send посылает регистрационное имя пользователя. В конце регистрационного имени нужно задать символ перехода на новую строку, например так: richlp\n. Некоторые провайдеры Internet требуют, чтобы пользователи уточняли свои регистрационные имена. Например, провайдер Netcom требует, чтобы перед регистрационным именем ставился знак $, скажем, $richlp\n. Следующая команда wait ожидает передачи приглашения на ввод пароля. Обычно оно имеет вид password: вам нужны только последние несколько символов, word:. Пароль передается командой send с символом возврата, \n.
    Команда print сообщает, что попытка соединения была успешной, и выдает адрес удаленной хост-системы. Теперь нужно конфигурировать соединение, устанавливать его маршрут и тип. Команда default позволяет сделать данное соединение маршрутом по умолчанию. Команда mode задает тип соединения. Он зависит от типа соединения, которое вам предоставляет провайдер Internet. Это может быть стандартное SLIP-соединение (указывается тип SLIP) или SLIP-соединение со сжатием передаваемых данных (тип CSLIP). Укажите соответствующий тип в dip-сценарии как аргумент команды mode.

Динамические IP-адреса и программа dip

    Динамический IP-адрес - это адрес, который вам временно выдает провайдер Internet при установлении соединения с его системой. У провайдера обычно имеется пул IP-адресов, которые он назначает пользователям по мере необходимости. Это значит, что при каждом соединении у вас может быть новый IP-адрес, т.е. узнать свой IP-адрес заранее нельзя. В процессе установления соединения провайдер Internet сообщает вашей системе IP-адрес, который он назначил вам для данного сеанса. Вам нужно выявить этот адрес и использовать его как IP-адрес своей системы в Internet.
    Провайдер посылает в вашу систему IP-адрес после того, как вы установили соединение и зарегистрировались. Вы должны присвоить этот адрес переменной $Iocal. Команда get с опцией remote позволяет получить значения IP-адреса удаленной хост-системы, в данном случае удаленной системы провайдера, с которой вы установили соединение. После посылки пароля, но перед установкой маршрута по умолчанию и режима необходимо ввести приведенные ниже команды get. С их помощью сначала вы примете IP-адрес удаленной системы, а затем локальный IP-адрес для своей системы. До этого никакие значения переменным $local и $remote не присваивались.

get $remote remote 
get $local remote

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

# We are now logged in.
wait CONNECT 15
if 5errlvl '= 0 goto error
#get the dynamically provided IP address for the remote system 
get $remote remote
#get the dynamically provided IP address assigned for the local system
get $local remote
$Set up the SLIP operating parameters.
get $mtu 1500
#Sets up SLIP connection as default route. 
default

    Гораздо проще конфигурировать dip-сценарии позволяет программ netcfg. В верхнем левом углу окна NetCfg находится список сетевых интерфейсов локальной системы. Для конфигурирования SLIP-соединени необходимо прежде всего добавить в этот список новый интерфейс, для чего требуется щелкнуть на кнопке Add и затем выбрать тип SLIP из трёх предложенных вариантов: Ethernet, SLIP и РРР. Кроме того, вам предлагается ввести имя интерфейса. Имя SLIP-интерфейса состоит из букв sl и номера, начиная с 0, например sl0. Программа dip позволяет конфигурировать и РРР-соединение, но использование для этого программы pppd - гораздо более надежный способ.
    Указав имя интерфейса, вы увидите окно со списком подлежащих вводу значений, используемых в dip-сценарии, включая ваш номер телефона, IP-адрес, пароль и регистрационное имя. Введите эти значения в соответствующих полях и щелкните на кнопке ОК. Эти значения используются в специальном dip-сценарии, /etc/dip-script. При активизации данного SLIP-интерфейса этот сценарий выполняется с использованием введенных значений. При необходимости файл /etc/dip-script можно редактировать. Его можно также скопировать, внести изменения в копию и пользоваться eю вместо оригинала. В окне конфигурирования SLIP-интерфейса предусмотрено поле для ввода либо имени собственного dip-сценария пользователя, либо стандартного сценария.
    Представленный фрагмент файла /etc/dip-script предназначен для установления соединений с использованием статических IP-адресов. Если провайдер назначает динамические IP-адреса, придется откорректировать файл /etc/dip-script или снять с него копию и, откорректировав ее, назначить ее dip-сценарием, используемым при конфигурировании интерфейсов утилитой netcfg. Для этого придется удалить две записи, get local и get remote, в начале файла и ввести записи get $remote remote и get $local remote непосредственно перед командой get mtu.

wait @@@connect-stnng@@@ 30 
  if $errlvl != 0 goto error 
loggedin:
#Lines to be added for dynamic addressing 
get $local remote 
get $remote remote 
get $mtu @@@mtu@@@
  default 
done:
  print CONNECTED to $remote with address $rmtip

Обеспечение SLIP-соединений, устанавливаемых со стороны удаленных систем: diplogin

    Операционная система Linux позволяет не только устанавливать SLIP-соединение с удаленной системой, но предоставляет другим системам возможность устанавливать собственные SLIP- соединения с данной локальной системой. Удаленная система может связаться с локальной по телефонной линии и установить с нею SLIP-соединение. Если в локальной системе создан бюджет для какого-либо пользователя удаленной системы, то он может через SLIP-соединение зарегистрироваться в этом бюджете. Такие коммутируемые SLIP-соединения для удаленных систем организуются в локальной системе посредством команды dip с опцией -i. Эта команда переводит программу dip в режим обслуживания соединений, инициируемых удаленными системами. Такой вызов программы dip может выполняться также посредством команды diplogin, представляющей собой символическую ссылку на команду dip. В режиме обслуживания соединений, устанавливаемых со стороны удаленных систем, программа dip запрашивает у удаленного пользователя идентификатор и пароль, а затем устанавливает SLIP-соединение.
nbsp;   Сначала нужно создать в локальной системе бюджет для удаленного пользователя. Это можно сделать с помощью утилиты usercfg или утилиты adduser. Если вас волнуют вопросы защиты, не забудьте поместить начальный каталог этого пользователя в специальный каталог, более подходящий для жесткого контроля, например в /tmp. При создании бюджета пользователя в файле /etc/passwd делается соответствующая этому пользователю запись. В следующем примере имя пользователя - robert, начальный каталог - /tmp.

robert:Зашифрованный_пароль:204:12:UUNET:/tmp:/usr/sbin/diplogin

nbsp;   Последнее поле записи в файле паролей - тип регистрационного shell, назначаемого пользователю. В приведенном примере регистрационный shell - diplogin , символическая ссылка на программу dip. Для получения регистрационной и конфигурационной информации dip будет искать имя пользователя в файле /etc/diphosts.
nbsp;   Создав бюджет, необходимо конфигурировать для него SLIP-соединение. Параметры конфигурации задаются в записях файла /etc/diphosts. Каждая запись этого файла состоит из семи полей, разделенных двоеточиями. Первое поле - идентификатор пользователя, второе - дополнительный пароль. Третье поле - хост-имя или IP-адрес удаленной системы, четвертое - хост-имя или IP-адрес локальной системы. Затем следуют маска сети и поле для комментариев. В последнем поле указываются параметры соединения для данного бюджета, в частности тип протокола (CSLIP или SLIP) и величина максимального передаваемого блока данных (MTU).
nbsp;   Если указан дополнительный пароль, то перед стандартной процедурой регистрации diplogin предложит удаленному пользователю ввести его.

 /etc/diphosts
Таблица 20.1. Протоколы комплекта TCP/IP
#user:password:remote host:local host:netmask:comments:protocol,MTU 
robert:starq:rose.berkley.edu:richlp.ix.com:255.255.255.0:SLIP,1500 
valerie::pangol.train.com:richlp.ix.com:255.255.255.0:CSLIP,296

Оглавление.


141001 г.Мытищи МО
Ул.Институтская д:1 ком:101
(095) 588-32-09, 588-55-62
E-mail: lscs@mgul.ac.ru

Московский Государственный Университет Леса
Сервер Лаб. Космической информатики каф.ВТ

 
 

Оглавление.

Таблица 20.6. Опции и специальные символы программы chat
Опция
Описание
-f имя_файла
Выполняет chat-команды в chat-сценарии с указанным именем
-l фаил_блокировки
Осуществляет блокировку устройства, подключенного к последовательному порту (аналогично тому, как это делается при использовании UUCP), применяя указанный файл
-t число
Тайм-аут устанавливается равным указанному числу секунд
-v
Описание всех действий chat выводится в файл /log/messages; для вывода описания на экран нужно использовать команды tail, cat или more с аргументом в виде имени этого файла tail /log/messages
Специальный символ
BREAK
Посылает в модем сигнал прерывания
''
Посылает пустую строку с одним только символом перехода на новую строку
\b
Возврат на одну позицию (Backspace)
\c
Подавляет символ новой строки, посылаемый после строки ответа
\d
Заставляет программу chat ждать в течение одной секунды
\k
Посылает команду прерывания при задании строки инициализации модема; коды, начинающиеся с буквы К, нужно предварять обратной косой чертой
\n
Посылает символ новой строки
\N
Посылает символ пробела
\p
Делает паузу длительностью 1/10 секунды
\q
Подавляет запись в файл регистрации
\r
Посылает или ожидает новую строку
\s
Посылает или ожидает символ "пробел"
\t
Посылает или ожидает знак табуляции
\\
Посылает или ожидает символ "обратная косая черта"
\nnn
Задает код символа в восьмеричном формате
^C
Задает управляющий символ

Таблица 20.7. Опции программы pppd
Опция
Описание
имя_устройства
Использует указанное устройство. Если перед именем устройства нет имени каталога /dev, pppd вставляет его сама
speed число
Задает быстродействие модема (скорость передачи в бодах)
asyncmap карта
Задает карту символов, которая определяет, какие управляющие символы не могут быть переданы в виде символов и должны передаваться как двухбитовые escape-последовательности
auth
Требует аутентификации удаленной системы
connect Linux_команда
Использует для установления соединения указанную Linux-команду. Обычно это команда chat
crtscts
Использует аппаратное управление потоком
xonxoff
Использует программное управление потоком
defaultroute
Устанавливает маршрут по умолчанию к удаленному хост-компьютеру
disconnect Linux_команда
Выполняет указанную команду после того, как pppd разрывает соединение; обычно это одна из команд chat
escape c,c,...
Обеспечивает при передаче вставку символа переключения кода перед указанными символами
fale имя_файла
Читает опции команды pppd из указанного файла
lock
Использует блокировку устройства, подключенного к последовательному порту, по типу UUCP
mru число
Задает величину максимального принимаемого блока
netmask маска
Задает маску сети интерфейса РРР
noipdefault
Предназначена для выявления динамических IР-адресов, выделяемых провайдером Internet; выполняет во входном потоке данных, поступающих из удаленной машины, поиск локального и удаленного IP-адресов, назначенных вашей системе для данного Internet-сеанса; эта опция обязательна для установления соединения при динамической IP-адресации
passive
В случае невозможности немедленного установления соединения заставляет программу pppd ожидать успешного соединения, а не давать команду на разрыв соединения
silent
Программа pppd ожидает установления соединения, инициируемого удаленным хост-компьютером

Таблица 20.8. Опции и команды программы dip
Опция
Описание
-v
Текстовый режим; выдает описания всех выполняемых действий
-t
Тестовый режим; предоставляет в распоряжение пользователя интерактивный shell с приглашением DIP>
-p режим
Устанавливает режим: протокол, по которому будет осуществляться соединение (CSLIP или SLIP)
-a
Приглашает ввести имя пользователя и пароль
-i
Управляет соединениями, устанавливаемыми удален-ными системами (аналогично diplogin)
-k
Уничтожает dip-процесс, который управляет указанным tty-устройством (см. опцию -l), либо процесс, запущенный в результате самого последнего вызова dip (процесс, запущенный другим пользователем, не уничтожается)
-l терм_линия
Указывает линию, связь по которой разрывается (требуется также опция -k)
-m mtu
Задает величину максимального передаваемого блока данных (MTU, по умолчанию 296)
Команда
Описание
chatkay ключевое_слово код
Добавляет к кодам ошибок, которые возвращает команда dial, ключевое слово и код уровня ошибки
config аргументы
Непосредственно конфигурирует интерфейс SLIP
databits 7/8
Устанавливает разрядность передаваемых данных (по умолчанию 8)
default
Задает маршрут по умолчанию
dial номер_телефона
Набирает указанный номер
Опция
Описание
echo on / off
Аргумент on активизирует эту команду, а аргумент off - отменяет ее. Если команда активизирована, dip выводит на экран все, что посылает и принимает с модема
flush
Удаляет непрочитанные сообщения из буфера модема
get $переменная значение
Присваивает указанное значение данной переменной
get $переменная
Присваивает переменной $переменная значение, получаемое по линии связи
get $переменная ask
Приглашает пользователя ввести значение для указанной переменной
goto метка
Переход в dip-сценарии к указанной метке
if $переменная оператор число
Проверяет значение переменной; число должно быть целым
init строка
Строка инициализации модема; по умолчанию посылается строка АТЕ0 Q0 V1 X1
help
Выдает список команд программы dip
mode SLIP/CSLIP
Устанавливает протокол для соединения и переводит dip в режим демона
modem mun
Задает тип модема, например HAYES
netmask
Задает маску сети для маршрута, которым пользуется dip
parity E/O/N
Устанавливает контроль по четности, нечетности или отменяет контроль
password
Приглашает пользователя ввести пароль
print
Выводит текст на дисплей
port устройство
Задает порт, которым будет пользоваться программа dip
quit
Осуществляет выход из программы dip
reset
Посылает в модем строку инициализации
send текст
Посылает текст в удаленную хост-машину
sleep число
Переводит сценарий в режим ожидания на указанное число секунд
speed число
Задает скорость передачи данных для соединения: 2400, 9600, 38400, 57600 бод
stopbits 1/2
Задает количество стоповых битов
timeout число
Устанавливает тайм-аут по умолчанию равным указанному числу секунд
term
Переводит dip в режим эмуляции терминала, и программа начинает работать как терминал; в этом режиме локальная система может непосредственно взаимодействовать с удаленной и ожидать получения приглашений на ввод имени и пароля (для возврата в dip нажмите [Ctrl+]])
wait слово число
Вынуждает программу dip ожидать приема указанного слова в течение заданного числа секунд

Таблица 20.9. Переменные программы dip
Опция
Описание
$local
Хост-имя локальной системы (ваше хост-имя)
$locip
IP-адрес локальной системы (ваш IP-адрес)
$remote
Хост-имя удаленной системы, с которой вы устанавливаете соединение
$rmtip
IP-адрес удаленной системы
$mtu
Максимальный передаваемый блок данных; максимальное количество байтов, пересылаемое за один раз
$modem
Тип используемого модема (переменная предназначена только для чтения)
$port
Имя подключаемого к последовательному порту устройства которым пользуется dip (переменная предназначена только для чтения)
$speed
Быстродействие подключаемого к последовательному порту устройства (переменная предназначена только для чтения)
$errlvl
Содержит код результата, возвращенный последней выполненной командой; его можно использовать для проверки на наличие ошибок; 0 означает нормальное выполнение (переменная предназначена только для чтения)

Оглавление.