Posted on October 20, 2015 1:26 pm
 |  Asked by Alessandro Carpi
 |  1662 views
RESOLVED
0
1
Print Friendly, PDF & Email

Hi,

We would like to use the vEOS image with more than 8 interfaces.  We are using VirtualBox, which does support more NICs if we configure the System/Chipset to ICH9, as shown in this image.

However, when we make this change, we are not able to pass traffic out the interfaces, at least not using the “Host-only” adapter type in “virtio” mode, as shown in this image: (trying to ping between my laptop and the vEOS Management1 interface).  If we use the vEOS in it’s original chipset mode (PIIX3) we can ping A-OK with the same network settings.

Could you please confirm if the vEOS can support ICH9 mode, and if so, what Network settings we need to apply in order for this to work?

Thanks!

Alessandro

 

0
Posted by Alexis Dacquay
Answered on October 20, 2015 8:26 pm

Hi Allesandro,

 

VirtualBox is limited to 8 interfaces. ICH9 is not valid for vEOS.

You can achieve more than 8 interfaces with Linux KVM / QEMU.
Below are some notes from my colleague Gary A. Donahue :
It requires OpenVSwitch, which you will need to install. You will need to start all networking *before* you launch any VMs.
Here’s how to start a bridge in OpenVSwitch. You will need one for every single link between switches.
ovs-vsctl add-br St01-Spine1
To get LLDP working in your bridges, do not enable LLDP on the host (or you’ll see the host on every int), add this instead to each bridge:
/usr/bin/ovs-vsctl set bridge St01-Spine1 other-config:forward-bpdu=true
 
To list what bridges are active in OpenVSwitch:
 
/usr/bin/ovs-vsctl list-br
To use KVM bridges, remove this line from each int:
      <virtualport type=’openvswitch’/>
 
Note that this XML file does not have MTU configured. To add that, add this to each int: 
 
      <mtu size=”9214”/>
The below XML cinfug is just a sample example that would need to be polished and tested. It is relatively well commented.
Other notes:
1) You must use the ”Serial” version of Aboot. (2.0.8 recommended, as it seems new versions of QEMU break 2.1.0, but if possible to work then the latest 2.1.0 is preferable)
2) You’ll need vEOS 4.14+ for this to work with more than.
With this XML file:
Start VM:     virsh create Test.xml
Destroy VM: virsh destroy Test
List VMs running: virsh list
 
Note that the ”Start” uses an XML file, while the ”Destroy” uses the VM name. 
 
