Skip to content

Instantly share code, notes, and snippets.

@adililhan
Created March 2, 2021 21:08
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adililhan/04f1103e72f0c700b7a305819ae23cce to your computer and use it in GitHub Desktop.
Save adililhan/04f1103e72f0c700b7a305819ae23cce to your computer and use it in GitHub Desktop.
#!/bin/bash
ip netns del one
ip netns del two
ip netns del three
ip link del name virtual-bridge type bridge
iptables -F POSTROUTING -t nat
ip netns add one
ip netns add two
ip netns add three
ip link add veth-one-in type veth peer name veth-one-out
ip link add veth-two-in type veth peer name veth-two-out
ip link add veth-three-in type veth peer name veth-three-out
ip link set veth-one-in netns one
ip link set veth-two-in netns two
ip link set veth-three-in netns three
ip netns exec one ip addr add 10.0.0.10/24 dev veth-one-in
ip netns exec two ip addr add 10.0.0.20/24 dev veth-two-in
ip netns exec three ip addr add 10.0.0.30/24 dev veth-three-in
ip link add name virtual-bridge type bridge
ip link set veth-one-out master virtual-bridge
ip link set veth-two-out master virtual-bridge
ip link set veth-three-out master virtual-bridge
ip link set virtual-bridge up
ip link set veth-one-out up
ip link set veth-two-out up
ip link set veth-three-out up
ip netns exec one ip link set dev veth-one-in up
ip netns exec two ip link set dev veth-two-in up
ip netns exec three ip link set dev veth-three-in up
ip netns exec one ip link set dev lo up
ip netns exec two ip link set dev lo up
ip netns exec three ip link set dev lo up
ip addr add 10.0.0.1/24 dev virtual-bridge
ip netns exec one ip route add default via 10.0.0.1
ip netns exec two ip route add default via 10.0.0.1
ip netns exec three ip route add default via 10.0.0.1
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment