1 #!/bin/bash 2 # SPDX-License-Identifier: GPL-2.0 3 # 4 # add private ipv4 and ipv6 addresses to loopback 5 6 readonly V6_INNER='100::a/128' 7 readonly V4_INNER='192.168.0.1/32' 8 9 if getopts ":s" opt; then 10 readonly SIT_DEV_NAME='sixtofourtest0' 11 readonly V6_SIT='2::/64' 12 readonly V4_SIT='172.17.0.1/32' 13 shift 14 fi 15 16 fail() { 17 echo "error: $*" 1>&2 18 exit 1 19 } 20 21 setup() { 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}" ]]; then 26 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 fi 35 36 sleep 2 # avoid race causing bind to fail 37 } 38 39 cleanup() { 40 if [[ -n "${V6_SIT}" ]]; then 41 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 fi 45 46 ip -4 addr del "${V4_INNER}" dev lo 47 ip -6 addr del "${V6_INNER}" dev lo 48 } 49 50 trap cleanup EXIT 51 52 setup 53 "$@" 54 exit "$?"
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.