*Главная страница 
 Linux Intro  
 Linux File System  
 Linux Text Obolocki  
 Linux Graf Obolocki  
 Linux Structure  
 Linux Memory  
 Set Linux
 Linux Command  
 HOWTO  
 FAQ  
 Securing and Optimizing Linux  
 
*НАСТРОЙКА СЕТЕВОГО СОЕДИНЕНИЯ 

 

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

В качестве альтернативы таким аппаратным сетевым соединениям, как 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 на экран и проверить, введены ли в него доменные имена серверов. Если их там нет, то ни один вводимый вами адрес не будет распознан.

Протокол РРР

Протокол "точка-точка" (РРР) - это более новый универсальный прото­кол, который завоевывает все большую популярность. Он обеспечивает гораздо более стабильное соединение и может поддерживать работу целого ряда сетевых протоколов помимо ТР. Основную часть работы РРР выполняет автоматически. В отличие от SLIP, здесь не нужно для каждой операции создавать сценарий с целым набором команд. РРР автоматически определяет удаленные IP-адреса, как статические, так и динамические.

РРР-соединение устанавливается с помощью программы pppd. Эта программа конфигурирует соединение, устанавливает лимиты MTU и получает IP-адреса. В отличие от dip, однако, pppd не устанавливает предварительно соединение. Она не набирает через модем номер телефона провайдера и не предоставляет информацию о регистрационных именах и паролях. Чтобы использовать pppd, нужно сначала установить соединение с удаленной хост-системой. Это можно сделать с помощью программы chat, в которой используются свои опции и форматы. Сначала эта программа устанавливает соединение, а затем pppd конфигурирует его. Однако нет необходимости сначала вызывать chat, а затем pppd. Дело в том, что pppd в качестве аргумента использует имя программы, которая устанавливает соединение, в данном случае chat. Это имя нужно просто указать вместе с опциями команды chat в командной строке pppd. По сути дела, вся операция установления соединения с помощью pppd выполняется в одной командной строке, в отличие от dip-сценария.

Программа pppd различает статические и динамические IP-адреса, проверяя, включил ли пользователь набор IP-адресов в качестве аргумента в командную строку, а также по наличию опции noipdefault. Если IP-адреса указаны, 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.17 9.4.2 2

 

Если используется динамический удаленный адрес, можно указать только локальный адрес с двоеточием. Программа 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.

 

"" AT\&F2V1L0

 

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

 

OK ATDT5558888

 

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

 

57600 \n

 

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

 

ogin: mylogin

 

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

 

word: mypass

 

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

 

"" AT\&F2V1LO OK ATDT8888888 CONNECT \n login: mylogin word: mypass

 

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

 

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

 

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

 

"" ATDT8888888 login: mylogin word: mypass

 

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

mycon.chat

"" AT\&F2V1LO

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 можно встроить в вызов команды pppd; chat устанавливает соединение, а затем pppd конфигурирует его.

Демон протокола РРР (pppd) вызывается с несколькими опциями. Вот его стандартный синтаксис:

 

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

 

Имя_устройства (имеется в виду устройство, подключаемое к последовательному порту) - это имя устройства для модема. Вероятнее всего, это /dev/cua с номером (обычно от 0 до 3), соответствующим порту, к которому модем подключен. Порту 1 соответствует сuа0, порту 2 - cua1 и т.д. Скорость - это скорость передачи данных в бодах. Для модема, поддерживающего протокол v.28, это 38400 или даже 56700 бод. Максимальную скорость передачи можно узнать у провайдера Internet и из документации на модем.

Опции команды pppd позволяют задать параметры конфигурации, на­пример величину максимального передаваемого блока данных (MTU) и наличие динамического IP-адреса. Опция connect дает команде указание установить соединение. В качестве аргумента команда pppd использует Linux-команду, которая реализует это практически (как правило, ею является команда chat). В данном случае вводится имя демона pppd, затем опция connect, команда chat с опцией -f и, наконец, имя файла chat-сценария. Команда chat с опцией -f и именем chat-файла заключается в кавычки, чтобы отличить ее от других опций pppd. В следующем примере показано, как пользователь вызывает pppd с командой chat, пользуясь chat-сценарием mycon.chat. Модем подключается к порту 4, /dev/сuаЗ, а скорость передачи данных составляет 57600 бод.

 

