I've successfully done this quite a few times. I'll break out my switches and a Linux box today, and post the exact configurations for you this evening.
Cheers!
<EDIT / UPDATE>Okay. I pulled my gear out of the cellar, and configured a breakout switch. My instructions above are correct with the caveat that you have to elevate the permissions on dynamips or run GNS3 as root, and you should use a NIC that supports an MTU frame size above 1500. The elevated permissions allow GNS3 to communicate directly with your Ethernet hardware, and the expanded MTU adds padding for VLANs.
In this example, I created simple VLAN routing using a breakout switch (c3550) and one real Cisco switch (c1811). This topology allows two GNS3 routers (on separate networks) to ping each other through the live 1811 switch. I could have added more live switches and created a more complex topology, but I kept it simple. I'm using GNS3-0.8.6 on Ubuntu Linux 12.04.
Here are the Physical Ethernet Connections:
c3550 Breakout F0/1 -------> Linux PC Ethernet
c3550 Breakout F0/2 -------> c1811 F02
c3550 Breakout F0/2 -------> c1811 F03
Here is one way to elevate dynamips permissions on Linux:
$
sudo chown root dynamips*$
sudo chmod 4755 dynamips*Configure the Linux VLANs used for the breakout switch
$
sudo apt-get install vlan$
sudo modprobe 8021q$
sudo vconfig add eth1 10$
sudo vconfig add eth1 20Note: Your Linux system may use eth0 instead of eth1Next, I added a Cloud node to my GNS3 Workspace and added the VLAN insterfaces (using Generic Ethernet):
Note: Use the pulldown menu to select and add the nio_gen_eth:eth1.10 and nio_gen_eth:eth1.20 interfaces.I completed my topology by adding a couple of routers and linking them to Linux VLAN interfaces on the Cloud node:

Now that my GNS3 project is created, I moved on to configure the c3550 breakout switch:
(c3550 using IOS Version: c3550-ipbasek9-mz.122-44.SE6)
Configuring your Breakout switch:
Breakout(config)#
system mtu 1546Breakout#
configure terminalBreakout(config)#
interface FastEthernet 0/1Breakout(config-if)#
description Uplink Trunk to Linux\GNS3Breakout(config-if)#
switchport trunk encapsulation dot1q Breakout(config-if)#
switchport mode trunk Breakout(config-if)#
switchport trunk allowed vlan all! create the breakout switch VLANs using same VLAN IDs as Linux)
Breakout(config)#
vlan 10Breakout(config-vlan)#
vlan 20Breakout(config-vlan)#
exit! enable tunneling
Breakout(config)#
interface FastEthernet 0/2Breakout(config-if)#
switchport access vlan 10 Breakout(config-if)#
switchport mode dot1q-tunnel Breakout(config-if)#
l2protocol-tunnel cdp Breakout(config-if)#
interface FastEthernet 0/3Breakout(config-if)#
switchport access vlan 20 Breakout(config-if)#
switchport mode dot1q-tunnelBreakout(config-if)#
l2protocol-tunnel cdpFinally, I configured my c1811 switch. It's important to note here that the 1811 ports connected to the breakout switch are not configured as trunk ports, as you proposed. Instead, I've assigned them to VLANs that I chose to use in my GNS3 project. These VLANs have nothing to do with the breakout switch VLANs.
Create VLANS 101 and 101, then assign them each to an interface:
c1811(config)#
interface FastEthernet2c1811(config-if)#
switchport access vlan 101c1811(config)#
interface FastEthernet3c1811(config-if)#
switchport access vlan 102c1811(config)#
interface vlan101c1811(config-if)#
ip address 10.10.10.1 255.255.255.0 c1811(config)#
interface vlan102c1811(config-if)#
ip address 20.10.10.1 255.255.255.0The last step is to configure the routers. Here is my configuration for R1:
R1(config)#
interface f0/0R1(config-if)#
ip address 10.10.10.100 255.255.255.0R1(config-if)#
ip route 0.0.0.0 0.0.0.0 10.10.10.1...and router R2:
R2(config)#
interface f0/0R2(config-if)#
ip address 20.10.10.100 255.255.255.0R2(config-if)#
ip route 0.0.0.0 0.0.0.0 20.10.10.1That's all there is to it. My R1 router is now able to ping R2 and vise versa. A ping request leaving R1 goes through the dot1q trunk to the breakout switch via my PCs ethernet adapter, where it is tunneled to an interface on my c1811 switch. The ping reply returns to R1 in revers order.
That's it. It's tested and it works. Now I'm going to lug my equipment back to the cellar. :D