12. Конфигурирование Linux при использовании пакетной связи.

 

OS Linux - это мощная операционная система, которая позволяет большую гибкость в  конфигурировании. Огромная ценность конфигурирования состоит в возможности, настроить систему так, как это Вам необходимо. В процессе конфигурирования протоколов AX.25, NetRom или Rose, на вашей Linux системе, возникнет ряд вопросов, которые Вы должны уяснить для себя. Наиболее важный из них : " Как лучше настроить интерфейс приглашения, который увидят пользователи при соединении с вашей пакетной программой? " Существует множество качественных и небольших программ пакетной связи, разработанных программистами, которые могут предложить определённый сервис пользователям при соединении с вашей системой. Простой пример - PMS программа, включенная в AX25 утилиты, или более сложный пример - программа узла, также включенная в AX25 утилиты. При желании, вы можете оформить интерфейс приглашения так, чтобы пользователь при соединении с вашей системой мог получить максимальную информацию о возможностях сервиса в используемой вами пакетной программе. Для расширения сервиса, Вы даже можете написать вашу собственное приложение, типа встроенной базы данных или игру. Однако, независимо от Вашего выбора, необходимо сконфигурировать программное обеспечение AX.25 так, чтобы система могла чётко определить, какую операцию её необходимо выполнить при  запросе от пользователя.

 

  Ax25d программа подобна 'inetd' программе. Она обычно обрабатывает запросы TCP/ip подключений на UNIX системах. Программа сканирует поступающие подключения, и когда обнаруживает запрос, начинает  читать файлы конфигурации, чтобы определить какую программу активизировать при соединении с конкретным подключением. Начиная с этого момента, я опишу, как правильно сконфигурировать систему

для приема запросов AX.25, NetRom и подключения Rose .

 

  12.1. Создание /etc/ax25/ax25d.conf файла.

 

 Ax25d.conf - это конфигурационный файл для ax25d - AX.25 daemon, который обрабатывает запросы

 AX.25, NetRom и подключения Rose. На первый взгляд содержимое этого файла покажется Вам сложным,

но вскоре Вы освоитесь. При работе с этим файлом будьте внимательны, остерегайтесь подвохов.

 

  Общий формат ax25d.conf файла следующий:

 

 

 #  Это - комментарий и игнорируется программой ax25d.

 

             

       [port_name] || <port_name> || {port_name}

       <peer1>    window T1 T2 T3 idle N2 <mode> <uid> <cmd> <cmd-name> <arguments>

       <peer2>    window T1 T2 T3 idle N2 <mode> <uid> <cmd> <cmd-name> <arguments>

       parameters window T1 T2 T3 idle N2 <mode>

       <peer3>    window T1 T2 T3 idle N2 <mode> <uid> <cmd> <cmd-name> <arguments>

          ...

       default    window T1 T2 T3 idle N2 <mode> <uid> <cmd> <cmd-name> <arguments>

 

 

  Где:

 

   Символ  *  - в начале линии отмечает комментарий и полностью игнорируется ax25d программой.

 

    <Port_name>  - имя AX.25, NetRom или порта Rose как определено в /etc/ax25/axports, /etc/ax25/nrports и /etc/ax25/rsports файлах.

