Описание файла конфигурации IPLN.CFG

Файл ipln.cfg используется для определения конфигурации драйверов под UNIX  и для передачи драйверам дополнительных параметров под Windows. Для управления конфигурационным файлом с интерфейсом удобным для пользователя поставляется программа iplnmng. Здесь же описаны параметры используемые в этом файле, если вы захотите изменить их вручную  .

О MAC-адресах

Для адаптеров IPLN MAC-адреса задаются программно. Для их определения используется нотация как для TCP/IP адресов. Окончательный адрес получается дополнением двух нулей в старших байтах. Например, если вы зададите адрес 192.168.200.1, то получите MAC-адрес платы 00-00-c0-a0-c8-01. В общем случае MAC-адрес не равен адресу протокола TCP/IP, но вы можете сделать их одинаковыми, для облегчения контроля и для использования режима, когда драйвер будет требовать совпадение адреса TCP/IP и MAC-адреса.

Во всех драйверах есть параметр (node=n.n.n.n), который задает MAC-адрес платы в этом компьютере, и параметр (rem=n.n.n.n) задающий MAC-адрес платы с другой стороны линии. Если параметр rem равен 255.255.255.255, входящие пакеты не контролируются на совпадения MAC-адреса источника, если любой другой, то требуется полное совпадения MAC-адресов. В мультипортовой плате этот параметр служит для определения канала, в который нужно посылать пакет и не может быть равен 255.255.255.255

С версии 3.03 изменена обработка параметра rem. Если поле n в нем равно 255, то эта часть адреса рассматривается как диапазон от 0  до 255. Т.е. если задать параметр rem=0.0.0.255, то этому условию будут удовлетворять адреса от 0.0.0.0 до 0.0.0.255. Это свойство используется для организации связи мультипортовых плат друг с другом. В том числе допускается задание rem=255.255.255.255 для мультипортовых плат для одного из каналов. В этом случае все пакеты, не подошедшие для других каналов и не для этой машины будут направляться в этот канал.  При поиске каналов для передачи, поиск происходит следующим образом: сначала идут каналы которые требуют полного совпадения адреса, затем каналы с одним диапазоном в адресе, затем с двумя диапазонами и т.д. Если включен режим "IP-адрес равен MAC-адрес", то это правило распространяется и на контроль IP-адреса для этого канала.

Пример: 

Если есть две машины, в каждой по мультипортовой плате. Первая с MAC-адресом 192.168.0.1 и каналами 192.168.0.2-192.168.0.6, вторая с MAC-адресом 192.168.0.101 и каналами 192.168.0.102-192.168.0.106, то их можно связать по одному из каналов задав ему параметр rem=192.168.0.255. Если при этом включена ретрансляция между каналами, то каналы обеих машин будут видеть друг друга, причем адрес сети у них будет одинаковый.

ЗАМЕЧАНИЕ 1:

Если вы собираетесь использовать пару однопортовых адаптеров в режиме моста, вы обязательно должны отменить контроль MAC-адресов. Иначе мост не будет пропускать пакеты из других сегментов сети.

ЗАМЕЧАНИЕ 2:

Машина подключенная к мультипортовой плате не будет работать в режиме моста, так как драйвер мультипортовой платы всегда выполняет контроль MAC-адресов.

Определение терминов

Определим некоторые термины:

Общая информация

Файл ipln.cfg служит для передачи параметров для драйвера и определения соотношения между отдельными физическими устройствами (адаптерами, группами и портами) и программными устройствами (драйвера и логические каналы).

Параметры для драйвера с номером устройства devnum хранятся в секциях с именами вида [ipln<devnum>.<имя секции>]. Например для devnum=0 имена секций будут типа ipln0.<имя секции>.

Секции бывают 4-х типов:

Правила для TCP/IP

Здесь описана нотация, применяемая в полях, которые используются для контроля TCP/IP адресов. Такие поля представляют из себя список, состоящий из нескольких правил (до десяти), записанных через запятую, без пробелов. Правила проверяются в порядке их нахождения в списке, при выполнении условия заданного в правиле, дальнейшая проверка прекращается. Единичное правило может быть: Если перед правилом стоит '-', то означает что заданный диапазон адресов нужно отвергнуть. Пример:

192.168.0.1-192.168.0.5,192.168.0.11,192.168.1.0/24,192.168.2.0/255.255.255.0,-255.255.255.255

Этому правилу удовлетворяют TCP/IP адреса, с 192.168.0.1 по 192.168.0.5, адрес 192.168.0.11, подсеть 192.168.1.0/24 (аналог 192.168.1.0 маска 255.255.255.0) и подсеть 192.168.2.0/255.255.255.0. Остальные адреса должны быть отвергнуты.

Описание параметров секции global

