浏览代码

Merge pull request #375 from chenchun/dup_masq_rule

Fix duplicate POSTROUTING MASQUERADE rules
Madhu Venugopal 10 年之前
父节点
当前提交
21973c0ff3
共有 1 个文件被更改,包括 6 次插入1 次删除
  1. 6 1
      libnetwork/drivers/bridge/setup_ip_tables.go

+ 6 - 1
libnetwork/drivers/bridge/setup_ip_tables.go

@@ -25,7 +25,12 @@ func (n *bridgeNetwork) setupIPTables(config *networkConfiguration, i *bridgeInt
 	if err != nil {
 		return fmt.Errorf("Failed to setup IP tables, cannot acquire Interface address: %s", err.Error())
 	}
-	if err = setupIPTablesInternal(config.BridgeName, addrv4, config.EnableICC, config.EnableIPMasquerade, hairpinMode, true); err != nil {
+	ipnet := addrv4.(*net.IPNet)
+	maskedAddrv4 := &net.IPNet{
+		IP:   ipnet.IP.Mask(ipnet.Mask),
+		Mask: ipnet.Mask,
+	}
+	if err = setupIPTablesInternal(config.BridgeName, maskedAddrv4, config.EnableICC, config.EnableIPMasquerade, hairpinMode, true); err != nil {
 		return fmt.Errorf("Failed to Setup IP tables: %s", err.Error())
 	}