package bridge import ( "fmt" "io/ioutil" ) const ( ipv4ForwardConf = "/proc/sys/net/ipv4/ip_forward" ipv4ForwardConfPerm = 0644 ) func setupIPForwarding() error { // Get current IPv4 forward setup ipv4ForwardData, err := ioutil.ReadFile(ipv4ForwardConf) if err != nil { return fmt.Errorf("Cannot read IP forwarding setup: %v", err) } // Enable IPv4 forwarding only if it is not already enabled if ipv4ForwardData[0] != '1' { // Enable IPv4 forwarding if err := ioutil.WriteFile(ipv4ForwardConf, []byte{'1', '\n'}, ipv4ForwardConfPerm); err != nil { return fmt.Errorf("Setup IP forwarding failed: %v", err) } } return nil }