Имя Формат Умолч.Мин.Макс.Описание
devcntn 1 18Число устройств на машине
ostypen 002 Тип операционной системы, для которой готовится файл (0-Windows, 1-Linux, 2-FreeBSD)
userstringroot-- Имя пользователя для программы удаленного управления.
passwordhex string--- Закодированный пароль на подключение. Пароль создается программой iplnmng. При первом подключении удалите эту строку, если она заполнена.
rpasswrdhex string--- Закодированный пароль на подключение в режиме "только просмотр". Если не задан, режим отключен. 
bindipn.n.n.n--- Адрес TCP/IP, задает интерфейс, к которому линкуется программа управления драйвером. Если не задан, то ко всем.
bindportnnnn 5001-- Задает порт (сокет) TCP/IP, к которому линкуется программа управления.
logleveln 209Задает уровень вывода сообщений в журнал событий.
logsetupn 101Разрешает/запрещает ведение журнала настройки для всех устройств
maxflogn001000 Ограничивает размер журнала ipln.log в килобайтах. Если 0-нет ограничения. При достижении заданного размера, журнал переименовывается. Хранится текущий и предыдущий журнал.
maxsetupn00120 Ограничивает число процессов настройки на сервере. Если 0 - нет ограничений. Под ограничение попадают процессы повышения и коррекции скорости. Если установка скорости с нуля, всегда запускается. Проверка работает только для клиентских программ версии 3.09-3 и выше.
mountn001 (unix) Если задать параметр 1, то до и после сохранения конфигурационного файла будет вызываться скрипт /etc/ipln_mnt, которым можно смонтировать файловую систему в нужный режим
trfsaven 0060Только для Windows. Задает время в минутах, через которое данные о трафике сохраняются в файле (лучше задавать значения, равные делителям часа: 5, 10, 20, 30, 60). Потом с помощью ipln.exe можно получить отчет о трафике. Если 0 - учет трафика не ведется.
iplistn.n.n.n--- Задает правила для TCP/IP определяющие, с каких адресов разрешается подключение к программе управления.  Если параметр отсутствует, то адрес источника не контролируется.
internaln.n.n.n--- Задает правила для TCP/IP для выделения внутреннего трафика. Пакеты удовлетворяющие этим правилам будут относится к внутреннему трафику.
unblktmn12124 Задает таймаут для сброса бита блокировки рабочей частоты в часах.

Параметры user, password, bindip, bindport, iplist используются программой удаленного управления для Unix. В Windows они не используются.

Описание параметров секции common

Имя Формат Умолч.Мин.Макс.Описание
gflagh0x000x000xffffОпции (битовый флаг), описан ниже
noden.n.n.n--- Задает MAC-адрес драйвера. Он действует на все адаптеры, которые драйвер обслуживает (обязательный параметр)
remn.n.n.x 0-- Задает базу, по которой вычисляются  MAC-адреса удаленных компьютеров для отдельных логических каналов. Если пакет будет приходить от другого адреса, то он будет отбрасываться. Для канала  с удаленный адрес будет равен n.n.n.<x+c>. Если равен 0, то берется 255.255.255.255 для однопортового и node+1 для мультипортового. Если число каналов chnmax больше 1, то  параметр должен быть не равен 255.255.255.255 (принимать все). 
grpmaskh 0x01 0x000x0fЗадает маску, определяющую какие группы адаптеров активны. n-й бит соответствует группе с номером n.
Параметр может быть равен 0, при создания виртуальных устройств.
chnmaxn 00120 Задает число логических каналов, поддерживаемых драйвером, если 0 - то берется 1 для однопортового или 6 для мультипортового адаптеров.
io0xhhhh-0x1000xfff0 База портов ввода/вывода по умолчанию
intn-215 Номер прерывания по умолчанию
maxvdat
maxvdatt
maxvdatr
n4000100400 Параметры позволяют ограничить физическую скорость соединения по приему (maxvdatr) и передаче (maxvdatt). Если ограничение задано с обеих концов линии, будет выбрано минимальное значение.
maxretryn151100 Максимальное число пере повторов передачи пакета, в случае ошибки при передаче
mbigtmn 30200Управление автоматическим отключением каналов
mkampln 307Задает ограничение на коэффициент усиления приемника.
gtmn33255 Максимальное время передачи пакета (секунд)
ltmn 4336 Время попытки передачи пакета (в квантах по 55 миллисекунд)
waitmn001 Режим поведения в случае разрыва связи, 0 - остаться в текущем состоянии, 1- перейти в режим ожидания.  См. также Управление контролем соединения
bfreqn005 Задает номер стандартной частоты для связи 
btampln10010100 Задает коэффициент амплитуды  сигнала
dtimen3015120 Время отсутствия связи (секунд) после которого возникает ситуация "Нет связи" см. Управление контролем соединения
logn011Вести или нет журнал настройки, действует только, если журнал разрешен параметром logsetup в секции global
idmh0xffffffff0x000xffffffff Маска выбора группы 
maxwqn300503000 Параметр ограничивает размер очередей на прием и передачу (на передачу действует всегда, на прием только при ограничении  пропускной способности канала).  В случае переполнения очереди пакет отбрасывается и увеличивается счетчик отвергнутых пакетов.
showcfgn001Показать конфигурацию при загрузке 
qosmaxn02560Задает число заданных правил QoS 
qosru$$$---- Задает правила QoS общие для всех каналов. $$$ меняется от 0 до qosmax
ipaddrip--- База для вычисления ip-адреса клиента
ipmaskip--- ip-маска клиента
ipgateip--- Адрес шлюза
ipdns1ip--- Адрес DNS-сервера 1
ipdns2ip--- Адрес DNS-сервера 2

