iptables port forward not working with libvirtd VM

The problem here comes from the following chains :

-A LIBVIRT_FWI -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A LIBVIRT_FWO -i virbr0 -j REJECT --reject-with icmp-port-unreachable

They are added by libvirtd according to the network config in libvirt, if forward mode is set to "nat".

One possible solution is to change the mode into "open", be careful because you have to manually add forward rules by doing this.

# virsh net-edit default

<network>
  <name>default</name>
  <uuid>......</uuid>
  <forward mode='open'/>
   .............