# pppd connect 'chat -f mycon.chat' /dev/cua3 57600

 

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

 

# pppd disconnect 'chat -f turnoff.chat'

        turnoff.chat

-\d+++\d\c OK

ATH0 OK

 

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

Опции РРР

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

 

# pppd -connect 'chat -f mycon.chat' /dev/cual 57600 mru 1500

defaultroute noipdefault crtscts modem

 

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

 

# pppd -connect 'chat -f mycon.chat' /dev/cual 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. У каж­дого пользователя может быть собственный файл .рррrс, находящийся в его начальном каталоге. Ниже приведен краткий пример файла опций.

/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/cual 57600

 

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

 

рррсоn

exec pppd connect ' chat -f mycon.chat' /dev/cual 57600

$ рррсоn

 

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

 

$ tail /var/log/messages

 

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

 

$ tail -f /var/log/message

Mar 23 20 : 01 :03 richlp pppd[208]:      Connected...

Mar 23 20 : 01 :04 richlp pppd[208]:      Using interface ppp0

Mar 23 20 : 01 :04 richlp kernel: ppp: channel ppp0 mtu =1500, mru = 1500

Mar 23 20 : 01 :04 richlp kernel: ppp: channel ppp0 open

Mar 23 20 : 01 :04 richlp pppd[208]:     Connected: ppp0  /dev/cua3

Mar 23 20 : 01 :09 richlp pppd[208]:     local IP adress 204.32.168.68

Mar 23 20 : 01 :09 richlp pppd[208]:     remote IP adress 163.179.4.23

 

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

Вызвать команду pppd и настроить РРР-соединение можно также с помощью программы dip. Устанавливая в dip-сценарии режим РРР, вы фактически выполняете программу pppd. В этом случае chat-сценарий для установления соединения не нужен, поскольку это уже сделала программа dip. Однако следует отметить, что при вызове pppd должны быть установлены несколько опций, которые в dip-сценарии указать нельзя. Их нужно устанавливать в файле /etc/ppp/options, который pppd автоматически читает при выполнении.

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

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

 

/etc/ppp/ppplogin

exec pppd -detach silent modem crtscts

 

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

Специальный бюджет носит имя ррр. Запись в файле /etc/passwd для этого бюджета может иметь следующий вид:

 

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

 

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

