public static boolean isUnderlayEnabledForVlan(VlanDetailsDao vlanDetailsDao, Vlan vlan) { VlanDetailsVO nuageUnderlayDetail = vlanDetailsDao.findDetail(vlan.getId(), NuageVspManager.nuageUnderlayVlanIpRangeDetailKey); return nuageUnderlayDetail != null && nuageUnderlayDetail.getValue().equalsIgnoreCase(String.valueOf(true)); }
public static Pair<String, String> getIpAddressRange(Vlan vlan) { boolean isIpv4 = StringUtils.isNotBlank(vlan.getIpRange()); String[] range = isIpv4 ? vlan.getIpRange().split("-") : vlan.getIp6Range().split("-"); if (range.length == 2) { return Pair.of(range[0], range[1]); } return null; } }
@Override public VlanIpRangeResponse createVlanIpRangeResponse(Class<? extends VlanIpRangeResponse> subClass, Vlan vlan) { try { Long podId = ApiDBUtils.getPodIdForVlan(vlan.getId()); vlanResponse.setId(vlan.getUuid()); if (vlan.getVlanType() != null) { vlanResponse.setForVirtualNetwork(vlan.getVlanType().equals(VlanType.VirtualNetwork)); vlanResponse.setVlan(vlan.getVlanTag()); DataCenter zone = ApiDBUtils.findZoneById(vlan.getDataCenterId()); if (zone != null) { vlanResponse.setZoneId(zone.getUuid()); vlanResponse.setGateway(vlan.getVlanGateway()); vlanResponse.setNetmask(vlan.getVlanNetmask()); String ipRange = vlan.getIpRange(); if (ipRange != null) { String[] range = ipRange.split("-"); vlanResponse.setIp6Gateway(vlan.getIp6Gateway()); vlanResponse.setIp6Cidr(vlan.getIp6Cidr()); String ip6Range = vlan.getIp6Range(); if (ip6Range != null) { String[] range = ip6Range.split("-"); if (vlan.getNetworkId() != null) { Network nw = ApiDBUtils.findNetworkById(vlan.getNetworkId());
IpAddress sourceIp = networkModel.getIp(rule.getSourceIpAddressId()); Vlan vlan = vlanDao.findById(sourceIp.getVlanId()); PortForwardingRuleTO ruleTO = new PortForwardingRuleTO(rule, vlan.getVlanTag(), sourceIp.getAddress().addr()); portForwardingRules.add(ruleTO);
@Override public String getStartIpv6Address(long networkId) { List<VlanVO> vlans = _vlanDao.listVlansByNetworkId(networkId); if (vlans == null) { return null; } String startIpv6 = null; // Get the start ip of first create vlan(not the lowest, because if you add a lower vlan, lowest vlan would change) for (Vlan vlan : vlans) { if (vlan.getIp6Range() != null) { startIpv6 = vlan.getIp6Range().split("-")[0]; break; } } return startIpv6; }
@Override public boolean applyPortForwardingRules(Network network, List<? extends PortForwardingRule> rules) throws ResourceUnavailableException { // Find the external firewall in this zone long zoneId = network.getDataCenterId(); DataCenterVO zone = _dcDao.findById(zoneId); ExternalFirewallDeviceVO fwDeviceVO = getExternalFirewallForNetwork(network); HostVO externalFirewall = _hostDao.findById(fwDeviceVO.getHostId()); assert (externalFirewall != null); if (network.getState() == Network.State.Allocated) { s_logger.debug("External firewall was asked to apply firewall rules for network with ID " + network.getId() + "; this network is not implemented. Skipping backend commands."); return true; } List<PortForwardingRuleTO> pfRules = new ArrayList<PortForwardingRuleTO>(); for (PortForwardingRule rule : rules) { IpAddress sourceIp = _networkModel.getIp(rule.getSourceIpAddressId()); Vlan vlan = _vlanDao.findById(sourceIp.getVlanId()); PortForwardingRuleTO ruleTO = new PortForwardingRuleTO(rule, vlan.getVlanTag(), sourceIp.getAddress().addr()); pfRules.add(ruleTO); } sendPortForwardingRules(pfRules, zone, externalFirewall.getId()); return true; } }
if (NetUtils.isIp6InRange(ip6, vlan.getIp6Range())) { ipVlan = vlan; break;
@Override public List<NuageVlanIpRangeResponse> filterNuageVlanIpRanges(List<? extends Vlan> vlanIpRanges, Boolean underlay) { List<NuageVlanIpRangeResponse> nuageVlanIpRanges = Lists.newArrayList(); for (Vlan vlanIpRange : vlanIpRanges) { NuageVlanIpRangeResponse nuageVlanIpRange = (NuageVlanIpRangeResponse) _responseGenerator.createVlanIpRangeResponse(NuageVlanIpRangeResponse.class, vlanIpRange); VlanDetailsVO nuageUnderlayDetail = _vlanDetailsDao.findDetail(vlanIpRange.getId(), NuageVspManager.nuageUnderlayVlanIpRangeDetailKey); boolean underlayEnabled = nuageUnderlayDetail != null && nuageUnderlayDetail.getValue().equalsIgnoreCase(String.valueOf(true)); nuageVlanIpRange.setUnderlay(underlayEnabled); if (underlay == null || underlayEnabled == underlay) { nuageVlanIpRanges.add(nuageVlanIpRange); } nuageVlanIpRange.setObjectName("nuagevlaniprange"); } return nuageVlanIpRanges; }
public boolean applyStaticNatRules(Network network, List<? extends StaticNat> rules) throws ResourceUnavailableException { long zoneId = network.getDataCenterId(); DataCenterVO zone = _dcDao.findById(zoneId); ExternalFirewallDeviceVO fwDeviceVO = getExternalFirewallForNetwork(network); HostVO externalFirewall = _hostDao.findById(fwDeviceVO.getHostId()); assert (externalFirewall != null); if (network.getState() == Network.State.Allocated) { s_logger.debug("External firewall was asked to apply firewall rules for network with ID " + network.getId() + "; this network is not implemented. Skipping backend commands."); return true; } List<StaticNatRuleTO> staticNatRules = new ArrayList<StaticNatRuleTO>(); for (StaticNat rule : rules) { IpAddress sourceIp = _networkModel.getIp(rule.getSourceIpAddressId()); Vlan vlan = _vlanDao.findById(sourceIp.getVlanId()); StaticNatRuleTO ruleTO = new StaticNatRuleTO(0, vlan.getVlanTag(), sourceIp.getAddress().addr(), -1, -1, rule.getDestIpAddress(), -1, -1, "any", rule.isForRevoke(), false); staticNatRules.add(ruleTO); } sendStaticNatRules(staticNatRules, zone, externalFirewall.getId()); return true; }
@Override public boolean areThereIPv6AddressAvailableInNetwork(long networkId) { Network network = _networksDao.findById(networkId); if (network == null) { return false; } if (network.getIp6Gateway() == null) { return false; } List<VlanVO> vlans = _vlanDao.listVlansByNetworkId(networkId); for (Vlan vlan : vlans) { if (isIP6AddressAvailableInVlan(vlan.getId())) { return true; } } return false; }
Vlan vlan = _vlanDao.findById(sourceIp.getVlanId()); ruleTO = new FirewallRuleTO(rule, vlan.getVlanTag(), sourceIp.getAddress().addr());
if (vlans != null && !vlans.isEmpty()) { for (final Vlan vlan : vlans) { _vlanDao.remove(vlan.getId());