tgvoip-test-suite/tests/setup-netns.sh

101 lines
3.3 KiB
Bash
Raw Normal View History

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
# 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
# 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
###############################################
###############################################
# 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
###############################################
###############################################