PPP HOWTO: Настройка файлов PPP соединения

Next Previous Contents

12. Настройка файлов PPP соединения

Вы теперь должны зарегистрироваться как root, чтобы создать каталоги и отредактировать файлы, необходимые для установки PPP, даже если вы хотите, чтобы PPP был доступен для всех пользователей.

PPP использует ряд файлов для соединения и установки PPP соединения.

Они отличаются по имени и расположению между версиями PPP 2.1.2 и 2.2.

Для PPP 2.1.2 файлы:

  ______________________________________________________________________
  /usr/sbin/pppd          # the PPP binary
  /usr/sbin/ppp-on        # the dialer/connection script
  /usr/sbin/ppp-off       # the disconnection script
  /etc/ppp/options        # the options pppd uses for all connections
  /etc/ppp/options.ttyXX  # the options specific to a connection on this port
  ______________________________________________________________________

Для PPP 2.2 файлы:

  ______________________________________________________________________
  /usr/sbin/pppd                  # the PPP binary
  /etc/ppp/scripts/ppp-on         # the dialer/connection script
  /etc/ppp/scripts/ppp-on-dialer  # part 1 of the dialer script
  /etc/ppp/scripts/ppp-off        # the actual chat script itself
  /etc/ppp/options                # the options pppd uses for all connections
  /etc/ppp/options.ttyXX          # the options specific to a connection on this port
  ______________________________________________________________________
Пользователи Red Hat Linux должны обратить внимание на то, что во время стандартной установки Red Hat 4.X эти скрипты находятся в /usr/doc/ppp-2.2.0f-2/scripts.

В вашем каталоге /etc должен быть каталог ppp:

drwxrwxr-x   2 root     root         1024 Oct  9 11:01 ppp
Если он не существует - создайте его с этими правами владения и доступа.

Если каталог уже существовал, он должен содержать шаблон файла options, называемый options.tpl. Этот файл включен ниже на тот случай, если у вас его нет.

Напечатайте его, поскольку он содержит объяснение почти всех PPP опций (их полезно читать вместе с man pppd). Хотя вы можете использовать этот файл как ваш базовый файл /etc/ppp/options, вероятно лучше создать ваш собственный файл options, который не будет включать комментарии из шаблона, тогда он будет намного короче и более легок для чтения/сопровождения.

Если вы имеете несколько последовательных линий/модемов (обычный случай для PPP сервера), создайте общий файл /etc/ppp/options, содержащий опции, которые являются общими для всех последовательных портов, на которых вы осуществляете входящие/исходящие звонки и создайте индивидуальные файлы options для каждой последовательной линии, на которой вы будете устанавливать PPP соединение с индивидуальными установками, требуемыми для каждого порта.

Эти файлы со специфическими для портов опциями именуются options.ttyx1, options.ttyx2 и т.д (где x - соответствующий символ для ваших последовательных портов).

Однако, для одиночного PPP соединения, вы можете вполне спокойно использовать файл /etc/ppp/options. В качестве альтернативы вы можете поместить все опции как параметры непосредственно в команде pppd.

Проще сопровождать настройку, которая использует файлы /etc/ppp/options.ttySx. Если вы используете PPP, чтобы соединяться с рядом различных мест, то вы можете создать файлы options для каждого места в "/etc/ppp/options.место" и затем определять файл опций как параметр для команды PPP при соединении (используя опцию pppd "file option-file" в командной строке).

12.1 Файл options.tpl

