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