Monday, August 17, 2015

Spine1 and Spine2 Configurations - Arista Spine and Leaf on Virtualbox

Spine1 - configuration

spine1#sh run
! Command: show running-config
! device: spine1 (vEOS, EOS-4.15.0F)
!
! boot system flash:/vEOS-lab.swi
!
transceiver qsfp default-mode 4x10G
!
hostname spine1
!
spanning-tree mode mstp
!
no aaa root
!
username arista privilege 15 secret 5 $1$K3V/gaso$cKa9M9Jx4wYW.E90v3k6C1
!
interface Ethernet1
   no switchport
   ip address 10.180.254.1/30
!
interface Ethernet2
   no switchport
   ip address 10.180.254.5/30
!
interface Ethernet3
   no switchport
   ip address 10.180.254.9/30
!
interface Ethernet4
   no switchport
   ip address 10.180.254.13/30
!
interface Ethernet5
   no switchport
   ip address 10.180.254.17/30
!
interface Ethernet6
   no switchport
   ip address 10.180.254.21/30
!
interface Loopback0
   ip address 10.0.0.251/24
!
interface Management1
   ip address 10.10.10.21/24
!
ip route 0.0.0.0/0 192.168.1.254
!
ip routing
!
router bgp 65000
   maximum-paths 4 ecmp 128
   neighbor 10.180.254.2 remote-as 65101
   neighbor 10.180.254.2 maximum-routes 12000
   neighbor 10.180.254.6 remote-as 65101
   neighbor 10.180.254.6 maximum-routes 12000
   neighbor 10.180.254.10 remote-as 65102
   neighbor 10.180.254.10 maximum-routes 12000
   neighbor 10.180.254.14 remote-as 65102
   neighbor 10.180.254.14 maximum-routes 12000
   neighbor 10.180.254.18 remote-as 65103
   neighbor 10.180.254.18 maximum-routes 12000
   neighbor 10.180.254.22 remote-as 65103
   neighbor 10.180.254.22 maximum-routes 12000
   network 10.0.0.251/32
   network 10.180.254.0/24
!
!
end

spine1#sh ip route

VRF name: default
Codes: C - connected, S - static, K - kernel,
       O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
       E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
       N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
       R - RIP, I - ISIS, A B - BGP Aggregate, A O - OSPF Summary,
       NG - Nexthop Group Static Route

Gateway of last resort:
 S      0.0.0.0/0 [1/0] via 10.180.254.18, Ethernet5
                        via 10.180.254.22, Ethernet6

 B E    10.0.0.1/32 [200/0] via 10.180.254.2, Ethernet1
                            via 10.180.254.6, Ethernet2
 B E    10.0.0.2/32 [200/0] via 10.180.254.2, Ethernet1
                            via 10.180.254.6, Ethernet2
 B E    10.0.0.3/32 [200/0] via 10.180.254.10, Ethernet3
 B E    10.0.0.4/32 [200/0] via 10.180.254.14, Ethernet4
 B E    10.0.0.5/32 [200/0] via 10.180.254.18, Ethernet5
                            via 10.180.254.22, Ethernet6
 B E    10.0.0.6/32 [200/0] via 10.180.254.18, Ethernet5
                            via 10.180.254.22, Ethernet6
 C      10.0.0.0/24 is directly connected, Loopback0
 C      10.10.10.0/24 is directly connected, Management1
 C      10.180.254.0/30 is directly connected, Ethernet1
 C      10.180.254.4/30 is directly connected, Ethernet2
 C      10.180.254.8/30 is directly connected, Ethernet3
 C      10.180.254.12/30 is directly connected, Ethernet4
 C      10.180.254.16/30 is directly connected, Ethernet5
 C      10.180.254.20/30 is directly connected, Ethernet6
 B E    172.16.1.0/24 [200/0] via 10.180.254.2, Ethernet1
                              via 10.180.254.6, Ethernet2
 B E    172.16.2.0/24 [200/0] via 10.180.254.10, Ethernet3
                              via 10.180.254.14, Ethernet4
 B E    172.16.3.0/24 [200/0] via 10.180.254.18, Ethernet5
                              via 10.180.254.22, Ethernet6
 B E    192.168.1.0/24 [200/0] via 10.180.254.18, Ethernet5

                               via 10.180.254.22, Ethernet6

