1*00b67f09SDavid van Moolenbroek# Copyright (C) 2004, 2007, 2011-2014 Internet Systems Consortium, Inc. ("ISC") 2*00b67f09SDavid van Moolenbroek# Copyright (C) 2000, 2001 Internet Software Consortium. 3*00b67f09SDavid van Moolenbroek# 4*00b67f09SDavid van Moolenbroek# Permission to use, copy, modify, and/or distribute this software for any 5*00b67f09SDavid van Moolenbroek# purpose with or without fee is hereby granted, provided that the above 6*00b67f09SDavid van Moolenbroek# copyright notice and this permission notice appear in all copies. 7*00b67f09SDavid van Moolenbroek# 8*00b67f09SDavid van Moolenbroek# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 9*00b67f09SDavid van Moolenbroek# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 10*00b67f09SDavid van Moolenbroek# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 11*00b67f09SDavid van Moolenbroek# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 12*00b67f09SDavid van Moolenbroek# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 13*00b67f09SDavid van Moolenbroek# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 14*00b67f09SDavid van Moolenbroek# PERFORMANCE OF THIS SOFTWARE. 15*00b67f09SDavid van Moolenbroek 16*00b67f09SDavid van Moolenbroek# Id: tests.sh,v 1.9 2011/10/13 22:48:23 tbox Exp 17*00b67f09SDavid van Moolenbroek 18*00b67f09SDavid van MoolenbroekSYSTEMTESTTOP=.. 19*00b67f09SDavid van Moolenbroek. $SYSTEMTESTTOP/conf.sh 20*00b67f09SDavid van Moolenbroek 21*00b67f09SDavid van Moolenbroekroot=10.53.0.1 22*00b67f09SDavid van Moolenbroekhidden=10.53.0.2 23*00b67f09SDavid van Moolenbroekf1=10.53.0.3 24*00b67f09SDavid van Moolenbroekf2=10.53.0.4 25*00b67f09SDavid van Moolenbroek 26*00b67f09SDavid van Moolenbroekstatus=0 27*00b67f09SDavid van Moolenbroek 28*00b67f09SDavid van Moolenbroekecho "I:checking that a forward zone overrides global forwarders" 29*00b67f09SDavid van Moolenbroekret=0 30*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example1. txt @$hidden -p 5300 > dig.out.hidden || ret=1 31*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example1. txt @$f1 -p 5300 > dig.out.f1 || ret=1 32*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.hidden dig.out.f1 || ret=1 33*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 34*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 35*00b67f09SDavid van Moolenbroek 36*00b67f09SDavid van Moolenbroekecho "I:checking that a forward first zone no forwarders recurses" 37*00b67f09SDavid van Moolenbroekret=0 38*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example2. txt @$root -p 5300 > dig.out.root || ret=1 39*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example2. txt @$f1 -p 5300 > dig.out.f1 || ret=1 40*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.root dig.out.f1 || ret=1 41*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 42*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 43*00b67f09SDavid van Moolenbroek 44*00b67f09SDavid van Moolenbroekecho "I:checking that a forward only zone no forwarders fails" 45*00b67f09SDavid van Moolenbroekret=0 46*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example2. txt @$root -p 5300 > dig.out.root || ret=1 47*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example2. txt @$f1 -p 5300 > dig.out.f1 || ret=1 48*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.root dig.out.f1 || ret=1 49*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 50*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 51*00b67f09SDavid van Moolenbroek 52*00b67f09SDavid van Moolenbroekecho "I:checking that global forwarders work" 53*00b67f09SDavid van Moolenbroekret=0 54*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example4. txt @$hidden -p 5300 > dig.out.hidden || ret=1 55*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example4. txt @$f1 -p 5300 > dig.out.f1 || ret=1 56*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.hidden dig.out.f1 || ret=1 57*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 58*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 59*00b67f09SDavid van Moolenbroek 60*00b67f09SDavid van Moolenbroekecho "I:checking that a forward zone works" 61*00b67f09SDavid van Moolenbroekret=0 62*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example1. txt @$hidden -p 5300 > dig.out.hidden || ret=1 63*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example1. txt @$f2 -p 5300 > dig.out.f2 || ret=1 64*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.hidden dig.out.f2 || ret=1 65*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 66*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 67*00b67f09SDavid van Moolenbroek 68*00b67f09SDavid van Moolenbroekecho "I:checking that forwarding doesn't spontaneously happen" 69*00b67f09SDavid van Moolenbroekret=0 70*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example2. txt @$root -p 5300 > dig.out.root || ret=1 71*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example2. txt @$f2 -p 5300 > dig.out.f2 || ret=1 72*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.root dig.out.f2 || ret=1 73*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 74*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 75*00b67f09SDavid van Moolenbroek 76*00b67f09SDavid van Moolenbroekecho "I:checking that a forward zone with no specified policy works" 77*00b67f09SDavid van Moolenbroekret=0 78*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example3. txt @$hidden -p 5300 > dig.out.hidden || ret=1 79*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example3. txt @$f2 -p 5300 > dig.out.f2 || ret=1 80*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.hidden dig.out.f2 || ret=1 81*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 82*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 83*00b67f09SDavid van Moolenbroek 84*00b67f09SDavid van Moolenbroekecho "I:checking that a forward only doesn't recurse" 85*00b67f09SDavid van Moolenbroekret=0 86*00b67f09SDavid van Moolenbroek$DIG txt.example5. txt @$f2 -p 5300 > dig.out.f2 || ret=1 87*00b67f09SDavid van Moolenbroekgrep "SERVFAIL" dig.out.f2 > /dev/null || ret=1 88*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 89*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 90*00b67f09SDavid van Moolenbroek 91*00b67f09SDavid van Moolenbroekecho "I:checking for negative caching of forwarder response" 92*00b67f09SDavid van Moolenbroek# prime the cache, shutdown the forwarder then check that we can 93*00b67f09SDavid van Moolenbroek# get the answer from the cache. restart forwarder. 94*00b67f09SDavid van Moolenbroekret=0 95*00b67f09SDavid van Moolenbroek$DIG nonexist. txt @10.53.0.5 -p 5300 > dig.out.f2 || ret=1 96*00b67f09SDavid van Moolenbroekgrep "status: NXDOMAIN" dig.out.f2 > /dev/null || ret=1 97*00b67f09SDavid van Moolenbroek$PERL ../stop.pl . ns4 || ret=1 98*00b67f09SDavid van Moolenbroek$DIG nonexist. txt @10.53.0.5 -p 5300 > dig.out.f2 || ret=1 99*00b67f09SDavid van Moolenbroekgrep "status: NXDOMAIN" dig.out.f2 > /dev/null || ret=1 100*00b67f09SDavid van Moolenbroek$PERL ../start.pl --restart --noclean . ns4 || ret=1 101*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 102*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 103*00b67f09SDavid van Moolenbroek 104*00b67f09SDavid van Moolenbroekecho "I:checking that forward only zone overrides empty zone" 105*00b67f09SDavid van Moolenbroekret=0 106*00b67f09SDavid van Moolenbroek$DIG 1.0.10.in-addr.arpa TXT @10.53.0.4 -p 5300 > dig.out.f2 107*00b67f09SDavid van Moolenbroekgrep "status: NOERROR" dig.out.f2 > /dev/null || ret=1 108*00b67f09SDavid van Moolenbroek$DIG 2.0.10.in-addr.arpa TXT @10.53.0.4 -p 5300 > dig.out.f2 109*00b67f09SDavid van Moolenbroekgrep "status: NXDOMAIN" dig.out.f2 > /dev/null || ret=1 110*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 111*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 112*00b67f09SDavid van Moolenbroek 113*00b67f09SDavid van Moolenbroekecho "I:checking that DS lookups for grafting forward zones are isolated" 114*00b67f09SDavid van Moolenbroekret=0 115*00b67f09SDavid van Moolenbroek$DIG grafted A @10.53.0.4 -p 5300 > dig.out.q1 116*00b67f09SDavid van Moolenbroek$DIG grafted DS @10.53.0.4 -p 5300 > dig.out.q2 117*00b67f09SDavid van Moolenbroek$DIG grafted A @10.53.0.4 -p 5300 > dig.out.q3 118*00b67f09SDavid van Moolenbroek$DIG grafted AAAA @10.53.0.4 -p 5300 > dig.out.q4 119*00b67f09SDavid van Moolenbroekgrep "status: NOERROR" dig.out.q1 > /dev/null || ret=1 120*00b67f09SDavid van Moolenbroekgrep "status: NXDOMAIN" dig.out.q2 > /dev/null || ret=1 121*00b67f09SDavid van Moolenbroekgrep "status: NOERROR" dig.out.q3 > /dev/null || ret=1 122*00b67f09SDavid van Moolenbroekgrep "status: NOERROR" dig.out.q4 > /dev/null || ret=1 123*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 124*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 125*00b67f09SDavid van Moolenbroek 126*00b67f09SDavid van Moolenbroekecho "I:exit status: $status" 127*00b67f09SDavid van Moolenbroekexit $status 128