Чтение онлайн

на главную - закладки

Жанры

Стахнов Алексей Александрович

Шрифт:

myname * vasya

• /etc/ppp/ip-up – данный скрипт используется для соединения с провайдером. Зачастую этот файл содержит только следующую строку:

/usr/sbin/pppd

Здесь можно настроить установление модемом соединения с провайдером или вызвать необходимый скрипт или программу;

• /etc/ppp/ip-down – этот файл используется для разрыва соединения с провайдером;

• /etc/ppp/options – это, пожалуй самый сложный и ответственный файл. Он определяет параметры нашего модема, скорость передачи по последовательному интерфейсу данных, настройки программы pppd и некоторые другие параметры. Обычно файл /etc/ppp/options оставляют неизменным, а для конфигурирования параметров соединения создают копию файла с именем /etc/ppp/options.ttySX, где ttySX – имя последовательного порта, к которому подключен наш модем. Пусть для определенности модем подключен к ttyS0 (СОМ1).

# Устройство

/dev/ttyS0

# Скорость

115200

mru 1500

# наш интерфейс: удаленный интерфейс

192.168.0.100:192.168.0.101

# маска подсети

netmask 255.255.255.0

bsdcomp 0

chap-interval 15

debug

crtscts

defaultroute

Первые две строки определяют последовательный

порт, к которому подключен наш модем, и скорость, на которой будет происходить обмен между модемом и последовательным портом. Далее – обратите внимание на строку со следующим содержимым:

192.168.0.100:192.168.0.101

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

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

Команды pppd

Далее мы рассмотрим основные команды программы pppd (табл. 30.2).

Таблица 30.2. Основные команды программы pppd

Как видите, параметров много и для полного понимания вопроса необходимо изучить соответствующую документацию.

Настройка diald

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

Чтобы лучше понять то, что мы будем делать дальше, немного о принципе работы программы diald. Программа создает соединение на псевдотерминале и устанавливает маршрутизацию на получившийся интерфейс. После этого она начинает отслеживать пакеты, проходящие по виртуальному каналу. Если кто-то пытается выйти в Интернет, diald перехватывает данные, анализирует их и на основе правил, определяемых администратором, присваивает им определенные тайм-ауты. Далее пакеты отправляются по назначению, а тайм-ауты заносятся в так называемый набор соединения. Как только в наборе появляется первый тайм-аут, diald начинает дозваниваться до провайдера и пытается установить соединение. Организовав сеанс связи, демон переустанавливает маршрутизацию на реальный канал. Таким образом, связь с внешним миром оказывается установленной.

На протяжении всего времени соединения продолжает обновляться набор соединения. Истекшие тайм-ауты удаляются, новые поступают. И так продолжается, пока по какой-либо причине трафик не прекратится. Тайм-аутов в наборе становится все меньше и меньше, и когда последний из них оканчивается, diald разрывает связь.

Теперь перейдем непосредственно к конфигурированию. Этот процесс состоит из трех частей:

• создание скрипта соединения – файл /etc/diald/connect;

• настройка основной конфигурации – файл /etc/diald.conf;

• настройка правил тайм-аутов – файл /etc/diald/standard.filter.

Создание скрипта соединения: /etc/diald/connect

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

Ниже приведен вариант файла /etc/diald/connect.

#!/bin/sh

NIT="ATZ" # Строка инициализации модема

PHONE="223322" # Телефон провайдера

ACCOUNT="myname" # логин

PASSWORD="vasya" # пароль

# Определяем функцию для посылки

# сообщений в системный журнал

# и в FIFO-канал diald

function message

{

[$FIFO] && echo "message $*" >$FIFO

logger -p local2.info -t connect "$*"

}

# Начинаем процедуру связи

# Инициализируем модем

message "*** Initializing Modem ***"

chat "" $INIT OK ""

if [$?!= 0]

then

message"!!! Failed to initialize modem!!!"

exit 1

fi

# Пытаемся дозвониться

message "*** Dialing system ***"

chat \

ABORT "NO CARRIER" \

ABORT BUSY \

ABORT "NO DIALTONE" \

ABORT ERROR \

"" ATDT$PHONE \

CONNECT ""

case $? in

0) message "*** Connected ***";;

1) message "!!! Chat Error !!!"; exit 1;;

