diff --git a/server/src/com/cloud/network/IpAddressManagerImpl.java b/server/src/com/cloud/network/IpAddressManagerImpl.java index 26cf15a5bd4..0058c6e0832 100644 --- a/server/src/com/cloud/network/IpAddressManagerImpl.java +++ b/server/src/com/cloud/network/IpAddressManagerImpl.java @@ -1105,8 +1105,14 @@ public class IpAddressManagerImpl extends ManagerBase implements IpAddressManage } protected IPAddressVO getExistingSourceNatInNetwork(long ownerId, Long networkId) { - - List addrs = _networkModel.listPublicIpsAssignedToGuestNtwk(ownerId, networkId, true); + List addrs; + Network guestNetwork = _networksDao.findById(networkId); + if (guestNetwork.getGuestType() == GuestType.Shared) { + // ignore the account id for the shared network + addrs = _networkModel.listPublicIpsAssignedToGuestNtwk(networkId, true); + } else { + addrs = _networkModel.listPublicIpsAssignedToGuestNtwk(ownerId, networkId, true); + } IPAddressVO sourceNatIp = null; if (addrs.isEmpty()) {