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