Spine2 - configuration

spine2#sh run
! Command: show running-config
! device: spine2 (vEOS, EOS-4.15.0F)
!
! boot system flash:/vEOS-lab.swi
!
transceiver qsfp default-mode 4x10G
!
hostname spine2
!
spanning-tree mode mstp
!
no aaa root
!
username arista privilege 15 secret 5 $1$pg3sCc5I$VQihCe2v65NMb6MuCLTI60
!
interface Ethernet1
   no switchport
   ip address 10.180.254.129/30
!
interface Ethernet2
   no switchport
   ip address 10.180.254.133/30
!
interface Ethernet3
   no switchport
   ip address 10.180.254.137/30
!
interface Ethernet4
   no switchport
   ip address 10.180.254.141/30
!
interface Ethernet5
   no switchport
   ip address 10.180.254.145/30
!
interface Ethernet6
   no switchport
   ip address 10.180.254.149/30
!
interface Loopback0
   ip address 10.0.0.2/32
!
interface Management1
   ip address 10.10.10.22/24
!
ip route 0.0.0.0/0 192.168.1.254
!
ip routing
!
router bgp 65000
   maximum-paths 4 ecmp 128
   neighbor 10.180.254.130 remote-as 65101
   neighbor 10.180.254.130 maximum-routes 12000
   neighbor 10.180.254.134 remote-as 65101
   neighbor 10.180.254.134 maximum-routes 12000
   neighbor 10.180.254.138 remote-as 65102
   neighbor 10.180.254.138 maximum-routes 12000
   neighbor 10.180.254.142 remote-as 65102
   neighbor 10.180.254.142 maximum-routes 12000
   neighbor 10.180.254.146 remote-as 65103
   neighbor 10.180.254.146 maximum-routes 12000
   neighbor 10.180.254.150 remote-as 65103
   neighbor 10.180.254.150 maximum-routes 12000
   network 10.0.0.252/32
   network 10.180.254.0/24
!
!
end

spine2# sh ip route

VRF name: default
Codes: C - connected, S - static, K - kernel,
       O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
       E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
       N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,
       R - RIP, I - ISIS, A B - BGP Aggregate, A O - OSPF Summary,
       NG - Nexthop Group Static Route

Gateway of last resort:
 S      0.0.0.0/0 [1/0] via 10.180.254.146, Ethernet5
                        via 10.180.254.150, Ethernet6

 B E    10.0.0.1/32 [200/0] via 10.180.254.130, Ethernet1
                            via 10.180.254.134, Ethernet2
 C      10.0.0.2/32 is directly connected, Loopback0
 B E    10.0.0.3/32 [200/0] via 10.180.254.138, Ethernet3
 B E    10.0.0.4/32 [200/0] via 10.180.254.142, Ethernet4
 B E    10.0.0.5/32 [200/0] via 10.180.254.146, Ethernet5
                            via 10.180.254.150, Ethernet6
 B E    10.0.0.6/32 [200/0] via 10.180.254.146, Ethernet5
                            via 10.180.254.150, Ethernet6
 C      10.10.10.0/24 is directly connected, Management1
 C      10.180.254.128/30 is directly connected, Ethernet1
 C      10.180.254.132/30 is directly connected, Ethernet2
 C      10.180.254.136/30 is directly connected, Ethernet3
 C      10.180.254.140/30 is directly connected, Ethernet4
 C      10.180.254.144/30 is directly connected, Ethernet5
 C      10.180.254.148/30 is directly connected, Ethernet6
 B E    172.16.1.0/24 [200/0] via 10.180.254.130, Ethernet1
                              via 10.180.254.134, Ethernet2
 B E    172.16.2.0/24 [200/0] via 10.180.254.138, Ethernet3
                              via 10.180.254.142, Ethernet4
 B E    172.16.3.0/24 [200/0] via 10.180.254.146, Ethernet5
                              via 10.180.254.150, Ethernet6
 B E    192.168.1.0/24 [200/0] via 10.180.254.146, Ethernet5
                               via 10.180.254.150, Ethernet6

