Программное обеспечение версии 7.2.1 для устройств серий NX-300, NPS-7e, NSG-500. В версии 7.2.1 сделаны следующие добавления и изменения по отношению к версии 7.1.1: 1. Физический уровень. 1.1 Добавлен новый тип интерфейса для синхронных портов IF:DSL. 1.2 Улучшен алгоритм работы с универсальными портами в асинхронном режиме. 2. Средства тестирования линии 2.1 Введены средства тестирования линии. 2.1 Синхронный порт. 3. MANAGER. 3.1 Введен встроенный HELP. 3.2 В команду S W введен новый параметр HELP. 3.3 Изменен синтаксис командной строки. 3.4 Новый способ обращения к Manager'у. 3.5 Изменен пароль по умолчанию. 3.6 Введен альтернативный доступ к Manager. 3.7 Добавлен вывод статистики по системным параметрам. 3.8 Установка профиля для PAD. 3.9 Исключена команда 'L F'. 4. PAD. 4.1 Введен новый параметр CD. 4.2 Введен новый параметр AF. 4.3 Исключены X.3 параметры 11, 20, 21, 22. 4.4 Введен новый параметр PROF. 4.5 Введен (опционально) новый тип интерфейса IF:ANTI. 4.6 Введен (опционально) новый тип интерфейса IF:MULTI 5. TELNET. 5.1 Введен новый параметр TCPPORT. 5.2 Введен новый параметр RIDLE. 6. FRAME RELAY 6.1 Введен интерфейс сеть-сеть. 6.2 Добавлена cтатистика по пакетам LMI на порту Frame Relay. 7. BILLING. 7.1 Введен новый параметр CUD. 7.2 Введен новый параметр DCM. 7.3 Введен новый параметр SC. 7.4 Введен билинг для Frame Relay станций типа Annex_G. 8. Аутентификация 8.1 Введена возможность входа в PAD сессию через Login. 8.2 Введен новый параметр TA. 8.3 Введен новый параметр PA. 8.4 Введен новый параметр PB. 8.5 Введен новый параметр NAME. 8.6 Исключен параметр IADR. 8.7 Параметр ID заменен на параметр NAME. 8.8 Введен новый параметр ACCT для порта типа ASYNC. 8.9 Введен новый параметр ACCT для IP интерфейсов. 9. SNMP 9.1 Добавлено вычисление статистических данных. 10. Исправлены ошибки замеченные пользователями при эксплуатации устройств. Далле следует более подробное описание добавлений и изменений. 1. Физический уровень. 1.1 Добавлен новый тип интерфейса для синхронных портов IF:DSL. 1.2 Улучшен алгоритм работы с универсальными портами в асинхронном режиме. 2. Средства тестирования линии 2.1 Под тестированием синхронной линии здесь понимается процедура генерации некоторых тестовых сообщений и сравнение принимаемых кадров с посылаемым эталоном. В процедуре тестирования принимают участие два устройства, соединенные между собой некоторой линией передачи (см.рис) физическая линия ! ТЕСТЕР ! <================================>! ШЛЕЙФ ! ТЕСТЕР представляет собой устройство, которое генерирует тестовую последовательность кадров, принимает поступающие кадры, сравнивает с эталонной посылкой и выводит результаты тестирования. Запуск осуществляется при работе с управляющим модулем Manager командой Manager: T T <параметры> Запуск процедуры тестирования, параметры команды и описание получаемых данных приведены в руководстве. ШЛЕЙФ - устройство предназначенное для осуществления процедуры Remote Loopback. Устройство принимает поступающие с линии кадры и передает их обратно в линию без какой либо обработки. ШЛЕЙФ можно организовать при помощи синхронного порта устройства, сконфигурированного как TY:LOOP. 2.2 Синхронный порт Добавлен новый тип порта TY:SYNC с типом кадра FRTY:HDLC_FRAME Порт осуществляет прием и передачу кадров с синхронной линии в формате HDLC (размер кадра до 1500, контрольная сумма - CRC-16). Порт может быть скоммутирован на другой порт TY:SYNC или на Frame Relay - станцию типа TY:BYPASS 3. MANAGER. 3.1 Введен встроенный HELP. Если в набранной команде Manager'а обнаружена ошибка или стоит знак вопроса, то выводиться подсказка. Например: Manager: s w hel:0 s w hel:0 ^ Invalid Parameter SET SYSTEM PARAMETERS Syntax: S W : ... where - parameter name; - parameter value; parameter names are: CONT - contact ('S W CONT: ?' for more); HELP - help output ('S W HELP: ?' for more); HNAM - host name ('S W HNAM: ?' for more); LOC - location ('S W LOC: ?' for more); MNIT - manager idle time ('S W MNIT: ?' for more); MNTR - manager entry tries ('S W MNTR: ?' for more); PR - manager prompt ('S W PR: ?' for more); PW - password ('S W PW: ?' for more); Manager: s w help:? PARAMETER HELP Syntax: HELP: are: YES - enable help mesages output when syntax error ; NO - disable help output; Примечание. В версии 7.2.1 пока нет подсказок на значения некоторых параметров. 3.2 В команду S W введен новый параметр HELP. параметр HELP имеет значения: YES - разрешен вывод подсказок при обнаружении ошибок в командной строке; NO - подсказки выводяться, если только в командной строке набран знак вопроса. 3.3 В командной строке в качестве разделителя между именем параметра и его значением кроме двоеточия ':' могут использоваться знаки '=' или ';'. Например: Manager: s p po=3 ty;async sp:9600 3.4 С локального PADa или TELNETa можно обратиться к Manager'у без какой либо записи в таблице маршрутизации X.25. Для этого достаточно набрать команду 'MN'. 3.5 Изменен пароль по умолчанию. Bместо '25' надо вводить пустую строку, т.е. просто . 3.6 Введен альтернативный доступ к Manager удобный при написании скриптов. Команда может быть задана в CALL пакете в поле Call User Data. В CALL пакете должна быть опрtделена facility - Fast Select. Формат Call User Data: bytes 0 ... 3 - Protocol Identifier; bytes 4 ... n - пароль для входа в Manager; byte n+1 - символ пробел; bytes n+2 ... m - команда Manager; Например чтобы выполнить команду 'W S PO:2' c локального PAD (X.121 адрес Manager'а - 54321; пароль - psw1) надо набрать: f-54321-psw1 w s po:2 Такая команда будет выполнена даже если к Manager установлено другое соединение. В приложении 1 приведен пример программы обращения к Manager из IP сети через Telnet(для Linux). 3.7 Добавлен вывод статистики по системным параметрам: D S SY:0 3.8 Теперь при установлении соединения к Manager он сам устанавливает профиль для PAD(посылает пакет X.29). 3.9 Исключена команда 'L F'. Она была необходима для возвращения к версиям 6.x.x и ниже. Если очень надо, то сначала загрузите 7.1.1, там 'L F' есть. 4. PAD. 4.1 Введен новый параметр CD(реакция на сигнал DCD) параметр CD имеет значения: NO - PAD не реагирует на наличие и изменения сигнала DCD, т.е. работает так, как будто DCD постоянно установлен. YES - PAD реагирует на наличие и изменения сигнала DCD (как это было в предыдущих версиях) 4.2 Введен новый параметр AF(Async Format) Cинтаксис: AF:besi где b - количество бит в байте (7 или 8); e - четность: N - NONE E - EVEN O - ODD M - MARK S - SPACE s - кол-во стоп битов(1 или 2) i - игнорирование бита четности на приеме: I - игнорировать отсутствие буквы I - не игнорировать Примеры: S P PO:3 AF:8N1 S P PO:7 AF:7E1I S P PO:6 AF:7O2 4.3 Исключены X.3 параметры 11, 20, 21, 22; параметр 11 только для чтения, параметры 20, 21, 22 не реализованы. Замечание: т.к. в версиях 7.1.1 и ниже команда 'M S' выводит эти параметры, то при закачке конфигурации сохраненной в этих версиях рекомендуется удалить эти параметры из файла. 4.4 Введен новый параметр PROF. Cинтаксис: PROF:<номер_профиля> параметр PROF устанавливает для порта сразу все X.3 параметры которые сохранены в таблице стандартных профилей. 4.5 Введен (опционально) новый тип интерфейса для PAD порта: IF:ANTI Это специальный тип, который позволяет подключать такой порт не к терминалу, а к другому PAD(нестандартная возможность) и транслировать X.25 пакеты через асинхронный канал, правда, с некоторыми ограничениями. Бывает необходимо, что надо подключить оборудование с синхронным X.25 каналом к сети, а выход в сеть возможен только через PAD. Данная возможность не входит в стандартную поставку и оговаривается при покупке оборудования или получении софта. 4.6 Веден (опционально) новый тип интерфейса для PAD порта: IF:MULTI Это специальный тип, который позволяет организовать несколько логических каналов на PAD порте(нестандартная возможность). Данная возможность не входит в стандартную поставку и оговаривается при покупке оборудования или получении софта. 5. TELNET. 5.1 Введен новый параметр TCPPORT. Синтаксис: TCPPORT: где - номер TCP порта для подключения к данной TELNET станции. 5.2 Введен новый параметр RIDLE(Receive Idle Time). Синтаксис: RIDLE: где - время в секундах. Если за это время не будут получены никакие данные по данной Telnet сессии, то соединение будет разорвано. 6. FRAME RELAY 6.1 Введен интерфейс сеть-сеть NNI(Network-Network interface). Добавлено одно значение для параметра TE порта Frame Relay. Теперь параметр TE может принимать значения: DTE - порт работает как пользователиское оборудование(user) DCE - порт работает как сетевое оборудование(network) STE - порт реализует интерфейс сеть-сеть(NNI) 6.2 Добавлена cтатистика по пакетам LMI на порту Frame Relay. 7. BILLING. 7.1 Введен новый параметр CUD(Call User Data). Синтаксис: CUD: где - call user data; call user data может принимать значения: NO - данные пользователя не добавляются в пакет CALL который формирует программа билинга при установлении соединения с сервером; XX.XX.XX... - данные пользователя которые добавляются в пакет CALL, (XX - шестнадцатиричное значение символа, максимальное число символов - 16); Обычно параметр CUD определяет поле идентификатора протокола (Protocol Identifier field). Например CUD:01.00.00.00 используется для индикации протокола PAD. 7.2 Введен новый параметр DCM(delivery confirmation method), Синтаксис: DCM: где - способ подтверждения доставки информации до сервера; параметр может принимать значения: D - использование D-bit процедур для получения подтверждения доставки данных от абонента(сервера); ICLR - использование пакета X.29 invitation to clear PAD message(iclr); 0...100000 - задержка(в 1/100 секундах) между посылкой последнего пакета данных с билинговой информацией и посылкой пакета CLEAR; Примечание: используйте задержку если только D bit процедура или X.29 ICLR пакеты не работают в вашей сети. 7.3 Введен новый параметр SC (method of segment counting) Синтаксис: SC: где - способ подсчета сегментов; параметр может принимать значения: T - TOTAL, число сегментов подсчитывается как общее число символов переданных или полученных по каналу деленное на размер сегмента; P - PACKET, число сегментов подсчитывается как сумма сегментов в каждом пакете. Число сегментов в пакете равно числу символов в пакете деленному на размер сегмента и округленное до целого в большую сторону. 7.4 Введен билинг для Frame Relay станций типа Annex_G 8. Аутентификация 8.1 Введена возможность входа в PAD сессию через Login. При аутентификации через RADIUS, чтобы сессия открылась как PPP RADIUS сервер должен в ответе прислать атрибуты: Service-Type = Framed-User Framed-Protocol = PPP Чтобы сессия открылась как PAD RADIUS сервер должен в ответе прислать атрибуты: Service-Type = Login-User Login-Service = Rlogin При других значениях этих аттрибутов никакая сессия открываться не будет. Кроме того текущая версия воспринимает след. атрибуты: Framed-IP-Address Framed-Compression Idle-Timeout Остальные атрибуты пока игнорируются. Если на асинхронном порте используется локальная аутентификация, то желаемый протокол определяется суфиксом в имени пользователя. Если например с этого порта набрать: login: user1.ppp Password: psw1 то начнется PPP сессия. Если набрать: login: user1.pad Password: psw1 то начнется PAD ceсия. Если суффикс не набирать: login: user1 Password: psw1 то тоже начнется PAD ceсия. При входе через Login PAD принимает те значения параметров и профиль, которые назначены для этого порта. Чтобы их посмотреть или изменить, надо временно назначить этому порту TY:PAD. Пример: Manager: d p po:3 PO:03 TY:ASYNC SP:9600 AU:1 ACCT:YES Manager: s p po:3 ty:pad PO:03 TY:PAD IF:V24 SP:9600 AF:8N1 CO:NO AP:NO RP:NO AC:NO CM:NO NUI:NO LG:128 MB:NO CD:YES BI:0 AD:NO PT:"*" MS:"" 1:1 2:1 3:2 4:0 5:0 6:1 7:2 8:0 9:0 10:0 11:14 12:1 13:4 14:0 15:1 16:8 17:24 18:2 19:2 Manager: s p po:3 prof:2 PO:03 TY:PAD IF:V24 SP:9600 AF:8N1 CO:NO AP:NO RP:NO AC:NO CM:NO NUI:NO LG:128 MB:NO CD:YES BI:0 AD:NO PT:"*" MS:"" 1:0 2:0 3:0 4:1 5:0 6:1 7:8 8:0 9:0 10:0 11:14 12:0 13:0 14:0 15:0 16:0 17:0 18:0 19:0 Manager: s p po:3 ty:async PO:03 TY:ASYNC SP:9600 AU:1 ACCT:YES Manager: w f Manager: w s po:3 Теперь при входе через Login PAD будет работать в прозрачном профиле. 8.2 Введен новый параметр TA (time alive). Синтаксис: TA: где - определяет период времени(в минутах), через который учетная информация будет периодически сбрасываться на RADIUS сервер. Параметр TA имеет смысл для IP интерфейсов, в которых определен параметр ACCT (см. ниже). 8.3 Введен новый параметр PA Синтаксис: PA: где - номер порта для запросов аутентификации; 8.4 Введен новый параметр PB Синтаксис: PB: где - номер порта для accounting запросов 8.5 Введен новый параметр NAME Синтаксис: NAME: где - символическое имя сервера доступа (network access server(NAS)). Если - пустая строка, то в качестве имени будет использоваться имя хоста(параметр HNAM (см. команду 'D W') 8.6 Исключен параметр IADR. Замечание: т.к. в версиях 7.1.1 и ниже команда 'M S' выводит этот параметр, то при закачке конфигурации сохраненной в этих версиях рекомендуется удалить этот параметр из файла. 8.7 Для локальной аутентификации (TY:LOCAL) параметр ID заменен на параметр NAME. Замечание: т.к. в версиях 7.1.1 и ниже команда 'M S' выводит этот параметр, то при закачке конфигурации сохраненной в этих версиях рекомендуется в файле заменить этот параметр на параметр NAME. 8.8 Введен новый параметр ACCT для порта типа ASYNC. Синтаксис: ACCT: принимает значения: YES - посылать учетную информацию в RADIUS сервер; NO - не посылать учетную информацию; 8.9 Введен новый параметр ACCT для IP интерфейсов Синтаксис: ACCT: принимает значения: 0 - не посылать учетную информацию; n - номер способа аутентификации с описанием сервера куда будет посылаться учетная информация (см. 'D P AU:A') 9. SNMP 9.1 Добавлено вычисление статистических данных и представление их в MIB для портов устройства. Каждый физический порт представлен в таблице IfTable (группа interface) отдельной строкой (т.н. псевдоинтерфейс) Номер псевдоинтерфейса в таблице на 1 больше номера физического порта. Заполняются следующие поля таблицы IfTable: - принимаемые портом данные характеризуются ifInOctets, ifInUcastPkts, ifInErrors, ifInDiscards; - принимаемые портом данные характеризуются ifOutOctets, ifOutUcastPkt, ifOutErrors, ifOutDiscards. Указанные данные могут быть получены в результате SNMP-опроса, со стороны управляющих станций и других средств, с целью получения статистических данных о портах устройства (использование канала, объем переданных данных, частота ошибок и др. (например, система MRTG)). 10. Исправлены ошибки замеченные пользователями при эксплуатации устройств. Приложение 1. Пример программы обращения к Manager из IP сети через Telnet(для Linux). #include #include #include #include #include #include #include static fd_set ibits, obits, xbits; main(int argc, char **argv) { struct sockaddr_in sin; struct servent *sp; int net, c, i; unsigned long temp; char *hostp; unsigned char ibuf[1024], obuf[1024]; static struct timeval TimeValue = { 0 }; int ch, bad_opt = 0; char *xadr = NULL; char *psw = NULL; char *mngcom; while ((ch = getopt(argc, argv, "a:p:")) != -1) { switch(ch) { case 'a': xadr = optarg; break; case 'p': psw = optarg; break; default: printf ("bad option -%c\n", c); bad_opt = 1; break; } } if (argc - optind < 2) { printf ("Too few arguments\n"); bad_opt = 1; } else if (argc - optind > 2) { printf ("Too many arguments\n"); bad_opt = 1; } else { hostp = argv[optind++]; mngcom = argv[optind]; } if (bad_opt) { printf("Usage: nsgcall [-a ] [-p ]\n"); return 0; } memset((char *)&sin, 0, sizeof(sin)); temp = inet_addr(hostp); if (temp == (unsigned long) -1) { printf("nsgcall: Invalid IP address\n"); return 0; } sin.sin_addr.s_addr = temp; sin.sin_family = AF_INET; sp = getservbyname("telnet", "tcp"); if (sp == 0) { printf("nsgcall: tcp/telnet: unknown service\n"); return 0; } sin.sin_port = sp->s_port; net = socket(AF_INET, SOCK_STREAM, 0); if (connect(net, (struct sockaddr *)&sin, sizeof (sin)) < 0) { printf("nsgcall: Unable to connect to remote host\n"); return 0; } strcpy(obuf, "f-"); strcat(obuf, xadr ? xadr : "77"); strcat(obuf, "-"); strcat(obuf, psw ? psw : ""); strcat(obuf, " "); strcat(obuf, mngcom); strcat(obuf, "\r"); if (send(net, obuf, sizeof(obuf), 0) < 0) { close(net); return 0; } do { FD_ZERO(&ibits); FD_ZERO(&obits); FD_ZERO(&xbits); FD_SET(net, &ibits); TimeValue.tv_sec = 5; if (select(16, &ibits, &obits, &xbits, &TimeValue) < 0) { shutdown(net,2); close(net); return 0; } if (FD_ISSET(net, &ibits)) { c = recv(net, ibuf, 1024, 0); i = 0; while (i < c) { if (ibuf[i] == IAC) { i += 2; } else { putchar(ibuf[i++]); } } } else break;; } while (1); shutdown(net,2); close(net); return 0; }