` [ ] ' скобки с заключенным в них именем порта  - порт AX.25, ` < > ' скобки, если это - NetRom порт, или ` { } ' скобки, если это - порт Rose. Есть дополнительная форма для этого поля. Это - префикс использования имени порта с `callsign/ssid via', чтобы указать, что Вы желаете принять запросы от callsign/ssid через этот интерфейс. Пример должен более ясно проиллюстрировать это:

 

 <peer>  - callsign равного по положению узла, к которому эта специфическая конфигурация обращается. Если Вы не определяете здесь SSID, тогда будет справедлив любой SSID.

 

     Window - параметр Window AX.25 (K) или параметр MAXFRAME для этой конфигурации.

 

     T1 - повторная передача фрейма (T1) таймер в половине вторых модулей.

 

     T2 - время, ожидания программным обеспечением AX.25  следующего фрейма перед подготовкой ответа в 1  сек модуле.

 

     T3 - количество времени бездеятельности прежде, чем программное обеспечение AX.25 разъединит сеанс в 1 сек модуле.

 

     Idle - неактивное значение таймера в секундах.

 

     N2 - число последовательных повторных передач, которые произойдут прежде, чем подключение будет закрыто.

 

     <mode> обеспечивает механизм для определения некоторых типов общих разрешений. Режимы допускаются или заблокированы, выбирая комбинацию символов, для  каждого представления к разрешению. Символы могут быть в или верхним  или нижнем регистре и должны быть в отдельном блоке без пробелов.

 

u/U

UTMP - в настоящее время неподдерживаемый.

 

 v/V

 Validate call - в настоящее время неподдерживаемый.

 

 q/Q

 Quiet - подключения не регистрируются.

 

 n/N - проверка состояния соседнего NetRom - в настоящее время неподдерживаемый.

 

 d/D - отключение ретранслятора,  подключения должны быть непосредственными.

 

  l/L - Блокировка, не позволяет подключение.

 

  Маркер */0 - размещения маркера запрещает выбор режимов.

 

  <uid> - идентификатор пользователя для конкретной программы, которая должна выполняться при 

             соединении с узлом.

 

  <cmd>   - полное имя пути команды, которая будет выполнена, без указанных параметров.

 

  <cmd - name>  - текст, который должен появиться в ps как выполнение имени команды (обычно тот же

      самый как < cmd >  только без информации пути каталога).

 

  <arguments > - параметр командной строки, который нужно пропустить  <:cmd>, когда это выполнено. Вы

       передаете полезную информацию в эти параметры при помощи следующих лексем (маркеров):

 

   %d - Имя порта для соединения.

 

   %U AX.25 callsign соединенной стороны без SSID, в верхнем регистре.

 

   %u AX.25 callsign соединенной стороны без SSID, в нижнем регистре.

 

   %S AX.25 callsign соединенной стороны с SSID, в верхнем регистре.

 

   %s AX.25 callsign соединенной стороны с SSID, в нижнем регистре.

 

   %P AX.25 callsign отдаленного узла,  подключение вошло извне в SSID, в верхнем регистре.

 

   %p AX.25 callsign отдаленного узла,  подключение вошло извне в SSID, в нижнем регистре.

 

   %R AX.25 callsign отдаленного узла, от которого подключение вошло с SSID, в верхнем регистре.

 

   %r AX.25 callsign отдаленного узла, от которого подключение вошло с SSID, в нижнем регистре.

 

  Вам необходим один раздел в вышеупомянутом формате для каждого AX.25, NetRom, Rose интерфейса,

на котором Вы хотите принять запрос AX.25, NetRom или подключения Rose.

 

  Есть две специальные строки в параграфе, один запуск с параметром ‘parameters' и другие запуски с параметром `default ' . Эти строки обслуживают специальные функции.

 

  ' default' - содержание строки должно быть конкретно, эти действия линии как арретир -  любое поступающее подключение на интерфейсе <interface_call>, который не имеет определенного направления, будет соответствовать 'заданному по умолчанию' направлению. Если Вы не имеете 'заданного по умолчанию' направления, то любые подключения, не соответствующие любому определенному направлению будут разъединены немедленно без уведомления.

 

