51 lines
943 B
Bash
Executable File
51 lines
943 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euxo pipefail
|
|
|
|
ensure_dummy_loaded () {
|
|
if [ -z "$(lsmod | grep dummy)"]
|
|
then
|
|
sudo modprobe dummy
|
|
fi
|
|
}
|
|
|
|
maybe_add_device () {
|
|
DEVICE="${1}"
|
|
if [ -z "$(ip --brief link | grep ${DEVICE})"]
|
|
then
|
|
sudo ip link add ${DEVICE} type dummy
|
|
fi
|
|
}
|
|
|
|
add_address () {
|
|
DEVICE="${1}"
|
|
ADDR="${2}"
|
|
|
|
EXISTING="$(ip --brief addr show "${DEVICE}" | awk '{print $3}')"
|
|
if [ ! -z "${EXISTING}" ]
|
|
then
|
|
if [ "${EXISTING}" == "${ADDR}" ]
|
|
then
|
|
return
|
|
fi
|
|
|
|
sudo ip addr flush dev "${DEVICE}"
|
|
fi
|
|
|
|
sudo ip link set dev "${DEVICE}" up
|
|
sudo ip addr add "${ADDR}" dev "${DEVICE}"
|
|
}
|
|
|
|
flush_device () {
|
|
DEVICE="${1}"
|
|
|
|
sudo ip addr flush dev "${DEVICE}"
|
|
sudo ip link set dev "${DEVICE}" down
|
|
}
|
|
|
|
ensure_dummy_loaded
|
|
maybe_add_device deveth0
|
|
maybe_add_device deveth1
|
|
add_address deveth0 192.168.4.250/24
|
|
flush_device deveth1
|