Описание параметров секции grp

Имя Формат Умолч.Мин.Макс.Описание
bmoden - 16Задает тип адаптеров в этой группе:
0 - виртуальный адаптер
2 - однопортовый адаптер ISA
4 - мультипортовый адаптер ISA
6 - однопортовый адаптер PCI
8 - мультипортовый адаптер PCI
10 - однопортовый адаптер USB
loadlinen 002 Линия загрузки адаптеров этой группы (нужен только для ISA). Параметр должен соответствовать положению джампера JLL на платах. 
io0xhhhhcommon0x1000xfff0 База портов ввода/вывода по умолчанию
intncommon215 Номер прерывания (нужен только для ISA)
busn0xff032Для PCI адаптеров задает номер шины PCI, в которой стоит адаптер. 0xff - если параметр не задан.
sloth0xff--Для PCI адаптеров задает слот в котором стоит адаптер. 0xff - если параметр не задан. Используется при установке более двух PCI адаптеров.
adpcntn118Число адаптеров в группе (только для мультипортовых ISA)

Описание параметров секции ch

Имя Формат Умолч.Мин.Макс.Описание
gflagh0x000x000xffffОпции (битовый флаг), переопределяет соответствующее поле из секции common.
grpnumn -1 -13Номер группы, -1 канал не подсоединен
adpnumn 118 Номер адаптера в группе (для мультипортовых ISA)
adpchnn116 Номер порта на адаптере (для мультипортовых)
remn.n.n.ncommon-- MAC-адрес удаленного компьютера, если не задан берется из секции common. Значение 255 рассматривается как диапазон (0-255).
ozu
ozur
h---Параметры  платы о скорости соединения 
stoph00x000x7Флаги остановки канала:
0x01 - канал остановлен (заблокирована передача информационных кадров, передаются только служебные)
0x02 - оборудование остановлено (обслуживание канала полностью прекращено, все запрещено)
0x04 - разрешена передача только внутреннего трафика 
chnctrlh---Внутренние данные для динамической  подстройки скорости
dynflgh0x000x000xffФлажки управления динамической настройкой:
0x01 - запретить проверку повышения скорости
0x02 - отменить контроль качества линии (контролируется процент ошибок CRC, по отношению к переданным кадрам)
0x04 - отменить контроль автоответов
0x08 - переключение с базовой частоту на рабочую заблокировано
0x10 - запретить корректировать скорость
0x20 - запретить авто переключение в режим ожидание и обратно
dynitmn2030Время не активности канала, после которого разрешен запуск программы проверки возможности повышения скорости (минут)
dynlhn0023 Эти параметры задают время, когда разрешен запуск программы повышения скорости (часы с dynlh по dynhh)
dynhhn24024
dynblln25550Процент ошибок, приводящий к возникновению ситуации "плохая связь", приводит к вызову программы коррекции скорости.
dynprdn0010Время, между попытками повысить скорость (в днях). 0 - выбирать автоматически
bandwdthn0630Задать пропускную способность канала, в единицах кратных 64 Кбит. Если 0 - пропускная способность ограничена  физической скоростью. Если величина задана, драйвер эмулирует дуплексный канал с производительностью n*64 Кбит
iplistn.n.n.n--- Задает правила для TCP/IP, определяющие адреса TCP/IP, с которых допускается передача через этот канал. Подробнее смотрите пункт "Ограничение доступа для канала"
virtn010Если 1 - то это виртуальный канал
virtup<n:>n---Задает ссылку на виртуальный канал, которому принадлежит этот канал. Первая цифра задает номер устройства, вторая номер канала. Если ссылка внутри устройства, номер устройства может быть опущен.
virttx<n:>n
{,<n:>n ...}
---Задает список каналов используемых для передачи, данным виртуальным каналом. До 6-ти каналов.
virtrx<n:>n
{,<n:>n ...}
---Задает дополнительный список каналов используемых для приема, данным виртуальным каналом. До 6-ти каналов.
smkamplh0x000x000xffМаска позволяет запретить использование некоторых коэффициентов усиления.
passwordhex string--- Закодированный пароль на подключение. Пароль создается программой iplnmng.  
prtyn02000Задает приоритет канала.  
idmh0x10x000xffffffff Маска выбора группы 
qosmaxn02560Задает число заданных правил QoS  для канала
qosru$$$---- Задает правила QoS для этого канала. Эти правила выполняются до общих.
mcmaxn02560Задает максимальное число дополнительных MAC-адресов для канала
mcflagh00xff0Опции для  режима расширенного контроля MAC-адресов :
0x01 - режим обучения без сохранения
0x02 - режим обучения с сохранением 
mcttln00xffff10Время жизни временного MAC-адреса (в минутах)
mcmac$$$----Задает дополнительные MAC-адреса для канала в виде hh:hh:hh:hh:hh:hh. Вместо $$$ номер от 000 до значения mcmax-1 (дополненный нулями до 3-х цифр)
mcipl$$$---- Задает правила для TCP/IP, определяющие адреса TCP/IP, с которых допускается передача для MAC-адреса $$$
 