Некоторые дистрибутивы PPP, кажется, потеряли файл options.tpl, так что вот полный файл. Я предлагаю вам не редактировать этот файл, а создать ваш(и) файл(ы) /etc/ppp/options. Достаточно скопировать его в новый файл и затем отредактировать. Если вы запутались в ваших иправлениях, то вы можете затем вернуться к оригиналу и начать снова.

  ______________________________________________________________________
  # /etc/ppp/options -*- sh -*- общие опции для pppd
  # создано 13-Jul-1995 jmk
  # автоматически проставленная  дата: 01-Aug-1995
  # автоматически проставленное время: 19:45

  # Использовать указанную команду или программу для настройки линии. Этот
  # обычно использует программу "chat", чтобы позвонить модемом и запустить
  # удаленную ppp сессию.
  #connect "echo Вам нужно установить команду connect."

  # Запустить указанную команду или программу, когда pppd завершил связь.
  # Этот скрипт мог бы, к примеру, ввести команды в модем, чтобы завершить
  # связь, если сигналы аппартного управления модемом недоступны
  #disconnect "chat -- \d+++\d\c OK ath0 OK"

  # async карта символов -- 32-bit hex; каждый бит - символ, который надо 
  # представить в виде escape-последовательности, чтобы pppd мог его принять.
  # 0x00000001 - это маска для '\x01', а 0x80000000 - маска для '\x1f'.
  #asyncmap 0

  # Требование для удаленной стороны назвать себя перед тем как начнется обмен 
  # пакетами.
  #auth

  # Использовать аппаратное управление потоком данных (напр., RTS/CTS), чтобы
  # управлять потоком данных на последовательном порту
  #crtscts

  # Использовать программное управление потоком данных  (напр., XON/XOFF), чтобы
  # управлять потоком данных на последовательном порту
  #xonxoff

  # Добавить маршрут по умолчанию в системную таблицу маршрутизации, 
  # используя удаленную сторону как шлюз, когда договоренность IPCP успешно 
  # достигнута.  Эта запись удаляется при завершении связи
  #defaultroute

  # Определяет, что некоторые символы должны быть за'escape'лены при передаче
  # (Независимо от того, просила ли удаленная сторона их escape'ить своей 
  # async картой управляющих символов). Символы, которые надо escape'ить 
  # указываются в виде списка шестнадцатиричных чисел, разделенных запятыми. 
  # Заметьте, что для опции escape могут быть указаны почти все символы, в 
  # отличие от опции asyncmap, которая позволяет указывать только управляющие 
  # символы. Символы, которых нельзя escape'ить - это 0x20 - 0x3f или 0x5e.
  #escape 11,13,ff

  # не использовать линии управления модемом.
  #local

  # Указывает, что pppd должен использовать lock в стиле UUCP на 
  # последовательное устройство, чтобы исключить одновременый доступ к 
  # устройству
  #lock

  # Использовать линии управления модемом. На Ultrix эта опция означает
  # управление потоком данных, как опция crtscts.  (Эта опция не полностью 
  # выполняется)
  #modem

  # Установаить значение MRU [Maximum Receive Unit] в <n> при договренности.
  # pppd запросит удаленную сторону отправлять пакеты не более, чем по <n> байт. 
  # Минимальное значение MRU 128. Значение MRU по умолчанию 1500. Для 
  # медленных линков рекомендуется 296 (40 байт для заголовка TCP/IP + 256 байт 
  # данных).
  #mru 542

  # Установить сетевую маску интерфейса в <n>, 32-битная сетевая маска в 
  # "десятично-точечной" нотации (напр., 255.255.255.0).
  #netmask 255.255.255.0

  # Запретить поведение по умолчанию, когда не указан локальный IP адрес,
  # которое определяет (если возможно) локальный IP адрес по имени хоста
  # С этой опцией удаленная сторона должна будет обеспечить локальный IP
  # адрес в течение IPCP преговоров (если она не определена явно в командной
  # строке или в файле options).
  #noipdefault

  # Разрешить опцию "passive" в LCP.  С этой опцией pppd будет пытаться
  # инициировать соединение; если ответ от другой стороны не принят, то
  # pppd будет пассивно ожидать правильный LCP пакет от другой стороны
  # (вместо выхода, как делается без этой опции).
  #passive

  # С этой опцией pppd не будет передавать LCP пакеты для инициации соединения
  # пока не придет правильный LCP пакет от другой стороны (как опция "passive"
  # в старых версиях pppd).
  #silent

  # Не требовать или не разрешать договариваться о любых опциях LCP и IPCP
  # (использовать значения по умолчанию).
  #-all

  # Запретить договариваться о сжатии адреса/управления (используется 
  # по умолчанию, т.е. адресные/управляющие поля запрещены).
  #-ac

  # Запретить договариваться о asyncmap (используется asyncmap по умолчанию, т.е.
  # escape все управляющие символы).
  #-am

  # Не переходить в фоновый режим (иначе pppd бдет делать так, если 
  # последовательной устройство указано).
  #-detach

  # Запретить договариваться о IP адресе (С этой опцией удаленный IP
  # адрес должен указываться опцией командной строки или в файле options)
  #-ip

  # Запретить договариваться о магических числах. С этой опцией pppd не может
  # определить looped-back линию.
  #-mn

  # Запретить договариваться о MRU [Maximum Receive Unit] 
  # (используется по умолчанию, т.е. 1500).
  #-mru

  # Запретить договариваться о сжатии полей протокола (используется по 
  # умолчанию, т.е. сжатие полей протокола запрещено).
  #-pc

  # Требует, чтобы другая сторона назвала себя используя PAP.
  # Это требует ДВУНАПРАВЛЕННОЙ аутентификации - НЕ используйте эту 
  # опцию для стандартной аутентификации PAP на ISP, так как при этом требуется,
  # чтобы машина ISP аутентифицировала себя на вашей машине (а она это не сможет
  # сделать)
  #+pap

  # Не соглашаться с аутентификацией PAP.
  #-pap

  # Требует, чтобы другая сторона назвала себя используя CHAP [Cryptographic
  # Handshake Authentication Protocol].
  # Это требует ДВУНАПРАВЛЕННОЙ аутентификации - НЕ используйте эту опцию
  # для стандартной аутентификации CHAP на ISP, так как при этом требуется,
  # чтобы машина ISP аутентифицировала себя на вашей машине (а она это не сможет
  # сделать)
  #+chap

  # Не соглашаться с аутентификацией CHAP.
  #-chap

  # Запретить обсуждение сжатия IP заголовков в стиле Van Jacobson 
  # (используется по умолчанию, т.е. сжатия нет)
  #-vj

  # Увеличить уровень отладки (то же что -d). Если эта опция есть, pppd
  # бедет записывать в журнал все прибывшие и отправленные пакеты в читабельной
  # форме. Пакеты регистрируются в лог-файлах через syslog со средством daemon
  # и уровнем отладки. Эта информация может быть перенаправлена в файл
  # соответствующей установкой /etc/syslog.conf (см. syslog.conf(5)).  (Если
  # pppd скомпилирован с разрешенной extra отладкой, он будет записывать 
  # сообщения в журнал, используя средство local2 вместо daemon).
  #debug

  # Добавить имя домена <d> к локальному имени хоста для целей аутентификации.
  # Например, если gethostname() возвращает имя porsche, но FQDN - 
  # porsche.Quotron.COM, то вы должны установить эту опцию, чтобы имя домена
  # было Quotron.COM.
  #domain <d>

  # Разрешить отладочный код в PPP драйвере на уровне ядра.  Аргумент n
  # это число-комбинация следующих значений: 1 - разрешить общие отладочные
  # сообщения, 2 - запросить, надо ли печатать содержимое принимаемых пакетов
  # и 4 - запросить, надо ли печатать содержимое отправляемых пакетов
  #kdebug n

  # Установть значение MTU [Maximum Transmit Unit] в <n>. Пока другая сторона
  # на попросит меньшее значение при договоре о MRU, pppd будет требовать у
  # сетевого кода ядра отправлять пакеты данных не более, чем по n байт
  # через сетевой интерфейс PPP.
  #mtu <n>

  # Установить имя локальной системы для аутентификационных целей в <n>.
  # Возможно, ее надо будет установить в ваше имя на вашем ISP, 
  # если используется PAP/CHAP.
  #name <n>

  # Установить имя пользователя для аутентификации этой машины на другой стороне
  # используя PAP, в значение <u>.
  # НЕ использовать, если вы использовали опцию 'name'!
  #user <u>

  # Заставить использовать имя хоста как имя локальной системы для 
  # аутентификационных целей  (перекрывает опцию name).
  #usehostname

  # Установить имя удаленной системы для аутентификационных целей в <n>.
  #remotename <n>

  # Добавить запись для этой системы в таблицу ARP [Address Resolution Protocol]
  # с IP адресом удаленной системы и Ethernet адресом этой системы
  #proxyarp

  # Использовать базу данных паролей для идентификации удаленной стороны
  # используя PAP.
  #login

  # Если эта опция назначена, pppd будет отправлять кадр LCP echo-request
  # удаленной стороне каждые n секунд. Под Linux, echo-request отправляется
  # когда пакеты не принимаются от удаленной стороны n секунд. Обычно
  # удаленная сторона должна отвечать на echo-request отправкой echo-reply.
  # Эта опция может быть использована с опцией lcp-echo-failure для 
  # определения что удаленная сторона больше не соединена.
  #lcp-echo-interval <n>

  # Если эта опция задана, pppd будет считать, что связи с peer нет, если n
  # LCP echo-requests отправлены без приема правильных LCP echo-reply.
  # Если это случилось, pppd завершит связь. Использование этой опции
  # требует ненулевого значения для параметра lcp-echo-interval.
  # Эта опция может быть использована, чтобы разрешить pppd завершать связь,
  # если физическое соединение отсутствует (напр, модем бросил трубку) в
  # ситуациях, когда доступны линии управления модемом.
  #lcp-echo-failure <n>

  # Установить интервал рестарта LCP (пауза возобновления передачи) в <n> секунд
  # (по умолчанию 3).
  #lcp-restart <n>

  # Установить максимальное число передач LCP terminate-request в <n>
  # (по умолчанию 3).
  #lcp-max-terminate <n>

  # Установить максимальное число передач LCP configure-request в <n>
  # (по умолчанию 10).
  # Некоторые PPP сервера долго стартуют. Вам может понадобиться увеличть эту
  # величину, если вы получаете ошибки 'serial line looped back' и вы УВЕРЕНЫ,
  # что корректно регистрируетесь и PPP должен запускаться на сервере.
  #lcp-max-configure <n>

  # Установить максимальное число LCP configure-NAKs, возвращенных перед началом
  # отправки вместо configure-Rejects, в <n> (по умолчанию 10).
  #lcp-max-failure <n>

  # Установить интервал рестарта IPCP (пауза возобновления передачи) в <n>
  # секунд (по умолчанию 3).
  #ipcp-restart <n>

  # Установить максимальное число передач IPCP terminate-request в <n>
  # (по умолчанию 3).
  #ipcp-max-terminate <n>

  # Установить максимальное число передач IPCP configure-request в <n>
  # (по умолчанию 10).
  #ipcp-max-configure <n>

  # Установить максимальное число IPCP configure-NAKs, возвращенных перед началом
  # отправки вместо configure-Rejects, в <n> (по умолчанию 10).
  #ipcp-max-failure <n>

  # Установить интервал рестарта PAP (пауза возобновления передачи) в <n> секунд
  # (по умолчанию 3).
  #pap-restart <n>

  # Установить максимальное число передач PAP authenticate-request в
  # <n> (по умолчанию 10).
  #pap-max-authreq <n>

  # Установить интервал рестарта CHAP (пауза возобновления передач 
  # challenges) в <n> секунд (по умолчанию 3).
  #chap-restart <n>

  # Установить максимальное число передач CHAP challenge в <n>
  # (по умолчанию 10).
  #chap-max-challenge

  # С этой опцией pppd будет re-challenge удаленную сторону каждые <n>
  # секунд.
  #chap-interval <n>

  # С этой опцией pppd будет принимать предложение peer о нашем локальном IP
  # адресе, даже если локальный IP адрес был указан в опциях. 
  #ipcp-accept-local

  # С этой опцией pppd будет принимать предложение peer о его (удаленном) IP
  # адресе, даже если удаленный IP адрес был указан в опциях. 
  #ipcp-accept-remote
  ______________________________________________________________________

