I still haven't gotten this to work, but I did find this thread on Launchpad that discussed a bug that was apparently present in the Microstack setup that causes this. As of recently, it looks like the bug cropped up again.
I tested their fix and it doesn't seem to have worked, but maybe you'll find better luck.
https://bugs.launchpad.net/microstack/+bug/1812415
EDIT: Their fix wasn't working because I removed the default networks and router that came with Microstack. When I restored the default router and networks, I was able to get Cirros to ping google.com.
For a quick fix, you can just use the standard networks 'external' (10.20.20.1/24) and 'test' (192.168.222.1/24) connected to the standard router 'test-router'. Alternatively, you can modify the settings for the br-ex adapter that should be present on your machine - bearing in mind that you'll need to modify the fix described in the launchpad thread for your modified net configuration. For me, this is a test/learning environment, so I just changed the names and didn't bother to create new networks outside of the default ones.
I found some helpful information on the br-ex adapter and how to configure it here:
https://www.itzgeek.com/how-tos/linux/centos-how-tos/configure-openstack-networking-enable-access-vm-instances.html