Console into VM: virsh console Test
Here’s the XML:
<domain type=’kvm’>
 
  <!– Name of VM as it appears to KVM –>
  <name>Test</name>
 
  <!– use ’uuidgen’ from bash to generate a new UUID if needed –>
  <uuid>f5b8c05b-9c7a-3211-49b9-2bd635f7e2aa</uuid>
 
  <!– Memory – both should match –>
  <memory unit=’KiB’>2097152</memory>
  <currentMemory unit=’KiB’>2097152</currentMemory>
 
  <!– One CPU for vEOS in a lab is fine –>
  <vcpu placement=’static’>1</vcpu>
 
  <!– This works for Ubuntu 14.04 LTS –>
  <!– Note – Boot dev cdrom must come first for vEOS –>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch=’x86_64’ machine=’pc-1.0-qemu-kvm’>hvm</type>
    <boot dev=’cdrom’/>
    <boot dev=’hd’/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
 
  <clock offset=’utc’/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
 
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
 
    <!– vEOS File System – must be different for each VM –>
    <disk type=”file” device=”disk”>
      <driver name=”qemu” type=”vmdk”/>
      <source file=”/var/lib/libvirt/images/Test/vEOS-lab-4.14.5F.vmdk”/>
      <target dev=”hda” bus=”ide”/>
      <alias name=’ide0-0-0’/>
      <address type=”drive” controller=”0” bus=”0” target=”0” unit=”0”/>
    </disk>
 
    <!– aboot CD-ROM Device –>
    <disk type=”file” device=”cdrom”>
      <driver name=”qemu” type=”raw”/>
      <source file=”/var/lib/libvirt/images/Test/Aboot-veos-serial-2.1.0.iso”/>
      <target dev=”hdc” bus=”ide”/>
      <readonly/>
      <alias name=’ide0-1-0’/>
      <address type=”drive” controller=”0” bus=”1” target=”0” unit=”0”/>
    </disk>
 
    <!– USB Device –>
    <controller type=’usb’ index=’0’>
      <alias name=’usb0’/>
      <address type=’pci’ domain=’0x0000’ bus=’0x00’ slot=’0x01’ function=’0x2’/>
    </controller>
 
    <!– IDE Device (Required for vEOS) –>
    <controller type=’ide’ index=’0’>
      <alias name=’ide0’/>
      <address type=’pci’ domain=’0x0000’ bus=’0x00’ slot=’0x01’ function=’0x1’/>
    </controller>
 
    <!– Interfaces –>
    <!– Note – if one doesn’t load, the rest will be renumbered –>
 
    <!– Management 1 –>
    <interface type=’bridge’>
      <mac address=’52:54:00:fa:01:00’/>
      <virtualport type=’openvswitch’/>
      <source bridge=’St01-Core’/>
      <target dev=’St01-m1’/>
      <model type=’virtio’/>
    </interface>
 
    <!– Ethernet 1 –>
    <interface type=’bridge’>
      <mac address=’52:54:00:fa:01:01’/>
      <virtualport type=’openvswitch’/>
      <source bridge=’Default’/>
      <target dev=’St01-e1’/>
      <model type=’virtio’/>
      <link state=’down’/>
    </interface>
 
    <!– Ethernet 2 –>
    <interface type=’bridge’>
      <mac address=’52:54:00:fa:01:02’/>
      <virtualport type=’openvswitch’/>
      <source bridge=’Default’/>
      <target dev=’St01-e2’/>
      <model type=’virtio’/>
      <link state=’down’/>
    </interface>
 
    <!– Ethernet 3 –>
    <interface type=’bridge’>
      <mac address=’52:54:00:fa:01:03’/>
      <virtualport type=’openvswitch’/>
      <source bridge=’Default’/>
      <target dev=’St01-e3’/>
      <model type=’virtio’/>
      <link state=’down’/>
    </interface>
 
    <!– Ethernet 4 –>
    <interface type=’bridge’>
      <mac address=’52:54:00:fa:01:04’/>
      <virtualport type=’openvswitch’/>
      <source bridge=’Default’/>
      <target dev=’St01-e4’/>
      <model type=’virtio’/>
      <link state=’down’/>
    </interface>
 
    <!– Ethernet 5 –>
    <interface type=’bridge’>
      <mac address=’52:54:00:fa:01:05’/>
      <virtualport type=’openvswitch’/>
      <source bridge=’St01-DANZ1’/>
      <target dev=’St01-e5’/>
      <model type=’virtio’/>
    </interface>
 
    <!– Ethernet 6 –>
    <interface type=’bridge’>
      <mac address=’52:54:00:fa:01:06’/>
      <virtualport type=’openvswitch’/>
      <source bridge=’St01-DANZ2’/>
      <target dev=’St01-e6’/>
      <model type=’virtio’/>
    </interface>
 
    <!– Ethernet 7 –>
    <interface type=’bridge’>
      <mac address=’52:54:00:fa:01:07’/>
      <virtualport type=’openvswitch’/>
      <source bridge=’St01-Spine1’/>
      <target dev=’St01-e7’/>
      <model type=’virtio’/>
    </interface>
 
    <!– Ethernet 8 –>
    <interface type=’bridge’>
      <mac address=’52:54:00:fa:01:08’/>
      <virtualport type=’openvswitch’/>
      <source bridge=’St01-Spine2’/>
      <target dev=’St01-e8’/>
      <model type=’virtio’/>
    </interface>
 
    <!– Ethernet 9 –>
    <interface type=’bridge’>
      <mac address=’52:54:00:fa:01:09’/>
      <virtualport type=’openvswitch’/>
      <source bridge=’St01-St02-1’/>
      <target dev=’St01-e9’/>
      <model type=’virtio’/>
    </interface>
 
    <!– Ethernet 10 –>
    <interface type=’bridge’>
      <mac address=’52:54:00:fa:01:10’/>
      <virtualport type=’openvswitch’/>
      <source bridge=’St01-St02-2’/>
      <target dev=’St01-e10’/>
      <model type=’virtio’/>
    </interface>
 
    <!– Console –>
    <serial type=’pty’>
      <source path=’/dev/pts/4’/>
      <target port=’0’/>
      <alias name=’serial0’/>
    </serial>
    <console type=’pty’ tty=’/dev/pts/4’>
      <source path=’/dev/pts/4’/>
      <target type=’serial’ port=’0’/>
      <alias name=’serial0’/>
    </console>
 
    <!– Psuedo Display –>
    <graphics type=’vnc’ port=’5901’ autoport=”yes” listen=’127.0.0.1’>
      <listen type=’address’ address=’127.0.0.1’/>
    </graphics>
 
  </devices>