Безопасность передачи информации с использованием РРР-соединений обеспечивается за счет применения дополнительных протоколов. Для РРР разработано два таких протокола: PAP (Password Authentification Protocol - протокол аутентификации паролей) и CHAP (Challenge Handshake Authenti­fication 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. Она позволяет системе pango1.train.com установить соединение при условии, что та укажет заданный секретный ключ. Следующая запись позволяет любой удаленной системе установить соединение с локальной, если удаленная система знает ключ, в данном случае "confirmed tickets".

 

pango1.train.com      turtle.trek.com     "my new hat"

*                     turtle.trek.com     "confirmed tickets"

 

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

 

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

 

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

Существует два типа SLIP-соединений: стандартное, которое называется просто SLIP, и более новое соединение, функционирующее со сжатием передаваемой информации, которое называется Compress SLIP, или CSLIP. Обязательно узнайте, какое соединение предоставляет ваш провайдер In­ternet. При установлении соединения вам нужно будет указать тип соедине­ния для выбора протокола. За исключением разницы при указании типа, процедура установления соединения в обоих случаях одинакова. Ссылки на SLIP относятся и к SLIP, и к CSLIP, если иного не указано.

Управление SLIP-соединением и его настройка осуществляются с помощью программы dip. При наличии соответствующей информации данная программа автоматически устанавливает соединение с провайдером Internet. Это позволяет пользователю запускать в своей системе все Internet-приложения, например Netscape и ftp.

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

 

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

 

В табл. 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 с опцией . Разорвать определенное соединение можно также с помощью этой команды с опцией -1, указав конкретную линию. Команда dip с одной только опцией разрывает самое последнее соединение. Опция полезна в том случае, если вы успешно установили соединение, но по какой-либо причине не можете зарегистрироваться или установить режим работы линии. Соединение остается активным до тех пор, пока вы не разорвете его явно, воспользовавшись командой dip с опцией .

 

$ dip -к

 

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

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

 

get $local статический_IP_адрес

get $remote удаленный_IР_адрес

 

dip-сценарий

Ниже приведен пример dip-сценария с использованием статического адреса. Пример этого сценария можно найти на странице диалогового руководства, посвященной программе dip. Сценарий начинается с ряда команд настройки модема. Сначала определяется устройство, на котором установлен модем. Порты com1, com2, соmЗ и соm4 соответствуют устройствам /dev/cua0, /dev/ cua1, /dev/cua2 и /dev/сuаЗ. Отметим, что номера устройств начинаются с нуля, поэтому соm4 соответствует сuаЗ. Затем устанавливается скорость передачи данных, 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&F2VlM0

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 Serrlvl != 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 CSL1P

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:

 

Переменным $local и $remote присваиваются соответственно статический адрес локальной системы и IР-адрес системы удаленной. После этого начи­нается собственно процедура регистрации. Команда dial обеспечивает набор указанного номера телефона. Если установить соединение не удается, в переменную $errlvl возвращается код ошибки. Его значение проверяется сразу после выполнения команды 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-адрес после того, как вы установили соединение и зарегистрировались. Вы должны присвоить этот адрес переменной $lосаl. Команда get с опцией remote позволяет получить значения IP-адреса удаленной хост-системы, в данном случае удаленной системы провайдера, с которой вы установили соединение. После посылки пароля, но перед установкой маршрута по умолчанию и режима необходимо ввести приведенные ниже команды get. С их помощью сначала вы примете IP-адрес удаленной системы, а затем локальный IP-адрес для своей системы. До этого никакие значения переменным $lосаl и $remote не присваивались.

 

get $remote remote

get $local remote

 

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

 

# We are now logged in.

wait CONNECT 15

if $errlvl != 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 можно редактировать. Его можно также скопировать, внести изменения в копию и пользоваться ею вместо оригинала. В окне конфигурирования 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-string@@@ 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 Sremote with address $rmtip

 

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

Операционная система Linux позволяет не только устанавливать SLIP-соединение с удаленной системой, но предоставляет другим системам воз­можность устанавливать собственные SLIP-соединения с данной локальной системой. Удаленная система может связаться с локальной по телефонной линии и установить с нею SLIP-соединение. Если в локальной системе создан бюджет для какого-либо пользователя удаленной системы, то он может через SLIP-соединение зарегистрироваться в этом бюджете. Такие коммутируемые SLIP-соединения для удаленных систем организуются в локальной системе посредством команды dip с опцией -i. Эта команда переводит программу dip в режим обслуживания соединений, инициируемых удаленными системами. Такой вызов программы dip может выпол­няться также посредством команды diplogin, представляющей собой сим­волическую ссылку на команду dip. В режиме обслуживания соединений, устанавливаемых со стороны удаленных систем, программа dip запрашивает у удаленного пользователя идентификатор и пароль, а затем устанавливает SLIP-соединение.

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

 

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

 

Последнее поле записи в файле паролей - тип регистрационного shell, назначаемого пользователю. В приведенном примере регистрационный shell - diplogin, символическая ссылка на программу dip. Для получения регистрационной и конфигурационной информации dip будет искать имя пользователя в файле /etc/diphosts.

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

Если указан дополнительный пароль, то перед стандартной процедурой регистрации diplogin предложит удаленному пользователю ввести его.

/etc/diphosts

#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

 
Rambler's Top100   Яндекс цитирования
Hosted by uCoz