I need to setup DNS just for the local network. So, I created a master zone with all the settings. I created A records and NS records. Applied new configurations and Stopped Bind9 and then restarted it. But when I enter the domain name in the browser of another client machine it does not show page moreover i can see the pages on server machine where all servers are installed..
If no one told you how to access the telephone directory of your company, how would you know what number to dial to reach anyone? It's similar with DNS, if you don't tell the clients what DNS server to use they won't use it. And those that they use probably won't know your entries, especially if it's for internal use.
For Unix hosts you set this in /etc/resolv.conf , in Windows through the adapter settings. Or, if you're using DHCP to hand out dynamic addresses, use the settings of the DHCP server to send out the new name server.
The alternate server is used in case the Preferred (or primary) isn't reachable, or sometimes if it can't serve the domain requested.
Yes, it's possible, but complicated. One option (which I've never even attempted since every description of it has big warnings associated with it) is a split-horizon DNS server setup, where it serves different answers based on the source IP of the request. The other option is to assign multiple IPs to the server, and have multiple DNS instances listening, each with it's own IP and set of configuration files.
As always: it depends. If your clients get their network information (IP address, routes, nameservers) through DHCP it's a setting that has to be changed on the DHCP server, and will become active as soon as the client requests a refresh.
If, however, the clients have their IP etc. statically set, you'll have to change them there.
Depending on the systems you use there might be automatic ways to update that information from remote, but I can't think of one right now.
dnsmasq is a nice daemon that serves dhcp and dns. It's suitable for configuring a small network. It's smart enough to assume sane settings most of the time, and you can override anything. The config file comes with lots of examples.
These are the only lines I actually needed in dnsmasq.conf for our work server:
domain-needed
bogus-priv
# Assign IP addresses between 192.168.0.129 and 192.168.0.254 to clients
dhcp-range=192.168.0.129,192.168.0.254,255.255.255.0,12h
# Force a default gateway of 192.168.0.1
dhcp-option=3,192.168.0.1