#!/bin/sh # # Copyright (C) Internet Systems Consortium, Inc. ("ISC") # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, you can obtain one at https://mozilla.org/MPL/2.0/. # # See the COPYRIGHT file distributed with this work for additional # information regarding copyright ownership. # # Set up interface aliases for bind9 system tests. # # IPv4: 10.53.0.{1..10} RFC 1918 # 10.53.1.{1..2} # 10.53.2.{1..2} # IPv6: fd92:7065:b8e:ffff::{1..10} ULA # fd92:7065:b8e:99ff::{1..2} # fd92:7065:b8e:ff::{1..2} # SYSTEMTESTTOP="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" . "$SYSTEMTESTTOP/conf.sh" export SYSTEMTESTTOP sys=$($SHELL "$TOP/config.guess") use_ip= case "$sys" in *-*-linux*) if type ip > /dev/null; then use_ip=yes elif type ifconfig > /dev/null; then : else echo "$0: can't find ip or ifconfig" >&2 exit 1 fi ;; esac case "$1" in start|up) for i in 0 1 2 do case $i in 0) ipv6="ff" ;; 1) ipv6="99" ;; 2) ipv6="00" ;; *) ipv6="" ;; esac for ns in 1 2 3 4 5 6 7 8 9 10 do [ $i -gt 0 -a $ns -gt 2 ] && break int=`expr $i \* 10 + $ns` case "$sys" in *-pc-solaris2.5.1) ifconfig lo0:$int 10.53.$i.$ns \ netmask 0xffffffff up ;; *-sun-solaris2.[6-7]) ifconfig lo0:$int 10.53.$i.$ns \ netmask 0xffffffff up ;; *-*-solaris2.[8-9]|*-*-solaris2.1[0-9]) /sbin/ifconfig lo0:$int plumb /sbin/ifconfig lo0:$int 10.53.$i.$ns up /sbin/ifconfig lo0:$int inet6 plumb [ "$ipv6" ] && /sbin/ifconfig lo0:$int \ inet6 fd92:7065:b8e:${ipv6}ff::$ns up ;; *-*-linux*) if [ $use_ip ]; then ip address add 10.53.$i.$ns/24 \ dev lo:$int [ "$ipv6" ] && ip address add \ fd92:7065:b8e:${ipv6}ff::$ns/64 \ dev lo else ifconfig lo:$int 10.53.$i.$ns up \ netmask 255.255.255.0 [ "$ipv6" ] && ifconfig lo inet6 add \ fd92:7065:b8e:${ipv6}ff::$ns/64 fi ;; *-unknown-freebsd*) ifconfig lo0 10.53.$i.$ns alias \ netmask 0xffffffff [ "$ipv6" ] && ifconfig lo0 inet6 \ fd92:7065:b8e:${ipv6}ff::$ns alias ;; *-unknown-dragonfly*|*-unknown-netbsd*|*-unknown-openbsd*) ifconfig lo0 10.53.$i.$ns alias \ netmask 255.255.255.0 [ "$ipv6" ] && ifconfig lo0 inet6 \ fd92:7065:b8e:${ipv6}ff::$ns alias ;; *-*-bsdi[3-5].*) ifconfig lo0 add 10.53.$i.$ns \ netmask 255.255.255.0 ;; *-dec-osf[4-5].*) ifconfig lo0 alias 10.53.$i.$ns ;; *-sgi-irix6.*) ifconfig lo0 alias 10.53.$i.$ns ;; *-*-sysv5uw7*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*) ifconfig lo0 10.53.$i.$ns alias \ netmask 0xffffffff ;; *-ibm-aix4.*|*-ibm-aix5.*) ifconfig lo0 alias 10.53.$i.$ns [ "$ipv6" ] && ifconfig lo0 inet6 alias -dad \ fd92:7065:b8e:${ipv6}ff::$ns/64 ;; hpux) ifconfig lo0:$int 10.53.$i.$ns \ netmask 255.255.255.0 up [ "$ipv6" ] && ifconfig lo0:$int inet6 \ fd92:7065:b8e:${ipv6}ff::$ns up ;; *-sco3.2v*) ifconfig lo0 alias 10.53.$i.$ns ;; *-darwin*) ifconfig lo0 alias 10.53.$i.$ns [ "$ipv6" ] && ifconfig lo0 inet6 \ fd92:7065:b8e:${ipv6}ff::$ns alias ;; *-cygwin*) echo "Please run ifconfig.bat as Administrator." exit 1 ;; *) echo "Don't know how to set up interface. Giving up." exit 1 esac done done ;; stop|down) for i in 0 1 2 do case $i in 0) ipv6="ff" ;; 1) ipv6="99" ;; 2) ipv6="00" ;; *) ipv6="" ;; esac for ns in 10 9 8 7 6 5 4 3 2 1 do [ $i -gt 0 -a $ns -gt 2 ] && continue int=`expr $i \* 10 + $ns - 1` case "$sys" in *-pc-solaris2.5.1) ifconfig lo0:$int 0.0.0.0 down ;; *-sun-solaris2.[6-7]) ifconfig lo0:$int 10.53.$i.$ns down ;; *-*-solaris2.[8-9]|*-*-solaris2.1[0-9]) ifconfig lo0:$int 10.53.$i.$ns down ifconfig lo0:$int 10.53.$i.$ns unplumb ifconfig lo0:$int inet6 down ifconfig lo0:$int inet6 unplumb ;; *-*-linux*) if [ $use_ip ]; then ip address del 10.53.$i.$ns/24 \ dev lo:$int [ "$ipv6" ] && ip address del \ fd92:7065:b8e:${ipv6}ff::$ns/64 \ dev lo else ifconfig lo:$int 10.53.$i.$ns down [ "$ipv6" ] && ifconfig lo inet6 \ del fd92:7065:b8e:${ipv6}ff::$ns/64 fi ;; *-unknown-freebsd*) ifconfig lo0 10.53.$i.$ns delete [ "$ipv6" ] && ifconfig lo0 inet6 \ fd92:7065:b8e:${ipv6}ff::$ns delete ;; *-unknown-netbsd*) ifconfig lo0 10.53.$i.$ns delete [ "$ipv6" ] && ifconfig lo0 inet6 \ fd92:7065:b8e:${ipv6}ff::$ns delete ;; *-unknown-openbsd*) ifconfig lo0 10.53.$i.$ns delete [ "$ipv6" ] && ifconfig lo0 inet6 \ fd92:7065:b8e:${ipv6}ff::$ns delete ;; *-*-bsdi[3-5].*) ifconfig lo0 remove 10.53.$i.$ns ;; *-dec-osf[4-5].*) ifconfig lo0 -alias 10.53.$i.$ns ;; *-sgi-irix6.*) ifconfig lo0 -alias 10.53.$i.$ns ;; *-*-sysv5uw7*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*) ifconfig lo0 -alias 10.53.$i.$ns ;; *-ibm-aix4.*|*-ibm-aix5.*) ifconfig lo0 delete 10.53.$i.$ns [ "$ipv6" ] && ifconfig lo0 delete inet6 \ fd92:7065:b8e:${ipv6}ff::$ns/64 ;; hpux) ifconfig lo0:$int 0.0.0.0 ifconfig lo0:$int inet6 :: ;; *-sco3.2v*) ifconfig lo0 -alias 10.53.$i.$ns ;; *darwin*) ifconfig lo0 -alias 10.53.$i.$ns [ "$ipv6" ] && ifconfig lo0 inet6 \ fd92:7065:b8e:${ipv6}ff::$ns delete ;; *-cygwin*) echo "Please run ifconfig.bat as Administrator." exit 1 ;; *) echo "Don't know how to destroy interface. Giving up." exit 1 esac done done ;; *) echo "Usage: $0 { up | down }" exit 1 esac