Friday, August 14, 2015

Final Model and Hardware Model - Arista on VirtualBox


A slightly revised model.




And the final physical modeling with labels for all IP addressing, Vbox links and the ensuing construct.

Virtual Box Configurations


sw01 - nic5

VBoxManage modifyvm vEOS-l1-sw01 --nic5 intnet

VBoxManage modifyvm vEOS-l1-sw01 --intnet5 "L1-L2.1"

VBoxManage modifyvm vEOS-l1-sw01 --nicpromisc5 allow-vms

VBoxManage modifyvm vEOS-l1-sw01 --nictype5 Am79C973

VBoxManage modifyvm vEOS-l1-sw01 --cableconnected5 on

sw01 - nic6

VBoxManage modifyvm vEOS-l1-sw01 --nic6 intnet

VBoxManage modifyvm vEOS-l1-sw01 --intnet6 "L1-L2.2"

VBoxManage modifyvm vEOS-l1-sw01 --nicpromisc6 allow-vms

VBoxManage modifyvm vEOS-l1-sw01 --nictype6 Am79C973

VBoxManage modifyvm vEOS-l1-sw01 --cableconnected6 on

sw02 - nic5

VBoxManage modifyvm vEOS-l1-sw02 --nic5 intnet

VBoxManage modifyvm vEOS-l1-sw02 --intnet5 "L1-L2.1"

VBoxManage modifyvm vEOS-l1-sw02 --nicpromisc5 allow-vms

VBoxManage modifyvm vEOS-l1-sw02 --nictype5 Am79C973

VBoxManage modifyvm vEOS-l1-sw02 --cableconnected5 on

sw02 - nic6

VBoxManage modifyvm vEOS-l1-sw02 --nic6 intnet

VBoxManage modifyvm vEOS-l1-sw02 --intnet6 "L1-L2.2"

VBoxManage modifyvm vEOS-l1-sw02 --nicpromisc6 allow-vms

VBoxManage modifyvm vEOS-l1-sw02 --nictype6 Am79C973

VBoxManage modifyvm vEOS-l1-sw02 --cableconnected6 on

sw03 - nic5

VBoxManage modifyvm vEOS-l2-sw03 --nic5 intnet

VBoxManage modifyvm vEOS-l2-sw03 --intnet5 "L3-L4.1"

VBoxManage modifyvm vEOS-l2-sw03 --nicpromisc5 allow-vms

VBoxManage modifyvm vEOS-l2-sw03 --nictype5 Am79C973

VBoxManage modifyvm vEOS-l2-sw03 --cableconnected5 on

sw03 - nic6

VBoxManage modifyvm vEOS-l2-sw03 --nic6 intnet

VBoxManage modifyvm vEOS-l2-sw03 --intnet6 "L3-L4.2"

VBoxManage modifyvm vEOS-l2-sw03 --nicpromisc6 allow-vms

VBoxManage modifyvm vEOS-l2-sw03 --nictype6 Am79C973


VBoxManage modifyvm vEOS-l2-sw03 --cableconnected6 on

sw04 - nic5

VBoxManage modifyvm vEOS-l2-sw04 --nic5 intnet

VBoxManage modifyvm vEOS-l2-sw04 --intnet5 "L3-L4.1"

VBoxManage modifyvm vEOS-l2-sw04 --nicpromisc5 allow-vms

VBoxManage modifyvm vEOS-l2-sw04 --nictype5 Am79C973

VBoxManage modifyvm vEOS-l2-sw04 --cableconnected5 on

sw04 - nic6

VBoxManage modifyvm vEOS-l2-sw04 --nic6 intnet

VBoxManage modifyvm vEOS-l2-sw04 --intnet6 "L3-L4.2"

VBoxManage modifyvm vEOS-l2-sw04 --nicpromisc6 allow-vms

VBoxManage modifyvm vEOS-l2-sw04 --nictype6 Am79C973


VBoxManage modifyvm vEOS-l2-sw04 --cableconnected6 on

sw05 - nic5

VBoxManage modifyvm vEOS-l3-sw05 --nic5 intnet

