o problema foi os pacotes de saída, não a entrada.
o servidor dhcp forneceu o mesmo gateway para ambas as máquinas (10.62.63.1), portanto os pacotes de entrada dnat na máquina2 não tiveram problemas para alcançar sua localização (web na máquina2), mas o pacote de retorno foi enviado para o gateway da máquina1 (10.62.63.1) e não de onde estava vindo (10.62.63.3).
para que ele caia na máquina1 como pacote de martion.
A soluçãofoi adicionar tagging no dns (dnsmasq) para que as máquinas virtuais nos diferentes hosts obtenham diferentes gateways:
/etc/dnsmasq.conf
*** snip ***
dhcp-host=set:machine1,ff:ff:ff:ff:ff:ff,web01,10.62.63.20
dhcp-host=set:machine2,ee:ee:ee:ee:ee:ee,web02,10.62.63.30
dhcp-option=tag:machine1,option:router,10.62.63.1
dhcp-option=tag:machine2,option:router,10.62.63.3
*** snip ***