`parameters' - строка параметров, наиболее сложна в синтаксисе, и здесь - ловушки, о которых я упомянул раньше. В любой из областей, для любого определения, любого партнёра, Вы можете использовать символ

 ` * ', что означает - `использовать значение по умолчанию'. `parameters' -  далее, набор значений по умолчанию. Само программное обеспечение ядра имеет некоторые значения по умолчанию, которые будут использоваться, если Вы не определяете  использование других входных параметров. Ловушка - в том, что эти значения  справедливы только в тех параметров, которые ниже `parameters' (строки параметров), но не для тех, что выше.  Вы можете иметь больше чем один  набор параметров в определении интерфейса, и таким образом, сможете создавать группы заданных по умолчанию конфигураций. Важно обратить внимание, что набор параметров не позволяет Вам устанавливать 'uid' или 'command ' поля.

 

  12.2. Пример ax25d.conf файла.

 

  Хорошо, иллюстративный пример:

 

 

  # ax25d.conf for VK2KTJ - 02/03/97

  # This configuration uses the AX.25 port defined earlier.

 

  # <peer> Win T1  T2  T3  idl N2 <mode> <uid> <exec> <argv[0]>[<args....>]

 

  [VK2KTJ-0 via radio]

  parameters 1    10  *  *  *   *   *

  VK2XLZ     *     *  *  *  *   *   *    root  /usr/sbin/axspawn axspawn %u +

  VK2DAY     *     *  *  *  *   *   *    root  /usr/sbin/axspawn axspawn %u +

  NOCALL     *     *  *  *  *   *   L

  default    1    10  5 100 180 5   *    root  /usr/sbin/pms pms -a -o vk2ktj

 

  [VK2KTJ-1 via radio]

  default    *     *    *   *   *   0    root /usr/sbin/node node

 

  <netrom>

  parameters 1    10  *  *  *   *   *

  NOCALL     *     *  *  *  *   *   L

  default    *     *  *  *  *   *   0        root /usr/sbin/node node

 

  {VK2KTJ-0 via rose}

  parameters 1    10  *  *  *   *   *

  VK2XLZ     *     *  *  *  *   *   *    root  /usr/sbin/axspawn axspawn %u +

  VK2DAY     *     *  *  *  *   *   *    root  /usr/sbin/axspawn axspawn %u +

  NOCALL     *     *  *  *  *   *   L

  default    1    10  5 100 180 5   *    root  /usr/sbin/pms pms -a -o vk2ktj

 

  {VK2KTJ-1 via rose}

  default    *     *    *   *   *   0    root /usr/sbin/node node radio

 

  Этот пример говорит, что для любого позывного, который пытается соединяться с callsign ' VK2KTJ-0 '  на

 порте AX.25 с именем 'radio', будут применены следующие условия:

 

  Любой позывной 'callsign'', который вставлен в строку 'NOCALL' будет блокирован, обращайте внимание на

  использование режима 'L'.

 

  Строка параметров заменяет два параметра от значений ядра по умолчанию (Окно и Т1) и выполнит для них

   программу /usr/sbin/axspawn.

 

  Любые копии /usr/sbin/axspawn выполняются, этот путь будет появляться как 'axspawn' в листинге ps, для удобства. Следующие две строки обеспечивают определения для двух станций, кто получат эти разрешения.

 

  Последняя строка в параграфе  - определение `catch all', которое действительно для каждого (включая VK2XLZ и VK2DAY, но при использовании любой SSID, кроме -1). Это определение устанавливает все скрытые параметры и заставит PMS программу выполняться с параметром командной строки, указывающим, что это выполняется для подключения AX.25, и что владелец callsign является VK2KTJ. Если нужна дополнительная информация, смотрите раздел ниже " Выбор Конфигурации PMS " .

 

  Следующая конфигурация принимает запросы к VK2KTJ-1 через радио порт, она запускает программу узла для каждого, кто соединяется с ним.

 

  Следующая конфигурация - NetRom, обратите внимание на использование фигурных скобок вместо квадратных, они обозначают NetRom конфигурацию. Эта конфигурация более проста, она просто сообщает, что для каждого соединившегося с вашим NetRom портом, с именем 'netrom' программа узла будет доступна, при условии, если он не имеет callsign 'NOCALL'. В противном случае доступ будет блокирован.

 

Последние две конфигурации - для запроса на подключение Rose. Первый для пользователей, кто поместил запрос к 'VK2KTJ-0' и второй для ` VK2KTJ-1 в вашем адресе узла Rose. Эта работает по тому же самому пути. Не используйте вьющихся фигурных скобок, чтобы отличить порт, как порт Rose.

 

  Этот примеры - вымышлены, но я думаю, что они иллюстрирует наиболее важные особенности синтаксиса файла конфигурации. Файл конфигурации подробно описан в ax25d.conf странице WWW. Более детальный пример включен в ax25-utils пакет, который также мог быть для Вас полезен.

 

  12.3. Старт ax25d

 

  Когда Вы имеете два готовых файла конфигурации, настроенные под ваши запросы, запускайте 'ax25d' с командой:

 

       */Usr/sbin/ax25d

 

  Теперь пользователи  могут  подключаться к вашей AX.25 Linux системе. Не забудьте поместить команду ax25d в ваши 'rc' файлы, чтобы эта команда выполнялась автоматически после перезагрузки Linux системы.