VBoxManage modifyvm vEOS-l3-sw05 --intnet5 "L5-L6.1"

VBoxManage modifyvm vEOS-l3-sw05 --nicpromisc5 allow-vms

VBoxManage modifyvm vEOS-l3-sw05 --nictype5 Am79C973

VBoxManage modifyvm vEOS-l3-sw05 --cableconnected5 on

sw05 - nic6

VBoxManage modifyvm vEOS-l3-sw05 --nic6 intnet

VBoxManage modifyvm vEOS-l3-sw05 --intnet6 "L5-L6.2"

VBoxManage modifyvm vEOS-l3-sw05 --nicpromisc6 allow-vms

VBoxManage modifyvm vEOS-l3-sw05 --nictype6 Am79C973

VBoxManage modifyvm vEOS-l3-sw05 --cableconnected6 on

sw05 - nic7

VBoxManage modifyvm vEOS-l3-sw05 --nic7 bridged

VBoxManage modifyvm vEOS-l3-sw05 --bridgeadapter7 "eth0"

VBoxManage modifyvm vEOS-l3-sw05 --nicpromisc7 deny

VBoxManage modifyvm vEOS-l3-sw05 --nictype7 Am79C973

VBoxManage modifyvm vEOS-l3-sw05 --cableconnected7 on

sw06 - nic5

VBoxManage modifyvm vEOS-l3-sw06 --nic5 intnet

VBoxManage modifyvm vEOS-l3-sw06 --intnet5 "L5-L6.1"

VBoxManage modifyvm vEOS-l3-sw06 --nicpromisc5 allow-vms

VBoxManage modifyvm vEOS-l3-sw06 --nictype5 Am79C973

VBoxManage modifyvm vEOS-l3-sw06 --cableconnected5 on

sw06 - nic6

VBoxManage modifyvm vEOS-l3-sw06 --nic6 intnet

VBoxManage modifyvm vEOS-l3-sw06 --intnet6 "L5-L6.2"

VBoxManage modifyvm vEOS-l3-sw06 --nicpromisc6 allow-vms

VBoxManage modifyvm vEOS-l3-sw06 --nictype6 Am79C973

VBoxManage modifyvm vEOS-l3-sw06 --cableconnected6 on

sw06 - nic7 - link to outside world

VBoxManage modifyvm vEOS-l3-sw06 --nic7 bridged

VBoxManage modifyvm vEOS-l3-sw06 --bridgeadapter7 "eth0"

VBoxManage modifyvm vEOS-l3-sw06 --nicpromisc7 deny

VBoxManage modifyvm vEOS-l3-sw06 --nictype7 Am79C973

VBoxManage modifyvm vEOS-l3-sw06 --cableconnected7 on

Thursday, August 13, 2015

Advancing the Arista design on VirtualBox

Got a little further along in the virtual design.


I wasted a bunch of time trying to get an interface on one of the switches to talk to the "real" world.  If anyone has any ideas about that, please let me know.

Was attempting to use Eth6 on sw06 as the gw and default route out to the world.

Tuesday, August 11, 2015

VirtualBox Arista Emulation - when 4 ports are not enough

So, I was messing around with the 3 switch virtual model and found that the 4 network interfaces in Virtual Box really was insufficient to show off a spine and leaf architecture.

I've done a little research and came around to utilizing the 4 hidden NICs in VirtualBox in order to build out a 3 leaf architecture virtually.

Thanks to eanderalx.org for the tip...https://www.eanderalx.org/virtualization/8_network_card_vbox


Figure 1.  Spine and Leaf Architecture

The Architecture really needs to look like the figure above.  In order to do this, the Spine switches will have to have 7 total network interfaces, 1 management and 6 switch uplinks.

From the eanderalx documentation linked above, I created the table (as per the previous abusedbits blog 3 switch creation).

