Pau Espin Pedrol | 4c8cd7b | 2019-04-04 16:08:27 +0200 | [diff] [blame] | 1 | #!/bin/bash -e |
| 2 | |
Pau Espin Pedrol | 69b2cf3 | 2020-02-24 10:58:59 +0100 | [diff] [blame] | 3 | netns="$1" |
| 4 | ifname="$2" # optional |
Pau Espin Pedrol | 23e60e5 | 2020-04-08 15:16:50 +0200 | [diff] [blame] | 5 | ip_addr="$3" # optional |
Pau Espin Pedrol | 4c8cd7b | 2019-04-04 16:08:27 +0200 | [diff] [blame] | 6 | |
| 7 | if [ -f "/var/run/netns/${netns}" ]; then |
| 8 | echo "netns $netns already exists" |
| 9 | else |
| 10 | echo "Creating netns $netns" |
| 11 | ip netns add "$netns" |
| 12 | fi |
| 13 | |
Pau Espin Pedrol | 69b2cf3 | 2020-02-24 10:58:59 +0100 | [diff] [blame] | 14 | if [ "x$ifname" = "x" ]; then |
| 15 | exit 0 |
| 16 | fi |
| 17 | |
Pau Espin Pedrol | 4c8cd7b | 2019-04-04 16:08:27 +0200 | [diff] [blame] | 18 | if [ -d "/sys/class/net/${ifname}" ]; then |
| 19 | echo "Moving iface $ifname to netns $netns" |
| 20 | ip link set $ifname netns $netns |
| 21 | else |
| 22 | ip netns exec $netns ls "/sys/class/net/${ifname}" >/dev/null && echo "iface $ifname already in netns $netns" |
| 23 | fi |
Pau Espin Pedrol | 23e60e5 | 2020-04-08 15:16:50 +0200 | [diff] [blame] | 24 | |
| 25 | if [ "x$ip_addr" = "x" ]; then |
| 26 | exit 0 |
| 27 | fi |
| 28 | |
| 29 | echo "Setting up iface $ifname with ${ip_addr}" |
| 30 | ip netns exec $netns ip link set dev $ifname up |
| 31 | ip netns exec $netns ip addr add ${ip_addr}/24 dev $ifname |
| 32 | |
| 33 | #ip netns exec $netns ip route add default via ${ip_addr} |