По умолчанию, в процессе установки FreeBSD создается несколько примеров конфигурационных файлов в каталогах /etc/ppp и /usr/share/examples/ppp. Пожалуйста выберите время для ознакомления с этими файлами; они были взяты с работающих систем и полное представление об особенностях и возможностях программы PPP.
Мы настоятельно рекомендем Вам изучить эти файлы и использовать их при настройке собственной конфигурации по мере необходимости.
Более подробную информацию о программе `ppp` Вы можете получить, прочитав man-страницу справочного руководства по ppp:
Более подробную информацию о языке скриптов `chat`, используемого программой PPP, Вы можете получить, прочитав man-страницу справочного руководства по chat:
В этом разделе описано рекомендуемое содержание конфигурационных файлов программы PPP.
В файле '/etc/ppp/ppp.conf' содержится информация и настройки, необходимые для уставновки PPP-соединения. В этом файле может содержаться более одной конфигурации. Более детельное описание содержания и синтаксиса этого файла Вы можете получить в руководстве по FreeBSD (XXX URL? XXX).
Этот раздел описывает только минимальную конфигурацию для получения нормального "рабочего" соединения.
Ниже приведен пример файла /etc/ppp/ppp.conf, который будет использоваться для обеспечения Интернет-шлюза для нашей локальной сети:
Note: Полное описание синтаксиса для /etc/ppp/ppp.conf Вы можете найти в странице Справичника ppp(8). В частности обратите внимание, что все строки которые не являются метками заканчивающимися точкой с запятой (например default:, interactive:), или командой начинающейся с "!" (например !include), или коментарием обязаны иметь отступ в начале строки (indented)!
############################################################################### # Конфигурационный файл PPP ('/etc/ppp/ppp.conf') # # Стандартные установки; они всегда выполняются при запуске программы PPP # и применяются для конфигурации всех систем. ############################################################################### default: set device /dev/cuaa0 set speed 57600 disable pred1 deny pred1 disable lqr deny lqr set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0 OK-AT-OK\\dATDT\\T TIMEOUT 40 CONNECT" set redial 3 10 ############################################################################### # # Для интерактивного режима используйте следующую конфигурацию: # # Формат вызова `ppp -alias interactive' # ############################################################################### interactive: set authname Ваш_логин_на_удаленную_систему set authkey Ваш_пароль_на_удаленную_систему set phone Телефон_для_вызова_системы set timeout 300 set openmode active accept chap ############################################################################### # # Для режима с дозвоном по необходимости (или автоматического) # используйте следующую конфигурацию: # # Формат вызова: `ppp -auto -alias demand' # ############################################################################### demand: set authname Ваш_логин_на_удаленную_систему set authkey Ваш_пароль_на_удаленную_систему set phone Телефон_для_вызова_системы set timeout 300 set openmode active accept chap set ifaddr 127.1.1.1/0 127.2.2.2/0 255.255.255.0 add 0 0 127.2.2.2 ############################################################################### # Конец файла /etc/ppp/ppp.confЭтот файл, взятый без изменений с работающей системы, содержит три взаимосвязанные конфигурационные секции:
'Стандартная'секция содержит параметры и настройки, используюемые во всех остальных секциях этого файла. Эта секция неявно добавляется в каждую секцию.
В этой секции можно размещать "стандартные глобальные настройки", которые применяются для всех сессий дозвона; например, настройки модема и префиксы дозвона, которые обычно не изменяются, независимо от того с системой какого типа будет произведено соединение.
Ниже приведено описание каждой строки в "стандартной" секции примера файла '/etc/ppp/ppp.conf':
Эта строка сообщает программе PPP, что ей необходимо использовать первый последовательный порт. В системе FreeBSD устройство '/dev/cuaa0' - это тот же самый порт, который известен под именем "COM1:" в системах DOS, Windows, Windows 95 и т.д...Если Ваш модем подключен к порту COM2:, то необходимо указать значение '/dev/cuaa1, если COM3: - '/dev/cuaa2'.
Эта строка устанавливает скорость передачи и приема для соединения между последовательным портом и модемом. И хотя модем, используемый в данной конфигурации, имеет максимальную скорость 28.8К, устанавливая эту величину в значение 57600 мы позволим последовательному соединению работать на более высокой скорости, которая будет соответствовать высокой пропускной способности канала, в результате использования сжатия данных, встроенного в последние модели модемов.
Если у вас возникнут проблемы при установке модемного соединения, попробуйте изменить эту величину на значение 38400 или, еще меньше, на 19200.
Эти две строки выключают режим сжатия "CCP/Predictor type 1", встроенный в программу PPP. Текущая версия `ppp` поддерживает сжатие данных в соответствии с требованиями стандартов сети Интернет. К сожалению, многие Интернет-провайдеры используют оборудование, которое не поддерживает эту возможность. Большинство модемов выполняют сжатие "на лету", однако Вы не потеряете многого в производительности системы, выключив этот режим на своем узле и запретив удаленному узлу принуждать Вас к его поддержке.
Эти две строки контролируют функции "отчета о качестве линии", которые являются частью полной спецификации протокола Point-to-Point (PPP). (За более подробной информацией обратитесь к RFC-1989.)
Первая строка "disable lqr" сообщает программе PPP не пытаться сообщать о состоянии качества линии устройству на удаленном узле.
Вторая строка "deny lqr" сообщает программе PPP запретить любые попытки удаленного узла сообщать о качестве линии.
Поскольку современные модемы имеют встроенную автоматическую коррекцию ошибок и детектирование, а режим сообщения о качестве линии в продуктах многих производителей применяется не полностью, то включить эти две строки в стандартную конфигурацию будет очень не плохо с точки зрения безопасности системы.
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0 OK-AT-OK\\dATDT\\T TIMEOUT 40 CONNECT"
ПРИМЕЧАЕНИЕ: (Этот оператор необходимо ввести одной строкой; все переносы строк, которые Вы встретите в этом документе должны игнорироваться.)
Эта строка сообщает программе PPP как работать с модемом и определяет некоторые устаревшие директивы для его управления:
Попытки дозвона ошибочны, если модем вернул код "BUSY" ("ЗАНЯТО"),
Попытки дозвона ошибочны, если модем вернул код "NO CARRIER" ("НЕТ НЕСУЩЕЙ"),
Программа PPP ожидает завершение каждого последующего события в течение 5-секундного интервала:
Первоначально программа PPP не ожидает от модема никаких событий (определяется выше указанием символов \"\" в операторе dial)
Программа будет посылать модему строку инициализации "ATE1Q0M0" и ждать ответа "OK". Если ответ не будет получен, то программа будет вынуждена послать на модем команду "AT" и снова ожидать ответа "OK",
Перед посылкой в модем строки дозвона программа вынуждена ждать около 1 секунды (определено симвлами "\\d" в операторе dial). Часть выражаения "ATDT" есть стандартный модемный префикс для дозвона с использованием тонового набора номера; если Ваша телефонная линия не поддерживаеи тоновый набора, замените "ATDT" на "ATDP". Символы "\\T" определяют место расположения для реального номера телефона (который будет автоматически вставляться из параметра "set dial").
И наконец, перед тем как закончится максимальный тайм-аут в 40 секунд, программа PPP ожидает "увидеть" код "CONNECT"("СОЕДИНЕНИЕ"), возвращаемый модемом.
Ошибка в любой точке этого "диалога" будет интерпретироваться как ошибка дозвона и программа PPP откажет в соединении.
(Более детальную информацию по языку мини-скриптов, используемого дозвонщиком PPP можно получить, обратившись к man-странице справочного руководства по "chat".)
Эта строка определяет количество попыток дозвона (максимум 3), используемых программой PPP в случае, если соединение не может быть установлено сразу. Интервал между попытками равен 10 секундам.'Интерактивная:' секция содержит параметры и настройки, используемые для установки "интерактивных" PPP-сессий с определенными удаленными системами. В настройки этой секции будут автоматически добавлены строки, находящиеся в "стандартной" секции.
В примере, используемом в этой секции данного руководства подразумевается, что Вы будете соединяться с удаленной системой, которая "понимает" как идентифицировать пользователя без использования языка скриптов. То есть, в этом примере используется протокол CHAP для установки соединения.
Считается, что если дозвонщик системы Windows '95 может установить соединение простым нажатием кнопки "Подключиться", то такой пример конфигурации должен работать на "ура".
С другой стороны, когда Вы соединяетесь с Вашим Интернет-провайдером, используя механизм дозвона Microsoft Windows '95, Вам необходимо использовать инструментарий создания скриптов дозвона из пакета Microsoft Plus! или Вы должны включить флажок "Вывести окно терминала после соединения" в свойствах соединения для Windows '95, а затем Вам необходимо заглянуть в примеры конфигурационных файлов PPP и справочную информацию по ppp, для того, чтобы написать скрипты "ожидание / ответ" для установки соединения с Вашим Интернет-провайдером. Команда "set login" используется как раз для этой цели.
А еще лучше, найдите такого Интернет-провайдера, который знает как обеспечить PAP- или CHAP-идентификацию!
Примеры конфигурации, показанные здесь были успешно использованы для соединения с:
Various Shiva LanRovers
IBM Network (http://www.ibm.net)
AT&T WorldNet (http://att.com/worldnet)
Erol's (http://www.erols.com)
Ниже приведено описание каждой строки в "интерактивной" секции примера файла '/etc/ppp/ppp.conf':
Эта строка определяет имя, которое будет использовано для регистрации на удаленной системе.accept chap
Эта строка сообщает программе PPP использовать "Challenge-Handshake Authentication Protocol" ("протокол аутентификации запрос-рукопожатие") для Вашей аутентификации. Значения идентификатора пользователя и пароля, передаваемые между локальной и удаленной стороной, берутся из полей 'authname' и 'authkey', указанных выше.
"Demand"-секция содержит параметры и настройки, используемые для установки PPP-соединения "с вызовом по требованию" с определенной удаленной системой. Настройки этой секции также будут включать строки из "стандартной" секции, которые будут включены сюда автоматически.
За исключением двух последних линий эта секция полностью идентична конфигурационной секции, которая определяет "интерактивную" конфигурацию.
Как было замечено ранньше, примеры, находящиеся в этом разделе данного руководства подразумевают, что Вы соединяетесь с удаленной системой, которая понимает как использовать протокол CHAP для установки соединения.
Ниже приведено описание каждой строки секции "demand" в примере файла '/etc/ppp/ppp.conf':
Эта строка определяет имя, которое будет использовано для регистрации на удаленной системе.Эта строка сообщает программе PPP, чтобы она автоматически "вешала" трубку, если в течение 300 секунд (5 минут) по каналу не производится передача данных. Вы можете указать необходимый интервал, который удовлетворяет Вашим требованиям.
Эта строка сообщает программе PPP о том, что как только модемы произведут соединение, она должна немедленно пытаться произвести настройку соединения. Некоторые удаленные узлы делают это автоматически, некоторые нет. Установка этого параметра инструктирует Вашу сторону соединения взять на себя инициативу и пытаться настроить соединение.
Эта строка сообщает программе PPP использовать "Challenge-Handshake Authentication Protocol" ("протокол аутентификации запрос-рукопожатие") для Вашей аутентификации. Значения идентификатора пользователя и пароля, передаваемые между локальной и удаленной стороной, берутся из полей 'authname' и 'authkey', указанных выше.
Эта команда устанавливает пару "фальшивых" IP-адресов для локальной и удаленной сторон PPP-соединения. Она инструктирует программу PPP создать IP-адрес 127.1.1.1 для локальной стороны 'tun0' (туннельного) устройства и 127.2.2.2 для удаленной стороны. Добавление '/0' к каждому адресу сообщает программе PPP, что в этих адресах нет значимых битов и они могут (и фактически должны!) быть переданы между локальной и удаленной системами, когда соединение установилось. Строка 255.255.255.0 сообщает программе PPP какую маску подсети применять для этих псевдо-интерфейсов.
Запомните, мы считаем, что Ваш Интернет-провайдер предоставил Вам IP-адреса для обеих сторон соединения! Если Ваш Интернет-провайдер присвоил Вам определенный IP-адрес, то Вы обязаны при конфигурации Вашей системы ввести его здесь вместо адреса 127.1.1.1.
К слову, если Ваш Интернет-провайдер сообщил Вам определенный IP-адрес, который он использует на своей стороне, Вы обязаны ввести этот адрес здесь вместо адреса 127.2.2.2.
В обоих случаях, возможно хорошей идеей будет оставить символы '/0' в конце каждого адреса. Это дает программе PPP возможность изменять адрес(а) соединения, если это будет необходимо.
Эта последняя строка сообщает программе PPP, что она должна добавить маршрут по умолчанию для IP-трафика, который указывает на (фальшивый) IP-адрес системы Интернет-провайдера.
Примечание: Если Вы используте определенный Вашим Интернет-провайдером адрес вместо 127.2.2.2 в предыдущей строке, используйте этот же номер и здесь, вместо 127.2.2.2.
Добавив этот "фальшивый" маршрут для IP-трафика, программа PPP получает возможность в момент простоя:
Принимать пакеты, которые FreeBSD-система уже не знает куда отправлять,
Устанавливать соединение с Интернет-провайдером "на лету",
Переконфигурировать IP-адреса локальной и удаленной сторон соединения,
Отправлять пакеты между Вашей рабочей станцией и Интернет-провайдером
Как только интервал времени (в секуднах), указанный в качестве тайм-аута в "стандартной" секции, истечет и в течение этого промежутка времени трафик TCP/IP будет равен нулю, программа PPP будет автоматически закрывать соединение (попросту говоря "класть" трубку) и процесс будет повторяться заново.
Другие файлы, необходимые для полной конфигурации PPP находятся в '/etc/ppp/ppp.linkup'. Этот файл содержит инструкции для функционирования программы PPP после того как коммутирумое соединение будет установлено.
В случае использования конфигурации "дозвона при необходимости" программа PPP будет вынуждена удалить маршрут по умолчанию, который был установлен для удаленной стороны соединения и указывал на фальшивый адрес (127.2.2.2 в нашем примере из предыдущего раздела) и устанавить новый маршрут по умолчанию, который указывает на реальный IP-адрес удаленной машины (который будет опознан в процессе настройки коммутируемого соединения).
Демонстрационный файл '/etc/ppp/ppp.linkup':
#########################################################################= # Файл установки соединений PPP ('/etc/ppp/ppp.linkup') # # Этот файл обрабатывается после того, как PPP установит сетевое соединение. # # Обработка этого файла производится в следующем порядке. # # 1) Сначала, производится поиск присвоенного нам IP-адреса и выполняются # связанные с этим команды. # # 2) Если IP-адрес не найден, то производится поиск имени, определенного # во время запуска PPP и выполняются связанные с этим команды. # # 3) Если не найдено ничего из выше перечисленного выше, то выполняются # команды 'MYADDR:'. # ##############################################################################= # # Эта секция используется в конфигурации "demand" в файле /etc/ppp/ppp.conf: demand: delete ALL add 0 0 HISADDR # # Все другие конфигурации в файле /etc/ppp/ppp.conf используют это: # MYADDR: add 0 0 HISADDR ############################################################################## # Конец файла /etc/ppp/ppp.linkup
Удалить любую информацию об IP-маршрутизации, которую создала программа PPP
Добавить маршрут по умолчанию, указывающий на реальный IP-адрес удаленной стороны.
Критичным моментом является то, что те конфигурации в файле '/etc/ppp/ppp.conf', которые включают операторы 'set ifaddr' и 'add 0 0' (т.e. настройки, используемые для конфигураци "дозвон при необходимости") выполняют команды "delete ALL" и "add 0 0 HISADDR" в файле /etc/ppp/ppp.linkup.
Это механизм, который управляет действительной конфигурацией соединения.
Все конфигурации явно не указанные в файле /etc/ppp/ppp.linkup будут использовать все команды, указаные в секции "MYADDR:" этого файла. Эту секцию будут считывать конфигурации без "дозвона при необходимости" (такие как в нашем "интерактивном:" примера). Эта секция просто добавляет маршрут по умолчанию на реальный адрес Интернет-провайдра (на удаленной стороне).