VM Adapter Network Type Net Name Description IP Address
Spine1 Adapter 1 Host-Only vboxnet0 Management Net 10.10.10.21/24
Adapter 2 Internal Network L1-1 to Leaf 1 sw01
Adapter 3 Internal Network L2-1 to Leaf 1 sw02
Adapter 4 Internal Network L3-1 to Leaf 2 sw03
Adapter 5 Internal Network L4-1 to Leaf 2 sw04
Adapter 6 Internal Network L5-1 to Leaf 3 sw05
Adapter 7 Internal Network L6-1 to Leaf 3 sw06
Adapter 8
Spine2 Adapter 1 Host-Only vboxnet0 Management Net 10.10.10.22/24
Adapter 2 Internal Network L1-2 to Leaf 1 sw01
Adapter 3 Internal Network L2-2 to Leaf 1 sw02
Adapter 4 Internal Network L3-2 to Leaf 2 sw03
Adapter 5 Internal Network L4-2 to Leaf 2 sw04
Adapter 6 Internal Network L5-2 to Leaf 3 sw05
Adapter 7 Internal Network L6-2 to Leaf 3 sw06
Adapter 8
Leaf 1 sw01 Adapter 1 Host-Only vboxnet0 Management Net 10.10.10.31/24
Adapter 2 Internal Network L1-1 to Spine1 Eth 1
Adapter 3 Internal Network L1-2 to Spine2 Eth 1
Adapter 4 Internal Network L1-L2 to Leaf 1 sw02
Leaf 1 sw02 Adapter 1 Host-Only vboxnet0 Management Net 10.10.10.32/24
Adapter 2 Internal Network L2-1 to Spine1 Eth 2
Adapter 3 Internal Network L2-2 to Spine2 Eth 2
Adapter 4 Internal Network L1-L2 to Leaf 1 sw01
Leaf 2 sw03 Adapter 1 Host-Only vboxnet0 Management Net 10.10.10.33/24
Adapter 2 Internal Network L3-1 to Spine1 Eth 3
Adapter 3 Internal Network L3-2 to Spine2 Eth 3
Adapter 4 Internal Network L3-L4 to Leaf 2 sw04
Leaf 2 sw04 Adapter 1 Host-Only vboxnet0 Management Net 10.10.10.34/24
Adapter 2 Internal Network L4-1 to Spine1 Eth 4
Adapter 3 Internal Network L4-2 to Spine2 Eth 4
Adapter 4 Internal Network L3-L4 to Leaf 2 sw03
Leaf 3 sw05 Adapter 1 Host-Only vboxnet0 Management Net 10.10.10.35/24
Adapter 2 Internal Network L5-1 to Spine1 Eth 5
Adapter 3 Internal Network L5-2 to Spine2 Eth 5
Adapter 4 Internal Network L5-L6 to Leaf 3 sw06
Leaf 3 sw06 Adapter 1 Host-Only vboxnet0 Management Net 10.10.10.36/24
Adapter 2 Internal Network L6-1 to Spine1 Eth 6
Adapter 3 Internal Network L6-2 to Spine2 Eth 6
Adapter 4 Internal Network L5-L6 to Leaf 3 sw03






Table 1.  Layout of interfaces

As a note, I'm retaining the VM's created for the purpose of the previous blog exercise, and using the 10.10.10.10 linux server host as the jump box for the environment.

In order to get the 8 switches, I simply re-cloned 8 switches from the original switch from the Arista virtual lab (previous blog).

The table above leads to the following configurations for VBoxManage to get to the associated network interfaces enabled on the Spine switches.  You could do the same for the 1-4 interfaces, but I chose to use the GUI (mostly because I was experimenting).

Spine1 - nic5 config

$VBoxManage modifyvm vEOS-spine1 --nic5 intnet

$VBoxManage modifyvm vEOS-spine1 --intnet5 "L4-1"

$VBoxManage modifyvm vEOS-spine1 --nicpromisc5 allow-vms

$VBoxManage modifyvm vEOS-spine1 --nictype5 Am79C973

$VBoxManage modifyvm vEOS-spine1 --cableconnected5 on

Spine1 - nic6

$VBoxManage modifyvm vEOS-spine1 --nic6 intnet

$VBoxManage modifyvm vEOS-spine1 --intnet6 "L5-1"

$VBoxManage modifyvm vEOS-spine1 --nicpromisc6 allow-vms

$VBoxManage modifyvm vEOS-spine1 --nictype6 Am79C973

$VBoxManage modifyvm vEOS-spine1 --cableconnected6 on

