Here is the script that sets up the network:
#generated by Netbuild 1.03 set ns [new Simulator] source tb_compat.tcl set node6 [$ns node] set node7 [$ns node] set node8 [$ns node] set node9 [$ns node] set node10 [$ns node] set node11 [$ns node] set link5 [$ns duplex-link $node6 $node8 100Mb 0ms DropTail] set link6 [$ns duplex-link $node7 $node8 100Mb 0ms DropTail] set link7 [$ns duplex-link $node9 $node10 100Mb 0ms DropTail] set link8 [$ns duplex-link $node11 $node10 100Mb 0ms DropTail] set link9 [$ns duplex-link $node8 $node9 100Mb 0ms DropTail] $ns rtproto Static $ns run #netbuild-generated ns file ends.
Please do not ask why the nodes are numbered from 5 through 11 and please do not ask why I decided to make node10 the DNS server.
On node10 under /etc/namedb you need to put a file like this called db.star.db:
$TTL 1d star. IN SOA node10.dnsexp.is333.emulab.calvin.edu. lave.calvin.edu. ( 2007061202 ; Serial (date, 2 digits version of day) 1d ; refresh 2h ; retry 100d ; expire 1h ) ; negative cache expiry in ns node10.dnsexp.is333.emulab.calvin.edu. ; node10.dnsexp.is333.emulab.calvin.edu. IN A 10.1.3.3 localhost IN A 127.0.0.1 twinkle.little IN A 10.1.1.3 little IN A 10.1.1.2 IN NS ns IN NS star.
In the same directory put a file called star.rev:
$TTL 1d @ IN SOA node10.dnsexp.is333.emulab.calvin.edu. lave.calvin.edu ( 2007061201 ; Serial (date, 2 digits version of day) 1d ; refresh 2h ; retry 100d ; expire 1h ) ; negative cache expiry in ns node10.dnsexp.is333.emulab.calvin.edu. ; node10.dnsexp.is333.emulab.calvin.edu. IN A 10.1.3.3 localhost IN A 127.0.0.1 twinkle.little IN A 10.1.1.3 little IN A 10.1.1.2 IN NS boss.emulab.calvin.edu 1 IN PTR star. 2 IN PTR name. 3 IN PTR dot.
Now you need to modify named.conf in the same directory so that it looks something like this:
// $FreeBSD: src/etc/namedb/named.conf,v 1.6.2.7 2003/02/13 13:16:51 keramida Exp $
//
// Refer to the named.conf(5) and named(8) man pages for details. If
// you are ever going to set up a primary server, make sure you
// understand the hairy details of how DNS works. Even with
// simple mistakes, you can break connectivity for affected parties,
// or cause huge amounts of useless Internet traffic.
options {
directory "/etc/namedb";
// In addition to the "forwarders" clause, you can force your name
// server to never initiate queries of its own, but always ask its
// forwarders only, by enabling the following line:
//
// forward only;
// If you've got a DNS server around at your upstream provider, enter
// its IP address here, and enable the line below. This will make you
// benefit from its cache, thus reduce overall DNS traffic in the Internet.
/*
forwarders {
127.0.0.1;
};
*/
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
/*
* If running in a sandbox, you may have to specify a different
* location for the dumpfile.
*/
// dump-file "s/named_dump.db";
};
// Note: the following will be supported in a future release.
/*
host { any; } {
topology {
127.0.0.0/8;
};
};
*/
// Setting up secondaries is way easier and a rough example for this
// is provided below.
//
// If you enable a local name server, don't forget to enter 127.0.0.1
// first in your /etc/resolv.conf so this server will be queried.
// Also, make sure to enable it in /etc/rc.conf.
zone "." {
type hint;
file "named.root";
};
#zone "0.0.127.IN-ADDR.ARPA" {
#type master;
#file "localhost.rev";
#};
// RFC 3152
#zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA" {
# type master;
# file "localhost-v6.rev";
#};
zone "star" {
type master;
file "db.star.db";
};
zone "1.10.in-addr.arpa" {
type master;
file "star.rev";
};
// RFC 1886 -- deprecated
#zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT" {
# type master;
# file "localhost-v6.rev";
#};
// NB: Do not use the IP addresses below, they are faked, and only
// serve demonstration/documentation purposes!
//
// Example secondary config entries. It can be convenient to become
// a secondary at least for the zone your own domain is in. Ask
// your network administrator for the IP address of the responsible
// primary.
//
// Never forget to include the reverse lookup (IN-ADDR.ARPA) zone!
// (This is named after the first bytes of the IP address, in reverse
// order, with ".IN-ADDR.ARPA" appended.)
//
// Before starting to set up a primary zone, make sure you fully
// understand how DNS and BIND works. There are sometimes
// non-obvious pitfalls. Setting up a secondary is simpler.
//
// NB: Don't blindly enable the examples below. :-) Use actual names
// and addresses instead.
//
// NOTE!!! FreeBSD can run bind in a sandbox (see named_flags in rc.conf).
// The directory containing the secondary zones must be write accessible
// to bind. The following sequence is suggested:
//
// mkdir /etc/namedb/s
// chown bind:bind /etc/namedb/s
// chmod 750 /etc/namedb/s
/*
zone "domain.com" {
type slave;
file "s/domain.com.bak";
masters {
192.168.1.1;
};
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "s/0.168.192.in-addr.arpa.bak";
masters {
192.168.1.1;
};
};
*/
The lines commented out have to do with a version discrepancy in bind.
Now sshto node7 (say), add node10's IP address to your
resolv.conf file, and you should be able to ping
twinkle.little.star to your heart's content.
Warning: include(net.bottom.html): Failed to open stream: No such file or directory in /var/www/html/activities/books/networking/labbook/exp/emulab/exp18.1.php on line 253
Warning: include(): Failed opening 'net.bottom.html' for inclusion (include_path='.:/usr/local/lib/php') in /var/www/html/activities/books/networking/labbook/exp/emulab/exp18.1.php on line 253