2) message "!!! Chat Script Error !!!"; exit 1;;

3) message "!!! Chat Timeout !!!"; exit 1;;

4) message "!!! No Carrier !!!"; exit 1;;

5) message "!!! Busy !!!"; exit 1;;

6) message "!!! No DialTone !!!; exit 1;;

7) message "!!! Modem Error !!!; exit 1;;

*)esac

# Проходим авторизацию

message "*** Send login and password ***"

chat \

login: $ACCOUNT \

password: $PASSWORD TIMEOUT 5 ""

if [$? != 0] then

message"!!! Failed to send!!!"

exit 1

fi

# Все прошло удачно!

message "*** Protocol started ***"

Вышеприведенный

скрипт – просто сценарий на языке командной оболочки, который вам необходимо немного адаптировать для ваших параметров. Настройка основной конфигурации: /etc/diald.conf

/etc/diald.conf – основной конфигурационный файл программы diald, в котором задаются параметры устанавливаемого соединения и определяется поведение программы. Набор команд конфигурации у diald достаточно обширен, поэтому в приведенном примере будут использованы только необходимые, а подробную информацию по конфигурационным командам можно посмотреть в документации на программу diald.

Содержимое файла diald.conf:

# Протокол для связи с провайдером

mode ррр

# Вести журнал сеансов связи diald.log

accounting-log /var/log/diald.log

# Для управления демоном из внешних программ

# организовать канал FIFO – diald.ctl.

fifo /etc/diald/diald.ctl

# Для дозвона использовать файл /etc/diald/connect

connect /etc/diald/connect

# Далее несколько команд, описывающих применяемый модем.

# Поскольку мы уже определили параметры в /etc/ppp/options,

# то нижеприведенные команды необходимо закомментировать во избежание

# конфликтов в файле /etc/ppp/options

# device /dev/modem

# speed 115200

 #modem

 #lock

 #crtscts

# Назначаем локальный и удаленный адреса нашего

# соединения. Если при связи с провайдером IP-адрес

# для вас выделяется динамически, то здесь можно

# поставить любые свободные адреса из диапазона,

# оговоренного при настройке нашей TCP/IP-сети.

# При запуске РРР diald сам выставит корректные значения

local 192.168.0.100

remote 192.168.0.101

# Провайдер дает нам динамический IP

dynamic

# Установить маршрут по умолчанию

# на виртуальное соединение

defaultroute

# Максимальное количество неудачных попыток дозвона

dial-fail-limit 10

# Задержка между попытками дозвона

redial-timeout 5

# время ожидания завершения скрипта connect

connect-timeout 120

# Файл с правилами для тайм-аутов

include /etc/diald/standard.filter

Настройка правил тайм-аутов: /etc/diald/standard.filter

Следующее, что вы должны сделать – произвести настройку правил тайм-аутов. Это самый сложный момент настройки diald, т. к. требует знания внутренней структуры IP-пакетов. Однако разработчики diald – люди добрые и стандартный файл standard.filter имеет вполне приемлемые для большинства случаев настройки. Оставив в нем все, как есть, мы получим набор правил, рассчитанный на трехминутную паузу между окончанием активности в Интернете и разрывом связи с провайдером.

Комплексное тестирование