</domain>
Regards,
Alexis and Gary
0
Posted by Roger Wilco
Answered on December 2, 2015 4:48 am

Using Qemu 2.4.1, I’ve been able to get it up to 16 interfaces. I’ll try 24 or more at a later date.

0
Posted by Somansh Somansh
Answered on June 19, 2018 6:04 am

Hi Alessandro, Alexis and Gary

The latest Virtual box support 36 adapters (http://www.oracle.com/us/corporate/press/1842885) but while creating VMs on virtual box, it does not add more than 8 ports. Did you face any issues recently?

I am using the below VagrantFile to create files on my Ubuntu server.

Vagrant.configure(2) do |config|

# SPINE1 ##########
config.vm.define “spine1” do |spine1|
spine1.vm.box = “vEOS-lab-4.19.7M-virtualbox.box”
spine1.vm.box_url = “http://kook.qualcomm.com/arista/vEOS-lab-4.19.7M-virtualbox.box”
spine1.vm.network “private_network”, virtualbox__intnet: “mgmt-ss”, auto_config: false
spine1.vm.network “private_network”, virtualbox__intnet: “sp1swp2_lf1swp4-ss”, auto_config: false
spine1.vm.network “private_network”, virtualbox__intnet: “sp1swp3_lf2swp4-ss”, auto_config: false
spine1.vm.network “private_network”, virtualbox__intnet: “sp1swp4_lf3swp4-ss”, auto_config: false
spine1.vm.network “private_network”, virtualbox__intnet: “sp1swp5_lf4swp4-ss”, auto_config: false
spine1.vm.network “private_network”, virtualbox__intnet: “sp1swp6_lf5swp4-ss”, auto_config: false
spine1.vm.network “private_network”, virtualbox__intnet: “sp1swp7_lf6swp4-ss”, auto_config: false
spine1.vm.network “private_network”, virtualbox__intnet: “sp1swp8_lf7swp4-ss”, auto_config: false
spine1.vm.network “private_network”, virtualbox__intnet: “sp1swp9_lf8swp4-ss”, auto_config: false
spine1.vm.network “private_network”, virtualbox__intnet: “sp1swp10_lf9swp4-ss”, auto_config: false
spine1.vm.network “private_network”, virtualbox__intnet: “sp1swp11_lf10swp4-ss”, auto_config: false
spine1.vm.network “private_network”, virtualbox__intnet: “sp1swp12_lf11swp4-ss”, auto_config: false
spine1.vm.network “private_network”, virtualbox__intnet: “sp1swp13_lf12swp4-ss”, auto_config: false
end

end

Thanks and Regards,
Somansh

Post your Answer

You must be logged in to post an answer.