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.
|
- [ ] All relevant new and existing integration tests have passed.
|
||||||
- [ ] A full integration testsuite with all test that can run on my environment has 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" %
|
"-I PREROUTING -s %s/32 -m state --state NEW -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff" %
|
||||||
rule["internal_ip"]])
|
rule["internal_ip"]])
|
||||||
self.fw.append(["mangle", "",
|
self.fw.append(["mangle", "",
|
||||||
"-I PREROUTING -s %s/32 -m state --state NEW -j MARK --set-xmark 0x%s/0xffffffff" %
|
"-I PREROUTING -s %s/32 -m state --state NEW -j MARK --set-xmark %s/0xffffffff" %
|
||||||
(rule["internal_ip"], device[len("eth"):])])
|
(rule["internal_ip"], hex(int(device[len("eth"):])))])
|
||||||
self.fw.append(["nat", "front",
|
self.fw.append(["nat", "front",
|
||||||
"-A PREROUTING -d %s/32 -j DNAT --to-destination %s" % (rule["public_ip"], rule["internal_ip"])])
|
"-A PREROUTING -d %s/32 -j DNAT --to-destination %s" % (rule["public_ip"], rule["internal_ip"])])
|
||||||
self.fw.append(["nat", "front",
|
self.fw.append(["nat", "front",
|
||||||
|
|||||||
@ -297,9 +297,7 @@ class CsIP:
|
|||||||
|
|
||||||
interfaces = [CsInterface(address, self.config)]
|
interfaces = [CsInterface(address, self.config)]
|
||||||
CsHelper.reconfigure_interfaces(self.cl, interfaces)
|
CsHelper.reconfigure_interfaces(self.cl, interfaces)
|
||||||
if not self.config.is_vpc() and (self.get_type() in ['public']):
|
if self.get_type() in ['public']:
|
||||||
self.set_mark()
|
|
||||||
if self.config.is_vpc() and (self.get_type() in ['public']):
|
|
||||||
self.set_mark()
|
self.set_mark()
|
||||||
|
|
||||||
if 'gateway' in self.address:
|
if 'gateway' in self.address:
|
||||||
@ -363,6 +361,7 @@ class CsIP:
|
|||||||
def fw_router(self):
|
def fw_router(self):
|
||||||
if self.config.is_vpc():
|
if self.config.is_vpc():
|
||||||
return
|
return
|
||||||
|
|
||||||
self.fw.append(["mangle", "front", "-A PREROUTING " +
|
self.fw.append(["mangle", "front", "-A PREROUTING " +
|
||||||
"-m state --state RELATED,ESTABLISHED " +
|
"-m state --state RELATED,ESTABLISHED " +
|
||||||
"-j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff"])
|
"-j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff"])
|
||||||
@ -534,6 +533,13 @@ class CsIP:
|
|||||||
if self.config.is_vpc():
|
if self.config.is_vpc():
|
||||||
if self.get_type() in ["public"] and "gateway" in self.address and self.address["gateway"] != "None":
|
if self.get_type() in ["public"] and "gateway" in self.address and self.address["gateway"] != "None":
|
||||||
route.add_route(self.dev, self.address["gateway"])
|
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"]))
|
route.add_network_route(self.dev, str(self.address["network"]))
|
||||||
|
|
||||||
CsHelper.execute("sudo ip route flush cache")
|
CsHelper.execute("sudo ip route flush cache")
|
||||||
|
|||||||
@ -62,13 +62,16 @@ class CsRoute:
|
|||||||
table = self.get_tablename(dev)
|
table = self.get_tablename(dev)
|
||||||
logging.info("Adding route: dev " + dev + " table: " +
|
logging.info("Adding route: dev " + dev + " table: " +
|
||||||
table + " network: " + address + " if not present")
|
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)
|
self.set_route(cmd)
|
||||||
|
|
||||||
def set_route(self, cmd, method="add"):
|
def set_route(self, cmd, method="add"):
|
||||||
""" Add a route if it is not already defined """
|
""" Add a route if it is not already defined """
|
||||||
found = False
|
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
|
found = True
|
||||||
if not found and method == "add":
|
if not found and method == "add":
|
||||||
logging.info("Add " + cmd)
|
logging.info("Add " + cmd)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user