После проделанных манипуляций настало время проверить – правильно ли настроены наши программы. Для этого на компьютере желательно временно отключить все настройки брандмауэра (если вы, конечно, установили его). Затем необходимо запустить программу diald и попытаться выйти в "большой мир". Можно использовать браузер lynx (и зайти, например, на сайт, можно – программу ping.

Если все было настроено корректно, то после ввода предыдущей команды модем должен начать дозваниваться до провайдера. Через некоторое время связь будет установлена. Однако практически всегда lynx выдает сообщение о том, что не может соединиться с удаленным сервером! В данном случае – это нормальное явление. Дело в том, что при РРР-соединении с динамическими IP-адресами в силу определенных особенностей первый пакет обычно бывает утерян и не доходит до адресата. В результате мы ждем ответа от сервера, а он об этом и не подозревает. Достаточно повторить введенную ранее команду, чтобы все заработало.

Далее нам необходимо убедиться, что модем аккуратно разорвет соединение по прошествии трех минут. Дождавшись конца загрузки Web-страницы, засечем время. Примерно через три минуты diald должен дать команду на разрыв соединения.

Если у вас все прошло именно таким образом, значит система работает как надо. В противном случае проанализируйте последние строки системного журнала (/var/log/messages).

Указанными действиями мы проверили корректную работу только с нашего компьютера-маршрутизатора. Однако нам надо сделать то же самое и с любого компьютера в локальной сети, поэтому попробуем повторить описанную процедуру и на любом компьютере. Реакция diald должна быть аналогичной. Если что-то пошло не так, проверьте корректность настройки протокола TCP/IP на этой машине, в частности – настройки сетевого шлюза, которые должны указывать на наш компьютер-маршрутизатор.

Организация связи по выделенному каналу

В отличие от настройки связи по коммутируемому соединению, организация соединения по выделенному каналу намного более простая задача.

Настройка связи с провайдером

Как и в предыдущем случае, нам необходимо правильно настроить программу pppd. Поскольку параметры программы pppd мы уже рассматривали, просто приведем файл options и прокомментируем его содержание.

# Устройство

/dev/ttyS0

# Скорость

115200

mru 1500

noauth

# наш интерфейс : удаленный интерфейс

192.168.0.100:192.168.0.101

# маска подсети

netmask 255.255.255.0

bsdcomp 0

chap-interval 15

debug

crtscts

–detach

defaultroute

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

192.168.0.100:192.168.0.101

Эта строка определяет IP-адреса нашего последовательного интерфейса и провайдера. Такую строку необходимо добавить, если провайдер выдал нам постоянный IP-адрес. Для статического IP-адреса также необходимо задать маску подсети.

В том случае, если у вас одно подключение к провайдеру, то можно в конец файла вписать команду defauitroute, что позволит вам добавить маршрут в системную таблицу маршрутизации, используя удаленную сторону как шлюз.

Вот и все, что требовалось для конфигурации программы pppd для соединения по выделенному каналу. Правда, намного проще, чем с коммутируемым?

Осталось только отредактировать файл inittab, чтобы pppd автоматически стартовала. Для этого необходимо добавить следующую строчку:

Поделиться:
Популярные книги

Адвокат

Константинов Андрей Дмитриевич
1. Бандитский Петербург
Детективы:
боевики
8.00
рейтинг книги
Адвокат

СД. Том 15

Клеванский Кирилл Сергеевич
15. Сердце дракона
Фантастика:
героическая фантастика
боевая фантастика
6.14
рейтинг книги
СД. Том 15

Недотрога для темного дракона

Панфилова Алина
Фантастика:
юмористическое фэнтези
фэнтези
сказочная фантастика
5.00
рейтинг книги
Недотрога для темного дракона

Девочка для Генерала. Книга первая

Кистяева Марина
1. Любовь сильных мира сего
Любовные романы:
остросюжетные любовные романы
эро литература
4.67
рейтинг книги
Девочка для Генерала. Книга первая

Имя нам Легион. Том 5

Дорничев Дмитрий
5. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 5

Студиозус 2

Шмаков Алексей Семенович
4. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Студиозус 2

Ох уж этот Мин Джин Хо 4

Кронос Александр
4. Мин Джин Хо
Фантастика:
попаданцы
дорама
5.00
рейтинг книги
Ох уж этот Мин Джин Хо 4

Неправильный боец РККА Забабашкин 3

Арх Максим
3. Неправильный солдат Забабашкин
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Неправильный боец РККА Забабашкин 3

Сердце Дракона. Том 12

Клеванский Кирилл Сергеевич
12. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.29
рейтинг книги
Сердце Дракона. Том 12

Не грози Дубровскому! Том III

Панарин Антон
3. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том III

Холодный ветер перемен

Иванов Дмитрий
7. Девяностые
Фантастика:
попаданцы
альтернативная история
6.80
рейтинг книги
Холодный ветер перемен

Город Богов

Парсиев Дмитрий
1. Профсоюз водителей грузовых драконов
Фантастика:
юмористическая фантастика
детективная фантастика
попаданцы
5.00
рейтинг книги
Город Богов

Идеальный мир для Лекаря 12

Сапфир Олег
12. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 12

Ваше Сиятельство

Моури Эрли
1. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ваше Сиятельство