Параметры grpnum, adpnum и adpchn определяют порт, которому соответствует данный канал. Если grpnum задать -1, то это будет означать, что логический канал не соединен с реальным портом. Это используется для резервирования каналов. Параметры ozu, ozur, chnctrl генерируются программно при сохранении параметров. При первом запуске отсутствуют. Не меняйте их значение. В этой секции можно также задать параметры maxvdat, maxvdatt, maxvdatr, gtm, ltm, bfreq, btampl, dtime, maxwq, mkampl, mbigtm, ipaddr, ipmask, ipgate, ipdns1, ipdns2. В этом случае они переопределят для этого канала значения по умолчанию, заданные в секции common. Параметр rem также можно использовать для переопределения назначения удаленных MAC-адресов по умолчанию.

Описание поля gflag

Поле gflag - битовое шестнадцатеричное поле. Каждый бит задает какой-нибудь режим. Если нужно задать несколько режимов, то нужно выбрать значения битов задающие эти режимы, сложить и записать результат. 

Пример: в ipln.cfg для Windows по умолчанию gflag=0x118, что означает: главный компьютер (0x10) динамическая подстройка (0x08), разрешить объединение кадров (0x100). Аналогично можно добавлять и убирать нужные вам режимы.

Ограничение доступа для канала

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

Для каждого канала имеется возможность вести контроль входящих пакетов на правильность MAC-адреса источника и на список допустимых TCP/IP адресов источника. Контроль с помощью правил для TCP/IP не зависит от контроля MAC-адреса.

Для контроля MAC-адреса используется параметр rem, задаваемый либо в секции common, либо в секции канала. Для мультипортовых плат этот параметр является обязательным, для однопортовых же плат, по умолчанию контроль отменен. Если контроль задан, то через канал пропускаются только пакеты, MAC-адрес которых, совпадает с параметром rem (или попадает в диапазон номеров определяемый этим параметром). В случае несовпадения пакет откидывается и увеличивается счетчик "Пакетов отвергнуто".

Контроль адресов TCP/IP возможен только для протокола TCP/IP версии 4. При его включении, пакеты любых других протоколов отвергаются. Контроль может быть включен двумя вариантами: включением опции "режим IP-адрес равен MAC-адрес" (бит 0x04 в поле gflag) или заданием правила для TCP/IP. Возможен совмещенный вариант.

При включении опции "режим IP-адрес равен MAC-адрес" во всех входящих пакетах выполняется контроль, что TCP/IP адрес источника, совпадает с параметром rem. Если адрес не совпадает, или протокол не распознан, пакет отвергается.

Правила для TCP/IP задаются в поле iplist. Если список правил задан, то все входящие пакеты проверяются на удовлетворение этим правилам. Если пакет удовлетворил какому либо правилу в списке, то выполняются действия в соответствие с этим правилом (если правило с '-' - пакет отвергается, иначе принимается), если не найдено - то пакет передается на дальнейшую обработку. 

Дальнейшая обработка - это контроль в соответствии с опцией "режим IP-адрес равен MAC-адрес". Если опция не включена, пакет принимается. Учитывайте это при определении правил. Если вы хотите заблокировать прием со всех остальных адресов, добавьте в конце списка -255.255.255.255.

Основная область применения правил:

1) если вы не хотите использовать "режим IP-адрес равен MAC-адрес", но хотите запретить пользователю менять адрес TCP/IP. В этом случае контроль MAC-адреса и адреса TCP/IP напрямую несвязан. Для контроля  достаточно задать правило:

 iplist=nnn.nnn.nnn.nnn,-255.255.255.255

где nnn.nnn.nnn.nnn адрес TCP/IP который назначен абоненту.

2) если у вас включена опция "режим IP-адрес равен MAC-адрес", а к удаленной машине подключена еще одна или несколько подсетей с реальными адресами TCP/IP. В этом случае нужно эти подсети описать в этом параметре, или запросы из этих сетей будут отвергнуты.

