-
Notifications
You must be signed in to change notification settings - Fork 34
/
zeth-multiface.conf
56 lines (43 loc) · 1.68 KB
/
zeth-multiface.conf
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# Configuration file for setting IP addresses for multiple network interface.
INTERFACE_PREFIX="$1"
HWADDR_PREFIX="00:00:5e:00:53:"
IPV6_ADDR_PREFIX0="2001:db8::"
IPV6_ROUTE0="2001:db8::/64"
IPV6_ADDR_PREFIX1="2001:db8:2::"
IPV6_ROUTE1="2001:db8:2::/64"
IPV4_ADDR_PREFIX0="192.0.2."
IPV4_ADDR_PREFIX1="198.51.100."
INTERFACE0=${INTERFACE_PREFIX}
INTERFACE1=`echo ${INTERFACE_PREFIX} | sed "s/0/1/g"`
IPV4_ROUTE0="${IPV4_ADDR_PREFIX0}0/24"
IPV4_ROUTE1="${IPV4_ADDR_PREFIX1}0/24"
# The zeth0 is already created by net-setup script so avoid
# doing it twice.
ip link set dev ${INTERFACE0} up
ip link set dev ${INTERFACE0} address ${HWADDR_PREFIX}0
ip -6 address add ${IPV6_ADDR_PREFIX0}2 dev $INTERFACE0 nodad
ip -6 route add $IPV6_ROUTE0 dev $INTERFACE0
ip address add ${IPV4_ADDR_PREFIX0}2 dev $INTERFACE0
ip route add $IPV4_ROUTE0 dev $INTERFACE0 2>&1
COUNT=${COUNTER:-2}
INTERFACE_TMPL=`echo ${INTERFACE_PREFIX} | sed "s/0//g"`
for ((i = 1; i < $COUNT; i++ )); {
iface_idx=$i
INTERFACE=${INTERFACE_TMPL}${iface_idx}
ip tuntap add ${INTERFACE} mode tap
ip link set dev ${INTERFACE} up
# If there are config options then try to apply them.
# TODO: this should be changed to use a yaml file or similar.
VAR_CHECK="INTERFACE${iface_idx}"
if [ -n "${!VAR_CHECK}" ]; then
ip link set dev ${INTERFACE} address ${HWADDR_PREFIX}${iface_idx}
VAR=IPV6_ADDR_PREFIX${iface_idx}
ip -6 address add ${!VAR}${iface_idx} dev ${INTERFACE} nodad
VAR=IPV6_ROUTE${iface_idx}
ip -6 route add ${!VAR} dev ${INTERFACE}
VAR=IPV4_ADDR_PREFIX${iface_idx}
ip address add ${!VAR}${iface_idx} dev ${INTERFACE}
VAR=IPV4_ROUTE${iface_idx}
ip route add ${!VAR} dev ${INTERFACE} 2>&1
fi
}