Вопросы с тегами [ietf-netconf]

1

голосов
1

ответ
200

Просмотры

как реализовать NETCONF + янь C ++ сервер

В настоящее время я реализую NETCONF сервер в C ++. Я нашел этот сайт: https://www.appinf.com/docs/poco-2008.2/NetconfUserGuide.html И подумал, может быть, я буду использовать рос для этой цели, но я не смог найти исходный код в репозитории GitHub, ни после загрузки пакета с их сайта. Имеет росо стать Comercial или эта функция теперь упала? Мой вопрос я могу использовать Poco реализовать NETCONF + янь, есть другие C ++ библиотека, которая решает эту проблему. Или, возможно, я должен реализовать его с нуля. Если да, то как поступить? Я нашел также confd с их яньте модели компилятора, но образцы C. Я предпочел бы использовать некоторый существующий код, написанный на C ++ моей текущая среда GCC 7.3 с C ++ 17 поддержки и повышение 1,64
Jarosław Bober
1

голосов
0

ответ
25

Просмотры

Поймайте NETCONF Уведомление о ОНОСе

Я работаю над НСУРАМИ и пытаюсь таким образом передавать данные из SB в ОНОСе и я использовал NETCONF в качестве протокола. это ОНОСА возможность получить сообщение, когда мой NETCONF агент посылает notofication? если да, то где это сохранить сообщения, и как я могу получить к ним доступ?
Majid Roustaei
1

голосов
0

ответ
18

Просмотры

ODL конфигурация NETCONF сервер выходит из строя

Я новичок в OpenDaylight. Я собираюсь настроить интерфейс через RESTAPI. Вот это мой следующий API: HTTP: // локальный: 8181 / restconf / операция / сетевая топология: сетевая топология / Топология / топология NETCONF / узел / новый NETCONF-устройство / яньте-доб: крепление / IETF-NETCONF : редактировать-конфигурации Это мой XML-код: хост-vpp1out Ethernet ianaift: ethernetCsmacd правда 10.80.17.54 24 верно, однако, я получаю ошибку с удаленного сервера NETCONF [ERR] неизвестный элемент интерфейса / когда я вижу ГЗС от NETCONF сервера ОЛЗ Вытащите пространств имен из XML. Я очень признателен, если вы можете помочь мне с этим вопросом.
masoud
1

голосов
1

ответ
136

Просмотры

How to update configurations on a NETCONF enabled device?

