AFAIK virt-manager
só pode atribuir endereços MAC. Então, o que você precisa fazer é configurar seu servidor DHCP para mapeá-los para endereços IP específicos.
Mesmo que uma máquina diferente (por exemplo, seu roteador) normalmente forneça endereços DHCP, mas não possa ser facilmente modificada programaticamente, você pode configurar um servidor DHCP nos hosts das VMs, que serve apenas para endereços MAC específicos e enquanto aqueles que não estão no intervalo que o outro servidor DHCP fornece, você não terá problemas.
Atualização solicitada pelo comentário de Pavel, você pode definir endereços IP via libvrt (embora eu prefira ter todos os meus endereços IP em um ponto)
...
<mac address='00:16:3E:5D:C7:9E'/>
<domain name="example.com"/>
<dns>
<txt name="example" value="example value" />
<forwarder addr="8.8.8.8"/>
<forwarder addr="8.8.4.4"/>
<srv service='name' protocol='tcp' domain='test-domain-name' target='.' port='1024' priority='10' weight='10'/>
<host ip='192.168.122.2'>
<hostname>myhost</hostname>
<hostname>myhostalias</hostname>
</host>
</dns>
<ip address="192.168.122.1" netmask="255.255.255.0">
<dhcp>
<range start="192.168.122.100" end="192.168.122.254" />
<host mac="00:16:3e:77:e2:ed" name="foo.example.com" ip="192.168.122.10" />
<host mac="00:16:3e:3e:a9:1a" name="bar.example.com" ip="192.168.122.11" />
</dhcp>
</ip>
<ip family="ipv6" address="2001:db8:ca2:2::1" prefix="64" />
<route family="ipv6" address="2001:db9:ca1:1::" prefix="64" gateway="2001:db8:ca2:2::2" />