Opendaylight neon: alternatives to old l2switch feature - opendaylight

During my search on stackoverflow, I already found out that l2switch is no longer supported in newer ODL releases.
I need its functionality for lldp topology creation, especially node and link overviews of the network.
The following REST command in ODL neon:
get /restconf/config/network-topology:network-topology
Just gives me nodes that I have added by hand (e.g. NETCONF connectors). So I think LLDP topology discovery it is not enabled by default. I did not find any similar features in:
feature:list
Is there any alternative to using an older release?

there is no alternative built in to ODL that can do this for you, but you can
simulate it. l2switch pushes flows to the openflow switches to punt LLDP packets
to the controller in order to learn the links. I'm not sure if the network-topology
would get updated or not, but you could manually configure flows in your switches
to punt LLDP packets and check. You can configure flows via restconf, or just
manually create them however your switch is configured (e.g., ovs-ofctl add-flow
for openvswitch)

Related

SNMP in context of SDN

SNMP is generally used to monitor the health of components in network.
For SDN [Software Defined network], is it desirable to use SNMP . I am having doubt like is it better to use some other protocol like NETCONFIG
In general SNMP can be used for configuration of a device, however personally I will not stretch it too far specifically when network configuration operation potentially spans across multiple devices and as a result will have higher order transaction requirements.
RFC3512 provides good perspective around configuration using SNMP. Reading through the RFC it will become apparent that within a device transaction relies on how well the MIBs (the objects used via SNMP for performing configuration changes) are designed and implemented. For configuration spanning across multiple devices the device transaction alone will not suffice, if rolling back the configuration is a requirement (this depending on the nature of service/use-case being addressed by your SDN controller). I would recommend reading the Transaction Control in MIB Objects further to understand the requirements on the protocol and eventually the capabilities of the MIB modules that one will be using for configuration.
Netconf was created with configuration of devices in mind and it offers various capabilities that are of use in this regard. These are covered in detail in the IETF standard for Netconf Protocol RFC under Capabilities section. The capabilities such as Candidate Configuration, Validate Configuration, Confirmed Commit, Rollback on Error and other such are specified in the standard which shall further aid in orchestration of a transaction across multiple device.

Using opendaylight to document networks

I am facing a task to analyze, document and visualize a rather large global network (more than 200 sites, various technologies) and wonder if opendaylight might help me with this. The documentation should mainly focus on Layer 3 and Layer 4 but may partially also include L2 topology. There is no need to actually use a controller to configure devices through southbound APIs, but I would like to use the benefits of a structured, consistent description (e.g. YANG) and a visualization (DLUX, NeXt) which ODL provides.
So here's my question: Is there any way to manually add a topology (nodes, links) through a graphical editor to ODL?
From the general project description and from the last 20 seconds of this video, NeXt in general seems to be able to add/modify topology information. How far does the NeXt integration with ODL go? Would I need to write my own app (which could use NeXt) which would need to use the RESTCONF APIs to add information to the topology? Or should I maybe create a virtual topology of the real network using mininet? Any other ideas?
I understand that an sdn controller is probably not the right kind of tool for this task, but other alternatives (e.g. Net2Plan, Visio, yEd) are basically local solutions, a bit too complicated or provide no standardized DSL for topologies. Besides that, the documentation covering ODL and NeXt integration is very limited - couldn't get a grasp of how that integration should work (I'll try harder).

OIDs expected by NMS to draw the topology

I am writing a SNMP Agent for an Ethernet switch.
The agent is able to run and reply to provide SysDescr. It has been written in a modular design, such that, one can add OIDs very easily.
Now, my intention is to create a topology (say ring) of the switches and discover the topology using a common Network Management System like HP-NNMi or OpenNMS (I am testing on OpenNMS btw).
I just want to know, what oids are queried by an NMS, to gather enough information to draw the topology?
[EDIT] I can know, what is the MAC of the remote switches connected to any port of a switch, through MAC learning.
The answer depends on what type of topology you want to capture through your ethernet switch. Usually for a layer two switch (which appears to be the case) LLDP MIB (This is an IEEE std implemented by many switches) is quite useful. From what you described above that is you have information about MACs on a port it appears you probably can go this route. There are some other Physical topology MIBs (like RFC2292) that you may want to look at.
You can have a look at the OpenNMS Enhanced Linkd documentation. It will give you some hints which OID's are used to build a Layer-2 topology based on LLDP, CDP and the Bridge MIB. To build it a topology based on the Bridge MIB, OpenNMS has implemented the algorithm described in Topology Discovery for Large Ethernet Networks. You'll find also hints what information is used to build an OSPF and IS-IS topology.
Every NMS uses their proprietary topology discovery.
Depending on what your switch supports, you'll want to consider at least
RFC1213-MIB ipAddrTable, ipRouteTable
IF-MIB ifTable
IP-FORWARD-MIB inetCidrRouteTable
BRIDGE-MIB dot1dTpFdbTable, dot1dStpPortTable
Q-BRIDGE-MIB dot1qTpFdbTable
LLDP-MIB lldpLocPortTable, lldpRemTable
OSPF-MIB
BGP4-MIB
and if you support VLANs, you'll want to describe those.
We have seen other MIBs queried by NMS applications.

Looking for a SIP soft phone for developers

I need a Windows SIP soft phone to test telephony applications. It should be developer-friendly. I must be able to see the log of all the SIP messages exchanged between peers. Ideally, it would allow starting more than one instance (on different ports) to simulate multiple agents in a call center.
I don't like X-Lite as it tries to hide the SIP protocol from the user .
For testing, the KitCAT framework is extremely (Java) developer-friendly. Test cases are written in JUnit, for ease of integration with other tools. It provides logs at varying levels (including SIP messages), and supports multiple user agents, which can all be coordinated within a test case. (The latter is not well supported in other SIP testing tools, such as sipp). It also provides coordination with other protocols (e.g., RTP, HTTP).
It's not a softphone in the traditional sense, but is tremendously helpful in the development process.
SIPp may do what you want. http://sipp.sourceforge.net/
Its not a softphone, but does support multiple instances. You can use Wireshark to see the log of all the SIP messages exchanged.

Monitoring a Apache Karaf/OSGi application via SNMP

We are building OSGi (particularly using Apache Karaf on Equinox) applications that need to be delivered into customer environments that commonly employ SNMP based monitoring tools. Can anyone suggest a cost effective (Open source is ideal, but has to use a license that we can ship as part of our commercial offering) framework/package that will support SNMP? Bonus points for avoiding SNMP API bleeding into the applications bundles we deploy (I'd rather have our developers define JMX MBeans instead). Our customers may dictate the monitoring system we need to plug into for deployment, but we use Nagios for internal testing, so further points for nagios-friendly solutions.
Currently on Github there is an effort to create a webconsole extension for the karaf webconsole that will actively monitor Karaf MBeans and display them in a manner similar to JVisualVM. As of now, that effort has largely been halted due to the rewrite of the karaf webconsole to use Pax-Wicket. That effort is largely completed, so the jmx-webconsole will be rebooted and rewritten in pax-wicket. As committer on that effort, I am going to add the ability to publish jmx mbean information via snmp. Please let me know exactly what you'd expect to see as part of this. If we can provide SNMP support outside of the jmx-webconsole, I'd also consider that.
You could check the monitor specification on OSGi, so all the bundle expose their monitorable object and you need to implement a bundle that expose the monitorable object as snmp or whatever protocol you need.
This links references at the API https://osgi.org/javadoc/r4v41/org/osgi/service/monitor/package-summary.html

Resources