Ограничение доступа по паролю

Есть возможность ограничить доступ заданием пароля. Для этого в поле gflag - нужно задать бит "Требуется пароль на вход" и задать пароль. Если пароль не задан -  авторизация не работает. Если пароль задан, а бит "Требуется пароль на вход" не стоит - он так же игнорируется.

Если авторизация требуется - то после установки физической связи пользователь должен ввести пароль, чтобы началась передача пакетов с данными, иначе они будут игнорироваться.

Если связь пропала и не будет восстановлена в течении 3-х минут - авторизация потребуется заново. Если у пользователя запущена программа ipln, она сделает это автоматом.

При включенной авторизации - пользователь может выдать команду "Отключится" - для предотвращения доступа в Интернет с его машины.

Если включить опцию "Пользователь может менять пароль" - то соответствующая возможность появится в меню программы ipln.exe. Если при этом ввести новый пароль пустым - это равносильно отключению режима доступа по паролю. Пароль хранится на сервере в закодированном виде. Если включена опция "Пользователь может менять пароль", необходимо чтобы на сервере была запущена программа iplncfg в режиме сервера, или новый пароль не будет сохранен.

Разбиение каналов на группы

Имеется возможность управлять взаимодействием каналов друг с другом и с драйвером. Для этого служит параметр idm. Он представляет из себя битовую маску. С ее помощью можно определить 32 группы. n-й бит определяет группу каналов номер n. Номер группы не связан с номером канала.

Параметр idm в секции common, определяет от каких групп принимает пакеты драйвер (по умолчанию 0xffffffff, т.е. от всех), а аналогичный параметр в секции канала определяет какой группе принадлежит канал (по умолчанию 0x1). Связь между каналами возможна, если ретрансляция между каналами разрешена и параметры idm пересекаются хотя бы по одному биту. Данные от канала принимаются драйвером, если пересекаются параметры idm из секции common и секции этого канала. Если поставить idm равным 0 - данные от этого канала игнорируются.  Если поставить idm равным в секции common, то драйвер будет заниматься только ретрансляцией пакетов между каналами и сам принимать ничего не будет.

Пример:

Если для канала 0 - idm=0x01, для канала 1 - idm=0x03, для канала 2 - idm=0x02, то 0-й канал может работать с каналом 1, 2-й тоже с каналом 1, а 1-й канал и с 0-м и с 2-м. Между 0-м и 2-м каналами ретрансляция выполнятся не будет.

Если при этом сделать idm=0xfffffffe в секции common,  то допускается только ретрансляция из 0-го канала во 2-й.

Приоритет канала

Приоритет канала позволяет ускорить обработку запросов для отдельных каналов при нагруженном концентраторе. Не имеет смысла его задавать для однопортовых адаптеров. По умолчанию всем каналам задан приоритет 0. Установка приоритета изменяет схему обработки запросов на передачу (если приоритет <128), а если приоритет >=128, то дополнительно изменяется схема обработки прерываний для данного канала.

Если в очереди на передачу стоят запросы от нескольких каналов, то каналы которым задан приоритет, обслуживаются в первую очередь. Имеет смысл задавать приоритет каналу, если по нему идет общий трафик или он используется для связи с другим концентратором.  Назначать приоритет многим каналам не рекомендуется,  это может  ухудшить обслуживания каналов без приоритета. Если приоритет >=128, то кроме передачи, прерывания для данного канала обрабатываются в первую очередь. Ускоряет обработку только, если концентратор нагружает одновременно много каналов (работает когда одновременно несколько каналов выставляют прерывания). Крайне не рекомендуется задавать такой приоритет многим каналам, это повышает нагрузку на процессор и замедляет работу других каналов.

Коэффициент усиления приемника канала

Адаптеры могут работать на 8-ми коэффициентах усиления. Коэффициент 7 - самый слабый, усиление 30dB (примерно в 30 раз), коэффициент 0 - самый сильный, усиление 60dB (примерно в 1000 раз). Высокие коэффициенты в область нуля используются для связи на длинных линиях. На линиях до 2-х км обычно используется коэффициенты 7 или 6. На высоких коэффициентах усиления  на некоторых линиях, адаптер может ловить шум, который может мешать работе. Особенно это важно на концентраторе. Поэтому был введен параметр MKAMPL,  который ограничивает возможность использования высоких коэффициентов усиления.

По умолчанию ограничение на коэффициент равно 3. В клиентском файле конфигурации он выставлен в 0. Параметр MKAMPL  заданный в секции канала переопределяет параметр заданный в секции common.

Если линия длинная, то тогда для этого канала нужно уменьшить параметр MKAMPL. Если линия короткая - можно наоборот его увеличить. Это ускорит процесс настройки, так как не будут рассматриваться лишние коэффициенты, и снижает вероятность помехи.

