Virtual Bridge and Virtual Ethernet linking - HaymonEdmur/DockerConfiguration GitHub Wiki

# Create a new virtual bridge
BRIDGE="mumbai"
BRIDGE_IP="10.200.1.1"
BRIDGE_SUBNET="10.200.0.0/16"

brctl addbr ${BRIDGE}
ip addr add ${BRIDGE_IP}/16 dev ${BRIDGE}
ip link set ${BRIDGE} up
ip route add ${BRIDGE_SUBNET} via ${BRIDGE_IP} dev ${BRIDGE}

# Create virtual ethernet and network namespace
NS="dadar_ns"
VETH="dadar0"
VPEER="dadar1"
VPEER_ADDR="10.200.1.4"


ip netns del $NS &>/dev/null
ip netns add $NS

ip link add ${VETH} type veth peer name ${VPEER}
ip link set ${VPEER} netns $NS
ip link set ${VETH} up

ip netns exec $NS ip addr add ${VPEER_ADDR}/16 dev ${VPEER}
ip netns exec $NS ip link set ${VPEER} up
ip netns exec $NS ip link set lo up

ip netns exec $NS ip route add default via ${VPEER_ADDR}

echo 1 > /proc/sys/net/ipv4/ip_forward

# Flush forward rules.
iptables -P FORWARD DROP
iptables -F FORWARD
iptables -t nat -F

brctl addif ${BRIDGE} ${VETH}

ip netns exec ${NS} /bin/bash --rcfile <(echo "PS1=\"${NS}> \"")