Linux
Шрифт:
• ISO 3309–1979 – описывает структуру пакетов HDLC для использования в синхронных системах;
• ISO 3309:1984/PDAD1 – описывает предложения по изменениям в ISO 3309–1979, которые позволяют использовать асинхронные системы.
На рис. 31.1 изображен формат пакета протокола РРР.
Рис. 31.1. Структура пакета протокола РРР
Рассмотрим значения полей пакета протокола РРР:
• Флаг – один байт, обозначающий начало или конец пакета. Поле флага содержит двоичную последовательность: 01111110;
• Адрес – один байт, содержащий двоичную последовательность: 11111111, стандартный широковещательный адрес. РРР не поддерживает индивидуальную адресацию станций;
• Управление – один байт, содержащий двоичную последовательность: 00000011, который посылается для передачи пользовательских данных в неразделенных пакетах;
• Протокол – 2 байта определяют протокол, упакованный в пакете протокола РРР. Значения протоколов можно узнать в соответствующем RFC;
• Данные – 0 или больше байтов, составляющих датаграмму протокола, указанного в поле протокол. Конец информационного поля определяется нахождением заканчивающей последовательности и 2-байтной последовательности в поле контрольной суммы. По умолчанию максимальная длина поля данных 1500 байтов.
• Контрольная сумма – обычно 16 битов. Однако при установлении соединения pppd могут договориться об использовании 32-битной контрольной суммы.
РРР-протокол управления соединением (LCP)
РРР-протокол управления соединением (LCP) предоставляет методы для установления, конфигурирования, поддержания и тестирования РРР-соединения. Протокол LCP выполняет функции, приведенные ниже:
• Конфигурирование и установление связи. Перед передачей какой-либо информации (к примеру, пакет IP) протокол LCP должен открыть соединение и произвести начальный обмен параметрами настройки. Этот этап заканчивается, когда пакет о подтверждении произведенной настройки будет послан и принят обратно.
• Определение качества связи. Протокол LCP позволяет (но эту возможность зачастую не используют) добавить фазу тестирования канала связи. Тестирование канала связи должно происходить сразу же за конфигурированием и установлением связи. Во время проверки качества связи определяется – способно ли соединение с достаточным качеством транспортировать какой-либо сетевой протокол.
• Установление настроек сетевого протокола. После того как протокол LCP закончит определение параметров связи, сетевые протоколы должны быть независимо друг от друга настроены соответствующими протоколами NCP, которыми могут в любой момент времени начать или прекратить пользоваться.
• Окончание связи. Протокол LCP может в любое время прервать установленную связь. Это может произойти по требованию пользователя или из-за какого-нибудь события, к примеру, потери несущей или истечению допустимого периода времени неиспользования канала.
Существуют три типа LCP-пакетов:
• пакеты установления – используются для установления и настройки связи;
• пакеты прерывания – используются для прерывания установленной связи;
• пакеты сохранения связи – используются для управления и диагностики связи.
Сокращения, используемые при описании протокола РРР
В табл. 31.2 приведены некоторые аббревиатуры, используемые при описании протокола РРР. Расшифровка содержит как английское значение, так и русский перевод.
Таблица 31.2. Аббревиатуры, используемые при описании протокола РРРСтандарты, описывающие протокол РРР
В табл. 31.3 приведены стандарты (RFC) протокола РРР.
Таблица 31.3. Стандарты протокола РРРНастройка сервера входящих звонков (dial-in)
В этом разделе мы перейдем к сугубо практическим действиям – настроим наш сервер для приема входящих звонков. Поскольку мы уже рассматривали в гл. 30, как настроить компьютер с операционной системой Linux таким образом, чтобы он выступал шлюзом для вашей локальной сети, – то в этой главе нам будет значительно проще.
Итак, мы умеем настраивать систему таким образом, чтобы она выступала в роли шлюза для вашей локальной сети. Но бывает нужно получить доступ к локальной сети организации, например из дома, в том числе так же из дома выйти в Интернет через корпоративную локальную сеть. Нет ничего проще. Настраивать РРР-соединение мы уже научились, осталось только установить программу, которая умеет "поднимать трубку" модема по входящему звонку и совершать некоторые дополнительные действия. Такой программой является mgetty – признанный фаворит в своей области, умеющий помимо всего прочего посылать и принимать факсы, а также с помощью голосового модема принимать и отправлять voice mail – голосовую почту.
Настройка mgetty
Обычно mgetty, как и ррр, входит в стандартную поставку дистрибутива. Единственное, что необходимо проверить, был ли пакет mgetty скомпилирован с опцией – dauto_ppp, и если нет, то пакет следует перекомпилировать с этой опцией (в дистрибутиве Red Hat mgetty скомпилирован требуемым нам образом).
После установки mgetty нам надо отредактировать конфигурационные файлы.
В файле /etc/mgetty+sendfax/login.config мы должны написать:/AutoPPP/ – а_ррр /usr/sbin/pppd auth refuse-chap require-pap login – /bin/login @
Эта строка говорит mgetty следующее:
• после установления входного соединения необходимо вызвать программу pppd;
• для пользователя требуется авторизация;
• аутентификацию по протоколу CHAP – отклонять и требовать авторизации по протоколу РАР.
После установления соединения mgetty анализирует данные, приходящие с модема, и в случае, когда приходит запрос на авторизацию по протоколу РАР, программа сразу же запускает pppd, который и проводит аутентификацию по протоколу РАР.
Далее, нам необходимо отредактировать файл /etc/mgetty+sendfax/mgetty.config приблизительно следующим образом:port ttyS1
speed 115200
data-only у
debug 3
init-chat "" ATZ OK
answer-chat "" ATA CONNECT \c \rКак видите, модем подключен ко второму последовательному порту, скорость обмена 115200, строка инициализации atz. Далее нужно добавить mgetty в файл inittab. Для этого достаточно дописать всего лишь одну строку:
S4:2345:respawn:/sbin/mgetty /dev/ttyS1
Перегрузив операционную систему, можно приступать к испытаниям – попробуйте позвонить на телефонный номер, где установлен ваш модем – если все настроено нормально – модем должен «поднять трубку».
Настройка pppd
С настройкой pppd вы уже ознакомились в гл. 30. Поэтому, чтобы не повторяться, просто приведем соответствующие конфигурационные файлы с небольшими комментариями.
Файл options.ttyS1 должен содержать следующие данные:# Устройство
lock
login
auth
modem
crtscts
–chap
+pap
# наш интерфейс: удаленный интерфейс
192.168.10.100:192.168.10.101
# маска подсети
netmask 255.255.255.0
# адрес сервера DNS для клиента Windows
ms-dns 192.168.10.100Файл /etc/ppp/pap-secrets должен содержать следующие данные:
user1 сервер. домен "" * user2 сервер. домен "" *
где:
• user1 – имя пользователя, причем он должен существовать в вашей системе, где установлен модем;
• user2 – сервер,
• "" – отсутствие пароля указывает на то, что пароли необходимо брать из файла /etc/shadow;
• * – абонент может производить аутентификацию с любого IP-адреса.
Вот и все – вы стали микропровайдером, причем пользователям Windows сильно облегчили жизнь, поскольку IP-адрес и адрес DNS-сервера вы выдаете автоматически, кроме того, отпадает потребность в использовании скрипта для соединения.
Настройка callback-сервера
Итак, вы настроили свой dial-in-сервер, попользовались им какое-то время и захотели чего-то другого. Например, в вашем городе повременная оплата и часами работать в Интернете из дома не получается, но руководство вашей организации не возражает против того, чтобы вы работали за ее счет. Дело за малым – организовать ваш dial-in-сервер таким образом, чтобы не вы ему звонили, а он вам. В компьютерных документах такой сервер зовется callback-сервером. Функционирует он следующим образом.
Сначала клиент дозванивается через модем к callback-еерверу. Модем на сервере настроен на прием входящих звонков (установку и настройку dial-in-сервера мы только что рассмотрели). После установки соединения сервер предлагает клиенту пройти аутентификацию. Клиент подключается к нему как особый callback-пользователь. После этого модем на сервере обрывает связь и сам звонит клиенту по номеру, который закреплен за компьютером клиента. Модем на клиентском компьютере готов принять обратный звонок, и после установления соединения происходит повторная авторизация. По окончании аутентификации устанавливается РРР-соединение. Далее клиент работает обычным образом.
Конфигурация callback-сервера
После того как настройка dial-in-сервера завершена, необходимо настроить callback. Для этого надо выполнить следующие действия:
1. Создать нового пользователя back.
2. Создать пустой файл с именем callback.conf в /etc/mgetty/.
3. В файл /etc/mgetty/login.config добавить следующую строку:back – /usr/sbin/callback -S 1234567
После ключа -S указывается номер, по которому сервер должен сделать обратный звонок клиенту.
Конфигурация клиентов
Поскольку сервер мы уже сконфигурировали, необходимо сконфигурировать клиента и проверить, каким же образом работает callback. Начнем с операционной системы Linux.
Конфигурирование Linux-клиентаДля конфигурирования клиента Linux необходимо выполнить следующее:
1. Создать файл /etc/ppp/options, в котором должны быть такие строки:lock
defaultroute
noipdefault
modem
115200
crtscts
debug
passive2. Создать файл ppp-callback в /etc/ppp/peers/, в котором должны быть такие строки:
ttyS1 33600 crtscts
connect \'/usr/sbin/chat -v -f /etc/ррр/chat-callback\'
noauth3. Создать файл /etc/ppp/chat-callback, в котором должны быть такие строки:
ABORT BUSY
ABORT VOICE
ABORT "NO DIALTONE"
ABORT "NO ANSWER"
"" ATZ
OK ATDP7654321 # Телефонный номер сервера
CONNECT \d\d
ogin: \q\dback
TIMEOUT 90
RING AT&C0S0=1
ogin: \q\dvasya
assword: \q\dpasswordforvasyaВ файл chat-callback необходимо вписать телефон call back-сервера, имя и пароль пользователя. 4. Создать файл /usr/bin/pppcall, в котором должны быть такие строки:
#!/bin/bash /usr/sbin/pppd – detach call ppp-callback &
Сделать этот файл исполняемым.
Теперь для того, чтобы позвонить на ваш сервер, достаточно запустить скрипт pppcall.
Конфигурирование клиента MS Windows 98 Для Windows конфигурация производится по-другому. Выполните команду меню Пуск | Программы | Стандартные | Удаленный доступ к сети | Новое соединение . Укажите данные, необходимые для дозвона к серверу. Помимо этого, в настройках модема на вкладке Подключения нажмите кнопку Дополнительно и в строке инициализации модема укажите следующее:&c0s0=1
Теперь пробуем дозвониться до нашего сервера. После дозвона в открывшемся окне терминала вы увидите приглашения для аутентификации.
Зарегистрируйтесь в системе как back. После этого модем со стороны сервера оборвет связь, подождет несколько секунд и перезвонит вам. После установки callback-соединения вам предложат пройти повторно авторизацию. Введите ваш нормальный логин и пароль и нажмите кнопку Продолжить в окне терминала. Все.
Настройка модемного соединения для пользователя
С настройкой сервера вы уже знакомы. Пора приступать к настройке модемного соединения клиента. Но предварительно поговорим о модемах.
Модемы бывают трех классов.
• Наружный модем, подключаемый к последовательному порту (нормальный, аппаратный модем).
• Внутренний модем (нормальный, аппаратный модем, обычно с интерфейсом ISA).
• Win-модем (наружный модем, подключаемый к USB-порту, или внутренний модем с интерфейсом PCI).
С первыми двумя понятно – поставил, настроил, работай.
С Win-модемом все несколько сложнее. Идея этого модема заключается в том, чтобы упростить и удешевить модем за счет того, что вся обработка сигнала после преобразования из аналогового вида в цифровой возложена на процессор компьютера и драйвер модема. Поэтому в требованиях к аппаратным средствам для этого модема указан процессор не ниже Pentium 166 и объем оперативной памяти не менее 32 Мбайт. А Win-модемом такие устройства назвали потому, что драйверы первоначально были написаны только для Windows. Сказать, что Win-модем работает хорошо, особенно на наших телефонных линиях, – нельзя. На нормальной телефонной линии и цифровой АТС Win-модем может устойчиво работать, правда скорости выше 44 ООО бит/с вы никогда не получите, а реальная скорость будет где-то возле 28 800—33 600 бит/с. Причем, по опыту работы, Win-модем на чипе от Lucent более послушный в настройке и несколько лучше себя ведет, чем модемы на чипе Conexant или Pctel.
Предположим, вы купили Win-модем и хотите его настроить под операционной системой Linux. Еще года полтора назад это бы не удалось – производители модемов драйверы под Linux не выпускали, спецификаций на модем сторонним разработчикам не давали, а самостоятельно реализовать в драйвере протокол V.34 доступно только программистам экстра-класса. Но в последнее время индустрия разворачивается к Linux лицом – выпускаются драйверы, некоторая часть даже с исходным кодом.
Первое, что следует сделать – найти на сайте производителя модема или производителя модемного чипа драйвер под Linux. Сходите также по ссылкам, приведенным в конце главы, например на www.linmodems.org, – наверняка это вам поможет. Далее действуйте по инструкции, прилагаемой к драйверу.
Настройка модема в текстовом режиме
Все просто, идем по пунктам:
1. Создаем файл /etc/ppp/options, в котором содержатся следующие строки:lock
defaultroute
noipdefault
modem
115200
crtscts
debug2. Создаем файл ppp-call в /etc/ppp/peers/, в котором содержатся следующие строки:
ttySl 115200 crtscts
connect /usr/sbin/chat -v -f /etc/ppp/chat-call\'
noauth3. Создаем файл /etc/ppp/chat-call, в котором содержатся следующие строки:
ABORT BUSY
ABORT VOICE
ABORT "NO DIALTONE"
ABORT "NO ANSWER"
"" ATZ
OK ATDP7654321 # Телефонный номер провайдера
CONNECT \d\d
ogin: \q\dvasya
assword: \q\dpasswordforvasya