Spine1 - nic7

$VBoxManage modifyvm vEOS-spine1 --nic7 intnet

$VBoxManage modifyvm vEOS-spine1 --intnet7 "L6-1"

$VBoxManage modifyvm vEOS-spine1 --nicpromisc7 allow-vms

$VBoxManage modifyvm vEOS-spine1 --nictype7 Am79C973


$VBoxManage modifyvm vEOS-spine1 --cableconnected7 on

Spine2 - nic5

$VBoxManage modifyvm vEOS-spine2 --nic5 intnet

$VBoxManage modifyvm vEOS-spine2 --intnet5 "L4-2"

$VBoxManage modifyvm vEOS-spine2 --nicpromisc5 allow-vms

$VBoxManage modifyvm vEOS-spine2 --nictype5 Am79C973

$VBoxManage modifyvm vEOS-spine2 --cableconnected5 on

Spine2 - nic6

$VBoxManage modifyvm vEOS-spine2 --nic6 intnet

$VBoxManage modifyvm vEOS-spine2 --intnet6 "L5-2"

$VBoxManage modifyvm vEOS-spine2 --nicpromisc6 allow-vms

$VBoxManage modifyvm vEOS-spine2 --nictype6 Am79C973

$VBoxManage modifyvm vEOS-spine2 --cableconnected6 on

Spine2 - nic7

$VBoxManage modifyvm vEOS-spine2 --nic7 intnet

$VBoxManage modifyvm vEOS-spine2 --intnet7 "L6-2"

$VBoxManage modifyvm vEOS-spine2 --nicpromisc7 allow-vms

$VBoxManage modifyvm vEOS-spine2 --nictype7 Am79C973

$VBoxManage modifyvm vEOS-spine2 --cableconnected7 on

Once completed, I followed the remaining instructions from 

https://eos.arista.com/building-a-virtual-lab-with-arista-veos-and-virtualbox/

using 8 switches instead of 3 and the table and NIC scripts from above.

Picture 1.  Arista Spine and Leaf in Virtual existence on VirtualBox

This is running with a fair penalty on the memory of the box though.  Mem watch shown below....  But it does work.....

$  watch -n 5 free -m

Every 5.0s: free -m                                     Tue Aug 11 15:07:51 2015

             total       used       free     shared    buffers     cached

Mem:         32038      31735        302        401        157      13337
-/+ buffers/cache:      18240      13797
Swap:        32627          0      32627

Good luck fellow bit abusers!



Arista EOS virtual lab with VirtualBox

Felt like abusing some bits today and had about an hour available.

I followed the instructions at this site:

https://eos.arista.com/building-a-virtual-lab-with-arista-veos-and-virtualbox/

Only complaint I had, I'm using an Ubuntu Desktop and the setup of the hostonly network required a little digging.


System this is running on:

Core i7
32GB mem
500 GB SSD

Using 8.6GB total (including OS), so this can run on a smaller machine.

Friday, June 26, 2015

CiscoVIRL

http://virl.cisco.com/

Was just in a webinar promoted by sdx central about Cisco VIRL.

My initial impression is that it is a very nice and much needed tool for doing virtual network testing.

If you're in networking and interested in the ability to create virtual test systems, follow the link above.

Friday, May 15, 2015

OpenStack Installation - the interesting way

I'm working through the OpenStack on a single system installation method from

https://fosskb.wordpress.com/2014/10/18/openstack-juno-on-ubuntu-14-10/

mostly because I'm a masochist, but also because I really wanted to get a feeling for where everything is at, where it goes and what the basis for the installation is.

Some things that came back to me from the first part of the installation

a)  touch is an awesome command
b)  should I put in a password for mysql or not (I chose not to because it's a lab for me, but probably not a good idea in a production environment)
c)  pay attention to the purpose of the command (I accidentally added two keystone endpoints that caused the subsequent commands to report two 'keystone' in with different IDs.  Still hoping I deleted the correct one if there was a correct one to delete which I can't seem to figure out yet)
d)  downloaded an image to glance and was able to report it back in image list when I was done, which was pretty cool

Will be starting on Nova as soon as I get back to it.

Wish me luck!