12.2 Какие опции я должен использовать? (PAP/CHAP нет)

Ну, как и во всех вещах, это зависит от многого (вздох). Опции, определенные здесь должны работать с большинством серверов.

Однако, если они не работает, ЧИТАЙТЕ ФАЙЛ-ШАБЛОН (/etc/ppp/options.tpl) и man pppd, и поговорите со службой поддержки сервера, к которому вы подсоединяетесь.

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

  ______________________________________________________________________
  # /etc/ppp/options (NO PAP/CHAP)
  #
  # Чтобы pppd не уходил в фоновый режим
  -detach
  #
  # использовать линии управления модемом
  modem
  # использовать залочку портов в стиле uucp, чтобы одновременно несколько 
  # последовательных устройств не обращались к одному порту
  lock
  # использовать аппаратное управление потоком данных
  crtscts
  # сделать это соединение маршрутом по умолчанию в таблице маршрутизации
  defaultroute
  # НИЧЕГО не "escape-ить" 
  asyncmap 0
  # использовать максмальный размер передаваемого пакета в 552 байт
  mtu 552
  # использовать максмальный размер принимаемого пакета в 552 байт
  mru 552
  #
  #-------END OF SAMPLE /etc/ppp/options (no PAP/CHAP)
  ______________________________________________________________________


Next Previous Contents