@@ -63,14 +63,20 @@ func checkBridgeNetFiltering(config *networkConfiguration, i *bridgeInterface) e
6363 enabled , err := isPacketForwardingEnabled (ipVer , iface )
6464 if err != nil {
6565 logrus .Warnf ("failed to check %s forwarding: %v" , ipVerName , err )
66- } else if enabled {
67- enabled , err := getKernelBoolParam (getBridgeNFKernelParam (ipVer ))
68- if err != nil || enabled {
66+ }
67+
68+ if ! enabled {
69+ err := setKernelBoolParam (getForwardingKernelParam (ipVer , iface ), true )
70+ if err != nil {
6971 return err
7072 }
71- return setKernelBoolParam (getBridgeNFKernelParam (ipVer ), true )
7273 }
73- return nil
74+
75+ enabled , err = getKernelBoolParam (getBridgeNFKernelParam (ipVer ))
76+ if err != nil || enabled {
77+ return err
78+ }
79+ return setKernelBoolParam (getBridgeNFKernelParam (ipVer ), true )
7480 }
7581
7682 switch ipVer {
@@ -93,13 +99,14 @@ func checkBridgeNetFiltering(config *networkConfiguration, i *bridgeInterface) e
9399// `iface` is empty, `default` will be assumed, which represents default value
94100// for new interfaces.
95101func getForwardingKernelParam (ipVer ipVersion , iface string ) string {
102+ if iface == "" {
103+ iface = "default"
104+ }
105+
96106 switch ipVer {
97107 case ipv4 :
98- return "/proc/sys/net/ipv4/ip_forward"
108+ return fmt . Sprintf ( "/proc/sys/net/ipv4/conf/%s/forwarding" , iface )
99109 case ipv6 :
100- if iface == "" {
101- iface = "default"
102- }
103110 return fmt .Sprintf ("/proc/sys/net/ipv6/conf/%s/forwarding" , iface )
104111 default :
105112 return ""
0 commit comments