You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2012/06/16 00:38:03 UTC
[49/51] [abbrv] git commit: 1. move control network to eth0 on domr
2. if it is basic mode, use guest NIC as Control NIC
1. move control network to eth0 on domr
2. if it is basic mode, use guest NIC as Control NIC
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/396fa72e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/396fa72e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/396fa72e
Branch: refs/heads/vpc
Commit: 396fa72ee3350becf427dcd4a4341417770d7196
Parents: 929997f
Author: anthony <an...@cloud.com>
Authored: Fri May 25 14:07:26 2012 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Fri Jun 15 14:18:38 2012 -0700
----------------------------------------------------------------------
patches/systemvm/debian/config/etc/dnsmasq.conf | 9 +--
.../debian/config/etc/init.d/cloud-early-config | 39 ++---------
.../debian/config/etc/iptables/iptables-router | 11 +---
.../com/cloud/network/guru/ControlNetworkGuru.java | 19 +-----
.../network/lb/ElasticLoadBalancerManagerImpl.java | 8 +--
.../router/VirtualNetworkApplianceManagerImpl.java | 51 ++++++++-------
.../VpcVirtualNetworkApplianceManagerImpl.java | 2 +-
wscript | 2 +-
8 files changed, 45 insertions(+), 96 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/396fa72e/patches/systemvm/debian/config/etc/dnsmasq.conf
----------------------------------------------------------------------
diff --git a/patches/systemvm/debian/config/etc/dnsmasq.conf b/patches/systemvm/debian/config/etc/dnsmasq.conf
index 8f999a7..f997004 100644
--- a/patches/systemvm/debian/config/etc/dnsmasq.conf
+++ b/patches/systemvm/debian/config/etc/dnsmasq.conf
@@ -70,19 +70,18 @@ local=/2.vmops-test.vmops.com/
# specified interfaces (and the loopback) give the name of the
# interface (eg eth0) here.
# Repeat the line for more than one interface.
-interface=eth0
+#interface=eth0
+
# Or you can specify which interface _not_ to listen on
-except-interface=eth1
-except-interface=eth2
except-interface=lo
+
# Or which to listen on by address (remember to include 127.0.0.1 if
# you use this.)
#listen-address=
# If you want dnsmasq to provide only DNS service on an interface,
# configure it as shown above, and then use the following line to
# disable DHCP on it.
-no-dhcp-interface=eth1
-no-dhcp-interface=eth2
+#no-dhcp-interface=eth1
# On systems which support it, dnsmasq binds the wildcard address,
# even when it is listening on only some interfaces. It then discards
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/396fa72e/patches/systemvm/debian/config/etc/init.d/cloud-early-config
----------------------------------------------------------------------
diff --git a/patches/systemvm/debian/config/etc/init.d/cloud-early-config b/patches/systemvm/debian/config/etc/init.d/cloud-early-config
index 19f87c2..b2566eb 100755
--- a/patches/systemvm/debian/config/etc/init.d/cloud-early-config
+++ b/patches/systemvm/debian/config/etc/init.d/cloud-early-config
@@ -376,6 +376,7 @@ setup_dnsmasq() {
sed -i s/[#]*dhcp-option=15.*$/dhcp-option=15,\""$DNS_SEARCH_ORDER"\"/ /etc/dnsmasq.conf
fi
+
sed -i -e "s/^dhcp-range=.*$/dhcp-range=$DHCP_RANGE,static/" /etc/dnsmasq.conf
sed -i -e "s/^[#]*listen-address=.*$/listen-address=$ETH0_IP/" /etc/dnsmasq.conf
@@ -523,8 +524,6 @@ setup_router() {
- setup_dnsmasq
-
NS=$NS1
[ -n "$NS2" ] && NS=$NS1,$NS2
if [ "$USE_EXTERNAL_DNS" == "true" ]
@@ -533,12 +532,9 @@ setup_router() {
echo "dhcp-option=6,$NS" >> /etc/dnsmasq.conf
fi
- setup_apache2 $ETH0_IP
-
sed -i /gateway/d /etc/hosts
- echo "$ETH0_IP $NAME" >> /etc/hosts
- setup_sshd $ETH1_IP
+ setup_sshd $ETH0_IP
enable_svc dnsmasq 1
enable_svc haproxy 1
@@ -552,7 +548,7 @@ setup_router() {
setup_dhcpsrvr() {
log_it "Setting up dhcp server system vm"
- setup_common eth0 eth1
+ setup_common eth0
setup_dnsmasq
setup_apache2 $ETH0_IP
@@ -580,12 +576,7 @@ setup_dhcpsrvr() {
sed -i /gateway/d /etc/hosts
echo "$ETH0_IP $NAME" >> /etc/hosts
- if [ "$SSHONGUEST" == "true" ]
- then
- setup_sshd $ETH0_IP
- else
- setup_sshd $ETH1_IP
- fi
+ setup_sshd $ETH0_IP
enable_svc dnsmasq 1
enable_svc haproxy 0
@@ -593,12 +584,7 @@ setup_dhcpsrvr() {
enable_svc cloud 0
enable_fwding 0
chkconfig nfs-common off
- if [ "$SSHONGUEST" == "true" ]
- then
- sed '/3922/i -A INPUT -i eth0 -p tcp -m state --state NEW --dport 3922 -j ACCEPT' /etc/iptables/iptables-router > /etc/iptables/rules
- else
- cp /etc/iptables/iptables-router /etc/iptables/rules
- fi
+ cp /etc/iptables/iptables-router /etc/iptables/rules
}
setup_storage_network() {
@@ -673,17 +659,11 @@ setup_elbvm() {
setup_common eth0 eth1
sed -i /gateway/d /etc/hosts
public_ip=$ETH2_IP
- [ "$ETH2_IP" == "0.0.0.0" ] || [ "$ETH2_IP" == "" ] && public_ip=$ETH0_IP
+ [ "$ETH2_IP" == "0.0.0.0" ] || [ "$ETH2_IP" == "" ] && public_ip=$ETH1_IP
echo "$public_ip $NAME" >> /etc/hosts
- if [ "$SSHONGUEST" == "true" ]
- then
- sed '/3922/s/eth1/eth0/'
- setup_sshd $ETH0_IP
- else
- cp /etc/iptables/iptables-elbvm /etc/iptables/rules
- setup_sshd $ETH1_IP
- fi
+ cp /etc/iptables/iptables-elbvm /etc/iptables/rules
+ setup_sshd $ETH0_IP
enable_fwding 0
enable_svc haproxy 0
@@ -820,9 +800,6 @@ for i in $CMDLINE
template)
TEMPLATE=$VALUE
;;
- sshonguest)
- SSHONGUEST=$VALUE
- ;;
name)
NAME=$VALUE
;;
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/396fa72e/patches/systemvm/debian/config/etc/iptables/iptables-router
----------------------------------------------------------------------
diff --git a/patches/systemvm/debian/config/etc/iptables/iptables-router b/patches/systemvm/debian/config/etc/iptables/iptables-router
index e1972e3..ac40ed4 100644
--- a/patches/systemvm/debian/config/etc/iptables/iptables-router
+++ b/patches/systemvm/debian/config/etc/iptables/iptables-router
@@ -14,16 +14,7 @@ COMMIT
-A INPUT -i eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
--A INPUT -i eth0 -p udp -m udp --dport 67 -j ACCEPT
--A INPUT -i eth0 -p udp -m udp --dport 53 -j ACCEPT
--A INPUT -i eth1 -p tcp -m state --state NEW --dport 3922 -j ACCEPT
--A INPUT -i eth0 -p tcp -m state --state NEW --dport 8080 -j ACCEPT
--A INPUT -i eth0 -p tcp -m state --state NEW --dport 80 -j ACCEPT
--A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
--A FORWARD -i eth0 -o eth2 -j ACCEPT
--A FORWARD -i eth2 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
--A FORWARD -i eth0 -o eth0 -m state --state NEW -j ACCEPT
--A FORWARD -i eth0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
+-A INPUT -i eth0 -p tcp -m state --state NEW --dport 3922 -j ACCEPT
COMMIT
*mangle
:PREROUTING ACCEPT [0:0]
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/396fa72e/server/src/com/cloud/network/guru/ControlNetworkGuru.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/guru/ControlNetworkGuru.java b/server/src/com/cloud/network/guru/ControlNetworkGuru.java
index 4427be7..807bf31 100755
--- a/server/src/com/cloud/network/guru/ControlNetworkGuru.java
+++ b/server/src/com/cloud/network/guru/ControlNetworkGuru.java
@@ -106,14 +106,7 @@ public class ControlNetworkGuru extends PodBasedNetworkGuru implements NetworkGu
@Override
public NicProfile allocate(Network config, NicProfile nic, VirtualMachineProfile<? extends VirtualMachine> vm) throws InsufficientVirtualNetworkCapcityException,
InsufficientAddressCapacityException {
-
- if(vm.getHypervisorType() == HypervisorType.VMware && vm.getType() != VirtualMachine.Type.DomainRouter) {
- NicProfile nicProf = new NicProfile(Nic.ReservationStrategy.Create, null, null, null, null);
- String mac = _networkMgr.getNextAvailableMacAddressInNetwork(config.getId());
- nicProf.setMacAddress(mac);
- return nicProf;
- }
-
+
if (nic != null) {
throw new CloudRuntimeException("Does not support nic specification at this time: " + nic);
}
@@ -137,15 +130,6 @@ public class ControlNetworkGuru extends PodBasedNetworkGuru implements NetworkGu
String mac = _networkMgr.getNextAvailableMacAddressInNetwork(config.getId());
nic.setMacAddress(mac);
return;
- } else {
- // in basic mode and in VMware case, control network will be shared with guest network
- String mac = _networkMgr.getNextAvailableMacAddressInNetwork(config.getId());
- nic.setMacAddress(mac);
- nic.setIp4Address("0.0.0.0");
- nic.setNetmask("0.0.0.0");
- nic.setFormat(AddressFormat.Ip4);
- nic.setGateway("0.0.0.0");
- return;
}
}
@@ -158,6 +142,7 @@ public class ControlNetworkGuru extends PodBasedNetworkGuru implements NetworkGu
nic.setNetmask("255.255.0.0");
nic.setFormat(AddressFormat.Ip4);
nic.setGateway(NetUtils.getLinkLocalGateway());
+ nic.setDeviceId(0);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/396fa72e/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java b/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java
index d479f76..cf88fcd 100644
--- a/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java
+++ b/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java
@@ -498,8 +498,9 @@ public class ElasticLoadBalancerManagerImpl implements
List<Pair<NetworkVO, NicProfile>> networks = new ArrayList<Pair<NetworkVO, NicProfile>>(2);
NicProfile guestNic = new NicProfile();
guestNic.setDefaultNic(true);
- networks.add(new Pair<NetworkVO, NicProfile>((NetworkVO) guestNetwork, guestNic));
networks.add(new Pair<NetworkVO, NicProfile>(controlConfig, null));
+ networks.add(new Pair<NetworkVO, NicProfile>((NetworkVO) guestNetwork, guestNic));
+
VMTemplateVO template = _templateDao.findSystemVMTemplate(dcId);
@@ -851,11 +852,6 @@ public class ElasticLoadBalancerManagerImpl implements
// always add management explicit route, for basic networking setup
buf.append(" mgmtcidr=").append(_mgmtCidr);
buf.append(" localgw=").append(dest.getPod().getGateway());
-
- if (dc.getNetworkType() == NetworkType.Basic) {
- // ask elb vm to setup SSH on guest network
- buf.append(" sshonguest=true");
- }
}
controlNic = nic;
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/396fa72e/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
index 9cb6b21..30165b3 100755
--- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -1202,7 +1202,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
owner = _accountMgr.getAccount(Account.ACCOUNT_ID_SYSTEM);
}
- //Check if public network has to be sest on VR
+ //Check if public network has to be set on VR
boolean publicNetwork = false;
if (_networkMgr.isProviderSupportServiceInNetwork(guestNetwork.getId(), Service.SourceNat, Provider.VirtualRouter)) {
publicNetwork = true;
@@ -1211,7 +1211,12 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
s_logger.error("Didn't support redundant virtual router without public network!");
return null;
}
-
+ //Check if control network has to be set on VR
+ boolean controlNetwork = true;
+ if ( dest.getDataCenter().getNetworkType() == NetworkType.Basic ) {
+ // in basic mode, use private network as control network
+ controlNetwork = false;
+ }
//1) Get deployment plan and find out the list of routers
boolean isPodBased = (dest.getDataCenter().getNetworkType() == NetworkType.Basic ||
@@ -1253,7 +1258,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
int count = routerCount - routers.size();
PublicIp sourceNatIp = _networkMgr.assignSourceNatIpAddressToGuestNetwork(owner, guestNetwork);
for (int i = 0; i < count; i++) {
- DomainRouterVO router = deployRouter(owner, dest, plan, params, publicNetwork, guestNetwork, isRedundant,
+ DomainRouterVO router = deployRouter(owner, dest, plan, params, publicNetwork, controlNetwork, guestNetwork, isRedundant,
vrProvider, offeringId, sourceNatIp, null);
routers.add(router);
}
@@ -1266,7 +1271,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
}
protected DomainRouterVO deployRouter(Account owner, DeployDestination dest, DeploymentPlan plan, Map<Param, Object> params,
- boolean setupPublicNetwork, Network guestNetwork, boolean isRedundant,
+ boolean setupPublicNetwork, boolean setupControlNetwork, Network guestNetwork, boolean isRedundant,
VirtualRouterProvider vrProvider, long svcOffId, PublicIp sourceNatIp, Long vpcId) throws ConcurrentOperationException,
InsufficientAddressCapacityException, InsufficientServerCapacityException, InsufficientCapacityException,
StorageUnavailableException, ResourceUnavailableException {
@@ -1275,9 +1280,8 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
if (s_logger.isDebugEnabled()) {
s_logger.debug("Creating the router " + id + " in datacenter " + dest.getDataCenter());
}
-
- //1) Create router networks
- List<Pair<NetworkVO, NicProfile>> networks = createRouterNetworks(owner, setupPublicNetwork, guestNetwork,
+
+ List<Pair<NetworkVO, NicProfile>> networks = createRouterNetworks(owner, setupPublicNetwork, setupControlNetwork, guestNetwork,
isRedundant, plan, sourceNatIp);
@@ -1367,13 +1371,23 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
return router;
}
- protected List<Pair<NetworkVO, NicProfile>> createRouterNetworks(Account owner, boolean setupPublicNetwork,
+ protected List<Pair<NetworkVO, NicProfile>> createRouterNetworks(Account owner, boolean setupPublicNetwork, boolean setupControlNetwork,
Network guestNetwork, boolean isRedundant, DeploymentPlan plan, PublicIp sourceNatIp) throws ConcurrentOperationException,
InsufficientAddressCapacityException {
//Form networks
List<Pair<NetworkVO, NicProfile>> networks = new ArrayList<Pair<NetworkVO, NicProfile>>(3);
- //1) Guest network
+
+ //1) Control network
+ if (setupControlNetwork) {
+ s_logger.debug("Adding nic for Virtual Router in Control network ");
+ List<NetworkOfferingVO> offerings = _networkMgr.getSystemAccountNetworkOfferings(NetworkOfferingVO.SystemControlNetwork);
+ NetworkOfferingVO controlOffering = offerings.get(0);
+ NetworkVO controlConfig = _networkMgr.setupNetwork(_systemAcct, controlOffering, plan, null, null, false).get(0);
+ networks.add(new Pair<NetworkVO, NicProfile>(controlConfig, null));
+ }
+
+ //2) Guest network
boolean hasGuestNetwork = false;
if (guestNetwork != null) {
s_logger.debug("Adding nic for Virtual Router in Guest network " + guestNetwork);
@@ -1408,7 +1422,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
hasGuestNetwork = true;
}
- //2) Public network
+ //3) Public network
if (setupPublicNetwork) {
s_logger.debug("Adding nic for Virtual Router in Public network ");
//if source nat service is supported by the network, get the source nat ip address
@@ -1428,13 +1442,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
List<NetworkVO> publicNetworks = _networkMgr.setupNetwork(_systemAcct, publicOffering, plan, null, null, false);
networks.add(new Pair<NetworkVO, NicProfile>(publicNetworks.get(0), defaultNic));
}
-
- //3) Control network
- List<NetworkOfferingVO> offerings = _networkMgr.getSystemAccountNetworkOfferings(NetworkOfferingVO.SystemControlNetwork);
- NetworkOfferingVO controlOffering = offerings.get(0);
- NetworkVO controlConfig = _networkMgr.setupNetwork(_systemAcct, controlOffering, plan, null, null, false).get(0);
- s_logger.debug("Adding nic for Virtual Router in Control network ");
- networks.add(new Pair<NetworkVO, NicProfile>(controlConfig, null));
+
return networks;
}
@@ -1632,12 +1640,6 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
buf.append(" mgmtcidr=").append(_mgmt_cidr);
buf.append(" localgw=").append(dest.getPod().getGateway());
}
-
-
- if (dc.getNetworkType() == NetworkType.Basic) {
- // ask domR to setup SSH on guest network
- buf.append(" sshonguest=true");
- }
}
} else if (nic.getTrafficType() == TrafficType.Guest) {
dnsProvided = _networkMgr.isProviderSupportServiceInNetwork(nic.getNetworkId(), Service.Dns, Provider.VirtualRouter);
@@ -1798,8 +1800,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
NicProfile controlNic = null;
- if(profile.getHypervisorType() == HypervisorType.VMware && dcVo.getNetworkType() == NetworkType.Basic) {
- // TODO this is a ugly to test hypervisor type here
+ if( dcVo.getNetworkType() == NetworkType.Basic) {
// for basic network mode, we will use the guest NIC for control NIC
for (NicProfile nic : profile.getNics()) {
if (nic.getTrafficType() == TrafficType.Guest && nic.getIp4Address() != null) {
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/396fa72e/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
index df1177d..dc753d1 100644
--- a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
@@ -110,7 +110,7 @@ VpcVirtualNetworkApplianceManager{
VirtualRouterProviderType.VirtualRouter);
PublicIp sourceNatIp = _networkMgr.assignSourceNatIpAddressToVpc(owner, vpc);
- DomainRouterVO router = deployRouter(owner, dest, plan, params, true, null, false,
+ DomainRouterVO router = deployRouter(owner, dest, plan, params, true, true, null, false,
vrProvider, offeringId, sourceNatIp, vpc.getId());
routers.add(router);
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/396fa72e/wscript
----------------------------------------------------------------------
diff --git a/wscript b/wscript
index 80f3d56..6bf54e5 100644
--- a/wscript
+++ b/wscript
@@ -3,7 +3,7 @@
# the following two variables are used by the target "waf dist"
# if you change 'em here, you need to change it also in cloud.spec, add a %changelog entry there, and add an entry in debian/changelog
-VERSION = '3.0.3.2012-05-31T02:45:25Z'
+VERSION = '3.0.3.2012-05-25T20:59:05Z'
APPNAME = 'cloud'
import shutil,os