Hello Han:
If you are trying to create a bond, you'll need to perform that operation inside the VM. The problem, at least for ML2/OVS and ML2/OVN, is that the traffic egressing from this interface won't match the MAC address configured. This traffic will be dropped because of the ARP spoofing rules unless you disable "port_security_enabled". I'm not sure (I've never tested) if LACP mode will work in these backends. In any case, what is the user case? Isn't it better to make this bond in the host interfaces? [1]
The IP allocation of a port is something that cannot be manually set. This value will depend on the DHCP configuration:
- If the network has a subnet, the Neutron server will try to assign an IP. If you don't have routed provider network, the value will be "immediate"
- For routed provider networks (that I don't think is your case), the value will be "deferred" and will depend on the host the port is bound.
- If you choose --no-fixed-ip when creating the port, the value will be "none".
The functionality you are looking for was implemented in Nova in [2], but this is available in Yoga, not in Victoria. This feature allows you to create an IP-less port and use it to spawn a VM.
Regards.