Skip to content

Commit 1518e88

Browse files
Added cns utils.go (#102)
1 parent 93917e5 commit 1518e88

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

cns/common/utils.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package common
2+
3+
import (
4+
"fmt"
5+
"os/exec"
6+
7+
"github.com/Azure/azure-container-networking/log"
8+
)
9+
10+
func ExecuteShellCommand(command string) error {
11+
log.Printf("[Azure-CNS] %s", command)
12+
cmd := exec.Command("sh", "-c", command)
13+
err := cmd.Start()
14+
if err != nil {
15+
return err
16+
}
17+
return cmd.Wait()
18+
}
19+
20+
func SetOutboundSNAT(subnet string) error {
21+
cmd := fmt.Sprintf("iptables -t nat -A POSTROUTING -m iprange ! --dst-range 168.63.129.16 -m addrtype ! --dst-type local ! -d %v -j MASQUERADE",
22+
subnet)
23+
err := ExecuteShellCommand(cmd)
24+
if err != nil {
25+
log.Printf("SNAT Iptable rule was not set")
26+
return err
27+
}
28+
return nil
29+
}

0 commit comments

Comments
 (0)