Параметр действует только со стороны где он задан. С разных сторон линии могут быть разные коэффициенты усиления и разные границы.

Параметр так же можно использовать для того чтобы драйвер не выбирал коэффициенты усиления на которых есть шум: смотрим на каких коэффициентах есть шум (командой noi под linux или iplncfg под Windows или через iplnmng) и отсекаем использование этих коэффициентов задав параметр MKAMPL.

Замечание: для длинных линий требуется уменьшить значение этого параметра меньше значения по умолчанию, чтобы высокие коэффициенты усиления использовались.

Управление автоматическим отключением канала при ошибках

Параметр MBIGTM задает число последовательно возникших больших таймаутов, после возникновения которого канал временно (~5мин) аппаратно отключается и не обслуживается. Успешная передача сбрасывает этот счетчик в 0. Если в качестве параметра задать 0 - отключение никогда не происходит.

Теперь подробнее о том когда эти ошибки могут возникать и что делать. При работе драйвера есть события, время возникновения которых при нормальных условиях работы несколько микросекунд. Ожидать такие события отдавая управления операционной системе на такое короткое время, не представляется возможным. Не произойти они могут - только при неправильной работе  оборудования, либо при наличии в в линии сильной помехи. Для контроля над этой ситуацией взводится таймаут, который расчитывается исходя из текущей скорости связи. Если такие таймауты происходят,  они мешают обслуживанию других каналов, а если их много то практически парализуют работу концентратора. Так как при нормальной работе они возникать не могут, то при появлении некоторого количества таких ошибок, дравйвер считает что на этим канале возникла проблема с линией или оборудованием и отключает его.  Через некоторе время канал снова включается, если ситуация исчезла  работа продолжается, если повторилась - отключается снова.

Если на каком-то канале возникает такая ситуация то с этой проблемой надо разбираться. Возможные ситуации:

Виртуальные каналы

Виртуальные каналы используются для следующих целей:

  1. Объединение несколько физических каналов в один
  2. Позволяют перераспределять физические каналы между устройствами.

Опишем подробнее эти функции: 

1) Если между двумя точками, между которыми нужно установить связь, есть несколько физических пар, то их можно использовать для параллельной передачи данных. Для этого физические каналы подключенные к этим парам нужно объединить в один виртуальный канал. Распараллеливание передачи данных ведется на уровне пакетов. При этом можно одной стороны часть каналов выделить только на передачу, а с другой на передачу выделить оставшиеся каналы. Тогда получается виртуальный дуплексный канал. В частном случае, все каналы могут быть использованы как на прием, так и передачу. При таком объединении следует учитывать момент, что, если какой-то канал имеет скорость гораздо ниже чем другие, то, хотя он и будет использоваться для передачи в последнюю очередь, он может понижать общую скорость и лучше его исключить из каналов на передачу.

2) Здесь также два применения: 

a) Из шестипортовых адаптеров можно набирать устройства с числом каналов кратным 6. Количество реальных TCP/IP адресов подсети, которое назначается устройству - степень 2 минус три адреса (нулевой, широковещательный и адрес для сервера). Таким образом мы имеем что либо остаются неиспользованные порты, либо неиспользованные адреса. Переназначение позволяет использовать физические каналы одного устройства другим, решая эту проблему.

b) позволяет несколько однопортовых адаптеров объединить в один виртуальный канал (например два PCI однопортовых с одной стороны и два канала мультипортового адаптера с другой, или два PCI однопортовых с обеих сторон).

При объединении или переназначении на виртуальный канал действуют правила заданные для этого канала (контроль ограничения доступа, полоса пропускания). Собственные параметры физических каналов в этом случае игнорируются. Передача пакетов в этот канал может быть выполнена только через устройство которому принадлежит виртуальный канал. Например, если вы канал однопортового устройства переназначите на другое устройство, то подцеплять к этому устройству любые протоколы не имеет смысла, т.к. через это устройство ничего посылаться не будет. Контроль же за физическим состоянием канала (настройка, контроль соединения) выполняется через устройство, которому этот канал физически принадлежит.

Для определения каналов на передачу используется параметр virttx. Для  задания дополнительных каналов на прием - virtrx. Списки могут пересекаться, если какой список не задан, то передача и прием идет по всем каналам. Прием кадра с этих каналов, выполняется в любом случае. Если по всем каналам заданным для передач нет связи, данные не посылаются.

Расширенный режим контроля MAC-адресов

Основное назначение режима обеспечить возможность подключения моста с Ethernet к концентратору. До введения этого режима это можно было сделать только для одного канала, отменив для него контроль MAC-адресов. Теперь можно подключать мосты к нескольким каналам.

Для включения режима в секции канала нужно задать бит 0x800  в поле gflag в секции канала. Кроме этого надо задать параметр mcmax, задающий число дополнительных MAC-адресов допускаемых для этого канала. Список допустимых MAC-адресов задается параметрами mcmac$$$. Если нужно для каждого можно задать правило TCP/IP которое будет выполнять контроль адреса TCP/IP. Если не задано действует правило заданное параметром IPLIST. Если не задано и оно, то адрес TCP/IP не контролируется.

