As mentioned by Mark Johnson, the bailiwick of a DNS server is the set
of domains it is authoritative for. At a time, recursive name servers
accepted out-of-bailiwick data from authorititative name servers. So,
the name server authoritative for foo.example could add additional
data in his answer stating the IP address of www.bar.example and he
was believed. This was the basis of the Kashpureff attack. For a
long time, name servers no longer believe out-of-bailiwick data, as
instructed by RFC 2181, section 5.4.1.
The Kaminsky attack does not use out-of-bailiwick data and
therefore worked with recent name servers as well. The
Linux Journal article mentioned by Luke Quinane explains it very
well (but the rest of the Luke Quinane's post, specially about
firewalls,
is questionable.)
Regarding firewalls, this is mostly an unrelated issue. If a name server
wants to receive answers to its queries, it needs to be reachable so,
whether it has a firewall or nor in front of it does not matter: the
Kaminsky attack needs only one channel, the DNS one.
Since the Kaminsky attack is on the name server that client machines
will use, whether these machines are protected or not by the firewall
does not matter. (A good example of why a firewall is not a magic
device and does not protect everything.)