22 Январь, 2010

X25 поверх Tcp (XOT) в Linux. Часть 1.

По мере устаревания сетей коммуникаций данных, которые сейчас становится все труднее поддерживать, технология x.25 поверх TCP предлагает решение в котором протокол канального уровня (LAPB) заменяется TCP. Представленная в этой статье информация помогает сделать это с помощью Linux.

Для использования размещенной здесь информации предполагается, что вы знакомы с компиляцией ядра Linux, идущее с любым дистрибутивом.

Описание

X.25 поверх TCP

X.25 поверх TCP инкапсулирует x.25 пакеты в IP-пакеты, которые являются частью TCP-соединения между двумя xot демонами на сервере. Для получения дополнительной информации см. X.25 поверх TCP, RFC 1613. X.25 это пакетный протокол, сетевой интерфейс которого нуждается в протоколе канального уровня на 2-ом уровне OSI стека, для обеспечения надежности данных, обнаружения и коррекции ошибок, управления потоком. С X.25 поверх TCP, протокол пакетов X.25 интерфейса использует протокол из TCP/IP стека в качестве канального уровня; протокол TCP способен обеспечить надежную доставку, обнаружение ошибок, коррекции и управления, которые ранее предоставлялись по LABP. Это подробно описывается в RFC 1613.

XOT и Linux

В текущей версии ядра, Linux поддерживает большую часть функций x.25, необходимых для работы x.25 поверх TCP. Любые недостающие функции, в случае необходимости, могут быть добавлены при одобрении со стороны сообщества ядра Linux. Об этом смотрите на домашней странице ядра Linux(http://www.kernel.org/). Для того чтобы использовать поддерживаемую X.25 функциональность, соответствующие модули ядра необходимо будет собрать и внедрить в ядро. К ним относятся следующие

xot компоненты

На рисуноке ниже показаны компоненты, которые составляют xotd для Linux. Реализованные в качестве модулей для ядра.

xottable.jpg

X.25 модули ядра

x25.ko

Модули были построены из исходников Linux ядра, в том числе X.25 модуль Kernel build configuration. Поскольку существует большое количество сайтов, на которых описано как это сделать, подробные шаги здесь не рассматриваются. Загрузите последние стабильные исходники ядра с www.kernel.org и соберите свое ядро с модулем X.25. При сборки ядра x25.ko модуль должен находится в /usr/src/linux/net/x25

x25tap.ko

Этот модуль должен быть собран вне ядра Linux. Это необходимо потому, что Ethertap на котором x25tap основано, больше не поддерживается сообществом ядра Linux. Версия x25tap.c работает с последними ядрами Linux (2.6.17 на момент написания статьи). Он может быть собран вне ядра Linux. См. страницу X25_source(http://www.shaunpereira.com/xotsource.html) для просмотра исходников.

Чтобы вставить модуль в ядро используйте:

modprobe x25

Проверьте через dmesg или в /var/log/messages, что нет никаких ошибок. Из той же папки, где x25tap модуль был собран запустите следующую команду.

insmod x25tap.ko

Для ядра SuSE выводятся следующие сообщения:

“x25tap0: Doing x25tap_open()…”
“x25tap_start_xmit”
“Disconnect request” “x25tap0: Shutting down”
“ifup: No configuration found for x25tap0”

Теперь введите

ifconfig x25tap0 up

Это поднимет x25tap0 интерфейс и ядро выведет следующее сообщение:

“x25tap0: Doing x25tap open() …”

Следующим шагом настраиваем маршрутизацию для x25 tap интерфейса.

route add –x25 0/0 x25tap0

X25 теперь готова к работе с точки зрения ядра. Используйте lsmod, чтобы проверить что модули загружены.

Несколько x25taps

Есть возможность создавать более одного x25tap интерфейса с помощью следующей команды

insmod x25tap.ko max_taps=2

Это приведет к созданию двух интерфейсов в ядре, x25tap0 и x25tap1. Для каждого интерфейса может быть запущена команда Ifconfig

Для настройки маршрутизации для каждого из этих интерфейсов используйте команду route. Синтаксис команды route для X.25 может быть найден с помощью

route -h -A x25

Эта команда route конфигурирует ядро устанавливая маршруты для всех исходящих x25 пакетов в ядре. Рассмотрим для примера два фиктивных X.25 адреса 0505123458888 и 0505123459999 отправлящих пакеты от хоста на интерфейсах x25tap0 и x25tap1 соответственно. Вот необходимые команды:

route add –x25 0505123458888 x25tap0

route add –x25 0505123459999 x25tap1

Для просмотра маршрутов созданых в ядре для x25 используйте

cat /proc/net/x25/route

Продолжение в следующем посте…

www.000webhost.com