KVM bridge with Bonding on Ubuntu

I was running into a bunch of problems with KVM bridging and Ubuntu Bonding (LACP) but I was able to resolve this by using the following network config:

Printout from /etc/network/interfaces

LACP Bonding Image

LACP Bonding

 

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Child Networking interfaces
auto eth0
iface eth0 inet manual
bond-master bond0
bond-primary eth0

auto eth1
iface eth1 inet manual
bond-master bond0

#Bond mode load-balancing LACP fast
auto bond0
iface bond0 inet manual
bond-mode 4
bond-miimon 1000
bond-lacp-rate 1
bond-slaves eth0 eth1

#Bridged networking interfaces
auto br0
iface br0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 8.8.8.8
dns-search nertwork.com
bridge_ports bond0
bridge_stp off
bridge_fd 0
bridge_maxwait 0

 

 

Minute MTR

Have you ever needed to run an MTR, (basically a traceroute) and save it to a file and then delete the files after a specified amount of time? I have had this need so I wrote this simple Ruby Script available on GITHUB.

https://github.com/nertwork/minute_mtr

You can just run this in any terminal after you have installed git by issuing the following:

git pull https://github.com/nertwork/minute_mtr.git

Directions are available in the file, the readme or by using the -h  flag.

 

Cumulus Linux U-Boot Errors

I kept on having problems booting one of my Cumulus Linux switches, it was throwing the following error:

Success: Found uboot-env mtd partition
Failure: Unable to find sysroot2 partition…
Spawning debug shell so you can have a look …

U-BOOT ERRORS
UBOOT ERRORS

I have attached the files that we will move to the switch via TFTP at the bottom of this post.

WARNING, DO NOT USE FILES UNLESS YOU HAVE A 6448 GIG SWITCH!

First we set the IP address:

cumulus_switch-> setenv ipaddr 192.168.1.10 
cumulus_switch-> setenv netmask 255.255.255.0
cumulus_switch-> setenv gatewayip 192.168.1.10
cumulus_switch-> setenv serverip 192.168.1.2

 

Next we will do a printenv save this as you will compare this in later steps:

cumulus_switch-> printenv

Next we setup the Environment to boot into Onie

cumulus_switch-> setenv q1start 0xffb00000
cumulus_switch-> setenv q1sz.b 0x00400000
cumulus_switch-> tftp onie-dni_6448-r0.bin

We will see something like this:

Speed: 100, full duplex
Using eth0 device
TFTP from server 192.168.1.2; our IP address is 192.168.1.10
Filename 'onie-dni_6448-r0.bin'.
Load address: 0x8000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
##################################################
done

Next we will remove protection from the U-Boot Bootloader

cumulus_switch-> protect off $q1start +${q1sz.b} && erase $q1start +${q1sz.b}

You will see something like this:

 ................ done
Un-Protected 16 sectors

................ done
Erased 16 sectors

Now we will move the file that we copied via TFTP to the system:

cumulus_switch-> cp.b $fileaddr $q1start
cumulus_switch-> md $q1start
cumulus_switch-> md 0xffe00000
cumulus_switch-> md 0xff800000

You will see various printouts from the file information by after typing md with HEX values

Next we protect the startup file:

cumulus_switch-> protect on $q1start +${q1sz.b}

And we will do the same thing for the new uboot+env:

cumulus_switch-> setenv q2start 0xfff40000
cumulus_switch-> setenv q2sz.b 0x000c0000
cumulus_switch-> tftp onie-dni_6448-r0.bin.uboot+env

cumulus_switch-> protect off $q2start +${q2sz.b} && erase $q2start +${q2
cumulus_switch-> protect off $q2start +${q2sz.b} && erase $q2start +${q2
...... done
Un-Protected 6 sectors

...... done
Erased 6 sectors
cumulus_switch-> cp.b $fileaddr $q2start ${q2sz.b}
Copy to Flash... 9....8....7....6....5....4....3....2....1....done

cumulus_switch-> md $q2start
cumulus_switch-> md 0xfff80000
cumulus_switch-> protect on $q2start +${q2sz.b}

Now we will compare our printenv to what we had before moving over the new files and it should be the same.

cumulus_switch-> printenv

Now we will reset into the U-Boot again:

cumulus_switch-> reset

Writing to Flash... 9....8..9....8....7....6....5....4....3....2....1....done
. done
Protected 1 sectors

Press space bar now to get into the U-Boot prompt to run Onie:

Hit any key to stop autoboot: 0

cumulus_switch-> run onie_rescue

WARNING, DO NOT USE FILES UNLESS YOU HAVE A 6448 GIG SWITCH!
Files are Hosted at DreamObjects here:

onie-dni_6448-r0.bin.uboot+env
onie-dni_6448-r0.bin

What is Software Defined Networking or SDN?

What is software Defined Networking:

Wikipedia Says This

I have found that all of the major players are bringing out products that qualify for a type of Software Defined Networking.  This is great because as Networking Administrators and Networking Engineers

we can use controller based configuration in order to deploy networks faster and with more ease. I’m also looking at this in terms of rolling out entire servers, complete with networking, in an environment in a short amount of time. I can’t wait until we get our hands on some of the SDN gear!

DreamHost Uses SDN

Cisco Open Network Environment – Cisco Systems.

Software Defined Networking for increased agility – Juniper Networks.