edit: Just to clarify my topology, everything is local and behind my ISP gateway/router. The server and laptop both connect to the gateway on 192.168.1.0/24. GNS3 is hosted on the ubuntu server and is used to create virtualized enterprise networks. GNS3 uses a bridged virtual NIC on the 192.168.122.0/24 network so that outside devices can communicate with the virtual network. I have a static route on my gateway which directs traffic destined to 192.168.122.0/24 to the ubuntu server, 192.168.1.10.
I'm running a program called GNS3 on my Ubuntu v20.04 server, with an IP of 192.168.1.10/24, which I access using my laptop, 192.168.1.11/24. GNS3 uses a bridged interface called virbr0, 192.168.122.1/24, to connect to a Palo Alto firewall, 192.168.122.9/24, I'm running inside it.
From my laptop I can ping the server and virbr0 but not the firewall(destination unreachable). From my server I can ping my laptop, virbr0 and the firewall. And from the firewall I can ping the server and virbro0 but not my laptop. If I do a traceroute from my laptop to the firewall it arrives at the server and then gets dropped. The output of "ip route show" is:
192.168.1.0/24 dev enp9s0 proto kernel scope link src 192.168.1.10
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
Since traceroute shows the pings getting to the server I'm assuming it's an Ubuntu issue not an issue with my gateway/router.