SDN test environment - raspberry-pi

I've started learning Software Defined Network and therefore I need a testing environment to understand as well.
Like other network testing environment, I realized that I need a simulator or emulator like GNS3. Recently, I've found OpenFlow vSwitch but couldn't get enough.
The question is, how can I run an SDN testing environment on Linux, Raspberry Pi, etc?
Any information would be appreciated.

If you want to setup a SDN environment for learning purpose then best tool is mininet. It is very easy to install and setup.you can also find lot of tutorials online.
You can refer this link for its installation and basic understanding : https://konquerouter.wordpress.com/2017/11/24/learning-sdn-software-defined-networking-concept-with-mininet/

Related

configure already deployed yocto build / flashing os with wifi

I got my hands on an already deployed yocto system (yocto 2.6.2 - thud) on a board with a NXP i.MX 6UL Cortex-A7. My only possible access at the moment is via wifi. I have access as root via wifi with ssh. The board is embedded into a case which I can't open. So no physical access to that board - just wifi.
My further intention is to setup/deploy/flash my own OS (yocto/debian/etc.) onto this board, but I have no proper knowledge to do so...
Is it even possible to flash a new image only with wifi access?
Which step is the next one I should consider?
Are there any documentations to start with?
Thanks
From your comments, I mention that you have the Variscite DART-6UL module. The producer of your module provides a wiki with lots of information and tutorials on how to start work with. Variscite DART-6UL Wiki
How to build your yocto system
Ready solution for update - SWUpdate Guide
Using SWUpdate is the easiest way to achieve updates for your module.
Custom solution:
Another way is to develop your own mechanism. In this case, you can do developed all processes and make them fully automatic, but it is complicated and required knowledge and experience.
For development boot from the server
For the development time, it can be useful to use booting from TFTP/NFS server. More information here
Other help sources:
Yocto Project - System Update
SWUpdate: software update for
embedded system
Updating Embedded Linux Devices: SWUpdate

Learning to use Kuberentes on one single computer

I'm in the need of learning how to use Kubernetes. I've read the first sentences of a couple of introductory tutorials, and never have found one which explains me, step by step, how to build a simulated real world example on a single computer.
Is Kubernetes by nature so distributed that even the 101-level tutorials can only be performed on clusters?
Or can I learn (execute important examples) the important stuff there is to know by just using my Laptop without needing to use a stack of Raspberry Pi's, AWS or GCP?
The easiest might be minikube.
Minikube is a tool that makes it easy to run Kubernetes locally.
Minikube runs a single-node Kubernetes cluster inside a VM on your
laptop for users looking to try out Kubernetes or develop with it
day-to-day.
For a resource that explains how to use this, try this getting started guide. It runs through an entire example application using a local development environment.
If you are okay with using Google Cloud Platform (I think one gets free credits initially), there is hello-node.
If you want to run the latest and greatest (not necessary stable) and you're using Linux, is also possible to spin up a local cluster on Linux from a cloned copy of the kubernetes sources, using hack/local_up_cluster.sh.

Installer for Software? Paas?

currently I'm looking for an open source project that gives me the opportunity to install software easily. I prefer direct calls or access with a REST interface.
I thought that CloudFoundry would fits my needs but it is'nt so.
AppFog (https://www.appfog.com/product/) comes much closer to my goal. It allows me to install Drupal, Wordpress, PhpMyAdmin, NodeJS Apps and so on.
The conclusion is that I'm looking for an project that...
is open source.
gives that possibility to install, configure and
uninstall software
is extendable when a specific software not
available
is accessible with an interface like REST.
is "hostable" on my own linux server
I would be happy for all kind of hints and tips :)
Cheers Tobias
Docker is seems to be the next big thing in the PaaS world. There are dozens new projects that build on top of docker or supporting it. For example OpenShift and Apache Stratos support docker. So if you look at solutions based on docker you can find a solution for you needs.
Right now I'm using docker for hosting couple of Drupal websites with simple bash scripts to manage them. Nginx is used for web traffic routing
Docker is open source
Gives you ability to prepare and install apps
You can build what you need on top of it
It has REST interface
It is running on nearly all major Linux distros
Its relatively easy to learn and use
Has great community
Tobias,
Suggest you look at Apache Stratos:
100% open source
Easy to Get Up and Running
Highly extensible, flexible, expandable
Uses REST APIs
Runs on Linux (Ubuntu or SUSE)
Mature (version 4)
See:
Intro article -- "Why Apache Stratos is the Preferred Choice in the PaaS Space"
http://wso2.com/library/articles/2014/05/why-apache-stratos-is-the-preferred-choice-in-the-paas-space/
Apache Stratos Project site -- which notes that "Stratos PaaS is easy to get it up and running in quick time. A developer will be able to run and test PaaS framework on a single machine to try out."
http://stratos.apache.org/
Cheers,
Michael
OpenShift is what you looking for :
it is open source and free for 3 gears for ever.
gives that possibility to install, configure and uninstall software in openshift.redhat.com or in rhc client tools.
it is extendable when a specific software not available is accessible throw DIY(Do it yourself)
with an REST interface
is "hostable" on Fedora or CentOS .
It is really easy to setup throw Eclipse.

Raspberry Pi provider for Vagrant?

I'm currently evaluating Vagrant, and so far I really like what I've seen. As per default Vagrant uses Virtual Box as VM, but can also use other local or remote targets, as long as there's a provider for it, e.g. VMware or Amazon.
Now I'd like to use Vagrant to deploy a VM to a Raspberry Pi. Is this possible?
I know that in the end this means I need to run some kind of virtualization on the Pi (and it's a definitely reasonable question whether that's a good idea at all, but I'm curious).
Is this possible? If so, how?
Please note that I first asked this on ServerFault, but the question does not fit there, as they don't see RasPis as "real" servers … hence I am re-asking the question here.
One possible route would be to use Vagrant to manage the state of the image locally, and then use qemu-img to convert the vmdk to an img file and flash that to the SD card.

Microsoft Robotics Development Studio simulation project deployment

I am currently working on a project in Microsoft Robotics Development Studio, and I am having a little trouble deploying the solution for general use.
My problem is this. I am making a simulation, so I need to deploy the simulation engine along with my project. This is dependent on the Ageia PhysX engine, DirectX, and the Microsoft XNA framework. I understand this, and I understand that the deployment tool for MRDS (dssdeploy) isn't set up to deploy simulations by default. So, if anyone has worked with MRDS before, and has deployed a simulation, I could use some help with this.
Unfortunately, dssdeploy does not work with simulation projects. It won't package up all the required simulation libraries. I believe the reason for this is due to license and/or install issues for PhysX, DirectX, and XNA. I think you can still zip up your own service with dssdeploy, but you will have to have your target user install RDS first, then un-deploy your service.
FYI, because of this and many other headaches using dssdeploy, I have stopped using it to distribute my code. I simply zip up my service, then tell the end user to run dssprojectmigration on the code after they un-zip it.