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
- Адрес сети.
- Широковещательный адрес.
- Адрес шлюза.
- Адрес сервера имен.
- Маска сети.
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
141001 г.Мытищи МО
Ул.Институтская д:1 ком:101
(095) 588-32-09, 588-55-62
E-mail:
lscs@mgul.ac.ru
- Идентификация хост-имен: файл /etc/hosts.
- Имена сетей: файл /etc/networks.
- Инициализация сетевого соединения: файл /etc/rc.d/init.d/inet.
- Файл /etc/HOSTNAME.
Для настройки и поддержки работы сети, работающей под управлевд протоколов TCP/IP,
используется набор файлов конфигурации, расположиных в каталоге /etc.
В этих файлах содержится информация о сети, в частности имена хост-машин и доменов, IP-адреса и
характеристики интерфейсов. Именно в эти файлы вводятся IP-адреса и доменные имена других
хост-компьютеров Internet
, к которым вы хотите получить доступ. Если в процессе
инсталляции системы вы конфигурировали сеть, то вся эта информация в файлах конфигурации уже
есть. Ввести конфигурационные данные в эти файлы можно с помощью программы
netcfg (ее пиктограмма находится на вашем рабочем столе) или с помощью программы
netconfig) (из командной строки).
Связывает хост-имена с IP-адресами | |
Связывает доменные имена с адресами сетей | |
Содержит команды конфигурирования сетевого интерфейса при начальной загрузке | |
Содержит хост-имя вашей системы | |
Опции конфигурирования | |
Содержит список серверов доменных имен |
Без уникального 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, которой позволяет пользователям вашей системы связываться друг с
другом в локальном режиме. Он служит для идентификации так называемого закольцовывающего интерфейса.
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 хранятся доменные имена и
IP-адреса сетей, с которыми у вашей системы есть соединение, а не доменные имена конкретных
компьютеров. Сети имеют сокращенные IP-адреса. В зависимости от типа сети в IP-адресах может
использоваться одно, два или три числа. Сетевой IP-адрес для localhost
- 127.0.0.0
. Этот сетевой адрес используется для закольцовывающего устройства.
IP-адреса записываются в файле /etc/networks вместе
с соответствующими им доменными именами сетей. Вспомните, что IP-адрес состоит из сетевой части
и машинной части. Сетевая часть - это адрес сети, который хранится в файле
networks. В этом файле всегда будет присутствовать отдельная запись для сетевой части
IP-адреса вашего компьютера. Это и есть адрес сети, к которой подключен ваш компьютер.
loopback 127.0.0.0 trek.corn 199.35.209.0 |
В файле /etc/rc.d/init.d/inet находятся команды, обеспечивающие
конфигурирование сетевого соединения. Многие записи в этом файле автоматически создаются при
использовании утилиты netcfg и конфигурировании сетевого соединения
в процессе инсталляции. Например, здесь находятся команды ifconfig
и route. Кроме того, здесь задаются хост-имя вашей системы, адрес
сети и другие необходимые адреса. Непосредственно редактировать этот файл можно лишь в том случае,
если вы уверены в том, что все делаете правильно и обладаете начальными познаниями в области
программирования в shell. В других дистрибутивах Linux, например в Slackware
, файл
инициализации может иметь имя /etc/ rec.d/rc-inet1 или просто
/etc/rc.inet1.
В файле /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
- Утилиты 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 вы не задействовали, эти команды придется ввести в файл инициализации самостоятельно.
Самый простой способ создания сетевого интерфейса - использовать одну из программ
конфигурирования, 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 использует
имя интерфейса и 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
и устанавливать с ним соединение.# ifconfig plip0 199.35.209.72 pointopoint 204.166.254.14В случае необходимости можно с помощью команды ifconfig конфигурировать закольцовывающий интерфейс. Этот интерфейс имеет имя lо и специальный IP-адрес, 127.0.0.1. Процедура конфигурирования закольцовывающего интерфейса показана в следующем примере.
# ifconfig 1о 127.0.0.1Команда ifconfig очень полезна для проверки статуса интерфейса. Если ввести ее только с именем интерфейса, то ifconfig выдаст информацию об этом интерфейсе.
# ifconfig eth0Чтобы посмотреть, конфигурирован ли закольцовывающий интерфейс, нужно дать команду ifconfig с именем этого интерфейса, lо:
# 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Каждая запись таблицы маршрутизации состоит из нескольких полей содержащих такую информацию, как, например, конечный пункт маршрута и тип используемого интерфейса. Поля таблицы маршрутизации перечислены в следующей таблице.
Destination | IP-адрес конечного пункта маршрута |
Gateway | IP-адрес или хост-имя шлюза, используемого на данном маршруте; символ * говорит о том, что шлюз в сети не используется |
Genmask | Маска сети маршрута |
Flags | Тип или состояние маршрута: U=активный, Н=хост, С=шлюз, D=динамический, М=модифицированный |
MSS | TCP 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 позволяет проверить наличие доступа к другому хост-компьютеру сети. Эта программа посылает в указанный компьютер запрос и ожидает ответа. Если ответ приходит, он выводится на экран. Запрос передается непрерывно до тех пор, пока пользователь не остановит программу нажатием клавиш [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 состояние неизвестно |
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
- файл 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 находится в каталоге /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
Для того чтобы программа-определитель могла выполнять свою задачу ей должен быть
предоставлен доступ к серверам доменных имен. В фале 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
Если, будучи администратором сети, вы решили организовать в ней сервер имен, то можно конфигурировать на работу в качестве такого сервера любую 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 и РРР.
- Протокол РРР.
- 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 или РРР, необходимо активизировать поддержку системой протокола 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 опцию -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
Безопасность передачи информации с использованием РРР-соединений обеспечивается за счет применения дополнительных протоколов. Для РРР разработано два таких протокола: 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-соединений: стандартное, которое называется просто 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-адрес - это адрес, который предоставляет вам провайдер Internet в постоянное пользование. Ваш компьютер всегда идентифицируется этим адресом. Инициируя SLIP- соединение с удаленной хост-машиной провайдера, вы пользуетесь статическим IP-адресом для обозначения своей системы. В соединениях, использующих статический IP-адрес, вы присваиваете свой статический IP-адрес переменной $local, а адрес удаленной, хост-машины провайдера - переменной $remote. Присваивание значений переменным осуществляется с помощью команды get. Эти присваивания. выполняются в самом начале dip-сценария. Программа dip ищет в этих переменных соответствующие IP-адреса. После того как IP-адреса указаны, можно продолжать вводить команды процедуры регистрации. Перечень переменных программы dip приведен в табл. 20.9.
get $local статический_IР_адрес get $remote удаленный_IР_адрес
Ниже приведен пример 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-адрес - это адрес, который вам временно выдает провайдер 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
Операционная система 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