File: netns-setup

package info (click to toggle)
hippotat 1.2.3
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 684 kB
  • sloc: sh: 423; makefile: 130; perl: 84; python: 79; ansic: 34
file content (36 lines) | stat: -rwxr-xr-x 895 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/bash
# Copyright 2021-2022 Ian Jackson and contributors to Hippotat
# SPDX-License-Identifier: GPL-3.0-or-later WITH LicenseRef-Hippotat-OpenSSL-Exception
# There is NO WARRANTY.

set -ex

slug=$1

c_ns=hippotat-t-$slug-client
s_ns=hippotat-t-$slug-server

ip netns delete $s_ns      2>/dev/null ||:
ip netns delete $c_ns      2>/dev/null ||:

ip netns add $c_ns
ip netns add $s_ns

ip link add t.s.$$ type veth peer name t.c.$$
move_to_netns () {
    cs=$1; ns=$2
    ip link set t.$cs.$$ netns $ns
    ip netns exec $ns ip link set t.$cs.$$ name eth0
}
move_to_netns s $s_ns
move_to_netns c $c_ns

config_netns () {
    ns=$1; num=$2;
    ip netns exec $ns ip addr add dev lo   127.0.0.1
    ip netns exec $ns ip addr add dev eth0 198.51.100.$num/24
    ip netns exec $ns ip link set     lo   up
    ip netns exec $ns ip link set     eth0 up
}
config_netns $s_ns 1
config_netns $c_ns 2