Режим работы определяется параметром mcflag. Если режимы обучения не включены - то будут пропускаться пакеты только с адресами уже заданными параметрами mcmac$$$. Новые записи можно добавлять через iplnmng

Если задан режим обучения без сохранения - то при получении пакета, MAC-адрес которого неизвестен - этот адрес заносится в таблицу как временный (если IP адрес удовлетворил условию контроля заданного IPLIST). Временные адреса не сохраняются в конфигурационном файле, после перезагрузки таблица заполняется заново. Максимальное число адресов определяется параметром mcmax. Если к заданному MAC-адресу не было обращений в течении заданным параметром mcttl, он удаляется из таблицы. Через iplnmng  можно сменить статус MAC-адреса с временного на постоянный.

Если задан режим обучения с сохранением - то для новый MAC-адрес заносится  в таблицу как постоянный. Для него создается правило TCP/IP,  на основании адреса выбранного из пакета, и далее допускается работа только  с этого адреса. Запись сохраняется в конфигурационном файле и восстанавливается после загрузки.

Если заданы оба режима обучения, то действует режим с сохранением.

Пример:

[IPLN0.CH000]
...
MCMAX=10
MCFLAG=0x02
MCMAC000=00:fe:ff:f7:00:01:02
MCIPL000=192.168.200.1,-255.255.255.255
MCMAC001=00:00:92:55:11:33:12
MCMAC002=00:cc:00:f7:00:13:44
MCIPL002=192.168.200.3,-255.255.255.255

Вычисление параметров bus и slot для PCI адаптеров под Linux

Параметры bus и slot позволяют жестко привязать группу к PCI адаптеру. Если они не заданы адаптеры выбираются автоматически по возрастанию номеров этих значений. Если планируется использовать более одного PCI адаптера одного типа в машине, рекомендуется задавать эти параметры явно. Иначе добавление нового адаптера может привести к сдвигу адаптеров по группам.

Как посмотреть какие шина и слот используются адаптерами: даем команду -

cat /proc/bus/pci/devices

Во второй колонке заданы код производителя и код устройства. Для однопортовых  адаптеров ipln он равен 4f480055 для шестипортовых 4f480056.

В первой колонке закодирована шина и слот в шестнадцатеричном виде. Она имеет вид bbss, bb - шина, ss - значение слот сдвинутое на три бита влево. Чтобы получить значение нужно шестнадцатеричное число ss разделить на 8.

Пример:

0160 - это bus=0x01 slot=0xc(0x60 = 96, 96/8=12, 12=0xc)

Примеры

Пример конфигурационного файла для однопортовой платы PCI

[IPLN.GLOBAL]
;
; Секция common 
;
[IPLN0.COMMON]
GRPMASK=0x01
CHNMAX=1
NODE=192.168.200.1
REM=255.255.255.255
GFLAG=0x18
;
; Определение групп
;
[IPLN0.GRP0]
ADPCNT=1
BMODE=6
;
;Определение каналов
;
[IPLN0.CH000]
ADPCHN=1
GRPNUM=0
ADPNUM=1

Пример конфигурационного файла для мультипортовой платы ISA

[IPLN.GLOBAL]
;
; Секция common 
;
[IPLN0.COMMON]
GRPMASK=0x01
CHNMAX=6
NODE=192.168.200.99
REM=192.168.200.1
GFLAG=0x09
IO=0x150
INT=5
;
; Определение групп
;
[IPLN0.GRP0]
ADPCNT=1
BMODE=4
;
;Определение каналов
;
[IPLN0.CH000]
ADPCHN=1
GRPNUM=0
ADPNUM=1
[IPLN0.CH001]
ADPCHN=2
GRPNUM=0
ADPNUM=1
[IPLN0.CH002]
ADPCHN=3
GRPNUM=0
ADPNUM=1
[IPLN0.CH003]
ADPCHN=4
GRPNUM=0
ADPNUM=1
[IPLN0.CH004]
ADPCHN=5
GRPNUM=0
ADPNUM=1
[IPLN0.CH005]
ADPCHN=6
GRPNUM=0
ADPNUM=1

Пример конфигурационного файла для 2-х мультипортовых плат ISA

