1*00b67f09SDavid van Moolenbroek#!/bin/sh 2*00b67f09SDavid van Moolenbroek# 3*00b67f09SDavid van Moolenbroek# Copyright (C) 2004, 2007-2010, 2012, 2013 Internet Systems Consortium, Inc. ("ISC") 4*00b67f09SDavid van Moolenbroek# Copyright (C) 2000-2003 Internet Software Consortium. 5*00b67f09SDavid van Moolenbroek# 6*00b67f09SDavid van Moolenbroek# Permission to use, copy, modify, and/or distribute this software for any 7*00b67f09SDavid van Moolenbroek# purpose with or without fee is hereby granted, provided that the above 8*00b67f09SDavid van Moolenbroek# copyright notice and this permission notice appear in all copies. 9*00b67f09SDavid van Moolenbroek# 10*00b67f09SDavid van Moolenbroek# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 11*00b67f09SDavid van Moolenbroek# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 12*00b67f09SDavid van Moolenbroek# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 13*00b67f09SDavid van Moolenbroek# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 14*00b67f09SDavid van Moolenbroek# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 15*00b67f09SDavid van Moolenbroek# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16*00b67f09SDavid van Moolenbroek# PERFORMANCE OF THIS SOFTWARE. 17*00b67f09SDavid van Moolenbroek 18*00b67f09SDavid van Moolenbroek# Id: ifconfig.sh,v 1.59 2010/06/11 23:46:49 tbox Exp 19*00b67f09SDavid van Moolenbroek 20*00b67f09SDavid van Moolenbroek# 21*00b67f09SDavid van Moolenbroek# Set up interface aliases for bind9 system tests. 22*00b67f09SDavid van Moolenbroek# 23*00b67f09SDavid van Moolenbroek# IPv4: 10.53.0.{1..8} RFC 1918 24*00b67f09SDavid van Moolenbroek# IPv6: fd92:7065:b8e:ffff::{1..8} ULA 25*00b67f09SDavid van Moolenbroek# 26*00b67f09SDavid van Moolenbroek 27*00b67f09SDavid van Moolenbroekconfig_guess="" 28*00b67f09SDavid van Moolenbroekfor f in ./config.guess ../../../config.guess 29*00b67f09SDavid van Moolenbroekdo 30*00b67f09SDavid van Moolenbroek if test -f $f 31*00b67f09SDavid van Moolenbroek then 32*00b67f09SDavid van Moolenbroek config_guess=$f 33*00b67f09SDavid van Moolenbroek fi 34*00b67f09SDavid van Moolenbroekdone 35*00b67f09SDavid van Moolenbroek 36*00b67f09SDavid van Moolenbroekif test "X$config_guess" = "X" 37*00b67f09SDavid van Moolenbroekthen 38*00b67f09SDavid van Moolenbroek cat <<EOF >&2 39*00b67f09SDavid van Moolenbroek$0: must be run from the top level source directory or the 40*00b67f09SDavid van Moolenbroekbin/tests/system directory 41*00b67f09SDavid van MoolenbroekEOF 42*00b67f09SDavid van Moolenbroek exit 1 43*00b67f09SDavid van Moolenbroekfi 44*00b67f09SDavid van Moolenbroek 45*00b67f09SDavid van Moolenbroek# If running on hp-ux, don't even try to run config.guess. 46*00b67f09SDavid van Moolenbroek# It will try to create a temporary file in the current directory, 47*00b67f09SDavid van Moolenbroek# which fails when running as root with the current directory 48*00b67f09SDavid van Moolenbroek# on a NFS mounted disk. 49*00b67f09SDavid van Moolenbroek 50*00b67f09SDavid van Moolenbroekcase `uname -a` in 51*00b67f09SDavid van Moolenbroek *HP-UX*) sys=hpux ;; 52*00b67f09SDavid van Moolenbroek *) sys=`sh $config_guess` ;; 53*00b67f09SDavid van Moolenbroekesac 54*00b67f09SDavid van Moolenbroek 55*00b67f09SDavid van Moolenbroekcase "$2" in 56*00b67f09SDavid van Moolenbroek [1-9]|[1-9][0-9]|[1-9][0-9][0-9]) base=$2;; 57*00b67f09SDavid van Moolenbroek *) base="1" 58*00b67f09SDavid van Moolenbroekesac 59*00b67f09SDavid van Moolenbroek 60*00b67f09SDavid van Moolenbroekcase "$3" in 61*00b67f09SDavid van Moolenbroek [1-9]|[1-9][0-9]|[1-9][0-9][0-9]) base6=$3;; 62*00b67f09SDavid van Moolenbroek *) base6=$base 63*00b67f09SDavid van Moolenbroekesac 64*00b67f09SDavid van Moolenbroek 65*00b67f09SDavid van Moolenbroekcase "$1" in 66*00b67f09SDavid van Moolenbroek 67*00b67f09SDavid van Moolenbroek start|up) 68*00b67f09SDavid van Moolenbroek for ns in 1 2 3 4 5 6 7 8 69*00b67f09SDavid van Moolenbroek do 70*00b67f09SDavid van Moolenbroek if test -n "$base" 71*00b67f09SDavid van Moolenbroek then 72*00b67f09SDavid van Moolenbroek int=`expr $ns + $base - 1` 73*00b67f09SDavid van Moolenbroek else 74*00b67f09SDavid van Moolenbroek int=$ns 75*00b67f09SDavid van Moolenbroek fi 76*00b67f09SDavid van Moolenbroek if test -n "$base6" 77*00b67f09SDavid van Moolenbroek then 78*00b67f09SDavid van Moolenbroek int6=`expr $ns + $base6 - 1` 79*00b67f09SDavid van Moolenbroek else 80*00b67f09SDavid van Moolenbroek int6=$ns 81*00b67f09SDavid van Moolenbroek fi 82*00b67f09SDavid van Moolenbroek case "$sys" in 83*00b67f09SDavid van Moolenbroek *-pc-solaris2.5.1) 84*00b67f09SDavid van Moolenbroek ifconfig lo0:$int 10.53.0.$ns netmask 0xffffffff up 85*00b67f09SDavid van Moolenbroek ;; 86*00b67f09SDavid van Moolenbroek *-sun-solaris2.[6-7]) 87*00b67f09SDavid van Moolenbroek ifconfig lo0:$int 10.53.0.$ns netmask 0xffffffff up 88*00b67f09SDavid van Moolenbroek ;; 89*00b67f09SDavid van Moolenbroek *-*-solaris2.[8-9]|*-*-solaris2.1[0-9]) 90*00b67f09SDavid van Moolenbroek /sbin/ifconfig lo0:$int plumb 91*00b67f09SDavid van Moolenbroek /sbin/ifconfig lo0:$int 10.53.0.$ns up 92*00b67f09SDavid van Moolenbroek if test -n "$int6" 93*00b67f09SDavid van Moolenbroek then 94*00b67f09SDavid van Moolenbroek /sbin/ifconfig lo0:$int6 inet6 plumb 95*00b67f09SDavid van Moolenbroek /sbin/ifconfig lo0:$int6 \ 96*00b67f09SDavid van Moolenbroek inet6 fd92:7065:b8e:ffff::$ns up 97*00b67f09SDavid van Moolenbroek fi 98*00b67f09SDavid van Moolenbroek ;; 99*00b67f09SDavid van Moolenbroek *-*-linux*) 100*00b67f09SDavid van Moolenbroek ifconfig lo:$int 10.53.0.$ns up netmask 255.255.255.0 101*00b67f09SDavid van Moolenbroek ifconfig lo inet6 add fd92:7065:b8e:ffff::$ns/64 102*00b67f09SDavid van Moolenbroek ;; 103*00b67f09SDavid van Moolenbroek *-unknown-freebsd*) 104*00b67f09SDavid van Moolenbroek ifconfig lo0 10.53.0.$ns alias netmask 0xffffffff 105*00b67f09SDavid van Moolenbroek ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns alias 106*00b67f09SDavid van Moolenbroek ;; 107*00b67f09SDavid van Moolenbroek *-unknown-netbsd*) 108*00b67f09SDavid van Moolenbroek ifconfig lo0 10.53.0.$ns alias netmask 255.255.255.0 109*00b67f09SDavid van Moolenbroek ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns alias 110*00b67f09SDavid van Moolenbroek ;; 111*00b67f09SDavid van Moolenbroek *-unknown-openbsd*) 112*00b67f09SDavid van Moolenbroek ifconfig lo0 10.53.0.$ns alias netmask 255.255.255.0 113*00b67f09SDavid van Moolenbroek ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns alias 114*00b67f09SDavid van Moolenbroek ;; 115*00b67f09SDavid van Moolenbroek *-*-bsdi[3-5].*) 116*00b67f09SDavid van Moolenbroek ifconfig lo0 add 10.53.0.$ns netmask 255.255.255.0 117*00b67f09SDavid van Moolenbroek ;; 118*00b67f09SDavid van Moolenbroek *-dec-osf[4-5].*) 119*00b67f09SDavid van Moolenbroek ifconfig lo0 alias 10.53.0.$ns 120*00b67f09SDavid van Moolenbroek ;; 121*00b67f09SDavid van Moolenbroek *-sgi-irix6.*) 122*00b67f09SDavid van Moolenbroek ifconfig lo0 alias 10.53.0.$ns 123*00b67f09SDavid van Moolenbroek ;; 124*00b67f09SDavid van Moolenbroek *-*-sysv5uw7*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*) 125*00b67f09SDavid van Moolenbroek ifconfig lo0 10.53.0.$ns alias netmask 0xffffffff 126*00b67f09SDavid van Moolenbroek ;; 127*00b67f09SDavid van Moolenbroek *-ibm-aix4.*|*-ibm-aix5.*) 128*00b67f09SDavid van Moolenbroek ifconfig lo0 alias 10.53.0.$ns 129*00b67f09SDavid van Moolenbroek ifconfig lo0 inet6 alias -dad fd92:7065:b8e:ffff::$ns/64 130*00b67f09SDavid van Moolenbroek ;; 131*00b67f09SDavid van Moolenbroek hpux) 132*00b67f09SDavid van Moolenbroek ifconfig lo0:$int 10.53.0.$ns netmask 255.255.255.0 up 133*00b67f09SDavid van Moolenbroek ifconfig lo0:$int inet6 fd92:7065:b8e:ffff::$ns up 134*00b67f09SDavid van Moolenbroek ;; 135*00b67f09SDavid van Moolenbroek *-sco3.2v*) 136*00b67f09SDavid van Moolenbroek ifconfig lo0 alias 10.53.0.$ns 137*00b67f09SDavid van Moolenbroek ;; 138*00b67f09SDavid van Moolenbroek *-darwin*) 139*00b67f09SDavid van Moolenbroek ifconfig lo0 alias 10.53.0.$ns 140*00b67f09SDavid van Moolenbroek ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns alias 141*00b67f09SDavid van Moolenbroek ;; 142*00b67f09SDavid van Moolenbroek *) 143*00b67f09SDavid van Moolenbroek echo "Don't know how to set up interface. Giving up." 144*00b67f09SDavid van Moolenbroek exit 1 145*00b67f09SDavid van Moolenbroek esac 146*00b67f09SDavid van Moolenbroek done 147*00b67f09SDavid van Moolenbroek ;; 148*00b67f09SDavid van Moolenbroek 149*00b67f09SDavid van Moolenbroek stop|down) 150*00b67f09SDavid van Moolenbroek for ns in 8 7 6 5 4 3 2 1 151*00b67f09SDavid van Moolenbroek do 152*00b67f09SDavid van Moolenbroek if test -n "$base" 153*00b67f09SDavid van Moolenbroek then 154*00b67f09SDavid van Moolenbroek int=`expr $ns + $base - 1` 155*00b67f09SDavid van Moolenbroek else 156*00b67f09SDavid van Moolenbroek int=$ns 157*00b67f09SDavid van Moolenbroek fi 158*00b67f09SDavid van Moolenbroek if test -n "$base6" 159*00b67f09SDavid van Moolenbroek then 160*00b67f09SDavid van Moolenbroek int6=`expr $ns + $base6 - 1` 161*00b67f09SDavid van Moolenbroek else 162*00b67f09SDavid van Moolenbroek int6=$ns 163*00b67f09SDavid van Moolenbroek fi 164*00b67f09SDavid van Moolenbroek case "$sys" in 165*00b67f09SDavid van Moolenbroek *-pc-solaris2.5.1) 166*00b67f09SDavid van Moolenbroek ifconfig lo0:$int 0.0.0.0 down 167*00b67f09SDavid van Moolenbroek ;; 168*00b67f09SDavid van Moolenbroek *-sun-solaris2.[6-7]) 169*00b67f09SDavid van Moolenbroek ifconfig lo0:$int 10.53.0.$ns down 170*00b67f09SDavid van Moolenbroek ;; 171*00b67f09SDavid van Moolenbroek *-*-solaris2.[8-9]|*-*-solaris2.1[0-9]) 172*00b67f09SDavid van Moolenbroek ifconfig lo0:$int 10.53.0.$ns down 173*00b67f09SDavid van Moolenbroek ifconfig lo0:$int 10.53.0.$ns unplumb 174*00b67f09SDavid van Moolenbroek if test -n "$int6" 175*00b67f09SDavid van Moolenbroek then 176*00b67f09SDavid van Moolenbroek ifconfig lo0:$int6 inet6 down 177*00b67f09SDavid van Moolenbroek ifconfig lo0:$int6 inet6 unplumb 178*00b67f09SDavid van Moolenbroek fi 179*00b67f09SDavid van Moolenbroek ;; 180*00b67f09SDavid van Moolenbroek *-*-linux*) 181*00b67f09SDavid van Moolenbroek ifconfig lo:$int 10.53.0.$ns down 182*00b67f09SDavid van Moolenbroek ifconfig lo inet6 del fd92:7065:b8e:ffff::$ns/64 183*00b67f09SDavid van Moolenbroek ;; 184*00b67f09SDavid van Moolenbroek *-unknown-freebsd*) 185*00b67f09SDavid van Moolenbroek ifconfig lo0 10.53.0.$ns delete 186*00b67f09SDavid van Moolenbroek ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns delete 187*00b67f09SDavid van Moolenbroek ;; 188*00b67f09SDavid van Moolenbroek *-unknown-netbsd*) 189*00b67f09SDavid van Moolenbroek ifconfig lo0 10.53.0.$ns delete 190*00b67f09SDavid van Moolenbroek ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns delete 191*00b67f09SDavid van Moolenbroek ;; 192*00b67f09SDavid van Moolenbroek *-unknown-openbsd*) 193*00b67f09SDavid van Moolenbroek ifconfig lo0 10.53.0.$ns delete 194*00b67f09SDavid van Moolenbroek ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns delete 195*00b67f09SDavid van Moolenbroek ;; 196*00b67f09SDavid van Moolenbroek *-*-bsdi[3-5].*) 197*00b67f09SDavid van Moolenbroek ifconfig lo0 remove 10.53.0.$ns 198*00b67f09SDavid van Moolenbroek ;; 199*00b67f09SDavid van Moolenbroek *-dec-osf[4-5].*) 200*00b67f09SDavid van Moolenbroek ifconfig lo0 -alias 10.53.0.$ns 201*00b67f09SDavid van Moolenbroek ;; 202*00b67f09SDavid van Moolenbroek *-sgi-irix6.*) 203*00b67f09SDavid van Moolenbroek ifconfig lo0 -alias 10.53.0.$ns 204*00b67f09SDavid van Moolenbroek ;; 205*00b67f09SDavid van Moolenbroek *-*-sysv5uw7*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*) 206*00b67f09SDavid van Moolenbroek ifconfig lo0 -alias 10.53.0.$ns 207*00b67f09SDavid van Moolenbroek ;; 208*00b67f09SDavid van Moolenbroek *-ibm-aix4.*|*-ibm-aix5.*) 209*00b67f09SDavid van Moolenbroek ifconfig lo0 delete 10.53.0.$ns 210*00b67f09SDavid van Moolenbroek ifconfig lo0 delete inet6 fd92:7065:b8e:ffff::$ns/64 211*00b67f09SDavid van Moolenbroek ;; 212*00b67f09SDavid van Moolenbroek hpux) 213*00b67f09SDavid van Moolenbroek ifconfig lo0:$int 0.0.0.0 214*00b67f09SDavid van Moolenbroek ifconfig lo0:$int inet6 :: 215*00b67f09SDavid van Moolenbroek ;; 216*00b67f09SDavid van Moolenbroek *-sco3.2v*) 217*00b67f09SDavid van Moolenbroek ifconfig lo0 -alias 10.53.0.$ns 218*00b67f09SDavid van Moolenbroek ;; 219*00b67f09SDavid van Moolenbroek *darwin*) 220*00b67f09SDavid van Moolenbroek ifconfig lo0 -alias 10.53.0.$ns 221*00b67f09SDavid van Moolenbroek ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns delete 222*00b67f09SDavid van Moolenbroek ;; 223*00b67f09SDavid van Moolenbroek *) 224*00b67f09SDavid van Moolenbroek echo "Don't know how to destroy interface. Giving up." 225*00b67f09SDavid van Moolenbroek exit 1 226*00b67f09SDavid van Moolenbroek esac 227*00b67f09SDavid van Moolenbroek done 228*00b67f09SDavid van Moolenbroek 229*00b67f09SDavid van Moolenbroek ;; 230*00b67f09SDavid van Moolenbroek 231*00b67f09SDavid van Moolenbroek *) 232*00b67f09SDavid van Moolenbroek echo "Usage: $0 { up | down } [base]" 233*00b67f09SDavid van Moolenbroek exit 1 234*00b67f09SDavid van Moolenbroekesac 235