brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · ffcd395 Raw
55 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03#4# add private ipv4 and ipv6 addresses to loopback5 6readonly V6_INNER='100::a/128'7readonly V4_INNER='192.168.0.1/32'8 9if getopts ":s" opt; then10  readonly SIT_DEV_NAME='sixtofourtest0'11  readonly V6_SIT='2::/64'12  readonly V4_SIT='172.17.0.1/32'13  shift14fi15 16fail() {17  echo "error: $*" 1>&218  exit 119}20 21setup() {22  ip -6 addr add "${V6_INNER}" dev lo || fail 'failed to setup v6 address'23  ip -4 addr add "${V4_INNER}" dev lo || fail 'failed to setup v4 address'24 25  if [[ -n "${V6_SIT}" ]]; then26    ip link add "${SIT_DEV_NAME}" type sit remote any local any \27	    || fail 'failed to add sit'28    ip link set dev "${SIT_DEV_NAME}" up \29	    || fail 'failed to bring sit device up'30    ip -6 addr add "${V6_SIT}" dev "${SIT_DEV_NAME}" \31	    || fail 'failed to setup v6 SIT address'32    ip -4 addr add "${V4_SIT}" dev "${SIT_DEV_NAME}" \33	    || fail 'failed to setup v4 SIT address'34  fi35 36  sleep 2	# avoid race causing bind to fail37}38 39cleanup() {40  if [[ -n "${V6_SIT}" ]]; then41    ip -4 addr del "${V4_SIT}" dev "${SIT_DEV_NAME}"42    ip -6 addr del "${V6_SIT}" dev "${SIT_DEV_NAME}"43    ip link del "${SIT_DEV_NAME}"44  fi45 46  ip -4 addr del "${V4_INNER}" dev lo47  ip -6 addr del "${V6_INNER}" dev lo48}49 50trap cleanup EXIT51 52setup53"$@"54exit "$?"55