mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	Merge branch '4.11'
This commit is contained in:
		
						commit
						71ab3aff9a
					
				| @ -39,5 +39,3 @@ Testing | ||||
| - [ ] All relevant new and existing integration tests have passed. | ||||
| - [ ] A full integration testsuite with all test that can run on my environment has passed. | ||||
| 
 | ||||
| <!-- The following will kick a packaging job, remove if as applicable --> | ||||
| @blueorangutan package | ||||
|  | ||||
| @ -926,8 +926,8 @@ class CsForwardingRules(CsDataBag): | ||||
|                         "-I PREROUTING -s %s/32 -m state --state NEW -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff" % | ||||
|                         rule["internal_ip"]]) | ||||
|         self.fw.append(["mangle", "", | ||||
|                         "-I PREROUTING -s %s/32 -m state --state NEW -j MARK --set-xmark 0x%s/0xffffffff" % | ||||
|                         (rule["internal_ip"], device[len("eth"):])]) | ||||
|                         "-I PREROUTING -s %s/32 -m state --state NEW -j MARK --set-xmark %s/0xffffffff" % | ||||
|                         (rule["internal_ip"], hex(int(device[len("eth"):])))]) | ||||
|         self.fw.append(["nat", "front", | ||||
|                         "-A PREROUTING -d %s/32 -j DNAT --to-destination %s" % (rule["public_ip"], rule["internal_ip"])]) | ||||
|         self.fw.append(["nat", "front", | ||||
|  | ||||
| @ -297,9 +297,7 @@ class CsIP: | ||||
| 
 | ||||
|             interfaces = [CsInterface(address, self.config)] | ||||
|             CsHelper.reconfigure_interfaces(self.cl, interfaces) | ||||
|             if not self.config.is_vpc() and (self.get_type() in ['public']): | ||||
|                 self.set_mark() | ||||
|             if self.config.is_vpc() and (self.get_type() in ['public']): | ||||
|             if self.get_type() in ['public']: | ||||
|                 self.set_mark() | ||||
| 
 | ||||
|             if 'gateway' in self.address: | ||||
| @ -363,6 +361,7 @@ class CsIP: | ||||
|     def fw_router(self): | ||||
|         if self.config.is_vpc(): | ||||
|             return | ||||
| 
 | ||||
|         self.fw.append(["mangle", "front", "-A PREROUTING " + | ||||
|                         "-m state --state RELATED,ESTABLISHED " + | ||||
|                         "-j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff"]) | ||||
| @ -534,6 +533,13 @@ class CsIP: | ||||
|             if self.config.is_vpc(): | ||||
|                 if self.get_type() in ["public"] and "gateway" in self.address and self.address["gateway"] != "None": | ||||
|                     route.add_route(self.dev, self.address["gateway"]) | ||||
|                     for inf, addresses in self.config.address().dbag.iteritems(): | ||||
|                         if not inf.startswith("eth"): | ||||
|                             continue | ||||
|                         for address in addresses: | ||||
|                             if "nw_type" in address and address["nw_type"] == "guest": | ||||
|                                 route.add_network_route(self.dev, str(address["network"])) | ||||
| 
 | ||||
|                 route.add_network_route(self.dev, str(self.address["network"])) | ||||
| 
 | ||||
|             CsHelper.execute("sudo ip route flush cache") | ||||
|  | ||||
| @ -62,13 +62,16 @@ class CsRoute: | ||||
|         table = self.get_tablename(dev) | ||||
|         logging.info("Adding route: dev " + dev + " table: " + | ||||
|                      table + " network: " + address + " if not present") | ||||
|         cmd = "dev %s table %s throw %s proto static" % (dev, table, address) | ||||
|         cmd = "throw %s table %s proto static" % (address, table) | ||||
|         self.set_route(cmd) | ||||
| 
 | ||||
|     def set_route(self, cmd, method="add"): | ||||
|         """ Add a route if it is not already defined """ | ||||
|         found = False | ||||
|         for i in CsHelper.execute("ip route show " + cmd): | ||||
|         search = cmd | ||||
|         if "throw" in search: | ||||
|             search = "type " + search | ||||
|         for i in CsHelper.execute("ip route show " + search): | ||||
|             found = True | ||||
|         if not found and method == "add": | ||||
|             logging.info("Add " + cmd) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user