2020-01-14 23:25:51 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
hostint="$1"
|
|
|
|
|
|
|
|
[[ -z "$hostint" ]] && hostint=$(ip -o -4 route show to default | awk '{print $5}')
|
|
|
|
|
|
|
|
###############################################
|
|
|
|
# Configure host iptables #
|
|
|
|
###############################################
|
|
|
|
echo 1 > /proc/sys/net/ipv4/ip_forward
|
|
|
|
|
|
|
|
# Flush forward rules, policy DROP by default.
|
|
|
|
iptables -P FORWARD DROP
|
|
|
|
iptables -F FORWARD
|
|
|
|
|
|
|
|
# Flush nat rules.
|
|
|
|
iptables -t nat -F
|
|
|
|
|
|
|
|
# Enable masquerading of 10.200.1.0.
|
|
|
|
iptables -t nat -A POSTROUTING -s 10.201.202.0/24 -o $hostint -j MASQUERADE
|
2020-03-09 13:26:20 +01:00
|
|
|
# Enable masquerading of 10.203.1.0.
|
|
|
|
iptables -t nat -A POSTROUTING -s 10.203.204.0/24 -o $hostint -j MASQUERADE
|
2020-01-14 23:25:51 +01:00
|
|
|
|
|
|
|
# Allow forwarding between $hostint and v-eth1.
|
|
|
|
iptables -A FORWARD -i $hostint -o v-eth1 -j ACCEPT
|
|
|
|
iptables -A FORWARD -o $hostint -i v-eth1 -j ACCEPT
|
2020-03-09 13:26:20 +01:00
|
|
|
# Allow forwarding between $hostint and v-eth2.
|
|
|
|
iptables -A FORWARD -i $hostint -o v-eth2 -j ACCEPT
|
|
|
|
iptables -A FORWARD -o $hostint -i v-eth2 -j ACCEPT
|
2020-01-14 23:25:51 +01:00
|
|
|
###############################################
|
|
|
|
###############################################
|
|
|
|
|
|
|
|
|
|
|
|
###############################################
|
|
|
|
# Init namespace #
|
|
|
|
###############################################
|
|
|
|
ip netns del client1
|
|
|
|
|
|
|
|
ip netns add client1
|
|
|
|
ip netns exec client1 ip link set lo up
|
|
|
|
###############################################
|
|
|
|
###############################################
|
|
|
|
|
|
|
|
|
|
|
|
###############################################
|
|
|
|
# Set up tunnel for namespace #
|
|
|
|
###############################################
|
2020-01-15 02:09:44 +01:00
|
|
|
ip link del v-eth1 &>/dev/null
|
2020-01-14 23:25:51 +01:00
|
|
|
ip link add v-eth1 type veth peer name v-peer1
|
|
|
|
ip link set v-peer1 netns client1
|
|
|
|
ip addr add 10.201.202.1/24 dev v-eth1
|
|
|
|
ip link set v-eth1 up
|
|
|
|
###############################################
|
|
|
|
###############################################
|
|
|
|
|
|
|
|
|
|
|
|
###############################################
|
|
|
|
# Configure network in namespace #
|
|
|
|
###############################################
|
|
|
|
ip netns exec client1 ip addr add 10.201.202.2/24 dev v-peer1
|
|
|
|
ip netns exec client1 ip link set v-peer1 up
|
|
|
|
ip netns exec client1 ip route add default via 10.201.202.1
|
|
|
|
###############################################
|
2020-01-15 02:09:44 +01:00
|
|
|
###############################################
|
2020-03-09 13:26:20 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
###############################################
|
|
|
|
# Init namespace #
|
|
|
|
###############################################
|
|
|
|
ip netns del client2
|
|
|
|
|
|
|
|
ip netns add client2
|
|
|
|
ip netns exec client2 ip link set lo up
|
|
|
|
###############################################
|
|
|
|
###############################################
|
|
|
|
|
|
|
|
|
|
|
|
###############################################
|
|
|
|
# Set up tunnel for namespace #
|
|
|
|
###############################################
|
|
|
|
ip link del v-eth2 &>/dev/null
|
|
|
|
ip link add v-eth2 type veth peer name v-peer1
|
|
|
|
ip link set v-peer1 netns client2
|
|
|
|
ip addr add 10.203.204.1/24 dev v-eth2
|
|
|
|
ip link set v-eth2 up
|
|
|
|
###############################################
|
|
|
|
###############################################
|
|
|
|
|
|
|
|
|
|
|
|
###############################################
|
|
|
|
# Configure network in namespace #
|
|
|
|
###############################################
|
|
|
|
ip netns exec client2 ip addr add 10.203.204.2/24 dev v-peer1
|
|
|
|
ip netns exec client2 ip link set v-peer1 up
|
|
|
|
ip netns exec client2 ip route add default via 10.203.204.1
|
|
|
|
###############################################
|
|
|
|
###############################################
|