My device yang is as shown below - module router { yang-version 1; namespace "urn:sdnhub:odl:tutorial:router"; prefix router; description "Router configuration"; revision "2015-07-28" { description "Initial version."; } list interfaces { key id; leaf id { type string; } leaf ip-address { type string; } } container router { list ospf { key process-id; leaf process-id { type uint32; } list networks { key subnet-ip; leaf subnet-ip { type string; } leaf area-id { type uint32; } } } list bgp { key as-number; leaf as-number { type uint32; } leaf router-id { type string; } list neighbors { key as-number; leaf as-number { type uint32; } leaf peer-ip { type string; } } } } } I am using the SDNHub Netconf Client to configure my netconf device(I'm using a simulator). I'm able to add configurations, but I'm not able to modify configurations on the device. The initial configurations on my device is shown below { "router": { "ospf": [ { "process-id": 21, "networks": [ { "subnet-ip": "12.1.1.1", "area-id": 12 } ] } ],"bgp": [ { "as-number": "31", "router-id": "123", "neighbors": [ { "as-number": "31", "peer-ip": "1.1.1.1" } ] }, { "as-number": "32", "router-id": "1234", "neighbors": [ { "as-number": "32", "peer-ip": "2.2.2.2" } ] } ] } } I'm trying to modify the ospf list with PUT http://localhost:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/testtool/yang-ext:mount/router:router/ospf/21 with the following payload, { "ospf": [ { "process-id" : "21", "networks": [ { "subnet-ip": "12.12.12.12", "area-id": 1212 } ] } ] } The configurations on the root node gets over-written and gives me the following data on GET { "router": { "ospf": [ { "process-id": 21, "networks": [ { "subnet-ip": "12.12.12.12", "area-id": 1212 } ] } ] } } Please let me know if I'm sending a wrong request or if there is any other way to update configurations on a Netconf device.
Priya Ravichander
1

голосов
1

ответ
186

Просмотры

«Неправильный документ: Пространства имен не указано» Ошибка NETCONF

У меня есть проблема с операции NETCONF получить-конфигурации для Nexus 7000 с OS версии 7.3 (1) D1 (1). Отправленное сообщение имеет атрибут XMLNS в Rpc тега. Тем не менее, результат говорит, что RPC является плохим элементом отсутствует атрибут пространства имен. RPC ошибка недостающого атрибута Неправильного документ: Пространства имен не указан RPC Для сравнения, мой прибудут-конфигурационный запрос не имеет никаких проблем с ASR 9000, IOS XR 6.1.4. ... Как я могу ходить вокруг этой ошибки?
Shoner Sul
1

голосов
1

ответ
51

Просмотры

Лучший способ настроить узел с NETCONF

Я совершенно новый для конфигураций Яна и NETCONF основы. Есть ли с открытым исходным кодом визуализатор или сценарий, где он принимает Ян файлы и помочь мне при создании XML полезной нагрузки для использования NETCONF для настройки конечного узла? В настоящее время он является болезненным, когда мне нужно пройти Ян файл и вручную сформировать полезную нагрузку XML для настройки устройства. заранее спасибо
codingfreak
2

голосов
2

ответ
141

Просмотры

Perl - Как сделать библиотеку, специфичным для отдельных нитей

Я пишу многопоточный скрипт в Perl с. В котором я использую библиотеку Net :: NETCONF :: Менеджер, который INTURN использует Net :: SSH2. Это Net :: SSH2 (libssh2), кажется, не будет поточно когда simulataneously «совместно ручки». Цитируем как в libssh2 сайте поточно-: просто не разделяют ручки одновременно, я не уверен, что это «совместное использование ручки» означает. Кроме того, я хотел бы знать, как "не разделяет ручку. Когда я бег моего сценария, иногда я вижу следы ошибок с трассировкой и память карты обозначая *** Glibc обнаружено *** Perl: двойные бесплатно или повреждение (уходит): 0x00007f0320012d70 *** ошибка. Эта ошибка происходит из-за резьбу безопасности библиотеки Net :: ssh2. Как сделать это Net :: NETCONF :: Менеджер доступен для каждого потока, вместо того, он заявил на глобальном уровне с использованием «». Я хочу, чтобы все нити, чтобы иметь свой собственный доступ к этой библиотеке независимо от других потоков. Пожалуйста, дайте мне знать ваше мнение.
Bala Krishnan
6

голосов
1

ответ
1k

Просмотры

Как переопределить вещи в пакете во время выполнения?

[EDIT: Я бегу на Python 2.7.3] Я сетевой инженер по профессии, и я был взлом ncclient (версия на сайте стара, и это была версия я отработкой ), чтобы заставить его работать с реализацией Brocade о NETCONF. Есть некоторые хитрости, которые я должен был сделать для того, чтобы заставить его работать с нашим оборудованием Brocade, но я должен был раскошелиться покинуть пакет и сделать твики для самого источника. Это не чувствовал себя «чистым» для меня, так что я решил, что я хотел, чтобы попытаться сделать это «правильный путь» и переопределить несколько вещей, которые существуют в пакете *; три вещей, в частности: «статический метод» называется сборкой (), который принадлежит к классу HelloHandler, который сам по себе является подклассом SessionListener «._id» атрибут класса RPC (первоначальной реализация используется UUID, и Brocade коробки не очень понравились, так что в моих первоначальных настройках я просто изменил эту статическое значение, которое никогда не изменилось). Небольшая подстройка к функции Util, который строит XML атрибуты фильтра До сих пор у меня есть этот код в файле brcd_ncclient.py: #! / USR / бен / окр питона # взломать на создание XML-элемента и создать подкласс переопределить HelloHandler в # сборки ( ) способ форматирования XML таким образом, что на самом деле парча нравится из ncclient.xml_ импорта * из ncclient.transport.session импорта HelloHandler из ncclient.operations.rpc импорта RPC, RaiseMode из ncclient.operations импорта Util # регистра парчи имен и создать функции для создания правильного XML для # привет / обмена возможности BROCADE_1_0 = «http://brocade.com/ns/netconf/config/netiron-config/» register_namespace ( «brcd», BROCADE_1_0) brocade_new_ele = лямбда-тегов, нс, ATTRS = {}, ** дополнительно: ET.Element (квалифицируют (тег, нс), AttrS ** за дополнительную плату) brocade_sub_ele = лямбда родитель, тег, нс, ATTRS = {}, * * дополнительно: ET.SubElement (родитель, право (Tag, нс), AttrS ** дополнительные) # подкласса RPC для переопределения self._id изменить UUID сгенерированных сообщений-идентификаторов; # Парча, кажется, не быть в состоянии справиться с очень длинными идентификаторами класса BrcdRPC (RPC): Защита __init __ (я, сессия, асинхронный = False, таймаут = 30, raise_mode = RaiseMode.NONE): self._id = "1" возвращение супер (BrcdRPC, самость) .self._id класс BrcdHelloHandler (HelloHandler): Защита __init __ (Я): возвращение супер (BrcdHelloHandler, самость) .__ INIT __ () @staticmethod четкости построения (возможностей): привет = brocade_new_ele ( "привет", None, { '' XMLNS: "урна: IETF: PARAMS: XML: NS: NETCONF: база: 1.0" }) колпачки = brocade_sub_ele (привет, "возможность", None) Защита забава (URI): brocade_sub_ele (крышки, "возможность", None) .text = URI карты (FUN, возможность) обратный to_xml (привет) #return супер (BrcdHelloHandler , сам) .build () ??? # Так как нет никаких классов я предполагаю, что я могу просто переопределить саму функцию # в ncclient.operations.util? Защиту build_filter (спецификации, capcheck = None): тип = None, если isinstance (спецификации, кортеж): тип, критерии = Spec # парча хочет NETCONF префикса на атрибуте поддерева фильтра Rep = new_ele ( "фильтр", { 'пс: тип' : тип}), если тип == "XPath": rep.attrib [ "выбрать"] = критерии ELIF тип == "поддерево": rep.append (to_ele (критерии)) остальное: Get_Config (источник = 'работает', фильтр = ( 'поддерево', filterstr)) печать c2 # до сих пор это только выглядит как поддерживаемые фильтры для 'Get-Config' # операция: 'Интерфейс-конфигурация', «виртуальной локальной сети-конфигурации 'и „MPLS-конфигурации“ Всякий раз, когда я бегу мой netconftest.py файл, я получаю тайм-аут ошибки, потому что в файле журнала ncclient.log я могу видеть, что мои определения подклассов (а именно тот, который изменяет XML для обмена привет - STATICMETHOD сборки ) игнорируются, и коробка Brocade не знает, как интерпретировать XML, что метод оригинала ncclient HelloHandler.build () генерирует **. Я также могу видеть в создаваемом логфайле, что другие вещи, которые я пытаюсь переопределить также игнорируются, как Message-ID (статическое значение 1), а также XML-фильтры. Так, я вроде в убыток здесь. Я нашел этот блог пост / модуль из моего исследования, и, казалось бы делать именно то, что я хочу, но я бы очень хотел, чтобы быть в состоянии понять, что я делаю неправильно с помощью делать это вручную, а не с помощью модуль, что кто-то уже написал, как предлог, чтобы не иметь, чтобы понять это самостоятельно. * Может кто-нибудь объяснить мне, если это «обезьяна латание» и на самом деле плохо? Я видел в своем исследовании, что обезьяна латание не желательно, но этот ответ, и этот ответ путаете меня совсем немного. Для меня, мое желание изменить эти биты предотвратило бы меня от необходимости поддерживать всю вилку моей ncclient. ** Для того, чтобы дать немного больше контекста, это XML, который ncclient.transport.session.HelloHandler.build () генерирует по умолчанию, окно Brocade, кажется, не нравится: урна: IETF: Params: NETCONF: основание:
John Jensen
2

голосов
2

ответ
1.7k

Просмотры

Что такое стандартный способ создания XML-RPC NETCONF запросов от модели данных YANG

Я пытаюсь найти лучший способ для создания запросов XML RPC для отправки на устройство с NETCONF тегами в нем. Мы знаем, как запрос должен выглядеть так, что я делаю, просто жесткого кодирования запроса XML-RPC XML с заполнителями в нем. Эти заполнители могут быть заменены на фактический ввод позже. Например: @device_mac Вот в этом примере, @device_mac будет заменен при отправке запроса. Но некоторые, как я чувствовал, что я жестко прописывать запроса XML. Есть ли лучший способ создания запроса XML? Данные NETCONF будут смоделированы с помощью ЯН / ИНЬ файлов. Есть ли способ, что я могу использовать эти файлы для создания NETCONF запроса части по крайней мере?
Bala
1

голосов
3

ответ
718

Просмотры

В чем разница между операционной и Config в ЯН?

В чем разница между операционной и Config в модели YANG? Является ли это правильный способ поддержки GET, PUT, POST и DELETE интерфейсы как в операционной и Config?
vinllen
3

голосов
4

ответ
5.8k

Просмотры

Java NETCONF библиотека? [закрыто]

Кто-нибудь знает, есть ли библиотека Java там управлять конфиги через NETCONF?
wuntee
5

голосов
0

ответ
67

Просмотры

Нет ответ для запросов RPC от тренажерных устройств opendaylight Средства тестирования

Я был в состоянии имитировать NETCONF устройств с opendaylight тренажерами. Во время запуска, я представил янь SCHEMAS путь тоже. Но, когда я войти в устройство через NETCONF и отправить любой запрос RPC, применимый для схем янь, нет никакого ответа от устройства. Хотя имитатор устройство выбрасывает ошибку, если есть синтаксические ошибки в моих запросах удаленных процедур, он не реагирует с любыми данными. Он упоминается в GitHub странице opendaylight, что для «набора» запросов, там будет КИ ответа по умолчанию, но я не вижу какой-либо ответ на любой запрос. Кроме того, я не вижу никакой журнал ошибок в Баш сессии симулятор бега. Любые идеи о том, что происходит не так?
Bala Krishnan
2

голосов
1

ответ
217

Просмотры

Как использовать JSch установить соединение SSH с подсистемой NETCONF

Я успешно использовать библиотеку JSch для создания соединения SSH к серверу, но у меня есть проблема , выясняя, как добавить подсистему NETCONF для подключения SSH. При выполнении вручную, из командной строки , которая устанавливает соединение SSH с sybsystem NETCONF является SSH -p 4444 nerconf @ MyServer -s NETCONF. Как добавить опцию -s NETCONF к соединению SSH с помощью JSch? Есть ли подсистема поддержки JSch для NETCONF?
Dang Thien Nguyen
2

голосов
1

ответ
316

Просмотры

NETCONF: Не в состоянии выполнить GetConfig ()

У нас есть NETCONF включен маршрутизатор, и я могу выполнить получить / получить-конфигурации операции с использованием Mg-Soft-браузер клиента. Это выход GetConfig () - REQ: RESP: ..... Но я не в состоянии выполнить ту же самую операцию с использованием tailf NETCONF клиента. Вот мой код - открытый класс клиента {государственной статической силы основных (String арг []) бросает JNCException, ParserConfigurationException, SAXException, IOException {DeviceUser deviceUser; Строка deviceUserName = "пользователь"; deviceUser = новый DeviceUser (deviceUserName, "администратор", "администратор"); Устройство Устройство = новое устройство ( "имитатор", deviceUser, "10.135.16.13", 830); device.connect (deviceUserName); device.newSession (новый подписчик ( "симулятор"), "mySession"); NetconfSession сессия = device.getSession ( "mySession"); NodeSet конфигурации = session.getConfig (NetconfSession.RUNNING); Строка xmlString = config.toXMLString (); session.closeSession (); System.out.println (xmlString); }} Класс Абонент расширяет IOSubscriber {Строка имя_устройство; общественности статической булевых rawMode = ложь; Подписчик (String имя_устройство) {супер (rawMode); this.devName = имя_устройства; } общественного недействительными входные данные (String) {System.out.println ( "Recv:" + данные); } Общественного недействительными выхода (строковые данные) {System.out.println ( "SEND:" + данные); }} Я получаю следующее в консоли затмений - SEND: урна: IETF: Params: NETCONF: основание: 1.0 RECV: урна: IETF: Титулы: NETCONF: основание: 1,0 мкм: IETF: Титулы: NETCONF: Основание: 1. редакция = 2016-01-01 урны: Nokia.com:: нс СРО: Ян: SR: типы-модуль QoS = Nokia-типы-& QoS редакция = 2016-01-01 урны:? Nokia.com: СРО: NS: Ян: SR: типы-услуга модуль = Nokia-типы-услуга и пересмотр = 2016-01-01 урны:? Nokia.com: СРО: нс: янь: ВПЕ:? типы-модуль = СРО Nokia-типы-и СРО редакции = 2016-01-01 урна: Nokia.com: ОСР: нс: янь: стер: крупный релиз-14 52 SEND: RECV: RPC недостающей атрибут сообщение об ошибке идентификатор RPC Убедитесь, что атрибут Message-ID присутствует и меньше, чем 4096 символов [Fatal Error] : 2: 20: имя атрибута «урна: IETF», связанный с элементом типа «Rpc-ответ» должен следовать символ «=». [Критическая ошибка]: 2: 20: имя атрибута "урна: IETF" связанный с типом элемента «Rpc-ответ» должен следовать символ «=». org.xml.sax.SAXParseException; LineNumber: 2; ColumnNumber: 20; Имя атрибута «урну: IETF», связанный с должно сопровождаться символом «=» тип элемента «Rpc-ответ». на com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse (AbstractSAXParser.java:1239) в com.tailf.jnc.YangXMLParser.parse (YangXMLParser.java:50) в com.tailf.jnc.XMLParser .parse (XMLParser.java:154) при com.tailf.jnc.NetconfSession.recv_rpc_reply (NetconfSession.java:1495) при com.tailf.jnc.NetconfSession.recv_rpc_reply_data (NetconfSession.java:1472) при com.tailf.jnc. NetconfSession.getConfig (NetconfSession.java:443) при client.Client.main (Client.java:51) Исключение в потоке "основного" ошибка синтаксического анализа: ошибка разбора: org.xml.sax.SAXParseException; LineNumber: 2; ColumnNumber: 20; Имя атрибута «урну: IETF», связанный с должно сопровождаться символом «=» тип элемента «Rpc-ответ». на com.tailf.jnc.YangXMLParser.parse (YangXMLParser.java:54) в com.tailf.jnc.XMLParser.parse (XMLParser.java:154) в com.tailf.jnc.NetconfSession.recv_rpc_reply (NetconfSession.java:1495 ) при com.tailf.jnc.NetconfSession.recv_rpc_reply_data (NetconfSession.java:1472) в com.tailf.jnc.NetconfSession.getConfig (NetconfSession.java:443) в client.Client.main (Client.java:51)
Nirmalya Sinha