{"id":5361,"date":"2012-10-27T11:38:45","date_gmt":"2012-10-27T15:38:45","guid":{"rendered":"http:\/\/www.gad.net\/Blog\/?p=5361"},"modified":"2014-05-07T15:47:40","modified_gmt":"2014-05-07T19:47:40","slug":"building-a-virtual-lab-with-arista-veos-and-virtualbox","status":"publish","type":"post","link":"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/","title":{"rendered":"Building a Virtual Lab with Arista vEOS and VirtualBox"},"content":{"rendered":"<p><a class=\"zoom\" href=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/Virtualbox_Arista_Logos-whtbk.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-5453\" title=\"Virtualbox_Arista_Logos-whtbk\" src=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/Virtualbox_Arista_Logos-whtbk-300x200.png\" alt=\"\" width=\"300\" height=\"200\" \/><\/a>It&#8217;s no secret that I love Arista switches. When I wrote Arista Warrior, I was lucky enough to have a loaner switch from Arista in my home lab, but sadly they made me give it back. Since Arista is a relative newcomer to the world of Networking, there isn&#8217;t a pile of used Arista gear on eBay, so I can&#8217;t build a killer lab at home without spending thousands of dollars. As much as I love Arista switches, I&#8217;d rather spend my spare cash on <del>guitars<\/del> my wife and kids.<\/p>\n<p>Understanding the plight of cash-strapped networking guys the world over, Arista has released a virtual-machine-ready version of their fabulous switch operating system, EOS. Currently this is only available to existing Arista customers, so see your Arista sales rep to get a copy. Please don&#8217;t ask me for a copy, since I will not send you a copy no matter how much you beg. Arista has hinted that they may release this into the general population, in which case I may build a Virtual Box appliance to share. Until then, you&#8217;ll need to read on and build it yourself.<!--more--><\/p>\n<h3>Equipment Used<\/h3>\n<p>I&#8217;ve built this lab using my Macbook Pro that has an Intel i7 processor with 16GB of RAM. The OS in use is Mountain Lion (OSX v10.7.5). I&#8217;m using VirtualBox for Mac v4.2.1 (r80871), and vEOS v 4.10.2. I&#8217;ve configured each VM to have one CPU, and 1GB of RAM. Real Arista switches ship with at least 4GB of RAM, but this is a lab after all, so 1GB should be fine. You can further tune them down to 512MB each, and they&#8217;ll run, but they&#8217;ll have little (if any) free memory. If you&#8217;ve got the RAM, I&#8217;d stick to 1GB for each VM.<\/p>\n<p>Virtual machines are possible using a variety of tools, so why did I choose VirtualBox? Mainly because it&#8217;s free, and this way anyone with access to the vEOS files would be able to follow along. Also because it&#8217;s available on many host operating systems. Did I mention that it&#8217;s free? I love free things, especially when they&#8217;re useful!<\/p>\n<p>Using the lab as shown requires that you have a clue about linux, because I will not go into detail about installing it. You can build it without the Linux server if you&#8217;d like, and the switches will still work. The Linux server adds useful functionality for things like uploading code, learning ZTP, and so-on.<\/p>\n<h3>The Network We&#8217;ll Build<\/h3>\n<p><a class=\"zoom\" href=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/vEOS-Lab-Physical.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-5363\" title=\"vEOS Lab - Physical\" src=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/vEOS-Lab-Physical-300x204.png\" alt=\"\" width=\"300\" height=\"204\" \/><\/a> We&#8217;ll be building the network shown to the right. I originally started with a different concept, but quickly discovered that VirtualBox only supports four interfaces per VM. I then discovered that the first virtual network interface I created always ended up being the <em>Management1<\/em> interface in each switch, which further limited me to three network interfaces in each switch.<\/p>\n<p>The virtual Arista switches have 1Gbps Management interfaces, while all the other interfaces are 10Gbps. Whether or not they can actually deliver that speed is unimportant to me &#8211; I just wanted to make sure that all of the interfaces used for inter-switch links were the same. Additionally, I had another driver for keeping the management interfaces separate.<\/p>\n<p><a class=\"zoom\" href=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/vEOS-Lab-Physical-Management.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-5362\" title=\"vEOS Lab - Physical-Management\" src=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/vEOS-Lab-Physical-Management-300x218.png\" alt=\"\" width=\"300\" height=\"218\" \/><\/a>If you really want to learn how to use a networking device, you&#8217;ll want to do things like TFTP images from a server. Additionally, EOS includes cool features like Zero Touch Provisioning (ZTP) that make use of options in DHCP. To that end, I felt it to be beneficial to include a fourth VM running Ubuntu Linux.<\/p>\n<p>I&#8217;ve structured the lab in such a way that the links between each switch act like physical cables (Separate internal Networks in VirtualBox), but the network connecting the management interfaces to the Ubuntu Linux server are on a common shared (host-only) network . Lastly, I&#8217;ve configured the Linux box to have access to the outside world by having one of its network interfaces configured as a NAT interface in virtual box. Given this design, code, extensions, and anything else you&#8217;d like can be downloaded from the Internet to the Linux box, then the virtual switches can retrieve it from there. The virtual switches cannot get outside of the virtual lab, so you should be able to abuse them in any way imaginable without fear of corrupting the networks outside of your computer.<\/p>\n<h3>Enough Blather, Let&#8217;s get to It!<\/h3>\n<p>The first thing you&#8217;ll need to do is download and install Oracle&#8217;s Virtual box. You can get it for your OS here:\u00a0<a href=\"https:\/\/www.virtualbox.org\" target=\"_blank\">https:\/\/www.virtualbox.org<\/a>. You&#8217;ll also need the Arista vEOS files, which you can get from Arista if you&#8217;re an existing customer.<\/p>\n<p>There are actually two Arista files that are needed: the virtual hard drive, which is in the <em>.vmdk<\/em> cross-platform format (works with any VM software that supports it), and the <em>Aboot<\/em> ISO file, which is specific to each VM platform.\u00a0The source I got from Arista included files for VirtualBox, VMWare, HyperV, and QEMU. The files I&#8217;ll be using are as follows. Of course the file names may change depending on the EOS and Aboot releases:<\/p>\n<address>Aboot-veos-virtualbox-2.0.6.iso<\/address>\n<address>EOS-4.10.2-veos.vmdk<\/address>\n<p>Find the location where VirtualBox will place the VMs, create a folder there, and put both of these files in that folder. On my Mac, I&#8217;ve placed them into <em>Users\/GAD\/VirtualBox VMs\/AristaFiles\/.<\/em> The reason for this will make sense in a minute.<\/p>\n<h3>Build a Base VM<\/h3>\n<p>Because of the way VirtualBox seems to work, and because of my obsessive nature, we&#8217;ll build a base VM, then clone it three times. This will create three VMs, each with its own folder, and each having its own virtual disk. This will be of use should we ever decide to upgrade the image in the future, as it will allow each switch to run separate versions.<\/p>\n<p><a class=\"zoom\" href=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/NewBaseVM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-5442\" title=\"NewBaseVM\" src=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/NewBaseVM-300x218.png\" alt=\"\" width=\"300\" height=\"218\" \/><\/a>With VirtualBox installed, and the Arista files in the right location, we can now create the base VM. In VirtualBox, click on the <em>New<\/em> button. Name the new VM whatever you&#8217;d like (I&#8217;ve used vEOS-Base). For Type, choose <em>Linux<\/em>, and for Version, choose <em>Other Linux<\/em>. Though EOS is based on Fedora, I&#8217;ve had the best luck using <em>Linux\/Other Linux<\/em>. Feel free to experiment, but remember that any examples I post will use this setting. Hit <em>Continue<\/em> when you&#8217;re ready.<\/p>\n<p>You should now choose how much memory to allocate for the VM. I&#8217;ve used 1024MB on all VMs. I&#8217;ve successfully created them with as little as 512MB, but they had little to no free memory, so I&#8217;d recommend 1024MB or more. Remember that whatever you choose will be replicated three times, so in my case with a 1024MB VM, I will end up consuming 3GB of RAM with the Arista vEOS VMs alone. Once you&#8217;ve specified the memory size, click continue, which should bring you to the <em>hard drive<\/em> screen.<\/p>\n<p><a class=\"zoom\" href=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/ChooseVirtualHD1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-5383\" title=\"ChooseVirtualHD\" src=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/ChooseVirtualHD1-300x218.png\" alt=\"\" width=\"300\" height=\"218\" \/><\/a>There should be three options: <em>Do not add a virtual HD<\/em>, <em>Create a virtual HD now<\/em>, and <em>Use an existing virtual HD<\/em>. We want the last one,\u00a0<em>Use an existing virtual HD, <\/em>so choose that. We&#8217;ll now need to specify the location of the virtual hard drive. Click the little button next to the pull-down list, and specify the<em> .vmdk\u00a0<\/em>file from the folder we created above. In my case, the file name is\u00a0<em>EOS-4.10.2-veos.vmdk <\/em>located in the<em> <em>Users\/GAD\/VirtualBox VMs\/AristaFiles\/ <\/em><\/em>folder. Once that&#8217;s chosen, click the <em>Create<\/em> button, and you&#8217;re first Virtual Arista switch will be created. Don&#8217;t get too excited, though, because it won&#8217;t work yet.<\/p>\n<p><a class=\"zoom\" href=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/Processor-Tab.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-5388\" title=\"Processor Tab\" src=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/Processor-Tab-300x218.png\" alt=\"\" width=\"300\" height=\"218\" \/><\/a>With the newly created VM selected in the left pane of VirtualBox, click the <em>Settings<\/em> button. We&#8217;ll need to tweak some settings to make vEOS boot. Within the <em>settings<\/em> window, choose the <em>Systems<\/em>\u00a0button, and then within that screen, choose the <em>Processor<\/em> tab. In this screen there should be a section called <em>Extended Features<\/em> with an entry that reads <em>Enable PAE\/NX. <\/em>Check this box to make sure it is enabled.\u00a0\u00a0Though this doesn&#8217;t seem to matter on my Mac (it works either way), when I tried this on Windows, the VM would not boot unless this box was checked. When done, click the <em>Storage<\/em> button on the top to being us to the <em>Storage<\/em> Settings window.<\/p>\n<p>vEOS is very particular about how its storage is configured. The virtual hard drive we already added should be where it belongs, but we need to add the Aboot image for the VM to boot. Aboot is the (very cool) boot loader used on Arista switches, and it needs to be installed as a CD, but it must be configured on the IDE Primary Slave on the first (usually only) IDE controller. If \u00a0a SCSI controller gets created, it <em>must<\/em> be deleted or vEOS will not load.<\/p>\n<p><a class=\"zoom\" href=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/AbootChosen.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-5391\" title=\"AbootChosen\" src=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/AbootChosen-300x218.png\" alt=\"\" width=\"300\" height=\"218\" \/><\/a>To configure the Aboot ISO image, first make sure that there is only one IDE controller in the left pane. In the right pane, click on the pulldown menu and choose <em>IDE Primary Slave<\/em>. Click the little CD icon next to the pulldown, and choose <em>Choose a Virtual CD\/DVD Disk File <\/em>from the list. Navigate to the location we created above, and choose the Aboot image for VirtualBox. In my examples, it is named\u00a0<em>Aboot-veos-virtualbox-2.0.6.iso<\/em> and is located in the<em>\u00a0<em>Users\/GAD\/VirtualBox VMs\/AristaFiles\/\u00a0<\/em><\/em>folder. Double-click the file, or click the <em>Open<\/em> button when done, which should return you to the Storage settings window. This window should now look something like the one to the right. Click <em>OK<\/em> to save the settings.<\/p>\n<p><a class=\"zoom\" href=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/BootingvEOS.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-5393\" title=\"BootingvEOS\" src=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/BootingvEOS-300x189.png\" alt=\"\" width=\"300\" height=\"189\" \/><\/a>At this point, you should have a bootable vEOS virtual machine. Go ahead and click the start button to load the VM. If it doesn&#8217;t boot, check all of your settings to make sure they&#8217;re correct. If this VM doesn&#8217;t&#8217; boot, we can&#8217;t continue, so make sure it works before moving on to the next section. Sometimes these VMs take a while to boot, especially the first time, so as long as you&#8217;re seeing <strong>[ OK ]<\/strong> messages, you&#8217;re probably doing fine. \u00a0If you hang at <em>Starting New Kernal<\/em> for more than a minute or so, there&#8217;s probably something wrong &#8211; check your images and your IDE configuration.\u00a0If you&#8217;re waiting at\u00a0<em>Completing EOS Initialization<\/em>\u00a0for more than a few minutes, there may be something wrong, but it really depends on the resources available to your machine. Be patient, and try to remember that these are very powerful switches being shoehorned into little VMs.<\/p>\n<p>Once the VM boots, you can log in using the <em>admin<\/em> username. This switch will have only one interface &#8211; Management1, which you can configure if you really want to, but for now let&#8217;s keep it simple since this isn&#8217;t really our end-state anyway. Feel free to power it off \u00a0and we&#8217;ll move on to the cloning process.<\/p>\n<h3>Cloning the VMs.<\/h3>\n<p><a class=\"zoom\" href=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/CreatevEOS1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-5399\" title=\"CreatevEOS1\" src=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/CreatevEOS1-300x218.png\" alt=\"\" width=\"300\" height=\"218\" \/><\/a>With the base vEOS VM built, we can now clone it to make our actual switch VMs. To do so, right click on the vEOS-Base VM in the left pane, and choose <em>Clone<\/em>. This will prompt you for a new VM name, and the option to Reinitialize the MAC address of all network cards. Make sure this box is checked, because it would be pretty useless to have three switches that all have the same MAC address. When ready, click the <em>Continue<\/em> button. This will bring you to a page asking what type of clone you want (<em>Full clone <\/em>or\u00a0<em>Linked Clone<\/em>). Choose Full Clone, which should be the default. When that&#8217;s done, click the <em>Clone<\/em> button.<\/p>\n<p>Do this step three times, naming the new VMs vEOS-1, vEOS-2 and vEOS-3. At this point, you should have four VMs, including the original vEOS-Base VM. The difference is that each of the clones has its own .vmdk file, while the original points to the .vmdk file in the <em>Arista Files<\/em> folder. The Aboot image points to the <em>Arista Files<\/em> folder in each VM, but this is a read-only ISO, so that&#8217;s OK. If you&#8217;d like to change this, copy the Aboot image to each of the VM folders and then change where the image links in the Settings\/Storage page for each VM.<\/p>\n<p><a class=\"zoom\" href=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/ThreeVMsLeft.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-5402\" title=\"ThreeVMsLeft\" src=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/ThreeVMsLeft-300x225.png\" alt=\"\" width=\"300\" height=\"225\" \/><\/a>At this point, you can delete the vEOS-Base image, since we&#8217;ll no longer be using it. To do so, right-click on the VM in the left pane of VirtualBox, and choose Remove. You will be given the options of <em>Remove only<\/em> and <em>Delete all files<\/em>. <em><strong>Do not delete all files!<\/strong><\/em>\u00a0If you do, you will lose the original <em>.vmdk<\/em> file. Hopefully you have it saved somewhere else, but be warned that it will be gone if you delete the files. When that&#8217;s done, there should be only three VMs: vEOS-1, vEOS-2, and vEOS-3.<\/p>\n<p>At this point, go ahead and create the Ubuntu Linux VM. You can use any Linux you want, actually, and I won&#8217;t go into the details of installing that because it should be pretty straightforward. I recommend that you download and install the server version (<a href=\"https:\/\/www.ubuntu.com\/download\/server\" target=\"_blank\">https:\/\/www.ubuntu.com\/download\/server<\/a>) since it&#8217;s smaller than the desktop version.\u00a0After that&#8217;s done, it&#8217;s time to build the networks.<\/p>\n<h3>Building the Virtual Networks<\/h3>\n<p><a class=\"zoom\" href=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/vEOS-Lab-VirtualNetworks.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-5364\" title=\"vEOS Lab - VirtualNetworks\" src=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/vEOS-Lab-VirtualNetworks-300x213.png\" alt=\"\" width=\"300\" height=\"213\" \/><\/a>VirtualBox supports multiple network types for the VMs. There are three that we&#8217;ll be using: <em>Internal <\/em>Networks, <em>Host-only<\/em> networks, and <em>NAT<\/em>. An Internal network is one that exists only within the realm of VirtualBox, and is only included on interfaces configured to use it. By creating multiple internal networks, we will simulate physical cables connecting the switches. In other words, each internal network will simulate a physical cable. I&#8217;ve named these internal networks according to the devices using them. For example the link between vEOS-1 and vEOS-3 is named NET-13. The link between vEOS-2 and vEOS-3 is named NET-23. There are two links between vEOS-1 and vEOS-2, so they are named NET-121 and NET-122. These networks are all shown on the drawing to the right.<\/p>\n<p>The management network is shared, so each switch can see every other switch, as well as the Ubuntu Linux VM on this network. This is done because the Management interfaces are routed, and so that each switch can get to the Ubuntu Linux server in the same way.<\/p>\n<p>Lastly, the Ubuntu Linux server also has a NAT interface, which allows it to connect to the Internet through the host operating system (in my case, Mac OSX). Let&#8217;s go ahead and build those networks now.<\/p>\n<p><a class=\"zoom\" href=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/vboxnet0.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-5406\" title=\"vboxnet0\" src=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/vboxnet0-300x218.png\" alt=\"\" width=\"300\" height=\"218\" \/><\/a>With all of the VMs shut down and powered off, click on vEOS-1 and then click on <em>Settings<\/em>. Within the <em>Settings<\/em> window, click on the <em>Network<\/em> button. There should be four network adapters, named Adapter 1, 2, 3, and 4. Adapter 1 will be the <em>Management1<\/em> interface on the vEOS devices. Make sure that <em>Enable Network Adapter<\/em> is checked. On the <em>Attached to<\/em> pulldown menu, choose <em>Host-only Adapter<\/em>. On a Mac, the <em>Name<\/em> will default to <em>vboxnet0<\/em>. On Windows, this will read <em>Host-only network adapter<\/em>. It needs to match Adapter1 in every vEOS VM. Adapter2 in the Ubuntu Linux VM should be configured this way as well.<\/p>\n<p><a class=\"zoom\" href=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/NetworkingAdvanced.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-5412\" title=\"NetworkingAdvanced\" src=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/NetworkingAdvanced-300x218.png\" alt=\"\" width=\"300\" height=\"218\" \/><\/a>On the same page, choose the Advanced menu by clicking on the little triangle. This will open more options, a couple of which are required for our virtual switches to work. First is the\u00a0<em>Adapter Type<\/em>. More than one of these will work, but the one that works best in my experience is\u00a0<em>PCnet-FAST III.\u00a0<\/em>Originally I had recommended the\u00a0<em>Intel PRO\/1000 T<\/em>\u00a0interface, but\u00a0I&#8217;ve\u00a0since learned that\u00a0this type\u00a0may strip VLAN tags which will cause your trunks (including MLAG peer links) to break<em>.<\/em>\u00a0I know this says that it\u2019s a 1Gbps interface, but the vEOS VMs will report 10Gbps, so don\u2019t worry about that.<\/p>\n<p>The next option is <em>Promiscuous Mode<\/em>, and this must be set to <em>Allow VMs<\/em> or <em>Allow All<\/em>. I have all of mine set to <em>Allow VMs<\/em>. Lastly, The checkbox for <em>Cable Connected<\/em> should be checked.<\/p>\n<p>Next, configure Adapter2 on the Ubuntu Linux VM to be attached to NAT. There are no other options. When this is done, the VM configuration for the Ubuntu Linux VM is complete (though we&#8217;ll still need to configure the OS with IP addresses later on).<\/p>\n<p><a class=\"zoom\" href=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/vEOS1-Adapter2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-5409\" title=\"vEOS1-Adapter2\" src=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/vEOS1-Adapter2-300x218.png\" alt=\"\" width=\"300\" height=\"218\" \/><\/a>Now we need to configure all of the Internal Networks within the vEOS VMs. I&#8217;ll show one example, then list how they should be configured in the interest of saving space. For our example, we&#8217;ll configure vEOS-1, Adapter2.<\/p>\n<p>Look at the network drawing at the beginning of this section. This drawing shows where each adapter is, what network it&#8217;s configured for, and how the VMs are interconnected. Looking at vEOS-1, we can see that Adapter2 translates to Eth1, which connects to vEOS-2 on Eth1, and the physical cable is represented as NET-121. To configure this, go into <em>Settings, Network<\/em> for vEOS-1, and choose <em>Adapter2<\/em>. Make sure the interface is enabled, choose <em>Internal Network<\/em> from the <em>Attached to<\/em> pulldown, then enter <em>NET-121<\/em> in the <em>Name<\/em> field. Remember to click the advanced section and set the adapter type to\u00a0<em><em>PCnet-FAST III<\/em>, <\/em>Promiscuous Mode to\u00a0<em>Allow VMs<\/em>\u00a0and check\u00a0checkbox for\u00a0<em>Cable Connected<\/em>.<\/p>\n<p><a class=\"zoom\" href=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/LabInfo.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-5416\" title=\"LabInfo\" src=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/LabInfo-300x183.png\" alt=\"\" width=\"300\" height=\"183\" \/><\/a>Configure the remaining network adapters on each VM as shown in the spreadsheet on the right. When this is done, the lab should be bootable, and every device should be able to see every other device according to the original network diagram. To prove if this is working, use the <em>show lldp neighbor<\/em> command from within vEOS. Here&#8217;s an example from vEOS-1 which is configured correctly. It&#8217;s OK to see all switches on the Ma1 interface since that network is shared. Since these are routed interfaces, there should be no interference with L2 protocols like spanning-tree.<\/p>\n<pre>vEOS-1#<strong>sho lldp nei<\/strong>\r\nLast table change time   : 0:01:41 ago\r\nNumber of table inserts  : 5\r\nNumber of table deletes  : 0\r\nNumber of table drops    : 0\r\nNumber of table age-outs : 0\r\n\r\nPort      Neighbor Device ID             Neighbor Port ID           TTL\r\nEt1       vEOS-2                         Ethernet1                  120\r\nEt2       vEOS-2                         Ethernet2                  120\r\nEt3       vEOS-3                         Ethernet1                  120\r\nMa1       vEOS-2                         Management1                120\r\nMa1       vEOS-3                         Management1                120<\/pre>\n<p>Here&#8217;s the output from the\u00a0<em>show spanning-tree<\/em> command on vEOS-1:<\/p>\n<pre>vEOS-1#<strong>sho spanning-tree<\/strong>\r\nMST0\r\n  Spanning tree enabled protocol mstp\r\n  Root ID    Priority    32768\r\n             Address     0800.27e4.d8fb\r\n             This bridge is the root\r\n\r\n  Bridge ID  Priority    32768  (priority 32768 sys-id-ext 0)\r\n             Address     0800.27e4.d8fb\r\n             Hello Time  2.000 sec  Max Age 20 sec  Forward Delay 15 sec\r\n\r\nInterface        Role       State      Cost      Prio.Nbr Type\r\n---------------- ---------- ---------- --------- -------- --------------------\r\nEt1              designated forwarding 2000      128.1    P2p\r\nEt2              designated forwarding 2000      128.2    P2p\r\nEt3              designated forwarding 2000      128.3    P2p<\/pre>\n<h3>The Final Touches<\/h3>\n<p>The last thing to do to make this lab really useful is to assign IP addresses to the management interfaces (see the spreadsheet in the previous section for how I have mine configured), and the Ubuntu Linux server. To set the Ubuntu Linux server, edit the<em> \/etc\/network\/interfaces<\/em> file with the <em>sudo vi \/etc\/network\/interfaces<\/em> command (You can use <em>vi<\/em> right?) and make sure the following is included in the file:<\/p>\n<pre>auto eth0\r\niface eth0 inet dhcp\r\n\r\nauto eth1\r\niface eth1 inet static\r\naddress 10.10.10.10\r\nnetmask 255.255.255.0\r\nnetwork 10.10.10.0\r\nbroadcast 10.10.10.255<\/pre>\n<p>Save the file and issue the <em>sudo \/etc\/init.d\/networking restart<\/em> command. At this point, you should be able to ping every VM from every other VM using the management network.<\/p>\n<pre>arista@Ubuntu:\/etc\/network$ <strong>ping -c 5 10.10.10.11<\/strong>\r\nPING 10.10.10.11 (10.10.10.11) 56(84) bytes of data.\r\n64 bytes from 10.10.10.11: icmp_req=1 ttl=64 time=0.287 ms\r\n64 bytes from 10.10.10.11: icmp_req=2 ttl=64 time=3.15 ms\r\n64 bytes from 10.10.10.11: icmp_req=3 ttl=64 time=0.624 ms\r\n64 bytes from 10.10.10.11: icmp_req=4 ttl=64 time=0.524 ms\r\n64 bytes from 10.10.10.11: icmp_req=5 ttl=64 time=0.416 ms\r\n\r\n--- 10.10.10.11 ping statistics ---\r\n5 packets transmitted, 5 received, 0% packet loss, time 4013ms\r\nrtt min\/avg\/max\/mdev = 0.287\/1.001\/3.155\/1.082 ms<\/pre>\n<p><a class=\"zoom\" href=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/VBoxNetwork.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-5425\" title=\"VBoxNetwork\" src=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/VBoxNetwork-300x218.png\" alt=\"\" width=\"300\" height=\"218\" \/><\/a>Finally, we&#8217;ll add one more IP address so that the host machine can also get to the management network. You don&#8217;t really need to do this, and it can be accomplished in other ways, but I like this because it works and I&#8217;m lazy. Open preferences in VitualBox (for the application, not for a VM), click on the <em>Network<\/em> icon, and you should be presented with a list of Host-only networks. There should be only one unless you have other VMs built. Double click on the network (<em>vboxnet0<\/em> on the Mac), and you should get a new window with two tabs: Adapter and DHCP server. In the adapter tab, assign an IP address of <em>10.10.10.1<\/em> with an IPv4 mask of <em>255.255.<\/em>255.0.<\/p>\n<p><a class=\"zoom\" href=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/DHCP-Server.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-5426\" title=\"DHCP Server\" src=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/DHCP-Server-300x218.png\" alt=\"\" width=\"300\" height=\"218\" \/><\/a>Next, click on the <em>DHCP Server<\/em> tab, and uncheck <em>Enable Server<\/em>. The reason for this is that we don&#8217;t want VirtualBox to dole out IP address &#8211; we want the Ubuntu Linux VM to do this. This is because if and when we play around with Zero Touch Provisioning, we&#8217;ll configure advanced settings in Linux that aren&#8217;t available in Virtual Box.<\/p>\n<p>Here&#8217;s one more cool benefit of the way we&#8217;ve built this lab. Add the user arista with the password arista to every device. On the vEOS machines, use the following exec mode command:<\/p>\n<pre>vEOS-1#<strong>conf t<\/strong>\r\nvEOS-1(config)#<strong>username arista privilege 15 secret arista<\/strong>\r\nvEOS-1(config)#<strong>wri<\/strong><\/pre>\n<p>On the Ubuntu Linux machine, use this command:<\/p>\n<pre>\u00a0sudo useradd -b \/home\/arista -m -p arista arista<\/pre>\n<p>Once the usernames have been added to each device, you can use your favorite SSH client to connect to each VM, including the Ubuntu Linux machine. This is cool because though you can do everything from the console of each VM, using the console sucks compared to the power of a full-featured SSH client like Secure-CRT. At this point, the Lab is complete, and you can abuse it to your heart&#8217;s content. Congratulations!<\/p>\n<h3>Troubleshooting<\/h3>\n<p>Sometimes, no matter how careful we are, things just don&#8217;t work right. Here are some common errors and problems I&#8217;ve seen while building and endlessly rebuilding this lab.<\/p>\n<p><strong>FATAL: No bootable medium found! System Halted<\/strong><\/p>\n<p>This error means that the VM cannot find the Aboot ISO file, or the file is corrupted.<\/p>\n<p><strong>VM hangs at Starting new kernel forever<\/strong><\/p>\n<p>This is indicative of the VM being unable to find the virtual hard disk (.vmdk) file. Check your storage settings and make sure the .vmdk for that VM exists.<\/p>\n<p><strong>VM is slooooow<\/strong><\/p>\n<p>If it&#8217;s working, but it&#8217;s really slow, try giving the VM more memory. If you&#8217;ve only got 4GB of RAM in your machine, this lab will probably not run very well, so you might just have to live with it. Ideally, this lab needs a minimum of 4 CPUs and 4GB of RAM.<\/p>\n<h3>Conclusion<\/h3>\n<p>I hope this helps people who need an Arista lab. I know it&#8217;s helped me quite a bit. I might even be inclined to write up some lessons using this lab, so stay tuned and enjoy my other ramblings while you wait.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s no secret that I love Arista switches. When I wrote Arista Warrior, I was lucky enough to have a loaner switch from Arista in my home lab, but sadly they made me give it back. Since Arista is a relative newcomer to the world of Networking, there isn&#8217;t a pile of used Arista gear [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27,26,7],"tags":[],"class_list":["post-5361","post","type-post","status-publish","format-standard","hentry","category-arista","category-networking","category-technology"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Building a Virtual Lab with Arista vEOS and VirtualBox | GAD&#039;s Ramblings<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building a Virtual Lab with Arista vEOS and VirtualBox | GAD&#039;s Ramblings\" \/>\n<meta property=\"og:description\" content=\"It&#8217;s no secret that I love Arista switches. When I wrote Arista Warrior, I was lucky enough to have a loaner switch from Arista in my home lab, but sadly they made me give it back. Since Arista is a relative newcomer to the world of Networking, there isn&#8217;t a pile of used Arista gear [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/\" \/>\n<meta property=\"og:site_name\" content=\"GAD&#039;s Ramblings\" \/>\n<meta property=\"article:published_time\" content=\"2012-10-27T15:38:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-05-07T19:47:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/Virtualbox_Arista_Logos-whtbk.png\" \/>\n\t<meta property=\"og:image:width\" content=\"945\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"GAD\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@GAD\" \/>\n<meta name=\"twitter:site\" content=\"@GAD\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"GAD\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/\"},\"author\":{\"name\":\"GAD\",\"@id\":\"https:\/\/www.gad.net\/Blog\/#\/schema\/person\/5c8af1fac08082910e148cab2d649f36\"},\"headline\":\"Building a Virtual Lab with Arista vEOS and VirtualBox\",\"datePublished\":\"2012-10-27T15:38:45+00:00\",\"dateModified\":\"2014-05-07T19:47:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/\"},\"wordCount\":3616,\"commentCount\":17,\"publisher\":{\"@id\":\"https:\/\/www.gad.net\/Blog\/#\/schema\/person\/5c8af1fac08082910e148cab2d649f36\"},\"image\":{\"@id\":\"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/Virtualbox_Arista_Logos-whtbk-300x200.png\",\"articleSection\":[\"Arista\",\"Networking\",\"Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/\",\"url\":\"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/\",\"name\":\"Building a Virtual Lab with Arista vEOS and VirtualBox | GAD&#039;s Ramblings\",\"isPartOf\":{\"@id\":\"https:\/\/www.gad.net\/Blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/Virtualbox_Arista_Logos-whtbk-300x200.png\",\"datePublished\":\"2012-10-27T15:38:45+00:00\",\"dateModified\":\"2014-05-07T19:47:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/#primaryimage\",\"url\":\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/Virtualbox_Arista_Logos-whtbk.png\",\"contentUrl\":\"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/Virtualbox_Arista_Logos-whtbk.png\",\"width\":945,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.gad.net\/Blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Building a Virtual Lab with Arista vEOS and VirtualBox\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.gad.net\/Blog\/#website\",\"url\":\"https:\/\/www.gad.net\/Blog\/\",\"name\":\"GAD's Ramblings\",\"description\":\"The Art of Being Quirky\",\"publisher\":{\"@id\":\"https:\/\/www.gad.net\/Blog\/#\/schema\/person\/5c8af1fac08082910e148cab2d649f36\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.gad.net\/Blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.gad.net\/Blog\/#\/schema\/person\/5c8af1fac08082910e148cab2d649f36\",\"name\":\"GAD\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.gad.net\/Blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1937f868691364403823bf1ec4c63472b01b2f824e932e256fdb6d30157db11f?s=96&d=mm&r=pg\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1937f868691364403823bf1ec4c63472b01b2f824e932e256fdb6d30157db11f?s=96&d=mm&r=pg\",\"caption\":\"GAD\"},\"logo\":{\"@id\":\"https:\/\/www.gad.net\/Blog\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/www.gad.net\",\"https:\/\/x.com\/GAD\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Building a Virtual Lab with Arista vEOS and VirtualBox | GAD&#039;s Ramblings","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/","og_locale":"en_US","og_type":"article","og_title":"Building a Virtual Lab with Arista vEOS and VirtualBox | GAD&#039;s Ramblings","og_description":"It&#8217;s no secret that I love Arista switches. When I wrote Arista Warrior, I was lucky enough to have a loaner switch from Arista in my home lab, but sadly they made me give it back. Since Arista is a relative newcomer to the world of Networking, there isn&#8217;t a pile of used Arista gear [&hellip;]","og_url":"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/","og_site_name":"GAD&#039;s Ramblings","article_published_time":"2012-10-27T15:38:45+00:00","article_modified_time":"2014-05-07T19:47:40+00:00","og_image":[{"width":945,"height":630,"url":"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/Virtualbox_Arista_Logos-whtbk.png","type":"image\/png"}],"author":"GAD","twitter_card":"summary_large_image","twitter_creator":"@GAD","twitter_site":"@GAD","twitter_misc":{"Written by":"GAD","Est. reading time":"19 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/#article","isPartOf":{"@id":"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/"},"author":{"name":"GAD","@id":"https:\/\/www.gad.net\/Blog\/#\/schema\/person\/5c8af1fac08082910e148cab2d649f36"},"headline":"Building a Virtual Lab with Arista vEOS and VirtualBox","datePublished":"2012-10-27T15:38:45+00:00","dateModified":"2014-05-07T19:47:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/"},"wordCount":3616,"commentCount":17,"publisher":{"@id":"https:\/\/www.gad.net\/Blog\/#\/schema\/person\/5c8af1fac08082910e148cab2d649f36"},"image":{"@id":"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/#primaryimage"},"thumbnailUrl":"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/Virtualbox_Arista_Logos-whtbk-300x200.png","articleSection":["Arista","Networking","Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/","url":"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/","name":"Building a Virtual Lab with Arista vEOS and VirtualBox | GAD&#039;s Ramblings","isPartOf":{"@id":"https:\/\/www.gad.net\/Blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/#primaryimage"},"image":{"@id":"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/#primaryimage"},"thumbnailUrl":"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/Virtualbox_Arista_Logos-whtbk-300x200.png","datePublished":"2012-10-27T15:38:45+00:00","dateModified":"2014-05-07T19:47:40+00:00","breadcrumb":{"@id":"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/#primaryimage","url":"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/Virtualbox_Arista_Logos-whtbk.png","contentUrl":"https:\/\/www.gad.net\/Blog\/wp-content\/uploads\/2012\/10\/Virtualbox_Arista_Logos-whtbk.png","width":945,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.gad.net\/Blog\/2012\/10\/27\/building-a-virtual-lab-with-arista-veos-and-virtualbox\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.gad.net\/Blog\/"},{"@type":"ListItem","position":2,"name":"Building a Virtual Lab with Arista vEOS and VirtualBox"}]},{"@type":"WebSite","@id":"https:\/\/www.gad.net\/Blog\/#website","url":"https:\/\/www.gad.net\/Blog\/","name":"GAD's Ramblings","description":"The Art of Being Quirky","publisher":{"@id":"https:\/\/www.gad.net\/Blog\/#\/schema\/person\/5c8af1fac08082910e148cab2d649f36"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.gad.net\/Blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.gad.net\/Blog\/#\/schema\/person\/5c8af1fac08082910e148cab2d649f36","name":"GAD","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.gad.net\/Blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1937f868691364403823bf1ec4c63472b01b2f824e932e256fdb6d30157db11f?s=96&d=mm&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1937f868691364403823bf1ec4c63472b01b2f824e932e256fdb6d30157db11f?s=96&d=mm&r=pg","caption":"GAD"},"logo":{"@id":"https:\/\/www.gad.net\/Blog\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/www.gad.net","https:\/\/x.com\/GAD"]}]}},"_links":{"self":[{"href":"https:\/\/www.gad.net\/Blog\/wp-json\/wp\/v2\/posts\/5361","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gad.net\/Blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gad.net\/Blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gad.net\/Blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gad.net\/Blog\/wp-json\/wp\/v2\/comments?post=5361"}],"version-history":[{"count":84,"href":"https:\/\/www.gad.net\/Blog\/wp-json\/wp\/v2\/posts\/5361\/revisions"}],"predecessor-version":[{"id":5494,"href":"https:\/\/www.gad.net\/Blog\/wp-json\/wp\/v2\/posts\/5361\/revisions\/5494"}],"wp:attachment":[{"href":"https:\/\/www.gad.net\/Blog\/wp-json\/wp\/v2\/media?parent=5361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gad.net\/Blog\/wp-json\/wp\/v2\/categories?post=5361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gad.net\/Blog\/wp-json\/wp\/v2\/tags?post=5361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}