With this option, instead of using Quad-NIC PCI network cards, we will use USB-to-Ethernet network adapters to link with Cisco switches. You will need at least 12 of them to study for the CCIE R&S, which can get a bit messy. The option is interesting if you don’t want to buy a server to use with Quad-NIC network cards. For instance, this let you use a laptop to run GNS3 virtual routers.
Table of Contents
- USB-to-Ethernet network adapters.
- One or more powered USB hubs depending of number of USB ports on your PC.
- One straight through Ethernet cable per connection to your switches.
Choosing and installing USB-to-Ethernet adapters
You could pretty much use any USB-to-Ethernet adapter but here are some reported to work with this lab option:
- TrendNet TU2ET100, but it does not support 802.1Q
- Rocketfish LAN adapter (ASIX AX88772A chipset)
- Monoprice USB 2.0 to Ethernet Adapter (ASIX AX88772A chipset)
Either 802.1Q is supported or not isn’t a real problem, it means you can’t do router-on-a-stick configurations, which is really not the end of the world.
I’ve used two Monoprice adapters to demonstrate how to use them with the next lab. Moreover, this cheap adapter supports 802.1Q on Linux and Mac OS X.
USB-to-Ethernet adapters generally come with a driver for Windows and are instantly recognized on Linux and Mac OS X. With the Monoprice adapter, the only issue is I could not set a MTU over 1500 on Mac OS X and Windows.
Note that you may require USB extension cables to connect your USB adapters when USB ports are close to each other.
I will make a simple lab consisting of 2 virtual routers and 2 real switches that can easily be extended to meet your needs. The following topology has been made on Mac OS X but excepting the real network interface name, it is gonna be the same on Windows and Linux.
Once USB-to-Ethernet adapters installed, we can create our lab in GNS3 and bind virtual router interfaces with our physical adapters, en3 and en4 (represented by “clouds” in GNS3, here cloud symbols have been changed to multilayer switch symbols):
GNS3 topology file
autostart = False [127.0.0.1:7200] workingdir = /tmp udp = 10000 [] image = /path/to/ios/c3640.bin sparsemem = True ghostios = True chassis = 3640 [[ROUTER R1]] model = 3640 console = 2001 slot0 = NM-1FE-TX f0/0 = nio_gen_eth:en3 [[ROUTER R2]] model = 3640 console = 2002 slot0 = NM-1FE-TX f0/0 = nio_gen_eth:en4
Like with the Quad-NIC option, the physical connectivity is straightforward. I just plugged every adapters Ethernet cable to a switch port. In our topology, en3 connects to SW1 f0/1 and en4 connects to SW2 f0/1.
I applied the following configurations on the 2 real switches.
interface FastEthernet0/1 switchport mode access spanning-tree portfast ! interface Vlan1 ip address 10.1.1.254 255.255.255.0
interface FastEthernet0/1 switchport trunk encapsulation dot1q switchport mode trunk spanning-tree portfast ! interface Vlan10 ip address 10.2.10.254 255.255.255.0 ! interface Vlan20 ip address 10.2.20.254 255.255.255.0
I tested the lab using my adapters on 3 different operating systems, Linux, Mac OS X and Windows.
Linux (Ubuntu 11.10) detected the adapters without any problem. So easy, just plug and play.
user@host:~$ lsusb Bus 001 Device 008: ID 0b95:772a ASIX Electronics Corp. Bus 001 Device 009: ID 0b95:772a ASIX Electronics Corp. user@host:~$ dmesg [ 137.216225] usb 1-2: new full speed USB device number 8 using ohci_hcd [ 138.424519] asix 1-2:1.0: eth0: register 'asix' at usb-0000:00:06.0-2, ASIX AX88772 USB 2.0 Ethernet [ 138.444879] udevd: renamed network interface eth0 to eth3 [ 138.468149] asix 1-2:1.0: eth3: link down [ 138.498364] ADDRCONF(NETDEV_UP): eth3: link is not ready [ 140.003681] ADDRCONF(NETDEV_CHANGE): eth3: link becomes ready [ 140.047120] asix 1-2:1.0: eth3: link up, 100Mbps, full-duplex, lpa 0x43E1 [ 140.992143] usb 1-3: new full speed USB device number 9 using ohci_hcd [ 142.099620] asix 1-3:1.0: eth0: register 'asix' at usb-0000:00:06.0-3, ASIX AX88772 USB 2.0 Ethernet [ 142.119309] udevd: renamed network interface eth0 to eth4 [ 142.149974] asix 1-3:1.0: eth4: link down [ 142.180096] ADDRCONF(NETDEV_UP): eth4: link is not ready [ 143.686216] ADDRCONF(NETDEV_CHANGE): eth4: link becomes ready [ 143.735133] asix 1-3:1.0: eth4: link up, 100Mbps, full-duplex, lpa 0x43E1
Two new interfaces corresponding to the USB adapters were created, eth3 and eth4:
user@host:~$ ifconfig eth3 Link encap:Ethernet HWaddr 00:60:6e:05:0d:a5 inet6 addr: fe80::260:6eff:fe05:da5/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1 errors:0 dropped:0 overruns:0 frame:0 TX packets:39 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:46 (46.0 B) TX bytes:10028 (10.0 KB) eth4 Link encap:Ethernet HWaddr 00:60:6e:05:0d:e6 inet6 addr: fe80::260:6eff:fe05:de6/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:38 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:9682 (9.6 KB)
Now we can connect the router to the interfaces as seen in the previous topology. To check that everything work, we ping from R2 to SW2 on vlan 20.
R2#ping 10.2.20.254 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.2.20.254, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 20/24/36 ms
Ping and tagging worked perfectly.
Mac OS X
As on Linux, the USB-to-Ethernet adapters were automatically detected by Mac OS X. Apparently, this is because the chipset used in these adapters (ASIX AX88772A) is well supported on OSX, this could not be the case of other adapters. Here is quite old page referencing adapters known to work with OSX.
After creating the same lab as on Linux but using interfaces en3 and en4, I was able to ping between my virtual routers and real switches. Note that 802.1Q tags are not stripped off.
On Windows I had to installed ASIX drivers for AX88772A. Then the adapters were correctly detected and ready to be used.
Creating the same lab as before, I was able to communicate with my switches excepting when using 802.1Q like on R2 because tags are stripped off from incoming frames. I found not solution for this, therefore, is it impossible to create router-on-a-stick scenarios on Windows with these adapters.
Pros and cons
- Simple set up, one interface = one connection.
- No need for a breakout switch.
- You can use a laptop.
- Requires extra hardware (USB adapters, USB extensions, USB hubs).
- Extra cabling.
- On Windows, most of the USB adapters strip incoming 802.1Q tags.
- Setting a higher MTU may be an issue (I had the issue on Windows and OSX).
- Need enough power for the adapters.
This option is still quite simple, you just need a bunch of USB adapters, buying on eBay is one way to get them. The option may not be as reliable as the Quad-NIC one but is the way to go if you have a powerful laptop and don’t want to buy a PC, server or have a breakout switch.