So, in connecting my virtual gns3 network to my local, physical lan, I found the connection speeds to be abysmal. Host to host speeds within the virtual network were good but communicating from a virtual host to a physical host had speeds around 10kbps.
Some poking around on Google revealed that this is a common problem. I was able to solve this by following the advice in this article.
My use case is quite simplified from the article in that I do not need tap interfaces, and on Ubuntu 18.04, netplan does not support tap interfaces anyway. If you need a more exotic configuration (bonded interfaces with VLANs, and tap-like interfaces), I found this information to be quite useful.
Here is my netplan configuration file:
# This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} network: version: 2 renderer: networkd ethernets: enp14s0: {} bridges: br0: interfaces: [enp14s0] addresses: [192.168.1.200/24] gateway4: 192.168.1.1 dhcp4: false nameservers: addresses: [208.67.222.222,208.67.220.220]
Now, when I drop a cloud object into my gns3 project, instead of linking to the physical interface enp14s0, I connect to the bridging interface br0.
Now my throughput to my physical LAN is in the megabit range with none of the connectivity issues that I saw before.