[IPLN.GLOBAL]
;
; Секция common 
;
[IPLN0.COMMON]
GRPMASK=0x01
CHNMAX=12
NODE=192.168.200.99
REM=192.168.200.1
GFLAG=0x09
IO=0x150
INT=5
;
; Определение групп
;
[IPLN0.GRP0]
ADPCNT=2
BMODE=4
;
;Определение каналов
;
[IPLN0.CH000]
ADPCHN=1
GRPNUM=0
ADPNUM=1
[IPLN0.CH001]
ADPCHN=2
GRPNUM=0
ADPNUM=1
[IPLN0.CH002]
ADPCHN=3
GRPNUM=0
ADPNUM=1
[IPLN0.CH003]
ADPCHN=4
GRPNUM=0
ADPNUM=1
[IPLN0.CH004]
ADPCHN=5
GRPNUM=0
ADPNUM=1
[IPLN0.CH005]
ADPCHN=6
GRPNUM=0
ADPNUM=1
[IPLN0.CH006]
ADPCHN=1
GRPNUM=0
ADPNUM=2
[IPLN0.CH007]
ADPCHN=2
GRPNUM=0
ADPNUM=2
[IPLN0.CH008]
ADPCHN=3
GRPNUM=0
ADPNUM=2
[IPLN0.CH009]
ADPCHN=4
GRPNUM=0
ADPNUM=2
[IPLN0.CH010]
ADPCHN=5
GRPNUM=0
ADPNUM=2
[IPLN0.CH011]
ADPCHN=6
GRPNUM=0
ADPNUM=2

Пример создания сдвоенного канала по двум линиям

Требуется создать канал для работы по двум линиям одновременно, с одной стороны мультипортовая плата (например 5-й и 6-й порт), а с другой две PCI платы. Для мультипортовой платы файл будет выглядеть так:

[IPLN.GLOBAL]
;
; Секция common 
;
[IPLN0.COMMON]
GRPMASK=0x01
CHNMAX=7
NODE=192.168.200.99
REM=192.168.200.1
GFLAG=0x09
IO=0x150
INT=5
;
; Определение групп
;
[IPLN0.GRP0]
ADPCNT=1
BMODE=4
;
;Определение каналов
;
[IPLN0.CH000]
ADPCHN=1
GRPNUM=0
ADPNUM=1
[IPLN0.CH001]
ADPCHN=2
GRPNUM=0
ADPNUM=1
[IPLN0.CH002]
ADPCHN=3
GRPNUM=0
ADPNUM=1
[IPLN0.CH003]
ADPCHN=4
GRPNUM=0
ADPNUM=1
[IPLN0.CH004]
ADPCHN=5
GRPNUM=0
ADPNUM=1
VIRTUP=6
[IPLN0.CH005]
ADPCHN=6
GRPNUM=0
ADPNUM=1
VIRTUP=6
[IPLN0.CH006]
COMMENT="Сдвоенный канал"
REM=192.168.200.7
VIRT=1
VIRTTX=4,5
VIRTRX=4,5

Для машины с двумя PCI устройствами, требуется создать третье виртуальное устройство, на которое будет переведен ввод/вывод с первых двух. От первых двух устройств нужно отключить все протоколы (для Windows), так как они сами ничего посылать не будут. Передача будет выполнятся только через виртуальное устройство.

[ipln.global]
COMMENT="Пример двойного канала"
DEVCNT=3
[ipln0.common]
COMMENT="PCI0"
CHNMAX=1
GFLAG=0x18
NODE=0.0.0.1
REM=255.255.255.255
[ipln0.grp0]
BMODE=6
ADPCNT=1
[ipln0.ch000]
COMMENT="User_0"
GRPNUM=0
ADPNUM=1
ADPCHN=1
VIRTUP=2:0
[ipln1.common]
COMMENT="PCI1"
CHNMAX=1
GFLAG=0x18
NODE=0.0.0.1
REM=255.255.255.255
[ipln1.grp0]
BMODE=6
ADPCNT=1
[ipln1.ch000]
COMMENT="User_0"
GRPNUM=0
ADPNUM=1
ADPCHN=1
VIRTUP=2:0
[ipln2.common]
COMMENT="VIRTUAL"
GRPMASK=0x0
CHNMAX=1
GFLAG=0x18
NODE=192.168.200.7
REM=255.255.255.255
[ipln2.ch000]
COMMENT="User_0"
VIRTTX=0:0,1:0
VIRTRX=0:0,1:0
VIRT=1

Резервирование файла конфигурации

Отсутствие файла конфигурации или неправильный его формат, может привести к тому что драйвер адаптеров ipln и программы управления драйвером не будут загружаться. Во время работы файл периодически обновляется программой управления, которая сохраняет в нем свою информацию и информацию о состоянии линии и параметрах канала. Если в момент сохранения машину перезагрузить - не исключена вероятность, что файл будет испорчен. Поэтому имеется возможность создать резервную копию файла ipln.cfg, которая будет использоваться в случае, если не удается загрузить основной файл. Резервная копия называется ipln.cfr и должна находиться в той-же директории что и ipln.cfg. Резервная копия никогда не обновляется автоматически. Порядок загрузки файлов следующий: После загрузки резервной копии файл ipln.cfg будет создан на ее основе. ---------------------------------------------
Перейти в оглавление документации