Документация по ОС FreeBSD Пятница, 29.03.2024, 17:37
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » РРР

Mpd 4.2b1 User Manual
1. Введение
 
1.1 Обзор
  
   Mpd - основанный на netgraph(4) метод создания PPP мульти-соединений для FreeBSD. Он проектировался для быстрой и гибкой работы. Он обрабатывает конфигурирование и переговоры на пользовательском уровне, когда все пакеты данных направляются строго в ядро. Это позволяет поддерживать несколько субпротоколов PPP и расширений протокола следующего вида:
 
  • Возможность PPP мультисвязи
  • PAP, CHAP, MS-CHAP и  EAP аутентификации
  • PPP сжатие и шифрование
  • IPCP и IPV6CP параметр согласований

       Mpd поддерживает множество типов связей:
  • Serial port modem - последовательный модемный порт, поддерживает асинхронное последовательное подключение, включая модемы, терминальные адаптеры ISDN, и null-модемные подключения. Mpd включает полностью управляемый скриптовый язык для модемной индификации, установки, ручного входа в систему и т.п
  • Point-to-Point Tunnelling Protocol (PPTP) - Mpd может соединяться через интернет, используя при этом двухточечный туннель по протоколу (PPTP). Этот протокол поддерживает популярным клиентом дозвона по сети Microsoft.
  • Layer Two Tunnelling Protocol (L2TP) - Mpd может соединяться через интернет, используя туннельный протокол второго уровня (L2TP). Этот протокол поддерживает популярным клиентом дозвона по сети Microsoft.
  • PPP over Ethernet (PPPoE) - Mpd может соединиться по порту Ethernet, используя PPP-over-Ethernet (PPPoE) протокол.
  • PPP over TCP - Mpd может накладывать кадры PPP на TCP соединенение. Кадры кодируются так же как и при асинхронном последовательном подключении.
  • PPP over UDP - Mpd может накладывать кадры PPP на UDP соединенение. Каждый кадр инкапсулируется в дейтаграммый UDP пакет.
  • PPP over specified netgraph(4) node - Netgraph это высокомодульныя сетевая система ядра, поддерживающая синхронные последовательные связи, Cisco HDLC, Frame Relay, и другие протоколы. Mpd поддерживает запуск PPP на любом соединении netgraph.

       Mpd также включает множетво дополнительных особенностей:
  • поддержка IPv4 и IPv6
  • RADIUS аутентификация и учет
  • NetFlow учет рафика
  • преобразования сетевых адресов (NAT)
  • соединение по запросу с ожиданием
  • многочисленные активные подключения выполненяющиеся одновременно
  • динамический запрос управления связью (также известный как "резиновая пропускная способность")
  • мощный скриптовый язык для асинхронных последовательных портов
  • предпроверочные чат-сценарии для нескольких общих модемов и ISDN TAs
  • чистый тип устройства не известный заранее
  • всестороннее логирование
  • Telnet и HTTP управление

       Mpd был первоначально разработан в Whistle Communications, Inc для использования в Whistle InterJet. Он основан на оригинале iij-ppp, код PPP пользовательского режима. Хотя с тех пор был практически полностью переписан. Сейчас mpd хостится на
    MPD Project Page.

    1.2 Слои mpd
  •    Mpd состоит из нескольких уровней (layers), соответствующих многоуровневой природе протокола PPP. Есть два типа уровневой иерархии, соединенной с двумя различными режимами работы, как "ppp terminator" и "ppp repeater".
       В режиме "ppp terminator" используется следующая иерархия:
    Interface-> NCPs-> Compression-> Encryption-> Bundle-> Links-> Physical devices
       В режиме "ppp repeater" используется следующая иерархия:
    Repeater-> Physical devices
       Связь- одно соединение точка-точка между локальной машиной и узлом удалённой машины, воплощённое путём некоторых видов физических устройств, таких как последовательное модемное соединение, или виртуальное соединение PPTP.
       
    Связка- колекция одной или более связей, все подключенные к тому же самому удалённому узлу, которые вместе - форма мультилинкового PPP соединения, чья эффективная скорость передачи - сумма скоростей передачи индивидуальных связей.
       Уровень связки, в действительности, находится выше уровня связи. Уровень сыязки обрабатывает задачу, чтоб заставить многократные физические связи представиться в виде единой виртуальной связи.
       На уровне связки вы конфигурируете параметры настройки мультисвязи PPP и политику управления связями. Политика управления связями определяет, необходимо ли mpd сохранять все связи подключенными все время, или добавлять или удалять связи в зависимости от запроса, согласно параметрам.
       В это время, mpd требует чтобы связи, которые составляют каждую связку, были объявлены когда сзязка будет создана; после этого, они не могут быть изменены. В будущем это ограничение может быть пересмотрено.
       Каждая связка соответствует уровню
    интерфейса, который соответcвует непосредственно интерфейсу netgraph, доступному через ifconfig(8), типа ng0. Интерфейс netgraph - где IP пакеты, в конечном счете, появляются после движения через связи. Уровень интерфейса обрабатывает конфигурирование интерфейса, соответственно подымая или опуская (up/down) его, присваивает IP адреса, настраивает статическую маршрутизацию, и конфигурирует proxy-ARP. Уровень интерфейса также ответственен за то, чтоб предоставить канала по требованию и функциональность таймаута простоя.
       Каждая cвязка имеет соответствующий слой NCP как слой
    Протокола Управления IP (IPCP), и слои IPv6 Control Protocol (IPv6CP), которые управляет IP-специфической конфигурацией интерфейса. Этот уроверь обрабатывает переговоры локальных и удаленных адресов и сжатие TCP заголовка, так же как и другие дополнительные параметры IP, такие как сервера DNS и NBNS сервера.
       Каждая связка также имеет соответствующее
    сжатиеи уровни шифрования, которые позволяют Вам активировать и конфигурировать сжатие и кодирование для посланных и полученных по связке данных.
       Индивидуальные связи в связке конфигурируются на уровне
    связи. Параметры связей включают тип аутентификации (PAP или CHAP), незавсимо от включения аутентифкации в каждом направлении, пакеты keep-alive, и различные другие специфичные для соединения прааметры.
       Ниже уровня связи находится уровень
    устройств. Конфигурация устройства определяет параметры в этом уровне. Каждое устройство имеет определенный тип, соответствующий одному из поддерживаемый mpd типов устройств. Тип устройства определяет, как сконфигурирована зависящая от устройства часть, какие у него возможности.
       
    Повторитель- объединение двух физических устройств. Он повторяет все соединения приходящие на одно физическое устройство на другом, без каких-либо изменений. Эта технология также известна как LAC (L2TP Access Concentrator) или PAC (PPTP Access Concentrator).
       В то время как комбинации всех различных уровней представляет большое количество опций конфигурации, mpd имет разумные значения по умолчанию для всего.

    2. Установка
     
    2.1 Получение mpd
      
    Mpd доступен как портдля FreeBSD, под названием net/mpd. По этому самый простой способ получить и установить mpd на вашу машину заключается в установке пакета mpd или его порта. Для информации относительно того, как сделать это, см. web-страницу портов FreeBSD.

    2.2 Установка mpd
      
       Если Вы используете пакет FreeBSD, или порт, mpd будет автоматически установлен в /usr/local/sbin/mpd, c дефолтовым набором типов устройств, которые вкомпилированы в него. Чтобы запустить mpd, ему нужны некоторые конфигурационные файлы. Для их хранения создана директория /usr/local/etc/mpd. В этом каталоге вы найдете некоторые типовые конфигурационны файлы.
       Прежде, чем Вы сможете запустить mpd, Вы должны установить(создать) свои конфигурационные файлы. Эти файлы:
     
  • mpd.conf - Этот файл определяет одну или более конфигурацию. Когда mpd запущен, Вы задаете имя конфигурации через командную строку. Эта конфигурация (который просто состоит из ряда mpd команд) - загружается. Если никакая конфигурация не задавалась, то используется первая из списка перечисленных в mpd.conf.
       Каждая конфигурация определяет одну или более связок. Каждой связке дают название, назначают системный интерфейс и одну или более связей, которые составляют связку. Связка определена с командой new. Последующие команды в конфигурации конфигурируют различные уровни для этой связки.
       Вообще говоря, команды в mpd.conf лишь конфигурируют независимую от устройств информацию для связки.
  • mpd.links - Этот файл содержит определения различных связей, которые доступны в системе. Различные связи могут быть частью различных связок в различных конфигурациях. Поэтому, команды в этом файле конфигурируют информацию, которая является специфической для связи, и независимой от любой частной конфигурации. Например, определенный модем может требовать специальной строки инициализации, независимо от того в какой связке будет использоваться модем. Команды в этом файле выполняются, когда связка определена (то есть, в результате команды new). Таким образом информация, конфигурированная для связи, путём вхождений связей mpd.links может быть перезадана последующими командами в mpd.conf.
  • mpd.secret - Этот файл содержит пару, логин и пароль. В нем mpd находит всю аутентификационную информацию. Этот файл должен быть читаем и изменяем только пользователем root.
  • mpd.script - Этот файл содержит сценарии чата для модемных устройств.

    2.3 Сборка mpd
  •    Если вы выбираете самостоятельную сборку mpd, для собственной модификации, то процесс прост. Вначале, отредактируйте Makefile, чтоб определить (или отмены) различных типы устройств и опций, которые вы хотите использовать. Затем, введите make depend all для пересборки бинарного файла.
       Различные определения, для времени сборки, в Makefile, таковы:

    MPD_CONF_DIR

       Дефолтовая конфигурационная директория, где mpd ищет mpd.conf, mpd.links и т.п.

    PHYSTYPE_MODEMPHYSTYPE_TCPPHYSTYPE_UDPPHYSTYPE_NG_SOCKETPHYSTYPE_PPTP PHYSTYPE_L2TPPHYSTYPE_PPPOE

       Задайте их для включения поддержки соответствующего типа устройств.

    COMPRESSION_PRED1COMPRESSION_STACCOMPRESSION_DEFLATE

       Они включают поддержку соответтсвующих типов сжатия. Отметьте, что сжатие STAC и сжатие MPPC требуют проприетарных (не-опенсорсных) исходных файлов, которые не включены.

    ENCRYPTION_DES

       Это включает поддержку соответствующего типа шифрования.

    SYSLOG_FACILITY

       Обычно, Mpd ведет логи через syslog(3) исмользуя для этого средство LOG_DAEMON. Здесь вы можете здесь изменить это средство.
     
    3. Работа mpd
     
    3.1 Активизация mpd
      
       Mpd активизируется путём первой установки ваших конфигурационных файлов, и затем, работает.

    mpd [ опции ] [ конфигурация ]

       Если конфигурация задана в конандной строке, то mpd просматривает mpd.conf для соответствующей метки, и выполняет соответствующие команды (до первой пустой строки). Если конфигурация не задана, mpd ищет конфигурацию назначенную по умолчанию. Если и она не найдена, то никакие команды из mpd.conf не выполняются
       Mpd может быть запущен как в интерактивном режиме или в фоне как демон. В интерактивном режиме mpd принимает команды набранные в консоле.
       Mpd имеет следующие опции для коммандной строки. Каждая опция имеет короткую, символьную форму, так же как эквивалентную длинную форму.
     
  • -b --background - Запуск в фоне
  • -d --directory [директория] - Эта опция позволяет Вам определять различные каталоги для mpd, где хранятся конфигурационные файлы. Значения по умолчанию: /usr/local/etc/mpd.
  • -f --file [имя файла]Определяет начальный конфигурационный файл, кроме значения по умолчанию, mpd.conf.
  • -p --pidfile [имя файла] - Mpd до старта открывает и блокирует файл, и записывает в него ID процесса. Если иной mpd уже запущен, то второй не запустится. Значение по умолчанию: /var/run/mpd.pid.
  • -k --kill - C этой опцией, mpd перед запуском попытается убить любой существующий mpd процесс перед началом нового запуска. Предыдущий процесс, должен иметь записаный свой ID процесса в PID файл /var/run/mpd.pid (или другой файл, который вы определили в опции --pidfile).
  • -s --syslog-ident [индификатор] - Mpd обычно логгирается через syslog(3) с идентификатором mpd. Эта опция позволяет Вам изменять этот идентификатор.
  • -v --version - Выводит на дисплей номер версии mpd и выходит.
  • -h --help - Выводит на дисплей сообщение о использовании и выходит.

       Mpd отвечает на следующие сигналы, в то время как он запущен:
  • SIGTERM - Попытаться корректно завершить все активные подключения и выйти.
  • SIGUSR1 - Этот сигнал заставляет mpd инициализировать подключение с активным в настоящее время узлом. Если mpd уже пытается соединиться, этот сигнал не имеет никакого эффекта.
  • - SIGUSR2 - Этот сигнал имеет противоположный эффект, а именно, это заставляет mpd закрывать активную в настоящее время связь. Если связь находится уже в закрытом состоянии, этот сигнал не имеет никакого эффекта.

    3.2 Формат конфигурационного файла
  •    Mpd, при работе, использет четыре конфигурационных файла. Эти файлы описаны ниже.

    3.2.1 Основные свойства

       Для всех файлов конфигурации, истинны следующие вещи:

  • Любую строку, где первый символ представлен как символ (#), считают комментарием и игнорируют.
  • Строки могут быть цитированы при использовании двойных ковычек ("). Строка будет декодирована согласно нормальным правилам Языка C.

    3.2.2 mpd.conf и mpd.links
  •    Файлы mpd.conf и mpd.links имеют общую простую структуру. Ввод состоит из метки, сопровождаемой последовательностью mpd команд. Метка начинается в первом столбце и заканчивается символом двоеточия (:). Команды, обычно, выравниваются символом табуляции (это не обязательно требуется), и продолжаются построчно после ввода метки, на следующих строках. Метка заканчивается после первой пустой строчки.
       Вот - пример mpd.conf, котомый содержит единственную метку config1, которая определяет единственную связку myisp, содержа две связи modem1 и modem2:

    ## конфигурационный файл mpd.conf #config1: new myisp modem1 modem2 set auth authname "mylogin1" set iface enable on-demand set iface addrs 1.2.3.4 5.6.7.8 set iface route default set iface idle 300 link modem1 set modem var $Telephone "123-4567" link modem2 set modem var $Telephone "123-4567"

       Соответствующий пример mpd.links мог бы выглядеть так:

    ## конфигурационный файл mpd.links # # мой внутренний модем который представлен как COM3 modem1: set link type modem set modem device /dev/cuaa2 # мой внешний модем который представлен как COM2modem2: set link type modem set modem device /dev/cuaa1

       Замете, что номер телефона для соединения для каждой связи, установлен в mpd.conf вместо mpd.links, потому что он является определенным для метки config1. C другой стороны, устройство последовательного порта - свойства связи и не зависят от конфигурации; следовательно это установлено для каждой связи в mpd.links.

    3.2.3 mpd.secret

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

    # # конфигурационный файл mpd.secrets # # две учетные записи поставщика интернета mylogin1 password1mylogin2 "Xka \r\n"# три друга bob "akd\"ix23" 192.168.1.100 jerry "33dk88kz3" 192.168.1.101 phil "w*d9m&_4X" 192.168.1.128/25 # внешний пароль, доступный через программу gregory "!/usr/local/etc/mpd/get_passwd.sh"

       Здесь, bob и jerry должны вести переговоры с 192.168.1.100 и 192.168.1.101, соответственно, в то время как phil может использовать любой адрес от 192.168.1.128 до 192.168.1.255.
       Первый символ "!" показывает что пароль для пользователя gregory не хранится в файле mpd.secret. Вместо этого, названная программа выполняется с провами пользователя, указанным как дополнительный параметр (в этом случае это выглядило бы так, "/usr/local/etc/mpd/get_passwd.sh gregory"). Командная сторка так же может включать дополнительные аргументы. Эта программа должна напечатать пароль в виде обычного текста для заданного пользователя в одну одну линию на стандартный вывод, и после этого закончить свое выполнение. Mpd блокируется для выполнения этой операции, так что она должна быстро ответить и, затем, выйти. Если есть ошибка, то программа должна печатать пустую сторочку, или ничего.
       Как специальный случай, если имя пользователя в файле mpd.secret представлено в виде "*", то это страка должна быть последней, и имя пользователя может соответвовать любому имени пользователя. Это можно использовать для определения правильности введенного имени пользователя. Этот подстановочный знак, работает только для "!".
       Полная длина выполняемой комманды должна быть меньше 128 символов. Программа выполняется от имени того пользователя, от которого запущен mpd, который, обычно, root, таким образом основная проблема может быть с выполнением сценария как root, т.е., позаботтьтесь, чтобы скрипт нельзя было читать и изенять всем. Стандартный ввод и стандартный поток ошибок наследуются от родительского процесса mpd. Отметтьте, что любые дополнительные аргументы будут видны пользователям локальной машины запустившим ps(1). (прим. lissyara: на этот случай, вообще-то, есть переменные sysctl, отвечающие за видимость процессов другими пользователями - security.bsd.see_other_gids и security.bsd.see_other_uids)

    3.2.4 mpd.script

       Этот файл имеет формат, подобный mpd.conf и mpd.links, но он содержит команды сценария чата, вместо mpd команд. Каждая строка содержит единственную команду, и метки идентифицируют отправные точки и/или подпрограммы в сценарии. В отличие от mpd.conf и mpd.links, пустая строка не заканчивает обработку команд.
       Смотрите
    скриптинг чатадля полного его описания.

    3.3 Интерфейс командной строки mpd

       После соединения к порту telnet, mpd предосталяет интерфейс командной строки. Тут могут быть введены команды mpd, для конфигурирования различных слоёв, и проверки статуса заданных связок и связей. Команды доступные в интерфейсе командной строки - те же самые, что и доступны в конфигурационных файлах mpd.conf и mpd.links.
       В любой момент времени, тут всегда активные связки и активные связи в этой связке. Они показываются в подсказке командной строки. Вот - пример работающего mpd с конфигурацией в mpd.conf, которая задаёт связку myisp, содержащую две связи - modem1 и modem2:

    $ mpd config1 Multi-link PPP for FreeBSD, by Archie L. Cobbs. Based on iij-ppp, by Toshiharu OHNO. mpd: pid 1419, version 4.0 (root@fish.alkar.net 15:29 15-Dec-2006) [myisp] ppp node is "mpd771-myisp"[myisp] using interface ng0

       В это время, mpd прочитал и выполнил все команды ассоциированные с конфигурацией config1, которая задаёт связку myisp. Когда связка создана, mpd логгирует сообщение, показывающее имя ассоциированного netgraph ng_ppp(4) узла, и системный интерфейс (mpd автоматически выбирает один, если точно не сказано какой использовать). В этом случае, mpd771-myisp - узел netgraph, и ng0 - интерфейс.
       Для управления mpd во время работы, вы можете подключиться к консоли telnet ьзвЖ

    > telnet 0 5005 Trying 0.0.0.0... Connected to 0. Escape character is '^]'. Multi-link PPP for FreeBSD, by Archie L. Cobbs. Based on iij-ppp, by Toshiharu OHNO.Username: AdminPassword: mpd: pid 1419, version 4.0 (root@fish.alkar.net 15:29 15-Dec-2006) [modem1]

       Подсказка [modem1] показывает текущую активную связь (modem1). Любая специфичная для связки команда, введённая в этой точке, применяется к modem1.
       Для изменения активноq связи, или связки, используйте команду link или bundle:

    [modem1] link modem2[modem2]

       Теперь, любые введённые команды применяются к myisp или modem2, соответственно. Технически, это работает таким же способом как и в mpd.conf. Также, если изменение связи требует соответствующего изменения связки, mpd также делает и это.
       Доступные команды описаны в следующей части. Когда mpd работает, для получения дополнительной информации о специфической команде может использоваться help:

    [modem2] help showCommands available under "show": bundle : Bundle status ccp : CCP status ecp : ECP status eap : EAP status events : Current events ipcp : IPCP status ipv6cp : IPV6CP status iface : Interface status routes : IP routing table layers : Layers to open/close phys : Physical device status link : Link status auth : Auth status radius : RADIUS status lcp : LCP status mem : Memory map mp : Multi-link status console : Console status globals : Global settings types : Supported device types version : Version string[modem2]

       Mpd позволяет вам использовать лишь преффикс команды, когда продолжение команды не неоднозначно:

    [modem2] bDefined bundles: Bundle Links ------ ----- myisp modem2[DOWN][modem2] s s: ambiguous command

    translated by Abigor
    verifying by lissyara

    -----------------------------7d72901350180 Content-Disposition: form-data; name="sort" 50
    Категория: РРР | Добавил: oleg (15.12.2007)
    Просмотров: 2458 | Рейтинг: 0.0/0 |
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Форма входа

    Beastie

    Друзья сайта

    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    links

    Copyright MyCorp © 2024