<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://training.nren.net.np/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Indiver</id>
	<title>NREN - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://training.nren.net.np/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Indiver"/>
	<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Special:Contributions/Indiver"/>
	<updated>2026-04-25T15:44:37Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.10</generator>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=89</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=89"/>
		<updated>2024-07-28T11:22:57Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The package bind9 will be used for installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then if you want to also install the documentation (very useful):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9-doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Testing ====&lt;br /&gt;
Use these tools to check BIND configurations:&lt;br /&gt;
* named-checkconf&lt;br /&gt;
* named-checkzone&lt;br /&gt;
&lt;br /&gt;
After ensuring the configs are correct, make several queries:&lt;br /&gt;
Eg.:&amp;lt;code&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carefully review the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Additional Config ====&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in BIND config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    recursion yes;                    # enables recursive queries&lt;br /&gt;
    allow-recursion { 10.0.0.0/8 ; }; # allows recursive queries from LAN clients&lt;br /&gt;
    listen-on { 10.9.0.19; };         # listen on specified IP only&lt;br /&gt;
    allow-transfer { none; };         # disable zone transfers by default&lt;br /&gt;
&lt;br /&gt;
    forwarders {&lt;br /&gt;
        1.1.1.1;&lt;br /&gt;
        8.8.8.8;&lt;br /&gt;
    };&lt;br /&gt;
        . . .&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== More Testing ====&lt;br /&gt;
Test from other computers on the network. Observe the responses.&lt;br /&gt;
&lt;br /&gt;
Lab: Check and fix issues that arise during testing.&lt;br /&gt;
&lt;br /&gt;
== Authoritative Configuration ==&lt;br /&gt;
Earlier, we configured BIND for recursive usage. Now we will be configuring BIND for authoritative usage.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new Zone ===&lt;br /&gt;
Use the following example to add a new zone. In this example we create a new file &amp;lt;code&amp;gt;lab1.com.np.zone&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
Do not forget to replace &amp;#039;lab1.com.np` with your correct domain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN a.example.com.np. &lt;br /&gt;
$TTL 86400 &lt;br /&gt;
@	IN	SOA	dns1.a.example.com.np.	hostmaster.a.example.com.np. (&lt;br /&gt;
			2024071501 ; serial&lt;br /&gt;
			21600      ; refresh after 6 hours&lt;br /&gt;
			3600       ; retry after 1 hour&lt;br /&gt;
			604800     ; expire after 1 week&lt;br /&gt;
			86400 )    ; minimum TTL of 1 day&lt;br /&gt;
&lt;br /&gt;
	IN	NS	dns1.a.example.com.np.&lt;br /&gt;
	IN	NS	dns2.a.example.com.np.&lt;br /&gt;
	&lt;br /&gt;
	IN	MX	10	mail.a.example.com.np.&lt;br /&gt;
	IN	MX	20	mail2.a.example.com.np.&lt;br /&gt;
	&lt;br /&gt;
dns1	IN	A	10.0.1.1&lt;br /&gt;
dns2	IN	A	10.0.1.2&lt;br /&gt;
			       &lt;br /&gt;
server1	IN	A	10.0.1.5&lt;br /&gt;
server2	IN	A	10.0.1.6&lt;br /&gt;
&lt;br /&gt;
ftp	IN	A	10.0.1.3&lt;br /&gt;
	IN	A	10.0.1.4&lt;br /&gt;
	&lt;br /&gt;
mail	IN	CNAME	server1&lt;br /&gt;
mail2	IN	CNAME	server2&lt;br /&gt;
&lt;br /&gt;
www	IN	CNAME	server1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, you need to include the recently configured zone into BIND config by&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/bind/named.conf.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following entry&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;a.example.com.np&amp;quot;  { type master; file &amp;quot;/etc/bind/a.example.com.np.zone&amp;quot;; };&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reload BIND:&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
or (there is some difference between these commands)&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run tests from your computer and others on the network.&lt;br /&gt;
&lt;br /&gt;
==== Making Changes ====&lt;br /&gt;
Edit the zone file, add new entries, make a few changes, remove some and check whether they are propagated correctly.&lt;br /&gt;
&lt;br /&gt;
Editing:&lt;br /&gt;
* Use your favorite editor to make all changes to the file&lt;br /&gt;
* Increment the Zone serial number&lt;br /&gt;
* Save the file&lt;br /&gt;
* Reload the zone &amp;lt;code&amp;gt;rndc reload lab1.com.np&amp;lt;/code&amp;gt;&lt;br /&gt;
* Checking&lt;br /&gt;
* Troubleshooting&lt;br /&gt;
&lt;br /&gt;
=== Secondary Zone ===&lt;br /&gt;
Now that we have a good understanding of zone, changes and upadating them, lets add a secondary zone. Team up with another group and add their domain to yours as secondary:&lt;br /&gt;
&lt;br /&gt;
* Group 1 add lab2&lt;br /&gt;
* Group 2 add lab3&lt;br /&gt;
* ...&lt;br /&gt;
* Group 6 add lab1&lt;br /&gt;
&lt;br /&gt;
Work with the other group to allow permissions, ensure the zone is transferred and changes are propagated promptly.&lt;br /&gt;
&lt;br /&gt;
On the **secondary server**, add the zone into named.conf.local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  {&lt;br /&gt;
    type slave;&lt;br /&gt;
    file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;;&lt;br /&gt;
    masters { 10.9.0.31; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
Be sure to use the correct IP and zones, using above as an example.&lt;br /&gt;
&lt;br /&gt;
On the **origin server**, you will have to allow zone transfer to the appropriate servers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    allow-transfer {&lt;br /&gt;
        10.9.0.31;     # lab1&lt;br /&gt;
        10.9.0.32;     # lab2&lt;br /&gt;
    };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When editing the zone file, be careful about the syntax.&lt;br /&gt;
&lt;br /&gt;
Once done, reload BIND using rndc command.&lt;br /&gt;
==== Make some changes ====&lt;br /&gt;
Make some changes and test.&lt;br /&gt;
&lt;br /&gt;
==== dig ====&lt;br /&gt;
Using dig to check domain transfers:&lt;br /&gt;
&amp;lt;pre&amp;gt;dig +AXFR lab1.com.np @10.9.0.31&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging ==&lt;br /&gt;
Logging configuration example named.conf.logging&lt;br /&gt;
&amp;lt;pre&amp;gt;logging {&lt;br /&gt;
     channel simplelog {&lt;br /&gt;
        file &amp;quot;/var/log/bind.log&amp;quot;;&lt;br /&gt;
        severity info;&lt;br /&gt;
    };&lt;br /&gt;
    category default { simplelog; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the log file and set correct owner&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo touch /var/log/bind.log&lt;br /&gt;
sudo chown bind /var/log/bind.log&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then add this to named.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;include &amp;quot;/etc/bind/named.conf.logging&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then reload BIND using rndc command.&lt;br /&gt;
&lt;br /&gt;
== Sources and External Links ==&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=88</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=88"/>
		<updated>2024-07-28T10:09:36Z</updated>

		<summary type="html">&lt;p&gt;Indiver: /* Adding a new Zone */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The package bind9 will be used for installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then if you want to also install the documentation (very useful):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9-doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Testing ====&lt;br /&gt;
Use these tools to check BIND configurations:&lt;br /&gt;
* named-checkconf&lt;br /&gt;
* named-checkzone&lt;br /&gt;
&lt;br /&gt;
After ensuring the configs are correct, make several queries:&lt;br /&gt;
Eg.:&amp;lt;code&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carefully review the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Additional Config ====&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in BIND config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    recursion yes;                    # enables recursive queries&lt;br /&gt;
    allow-recursion { 10.0.0.0/8 ; }; # allows recursive queries from LAN clients&lt;br /&gt;
    listen-on { 10.9.0.19; };         # listen on specified IP only&lt;br /&gt;
    allow-transfer { none; };         # disable zone transfers by default&lt;br /&gt;
&lt;br /&gt;
    forwarders {&lt;br /&gt;
        1.1.1.1;&lt;br /&gt;
        8.8.8.8;&lt;br /&gt;
    };&lt;br /&gt;
        . . .&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== More Testing ====&lt;br /&gt;
Test from other computers on the network. Observe the responses.&lt;br /&gt;
&lt;br /&gt;
Lab: Check and fix issues that arise during testing.&lt;br /&gt;
&lt;br /&gt;
== Authoritative Configuration ==&lt;br /&gt;
Earlier, we configured BIND for recursive usage. Now we will be configuring BIND for authoritative usage.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new Zone ===&lt;br /&gt;
Use the following example to add a new zone. In this example we create a new file &amp;lt;code&amp;gt;lab1.com.np.zone&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
Do not forget to replace &amp;#039;lab1.com.np` with your correct domain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN a.example.com.np. &lt;br /&gt;
$TTL 86400 &lt;br /&gt;
@	IN	SOA	dns1.a.example.com.np.	hostmaster.a.example.com.np. (&lt;br /&gt;
			2024071501 ; serial&lt;br /&gt;
			21600      ; refresh after 6 hours&lt;br /&gt;
			3600       ; retry after 1 hour&lt;br /&gt;
			604800     ; expire after 1 week&lt;br /&gt;
			86400 )    ; minimum TTL of 1 day&lt;br /&gt;
&lt;br /&gt;
	IN	NS	dns1.a.example.com.np.&lt;br /&gt;
	IN	NS	dns2.a.example.com.np.&lt;br /&gt;
	&lt;br /&gt;
	IN	MX	10	mail.a.example.com.np.&lt;br /&gt;
	IN	MX	20	mail2.a.example.com.np.&lt;br /&gt;
	&lt;br /&gt;
dns1	IN	A	10.0.1.1&lt;br /&gt;
dns2	IN	A	10.0.1.2&lt;br /&gt;
			       &lt;br /&gt;
server1	IN	A	10.0.1.5&lt;br /&gt;
server2	IN	A	10.0.1.6&lt;br /&gt;
&lt;br /&gt;
ftp	IN	A	10.0.1.3&lt;br /&gt;
	IN	A	10.0.1.4&lt;br /&gt;
	&lt;br /&gt;
mail	IN	CNAME	server1&lt;br /&gt;
mail2	IN	CNAME	server2&lt;br /&gt;
&lt;br /&gt;
www	IN	CNAME	server1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, you need to include the recently configured zone into BIND config by&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/bind/named.conf.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following entry&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;a.example.com.np&amp;quot;  { type master; file &amp;quot;/etc/bind/a.example.com.np.zone&amp;quot;; };&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reload BIND:&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
or (there is some difference between these commands)&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run tests from your computer and others on the network.&lt;br /&gt;
&lt;br /&gt;
==== Making Changes ====&lt;br /&gt;
Edit the zone file, add new entries, make a few changes, remove some and check whether they are propagated correctly.&lt;br /&gt;
&lt;br /&gt;
Editing:&lt;br /&gt;
* Use your favorite editor to make all changes to the file&lt;br /&gt;
* Increment the Zone serial number&lt;br /&gt;
* Save the file&lt;br /&gt;
* Reload the zone &amp;lt;code&amp;gt;rndc reload lab1.com.np&amp;lt;/code&amp;gt;&lt;br /&gt;
* Checking&lt;br /&gt;
* Troubleshooting&lt;br /&gt;
&lt;br /&gt;
=== Secondary Zone ===&lt;br /&gt;
Now that we have a good understanding of zone, changes and upadating them, lets add a secondary zone. Team up with another group and add their domain to yours as secondary:&lt;br /&gt;
&lt;br /&gt;
* Group 1 add lab2&lt;br /&gt;
* Group 2 add lab3&lt;br /&gt;
* ...&lt;br /&gt;
* Group 6 add lab1&lt;br /&gt;
&lt;br /&gt;
Work with the other group to allow permissions, ensure the zone is transferred and changes are propagated promptly.&lt;br /&gt;
&lt;br /&gt;
On the secondary server, add the zone into named.conf.local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  {&lt;br /&gt;
    type slave;&lt;br /&gt;
    file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;;&lt;br /&gt;
    masters { 10.9.0.31; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
Be sure to use the correct IP and zones, using above as an example.&lt;br /&gt;
&lt;br /&gt;
On the origin server, you will have to allow zone transfer to the appropriate servers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    allow-transfer {&lt;br /&gt;
        10.9.0.31;     # lab1&lt;br /&gt;
        10.9.0.32;     # lab2&lt;br /&gt;
    };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When editing the zone file, be careful about the syntax.&lt;br /&gt;
&lt;br /&gt;
Once done, reload BIND using rndc command.&lt;br /&gt;
==== Make some changes ====&lt;br /&gt;
Make some changes and test.&lt;br /&gt;
&lt;br /&gt;
==== dig ====&lt;br /&gt;
Using dig to check domain transfers:&lt;br /&gt;
&amp;lt;pre&amp;gt;dig +AXFR lab1.com.np @10.9.0.31&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging ==&lt;br /&gt;
Logging configuration example named.conf.logging&lt;br /&gt;
&amp;lt;pre&amp;gt;logging {&lt;br /&gt;
     channel simplelog {&lt;br /&gt;
        file &amp;quot;/var/log/bind.log&amp;quot;;&lt;br /&gt;
        severity info;&lt;br /&gt;
    };&lt;br /&gt;
    category default { simplelog; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the log file and set correct owner&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo touch /var/log/bind.log&lt;br /&gt;
sudo chown bind /var/log/bind.log&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then add this to named.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;include &amp;quot;/etc/bind/named.conf.logging&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then reload BIND using rndc command.&lt;br /&gt;
&lt;br /&gt;
== Sources and External Links ==&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=87</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=87"/>
		<updated>2024-07-28T09:48:23Z</updated>

		<summary type="html">&lt;p&gt;Indiver: /* Adding a new Zone */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The package bind9 will be used for installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then if you want to also install the documentation (very useful):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9-doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Testing ====&lt;br /&gt;
Use these tools to check BIND configurations:&lt;br /&gt;
* named-checkconf&lt;br /&gt;
* named-checkzone&lt;br /&gt;
&lt;br /&gt;
After ensuring the configs are correct, make several queries:&lt;br /&gt;
Eg.:&amp;lt;code&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carefully review the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Additional Config ====&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in BIND config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    recursion yes;                    # enables recursive queries&lt;br /&gt;
    allow-recursion { 10.0.0.0/8 ; }; # allows recursive queries from LAN clients&lt;br /&gt;
    listen-on { 10.9.0.19; };         # listen on specified IP only&lt;br /&gt;
    allow-transfer { none; };         # disable zone transfers by default&lt;br /&gt;
&lt;br /&gt;
    forwarders {&lt;br /&gt;
        1.1.1.1;&lt;br /&gt;
        8.8.8.8;&lt;br /&gt;
    };&lt;br /&gt;
        . . .&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== More Testing ====&lt;br /&gt;
Test from other computers on the network. Observe the responses.&lt;br /&gt;
&lt;br /&gt;
Lab: Check and fix issues that arise during testing.&lt;br /&gt;
&lt;br /&gt;
== Authoritative Configuration ==&lt;br /&gt;
Earlier, we configured BIND for recursive usage. Now we will be configuring BIND for authoritative usage.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new Zone ===&lt;br /&gt;
Use the following example to add a new zone. In this example we create a new file &amp;lt;code&amp;gt;lab1.com.np.zone&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
Do not forget to replace &amp;#039;lab1.com.np` with your correct domain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN a.example.com.np. &lt;br /&gt;
$TTL 86400 &lt;br /&gt;
@	IN	SOA	dns1.a.example.com.np.	hostmaster.a.example.com.np. (&lt;br /&gt;
			2024071501 ; serial&lt;br /&gt;
			21600      ; refresh after 6 hours&lt;br /&gt;
			3600       ; retry after 1 hour&lt;br /&gt;
			604800     ; expire after 1 week&lt;br /&gt;
			86400 )    ; minimum TTL of 1 day&lt;br /&gt;
&lt;br /&gt;
	IN	NS	dns1.a.example.com.np.&lt;br /&gt;
	IN	NS	dns2.a.example.com.np.&lt;br /&gt;
	&lt;br /&gt;
	IN	MX	10	mail.a.example.com.np.&lt;br /&gt;
	IN	MX	20	mail2.a.example.com.np.&lt;br /&gt;
	&lt;br /&gt;
dns1	IN	A	10.0.1.1&lt;br /&gt;
dns2	IN	A	10.0.1.2&lt;br /&gt;
			       &lt;br /&gt;
server1	IN	A	10.0.1.5&lt;br /&gt;
server2	IN	A	10.0.1.6&lt;br /&gt;
&lt;br /&gt;
ftp	IN	A	10.0.1.3&lt;br /&gt;
	IN	A	10.0.1.4&lt;br /&gt;
	&lt;br /&gt;
mail	IN	CNAME	server1&lt;br /&gt;
mail2	IN	CNAME	server2&lt;br /&gt;
&lt;br /&gt;
www	IN	CNAME	server1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, you need to include the recently configured zone into BIND config by&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/bind/named.conf.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following entry&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  { type master; file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;; };&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reload BIND:&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
or (there is some difference between these commands)&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run tests from your computer and others on the network.&lt;br /&gt;
&lt;br /&gt;
==== Making Changes ====&lt;br /&gt;
Edit the zone file, add new entries, make a few changes, remove some and check whether they are propagated correctly.&lt;br /&gt;
&lt;br /&gt;
Editing:&lt;br /&gt;
* Use your favorite editor to make all changes to the file&lt;br /&gt;
* Increment the Zone serial number&lt;br /&gt;
* Save the file&lt;br /&gt;
* Reload the zone &amp;lt;code&amp;gt;rndc reload lab1.com.np&amp;lt;/code&amp;gt;&lt;br /&gt;
* Checking&lt;br /&gt;
* Troubleshooting&lt;br /&gt;
&lt;br /&gt;
=== Secondary Zone ===&lt;br /&gt;
Now that we have a good understanding of zone, changes and upadating them, lets add a secondary zone. Team up with another group and add their domain to yours as secondary:&lt;br /&gt;
&lt;br /&gt;
* Group 1 add lab2&lt;br /&gt;
* Group 2 add lab3&lt;br /&gt;
* ...&lt;br /&gt;
* Group 6 add lab1&lt;br /&gt;
&lt;br /&gt;
Work with the other group to allow permissions, ensure the zone is transferred and changes are propagated promptly.&lt;br /&gt;
&lt;br /&gt;
On the secondary server, add the zone into named.conf.local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  {&lt;br /&gt;
    type slave;&lt;br /&gt;
    file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;;&lt;br /&gt;
    masters { 10.9.0.31; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
Be sure to use the correct IP and zones, using above as an example.&lt;br /&gt;
&lt;br /&gt;
On the origin server, you will have to allow zone transfer to the appropriate servers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    allow-transfer {&lt;br /&gt;
        10.9.0.31;     # lab1&lt;br /&gt;
        10.9.0.32;     # lab2&lt;br /&gt;
    };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When editing the zone file, be careful about the syntax.&lt;br /&gt;
&lt;br /&gt;
Once done, reload BIND using rndc command.&lt;br /&gt;
==== Make some changes ====&lt;br /&gt;
Make some changes and test.&lt;br /&gt;
&lt;br /&gt;
==== dig ====&lt;br /&gt;
Using dig to check domain transfers:&lt;br /&gt;
&amp;lt;pre&amp;gt;dig +AXFR lab1.com.np @10.9.0.31&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging ==&lt;br /&gt;
Logging configuration example named.conf.logging&lt;br /&gt;
&amp;lt;pre&amp;gt;logging {&lt;br /&gt;
     channel simplelog {&lt;br /&gt;
        file &amp;quot;/var/log/bind.log&amp;quot;;&lt;br /&gt;
        severity info;&lt;br /&gt;
    };&lt;br /&gt;
    category default { simplelog; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the log file and set correct owner&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo touch /var/log/bind.log&lt;br /&gt;
sudo chown bind /var/log/bind.log&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then add this to named.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;include &amp;quot;/etc/bind/named.conf.logging&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then reload BIND using rndc command.&lt;br /&gt;
&lt;br /&gt;
== Sources and External Links ==&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=86</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=86"/>
		<updated>2024-07-28T09:48:03Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The package bind9 will be used for installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then if you want to also install the documentation (very useful):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9-doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Testing ====&lt;br /&gt;
Use these tools to check BIND configurations:&lt;br /&gt;
* named-checkconf&lt;br /&gt;
* named-checkzone&lt;br /&gt;
&lt;br /&gt;
After ensuring the configs are correct, make several queries:&lt;br /&gt;
Eg.:&amp;lt;code&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carefully review the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Additional Config ====&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in BIND config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    recursion yes;                    # enables recursive queries&lt;br /&gt;
    allow-recursion { 10.0.0.0/8 ; }; # allows recursive queries from LAN clients&lt;br /&gt;
    listen-on { 10.9.0.19; };         # listen on specified IP only&lt;br /&gt;
    allow-transfer { none; };         # disable zone transfers by default&lt;br /&gt;
&lt;br /&gt;
    forwarders {&lt;br /&gt;
        1.1.1.1;&lt;br /&gt;
        8.8.8.8;&lt;br /&gt;
    };&lt;br /&gt;
        . . .&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== More Testing ====&lt;br /&gt;
Test from other computers on the network. Observe the responses.&lt;br /&gt;
&lt;br /&gt;
Lab: Check and fix issues that arise during testing.&lt;br /&gt;
&lt;br /&gt;
== Authoritative Configuration ==&lt;br /&gt;
Earlier, we configured BIND for recursive usage. Now we will be configuring BIND for authoritative usage.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new Zone ===&lt;br /&gt;
Use the following example to add a new zone. In this example we create a new file &amp;lt;code&amp;gt;lab1.com.np.zone&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
Do not forget to replace &amp;#039;lab1.com.np` with your correct domain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN lab1.com.np. &lt;br /&gt;
$TTL 86400 &lt;br /&gt;
@	IN	SOA	dns1.a.example.com.np.	hostmaster.a.example.com.np. (&lt;br /&gt;
			2024071501 ; serial&lt;br /&gt;
			21600      ; refresh after 6 hours&lt;br /&gt;
			3600       ; retry after 1 hour&lt;br /&gt;
			604800     ; expire after 1 week&lt;br /&gt;
			86400 )    ; minimum TTL of 1 day&lt;br /&gt;
&lt;br /&gt;
	IN	NS	dns1.a.example.com.np.&lt;br /&gt;
	IN	NS	dns2.a.example.com.np.&lt;br /&gt;
	&lt;br /&gt;
	IN	MX	10	mail.a.example.com.np.&lt;br /&gt;
	IN	MX	20	mail2.a.example.com.np.&lt;br /&gt;
	&lt;br /&gt;
dns1	IN	A	10.0.1.1&lt;br /&gt;
dns2	IN	A	10.0.1.2&lt;br /&gt;
			       &lt;br /&gt;
server1	IN	A	10.0.1.5&lt;br /&gt;
server2	IN	A	10.0.1.6&lt;br /&gt;
&lt;br /&gt;
ftp	IN	A	10.0.1.3&lt;br /&gt;
	IN	A	10.0.1.4&lt;br /&gt;
	&lt;br /&gt;
mail	IN	CNAME	server1&lt;br /&gt;
mail2	IN	CNAME	server2&lt;br /&gt;
&lt;br /&gt;
www	IN	CNAME	server1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, you need to include the recently configured zone into BIND config by&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/bind/named.conf.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following entry&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  { type master; file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;; };&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reload BIND:&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
or (there is some difference between these commands)&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run tests from your computer and others on the network.&lt;br /&gt;
&lt;br /&gt;
==== Making Changes ====&lt;br /&gt;
Edit the zone file, add new entries, make a few changes, remove some and check whether they are propagated correctly.&lt;br /&gt;
&lt;br /&gt;
Editing:&lt;br /&gt;
* Use your favorite editor to make all changes to the file&lt;br /&gt;
* Increment the Zone serial number&lt;br /&gt;
* Save the file&lt;br /&gt;
* Reload the zone &amp;lt;code&amp;gt;rndc reload lab1.com.np&amp;lt;/code&amp;gt;&lt;br /&gt;
* Checking&lt;br /&gt;
* Troubleshooting&lt;br /&gt;
&lt;br /&gt;
=== Secondary Zone ===&lt;br /&gt;
Now that we have a good understanding of zone, changes and upadating them, lets add a secondary zone. Team up with another group and add their domain to yours as secondary:&lt;br /&gt;
&lt;br /&gt;
* Group 1 add lab2&lt;br /&gt;
* Group 2 add lab3&lt;br /&gt;
* ...&lt;br /&gt;
* Group 6 add lab1&lt;br /&gt;
&lt;br /&gt;
Work with the other group to allow permissions, ensure the zone is transferred and changes are propagated promptly.&lt;br /&gt;
&lt;br /&gt;
On the secondary server, add the zone into named.conf.local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  {&lt;br /&gt;
    type slave;&lt;br /&gt;
    file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;;&lt;br /&gt;
    masters { 10.9.0.31; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
Be sure to use the correct IP and zones, using above as an example.&lt;br /&gt;
&lt;br /&gt;
On the origin server, you will have to allow zone transfer to the appropriate servers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    allow-transfer {&lt;br /&gt;
        10.9.0.31;     # lab1&lt;br /&gt;
        10.9.0.32;     # lab2&lt;br /&gt;
    };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When editing the zone file, be careful about the syntax.&lt;br /&gt;
&lt;br /&gt;
Once done, reload BIND using rndc command.&lt;br /&gt;
==== Make some changes ====&lt;br /&gt;
Make some changes and test.&lt;br /&gt;
&lt;br /&gt;
==== dig ====&lt;br /&gt;
Using dig to check domain transfers:&lt;br /&gt;
&amp;lt;pre&amp;gt;dig +AXFR lab1.com.np @10.9.0.31&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging ==&lt;br /&gt;
Logging configuration example named.conf.logging&lt;br /&gt;
&amp;lt;pre&amp;gt;logging {&lt;br /&gt;
     channel simplelog {&lt;br /&gt;
        file &amp;quot;/var/log/bind.log&amp;quot;;&lt;br /&gt;
        severity info;&lt;br /&gt;
    };&lt;br /&gt;
    category default { simplelog; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the log file and set correct owner&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo touch /var/log/bind.log&lt;br /&gt;
sudo chown bind /var/log/bind.log&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then add this to named.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;include &amp;quot;/etc/bind/named.conf.logging&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then reload BIND using rndc command.&lt;br /&gt;
&lt;br /&gt;
== Sources and External Links ==&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=85</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=85"/>
		<updated>2024-07-25T15:48:01Z</updated>

		<summary type="html">&lt;p&gt;Indiver: /* Logging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The package bind9 will be used for installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then if you want to also install the documentation (very useful):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9-doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Testing ====&lt;br /&gt;
Use these tools to check BIND configurations:&lt;br /&gt;
* named-checkconf&lt;br /&gt;
* named-checkzone&lt;br /&gt;
&lt;br /&gt;
After ensuring the configs are correct, make several queries:&lt;br /&gt;
Eg.:&amp;lt;code&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carefully review the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Additional Config ====&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in BIND config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    recursion yes;                    # enables recursive queries&lt;br /&gt;
    allow-recursion { 10.0.0.0/8 ; }; # allows recursive queries from LAN clients&lt;br /&gt;
    listen-on { 10.9.0.19; };         # listen on specified IP only&lt;br /&gt;
    allow-transfer { none; };         # disable zone transfers by default&lt;br /&gt;
&lt;br /&gt;
    forwarders {&lt;br /&gt;
        1.1.1.1;&lt;br /&gt;
        8.8.8.8;&lt;br /&gt;
    };&lt;br /&gt;
        . . .&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== More Testing ====&lt;br /&gt;
Test from other computers on the network. Observe the responses.&lt;br /&gt;
&lt;br /&gt;
Lab: Check and fix issues that arise during testing.&lt;br /&gt;
&lt;br /&gt;
== Authoritative Configuration ==&lt;br /&gt;
Earlier, we configured BIND for recursive usage. Now we will be configuring BIND for authoritative usage.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new Zone ===&lt;br /&gt;
Use the following example to add a new zone. In this example we create a new file &amp;lt;code&amp;gt;lab1.com.np.zone&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
Do not forget to replace &amp;#039;lab1.com.np` with your correct domain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN lab1.com.np. &lt;br /&gt;
$TTL 86400 &lt;br /&gt;
@	IN	SOA	dns1.lab1.com.np.	hostmaster.lab1.com.np. (&lt;br /&gt;
			2024071501 ; serial&lt;br /&gt;
			21600      ; refresh after 6 hours&lt;br /&gt;
			3600       ; retry after 1 hour&lt;br /&gt;
			604800     ; expire after 1 week&lt;br /&gt;
			86400 )    ; minimum TTL of 1 day&lt;br /&gt;
&lt;br /&gt;
	IN	NS	dns1.lab1.com.np.&lt;br /&gt;
	IN	NS	dns2.lab1.com.np.&lt;br /&gt;
	&lt;br /&gt;
	IN	MX	10	mail.lab1.com.np.&lt;br /&gt;
	IN	MX	20	mail2.lab1.com.np.&lt;br /&gt;
	&lt;br /&gt;
dns1	IN	A	10.0.1.1&lt;br /&gt;
dns2	IN	A	10.0.1.2&lt;br /&gt;
			       &lt;br /&gt;
server1	IN	A	10.0.1.5&lt;br /&gt;
server2	IN	A	10.0.1.6&lt;br /&gt;
&lt;br /&gt;
ftp	IN	A	10.0.1.3&lt;br /&gt;
	IN	A	10.0.1.4&lt;br /&gt;
	&lt;br /&gt;
mail	IN	CNAME	server1&lt;br /&gt;
mail2	IN	CNAME	server2&lt;br /&gt;
&lt;br /&gt;
www	IN	CNAME	server1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, you need to include the recently configured zone into BIND config by&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/bind/named.conf.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following entry&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  { type master; file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;; };&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reload BIND:&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
or (there is some difference between these commands)&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run tests from your computer and others on the network.&lt;br /&gt;
&lt;br /&gt;
==== Making Changes ====&lt;br /&gt;
Edit the zone file, add new entries, make a few changes, remove some and check whether they are propagated correctly.&lt;br /&gt;
&lt;br /&gt;
Editing:&lt;br /&gt;
* Use your favorite editor to make all changes to the file&lt;br /&gt;
* Increment the Zone serial number&lt;br /&gt;
* Save the file&lt;br /&gt;
* Reload the zone &amp;lt;code&amp;gt;rndc reload lab1.com.np&amp;lt;/code&amp;gt;&lt;br /&gt;
* Checking&lt;br /&gt;
* Troubleshooting&lt;br /&gt;
&lt;br /&gt;
=== Secondary Zone ===&lt;br /&gt;
Now that we have a good understanding of zone, changes and upadating them, lets add a secondary zone. Team up with another group and add their domain to yours as secondary:&lt;br /&gt;
&lt;br /&gt;
* Group 1 add lab2&lt;br /&gt;
* Group 2 add lab3&lt;br /&gt;
* ...&lt;br /&gt;
* Group 6 add lab1&lt;br /&gt;
&lt;br /&gt;
Work with the other group to allow permissions, ensure the zone is transferred and changes are propagated promptly.&lt;br /&gt;
&lt;br /&gt;
On the secondary server, add the zone into named.conf.local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  {&lt;br /&gt;
    type slave;&lt;br /&gt;
    file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;;&lt;br /&gt;
    masters { 10.9.0.31; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
Be sure to use the correct IP and zones, using above as an example.&lt;br /&gt;
&lt;br /&gt;
On the origin server, you will have to allow zone transfer to the appropriate servers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    allow-transfer {&lt;br /&gt;
        10.9.0.31;     # lab1&lt;br /&gt;
        10.9.0.32;     # lab2&lt;br /&gt;
    };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When editing the zone file, be careful about the syntax.&lt;br /&gt;
&lt;br /&gt;
Once done, reload BIND using rndc command.&lt;br /&gt;
==== Make some changes ====&lt;br /&gt;
Make some changes and test.&lt;br /&gt;
&lt;br /&gt;
==== dig ====&lt;br /&gt;
Using dig to check domain transfers:&lt;br /&gt;
&amp;lt;pre&amp;gt;dig +AXFR lab1.com.np @10.9.0.31&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging ==&lt;br /&gt;
Logging configuration example named.conf.logging&lt;br /&gt;
&amp;lt;pre&amp;gt;logging {&lt;br /&gt;
     channel simplelog {&lt;br /&gt;
        file &amp;quot;/var/log/bind.log&amp;quot;;&lt;br /&gt;
        severity info;&lt;br /&gt;
    };&lt;br /&gt;
    category default { simplelog; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the log file and set correct owner&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo touch /var/log/bind.log&lt;br /&gt;
sudo chown bind /var/log/bind.log&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then add this to named.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;include &amp;quot;/etc/bind/named.conf.logging&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then reload BIND using rndc command.&lt;br /&gt;
&lt;br /&gt;
== Sources and External Links ==&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=84</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=84"/>
		<updated>2024-07-25T15:47:26Z</updated>

		<summary type="html">&lt;p&gt;Indiver: /* Logging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The package bind9 will be used for installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then if you want to also install the documentation (very useful):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9-doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Testing ====&lt;br /&gt;
Use these tools to check BIND configurations:&lt;br /&gt;
* named-checkconf&lt;br /&gt;
* named-checkzone&lt;br /&gt;
&lt;br /&gt;
After ensuring the configs are correct, make several queries:&lt;br /&gt;
Eg.:&amp;lt;code&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carefully review the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Additional Config ====&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in BIND config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    recursion yes;                    # enables recursive queries&lt;br /&gt;
    allow-recursion { 10.0.0.0/8 ; }; # allows recursive queries from LAN clients&lt;br /&gt;
    listen-on { 10.9.0.19; };         # listen on specified IP only&lt;br /&gt;
    allow-transfer { none; };         # disable zone transfers by default&lt;br /&gt;
&lt;br /&gt;
    forwarders {&lt;br /&gt;
        1.1.1.1;&lt;br /&gt;
        8.8.8.8;&lt;br /&gt;
    };&lt;br /&gt;
        . . .&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== More Testing ====&lt;br /&gt;
Test from other computers on the network. Observe the responses.&lt;br /&gt;
&lt;br /&gt;
Lab: Check and fix issues that arise during testing.&lt;br /&gt;
&lt;br /&gt;
== Authoritative Configuration ==&lt;br /&gt;
Earlier, we configured BIND for recursive usage. Now we will be configuring BIND for authoritative usage.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new Zone ===&lt;br /&gt;
Use the following example to add a new zone. In this example we create a new file &amp;lt;code&amp;gt;lab1.com.np.zone&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
Do not forget to replace &amp;#039;lab1.com.np` with your correct domain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN lab1.com.np. &lt;br /&gt;
$TTL 86400 &lt;br /&gt;
@	IN	SOA	dns1.lab1.com.np.	hostmaster.lab1.com.np. (&lt;br /&gt;
			2024071501 ; serial&lt;br /&gt;
			21600      ; refresh after 6 hours&lt;br /&gt;
			3600       ; retry after 1 hour&lt;br /&gt;
			604800     ; expire after 1 week&lt;br /&gt;
			86400 )    ; minimum TTL of 1 day&lt;br /&gt;
&lt;br /&gt;
	IN	NS	dns1.lab1.com.np.&lt;br /&gt;
	IN	NS	dns2.lab1.com.np.&lt;br /&gt;
	&lt;br /&gt;
	IN	MX	10	mail.lab1.com.np.&lt;br /&gt;
	IN	MX	20	mail2.lab1.com.np.&lt;br /&gt;
	&lt;br /&gt;
dns1	IN	A	10.0.1.1&lt;br /&gt;
dns2	IN	A	10.0.1.2&lt;br /&gt;
			       &lt;br /&gt;
server1	IN	A	10.0.1.5&lt;br /&gt;
server2	IN	A	10.0.1.6&lt;br /&gt;
&lt;br /&gt;
ftp	IN	A	10.0.1.3&lt;br /&gt;
	IN	A	10.0.1.4&lt;br /&gt;
	&lt;br /&gt;
mail	IN	CNAME	server1&lt;br /&gt;
mail2	IN	CNAME	server2&lt;br /&gt;
&lt;br /&gt;
www	IN	CNAME	server1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, you need to include the recently configured zone into BIND config by&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/bind/named.conf.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following entry&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  { type master; file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;; };&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reload BIND:&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
or (there is some difference between these commands)&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run tests from your computer and others on the network.&lt;br /&gt;
&lt;br /&gt;
==== Making Changes ====&lt;br /&gt;
Edit the zone file, add new entries, make a few changes, remove some and check whether they are propagated correctly.&lt;br /&gt;
&lt;br /&gt;
Editing:&lt;br /&gt;
* Use your favorite editor to make all changes to the file&lt;br /&gt;
* Increment the Zone serial number&lt;br /&gt;
* Save the file&lt;br /&gt;
* Reload the zone &amp;lt;code&amp;gt;rndc reload lab1.com.np&amp;lt;/code&amp;gt;&lt;br /&gt;
* Checking&lt;br /&gt;
* Troubleshooting&lt;br /&gt;
&lt;br /&gt;
=== Secondary Zone ===&lt;br /&gt;
Now that we have a good understanding of zone, changes and upadating them, lets add a secondary zone. Team up with another group and add their domain to yours as secondary:&lt;br /&gt;
&lt;br /&gt;
* Group 1 add lab2&lt;br /&gt;
* Group 2 add lab3&lt;br /&gt;
* ...&lt;br /&gt;
* Group 6 add lab1&lt;br /&gt;
&lt;br /&gt;
Work with the other group to allow permissions, ensure the zone is transferred and changes are propagated promptly.&lt;br /&gt;
&lt;br /&gt;
On the secondary server, add the zone into named.conf.local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  {&lt;br /&gt;
    type slave;&lt;br /&gt;
    file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;;&lt;br /&gt;
    masters { 10.9.0.31; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
Be sure to use the correct IP and zones, using above as an example.&lt;br /&gt;
&lt;br /&gt;
On the origin server, you will have to allow zone transfer to the appropriate servers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    allow-transfer {&lt;br /&gt;
        10.9.0.31;     # lab1&lt;br /&gt;
        10.9.0.32;     # lab2&lt;br /&gt;
    };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When editing the zone file, be careful about the syntax.&lt;br /&gt;
&lt;br /&gt;
Once done, reload BIND using rndc command.&lt;br /&gt;
==== Make some changes ====&lt;br /&gt;
Make some changes and test.&lt;br /&gt;
&lt;br /&gt;
==== dig ====&lt;br /&gt;
Using dig to check domain transfers:&lt;br /&gt;
&amp;lt;pre&amp;gt;dig +AXFR lab1.com.np @10.9.0.31&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging ==&lt;br /&gt;
Logging configuration example named.conf.logging&lt;br /&gt;
&amp;lt;pre&amp;gt;logging {&lt;br /&gt;
     channel querylog {&lt;br /&gt;
        file &amp;quot;/var/log/bind.log&amp;quot;;&lt;br /&gt;
        severity info;&lt;br /&gt;
    };&lt;br /&gt;
    category default { querylog; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the log file and set correct owner&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo touch /var/log/bind.log&lt;br /&gt;
sudo chown bind /var/log/bind.log&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then add this to named.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;include &amp;quot;/etc/bind/named.conf.logging&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then reload BIND using rndc command.&lt;br /&gt;
&lt;br /&gt;
== Sources and External Links ==&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=83</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=83"/>
		<updated>2024-07-25T15:43:26Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The package bind9 will be used for installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then if you want to also install the documentation (very useful):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9-doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Testing ====&lt;br /&gt;
Use these tools to check BIND configurations:&lt;br /&gt;
* named-checkconf&lt;br /&gt;
* named-checkzone&lt;br /&gt;
&lt;br /&gt;
After ensuring the configs are correct, make several queries:&lt;br /&gt;
Eg.:&amp;lt;code&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carefully review the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Additional Config ====&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in BIND config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    recursion yes;                    # enables recursive queries&lt;br /&gt;
    allow-recursion { 10.0.0.0/8 ; }; # allows recursive queries from LAN clients&lt;br /&gt;
    listen-on { 10.9.0.19; };         # listen on specified IP only&lt;br /&gt;
    allow-transfer { none; };         # disable zone transfers by default&lt;br /&gt;
&lt;br /&gt;
    forwarders {&lt;br /&gt;
        1.1.1.1;&lt;br /&gt;
        8.8.8.8;&lt;br /&gt;
    };&lt;br /&gt;
        . . .&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== More Testing ====&lt;br /&gt;
Test from other computers on the network. Observe the responses.&lt;br /&gt;
&lt;br /&gt;
Lab: Check and fix issues that arise during testing.&lt;br /&gt;
&lt;br /&gt;
== Authoritative Configuration ==&lt;br /&gt;
Earlier, we configured BIND for recursive usage. Now we will be configuring BIND for authoritative usage.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new Zone ===&lt;br /&gt;
Use the following example to add a new zone. In this example we create a new file &amp;lt;code&amp;gt;lab1.com.np.zone&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
Do not forget to replace &amp;#039;lab1.com.np` with your correct domain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN lab1.com.np. &lt;br /&gt;
$TTL 86400 &lt;br /&gt;
@	IN	SOA	dns1.lab1.com.np.	hostmaster.lab1.com.np. (&lt;br /&gt;
			2024071501 ; serial&lt;br /&gt;
			21600      ; refresh after 6 hours&lt;br /&gt;
			3600       ; retry after 1 hour&lt;br /&gt;
			604800     ; expire after 1 week&lt;br /&gt;
			86400 )    ; minimum TTL of 1 day&lt;br /&gt;
&lt;br /&gt;
	IN	NS	dns1.lab1.com.np.&lt;br /&gt;
	IN	NS	dns2.lab1.com.np.&lt;br /&gt;
	&lt;br /&gt;
	IN	MX	10	mail.lab1.com.np.&lt;br /&gt;
	IN	MX	20	mail2.lab1.com.np.&lt;br /&gt;
	&lt;br /&gt;
dns1	IN	A	10.0.1.1&lt;br /&gt;
dns2	IN	A	10.0.1.2&lt;br /&gt;
			       &lt;br /&gt;
server1	IN	A	10.0.1.5&lt;br /&gt;
server2	IN	A	10.0.1.6&lt;br /&gt;
&lt;br /&gt;
ftp	IN	A	10.0.1.3&lt;br /&gt;
	IN	A	10.0.1.4&lt;br /&gt;
	&lt;br /&gt;
mail	IN	CNAME	server1&lt;br /&gt;
mail2	IN	CNAME	server2&lt;br /&gt;
&lt;br /&gt;
www	IN	CNAME	server1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, you need to include the recently configured zone into BIND config by&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/bind/named.conf.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following entry&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  { type master; file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;; };&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reload BIND:&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
or (there is some difference between these commands)&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run tests from your computer and others on the network.&lt;br /&gt;
&lt;br /&gt;
==== Making Changes ====&lt;br /&gt;
Edit the zone file, add new entries, make a few changes, remove some and check whether they are propagated correctly.&lt;br /&gt;
&lt;br /&gt;
Editing:&lt;br /&gt;
* Use your favorite editor to make all changes to the file&lt;br /&gt;
* Increment the Zone serial number&lt;br /&gt;
* Save the file&lt;br /&gt;
* Reload the zone &amp;lt;code&amp;gt;rndc reload lab1.com.np&amp;lt;/code&amp;gt;&lt;br /&gt;
* Checking&lt;br /&gt;
* Troubleshooting&lt;br /&gt;
&lt;br /&gt;
=== Secondary Zone ===&lt;br /&gt;
Now that we have a good understanding of zone, changes and upadating them, lets add a secondary zone. Team up with another group and add their domain to yours as secondary:&lt;br /&gt;
&lt;br /&gt;
* Group 1 add lab2&lt;br /&gt;
* Group 2 add lab3&lt;br /&gt;
* ...&lt;br /&gt;
* Group 6 add lab1&lt;br /&gt;
&lt;br /&gt;
Work with the other group to allow permissions, ensure the zone is transferred and changes are propagated promptly.&lt;br /&gt;
&lt;br /&gt;
On the secondary server, add the zone into named.conf.local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  {&lt;br /&gt;
    type slave;&lt;br /&gt;
    file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;;&lt;br /&gt;
    masters { 10.9.0.31; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
Be sure to use the correct IP and zones, using above as an example.&lt;br /&gt;
&lt;br /&gt;
On the origin server, you will have to allow zone transfer to the appropriate servers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    allow-transfer {&lt;br /&gt;
        10.9.0.31;     # lab1&lt;br /&gt;
        10.9.0.32;     # lab2&lt;br /&gt;
    };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When editing the zone file, be careful about the syntax.&lt;br /&gt;
&lt;br /&gt;
Once done, reload BIND using rndc command.&lt;br /&gt;
==== Make some changes ====&lt;br /&gt;
Make some changes and test.&lt;br /&gt;
&lt;br /&gt;
==== dig ====&lt;br /&gt;
Using dig to check domain transfers:&lt;br /&gt;
&amp;lt;pre&amp;gt;dig +AXFR lab1.com.np @10.9.0.31&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging ==&lt;br /&gt;
Logging configuration example named.conf.logging&lt;br /&gt;
&amp;lt;pre&amp;gt;logging {&lt;br /&gt;
     channel querylog {&lt;br /&gt;
        file &amp;quot;/var/log/bind.log&amp;quot;;&lt;br /&gt;
        severity debug 3;&lt;br /&gt;
    };&lt;br /&gt;
    category default { querylog; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the log file and set correct owner&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo touch /var/log/bind.log&lt;br /&gt;
sudo chown bind /var/log/bind.log&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then add this to named.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;include &amp;quot;/etc/bind/named.conf.logging&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then reload BIND using rndc command.&lt;br /&gt;
&lt;br /&gt;
== Sources and External Links ==&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=82</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=82"/>
		<updated>2024-07-25T15:42:38Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The package bind9 will be used for installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then if you want to also install the documentation (very useful):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9-doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Testing ====&lt;br /&gt;
Use these tools to check BIND configurations:&lt;br /&gt;
* named-checkconf&lt;br /&gt;
* named-checkzone&lt;br /&gt;
&lt;br /&gt;
After ensuring the configs are correct, make several queries:&lt;br /&gt;
Eg.:&amp;lt;code&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carefully review the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Additional Config ====&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in BIND config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    recursion yes;                    # enables recursive queries&lt;br /&gt;
    allow-recursion { 10.0.0.0/8 ; }; # allows recursive queries from LAN clients&lt;br /&gt;
    listen-on { 10.9.0.19; };         # listen on specified IP only&lt;br /&gt;
    allow-transfer { none; };         # disable zone transfers by default&lt;br /&gt;
&lt;br /&gt;
    forwarders {&lt;br /&gt;
        1.1.1.1;&lt;br /&gt;
        8.8.8.8;&lt;br /&gt;
    };&lt;br /&gt;
        . . .&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== More Testing ====&lt;br /&gt;
Test from other computers on the network. Observe the responses.&lt;br /&gt;
&lt;br /&gt;
Lab: Check and fix issues that arise during testing.&lt;br /&gt;
&lt;br /&gt;
== Authoritative Configuration ==&lt;br /&gt;
Earlier, we configured BIND for recursive usage. Now we will be configuring BIND for authoritative usage.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new Zone ===&lt;br /&gt;
Use the following example to add a new zone. In this example we create a new file &amp;lt;code&amp;gt;lab1.com.np.zone&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
Do not forget to replace &amp;#039;lab1.com.np` with your correct domain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN lab1.com.np. &lt;br /&gt;
$TTL 86400 &lt;br /&gt;
@	IN	SOA	dns1.lab1.com.np.	hostmaster.lab1.com.np. (&lt;br /&gt;
			2024071501 ; serial&lt;br /&gt;
			21600      ; refresh after 6 hours&lt;br /&gt;
			3600       ; retry after 1 hour&lt;br /&gt;
			604800     ; expire after 1 week&lt;br /&gt;
			86400 )    ; minimum TTL of 1 day&lt;br /&gt;
&lt;br /&gt;
	IN	NS	dns1.lab1.com.np.&lt;br /&gt;
	IN	NS	dns2.lab1.com.np.&lt;br /&gt;
	&lt;br /&gt;
	IN	MX	10	mail.lab1.com.np.&lt;br /&gt;
	IN	MX	20	mail2.lab1.com.np.&lt;br /&gt;
	&lt;br /&gt;
dns1	IN	A	10.0.1.1&lt;br /&gt;
dns2	IN	A	10.0.1.2&lt;br /&gt;
			       &lt;br /&gt;
server1	IN	A	10.0.1.5&lt;br /&gt;
server2	IN	A	10.0.1.6&lt;br /&gt;
&lt;br /&gt;
ftp	IN	A	10.0.1.3&lt;br /&gt;
	IN	A	10.0.1.4&lt;br /&gt;
	&lt;br /&gt;
mail	IN	CNAME	server1&lt;br /&gt;
mail2	IN	CNAME	server2&lt;br /&gt;
&lt;br /&gt;
www	IN	CNAME	server1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, you need to include the recently configured zone into BIND config by&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/bind/named.conf.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following entry&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  { type master; file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;; };&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reload BIND:&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
or (there is some difference between these commands)&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run tests from your computer and others on the network.&lt;br /&gt;
&lt;br /&gt;
==== Making Changes ====&lt;br /&gt;
Edit the zone file, add new entries, make a few changes, remove some and check whether they are propagated correctly.&lt;br /&gt;
&lt;br /&gt;
Editing:&lt;br /&gt;
* Use your favorite editor to make all changes to the file&lt;br /&gt;
* Increment the Zone serial number&lt;br /&gt;
* Save the file&lt;br /&gt;
* Reload the zone &amp;lt;code&amp;gt;rndc reload lab1.com.np&amp;lt;/code&amp;gt;&lt;br /&gt;
* Checking&lt;br /&gt;
* Troubleshooting&lt;br /&gt;
&lt;br /&gt;
=== Secondary Zone ===&lt;br /&gt;
Now that we have a good understanding of zone, changes and upadating them, lets add a secondary zone. Team up with another group and add their domain to yours as secondary:&lt;br /&gt;
&lt;br /&gt;
* Group 1 add lab2&lt;br /&gt;
* Group 2 add lab3&lt;br /&gt;
* ...&lt;br /&gt;
* Group 6 add lab1&lt;br /&gt;
&lt;br /&gt;
Work with the other group to allow permissions, ensure the zone is transferred and changes are propagated promptly.&lt;br /&gt;
&lt;br /&gt;
On the secondary server, add the zone into named.conf.local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  {&lt;br /&gt;
    type slave;&lt;br /&gt;
    file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;;&lt;br /&gt;
    masters { 10.9.0.31; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
Be sure to use the correct IP and zones, using above as an example.&lt;br /&gt;
&lt;br /&gt;
On the origin server, you will have to allow zone transfer to the appropriate servers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    allow-transfer {&lt;br /&gt;
        10.9.0.31;     # lab1&lt;br /&gt;
        10.9.0.32;     # lab2&lt;br /&gt;
    };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When editing the zone file, be careful about the syntax.&lt;br /&gt;
&lt;br /&gt;
Once done, reload BIND using rndc command.&lt;br /&gt;
==== Make some changes ====&lt;br /&gt;
Make some changes and test.&lt;br /&gt;
&lt;br /&gt;
==== dig ====&lt;br /&gt;
Using dig to check domain transfers:&lt;br /&gt;
&amp;lt;pre&amp;gt;dig +AXFR lab1.com.np @10.9.0.31&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging ==&lt;br /&gt;
Logging configuration example named.conf.logging&lt;br /&gt;
&amp;lt;pre&amp;gt;logging {&lt;br /&gt;
     channel query.log {&lt;br /&gt;
        file &amp;quot;/var/log/bind.log&amp;quot;;&lt;br /&gt;
        severity debug 3;&lt;br /&gt;
    };&lt;br /&gt;
    category default { querylog; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the log file and set correct owner&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo touch /var/log/bind.log&lt;br /&gt;
sudo chown bind /var/log/bind.log&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then add this to named.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;include &amp;quot;/etc/bind/named.conf.logging&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then reload BIND using rndc command.&lt;br /&gt;
&lt;br /&gt;
== Sources and External Links ==&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=81</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=81"/>
		<updated>2024-07-25T15:36:01Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The package bind9 will be used for installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then if you want to also install the documentation (very useful):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9-doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Testing ====&lt;br /&gt;
Use these tools to check BIND configurations:&lt;br /&gt;
* named-checkconf&lt;br /&gt;
* named-checkzone&lt;br /&gt;
&lt;br /&gt;
After ensuring the configs are correct, make several queries:&lt;br /&gt;
Eg.:&amp;lt;code&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carefully review the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Additional Config ====&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in BIND config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    recursion yes;                    # enables recursive queries&lt;br /&gt;
    allow-recursion { 10.0.0.0/8 ; }; # allows recursive queries from LAN clients&lt;br /&gt;
    listen-on { 10.9.0.19; };         # listen on specified IP only&lt;br /&gt;
    allow-transfer { none; };         # disable zone transfers by default&lt;br /&gt;
&lt;br /&gt;
    forwarders {&lt;br /&gt;
        1.1.1.1;&lt;br /&gt;
        8.8.8.8;&lt;br /&gt;
    };&lt;br /&gt;
        . . .&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== More Testing ====&lt;br /&gt;
Test from other computers on the network. Observe the responses.&lt;br /&gt;
&lt;br /&gt;
Lab: Check and fix issues that arise during testing.&lt;br /&gt;
&lt;br /&gt;
== Authoritative Configuration ==&lt;br /&gt;
Earlier, we configured BIND for recursive usage. Now we will be configuring BIND for authoritative usage.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new Zone ===&lt;br /&gt;
Use the following example to add a new zone. In this example we create a new file &amp;lt;code&amp;gt;lab1.com.np.zone&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
Do not forget to replace &amp;#039;lab1.com.np` with your correct domain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN lab1.com.np. &lt;br /&gt;
$TTL 86400 &lt;br /&gt;
@	IN	SOA	dns1.lab1.com.np.	hostmaster.lab1.com.np. (&lt;br /&gt;
			2024071501 ; serial&lt;br /&gt;
			21600      ; refresh after 6 hours&lt;br /&gt;
			3600       ; retry after 1 hour&lt;br /&gt;
			604800     ; expire after 1 week&lt;br /&gt;
			86400 )    ; minimum TTL of 1 day&lt;br /&gt;
&lt;br /&gt;
	IN	NS	dns1.lab1.com.np.&lt;br /&gt;
	IN	NS	dns2.lab1.com.np.&lt;br /&gt;
	&lt;br /&gt;
	IN	MX	10	mail.lab1.com.np.&lt;br /&gt;
	IN	MX	20	mail2.lab1.com.np.&lt;br /&gt;
	&lt;br /&gt;
dns1	IN	A	10.0.1.1&lt;br /&gt;
dns2	IN	A	10.0.1.2&lt;br /&gt;
			       &lt;br /&gt;
server1	IN	A	10.0.1.5&lt;br /&gt;
server2	IN	A	10.0.1.6&lt;br /&gt;
&lt;br /&gt;
ftp	IN	A	10.0.1.3&lt;br /&gt;
	IN	A	10.0.1.4&lt;br /&gt;
	&lt;br /&gt;
mail	IN	CNAME	server1&lt;br /&gt;
mail2	IN	CNAME	server2&lt;br /&gt;
&lt;br /&gt;
www	IN	CNAME	server1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, you need to include the recently configured zone into BIND config by&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/bind/named.conf.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following entry&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  { type master; file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;; };&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reload BIND:&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
or (there is some difference between these commands)&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run tests from your computer and others on the network.&lt;br /&gt;
&lt;br /&gt;
==== Making Changes ====&lt;br /&gt;
Edit the zone file, add new entries, make a few changes, remove some and check whether they are propagated correctly.&lt;br /&gt;
&lt;br /&gt;
Editing:&lt;br /&gt;
* Use your favorite editor to make all changes to the file&lt;br /&gt;
* Increment the Zone serial number&lt;br /&gt;
* Save the file&lt;br /&gt;
* Reload the zone &amp;lt;code&amp;gt;rndc reload lab1.com.np&amp;lt;/code&amp;gt;&lt;br /&gt;
* Checking&lt;br /&gt;
* Troubleshooting&lt;br /&gt;
&lt;br /&gt;
=== Secondary Zone ===&lt;br /&gt;
Now that we have a good understanding of zone, changes and upadating them, lets add a secondary zone. Team up with another group and add their domain to yours as secondary:&lt;br /&gt;
&lt;br /&gt;
* Group 1 add lab2&lt;br /&gt;
* Group 2 add lab3&lt;br /&gt;
* ...&lt;br /&gt;
* Group 6 add lab1&lt;br /&gt;
&lt;br /&gt;
Work with the other group to allow permissions, ensure the zone is transferred and changes are propagated promptly.&lt;br /&gt;
&lt;br /&gt;
On the secondary server, add the zone into named.conf.local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  {&lt;br /&gt;
    type slave;&lt;br /&gt;
    file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;;&lt;br /&gt;
    masters { 10.9.0.31; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
Be sure to use the correct IP and zones, using above as an example.&lt;br /&gt;
&lt;br /&gt;
On the origin server, you will have to allow zone transfer to the appropriate servers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    allow-transfer {&lt;br /&gt;
        10.9.0.31;     # lab1&lt;br /&gt;
        10.9.0.32;     # lab2&lt;br /&gt;
    };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When editing the zone file, be careful about the syntax.&lt;br /&gt;
&lt;br /&gt;
Once done, reload BIND using rndc command.&lt;br /&gt;
==== Make some changes ====&lt;br /&gt;
Make some changes and test.&lt;br /&gt;
&lt;br /&gt;
==== dig ====&lt;br /&gt;
Using dig to check domain transfers:&lt;br /&gt;
&amp;lt;pre&amp;gt;dig +AXFR lab1.com.np @10.9.0.31&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging ==&lt;br /&gt;
Logging configuration example named.conf.logging&lt;br /&gt;
&amp;lt;pre&amp;gt;logging {&lt;br /&gt;
     channel default_syslog {&lt;br /&gt;
          print-time yes;&lt;br /&gt;
          print-category yes;&lt;br /&gt;
          print-severity yes;&lt;br /&gt;
          syslog daemon;&lt;br /&gt;
          severity info;&lt;br /&gt;
     };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then add this to named.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;include &amp;quot;/etc/bind/named.conf.logging&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then reload BIND using rndc command.&lt;br /&gt;
&lt;br /&gt;
== Sources and External Links ==&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=80</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=80"/>
		<updated>2024-07-25T15:27:39Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The package bind9 will be used for installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then if you want to also install the documentation (very useful):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9-doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Use these tools to check BIND configurations:&lt;br /&gt;
* named-checkconf&lt;br /&gt;
* named-checkzone&lt;br /&gt;
&lt;br /&gt;
After ensuring the configs are correct, make several queries:&lt;br /&gt;
Eg.:&amp;lt;code&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carefully review the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Config ===&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in BIND config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    recursion yes;                    # enables recursive queries&lt;br /&gt;
    allow-recursion { 10.0.0.0/8 ; }; # allows recursive queries from LAN clients&lt;br /&gt;
    listen-on { 10.9.0.19; };         # listen on specified IP only&lt;br /&gt;
    allow-transfer { none; };         # disable zone transfers by default&lt;br /&gt;
&lt;br /&gt;
    forwarders {&lt;br /&gt;
        1.1.1.1;&lt;br /&gt;
        8.8.8.8;&lt;br /&gt;
    };&lt;br /&gt;
        . . .&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Test from other computers on the network. Observe the responses.&lt;br /&gt;
&lt;br /&gt;
Lab: Check and fix issues that arise during testing.&lt;br /&gt;
&lt;br /&gt;
== Authoritative Configuration ==&lt;br /&gt;
Earlier, we configured BIND for recursive usage. Now we will be configuring BIND for authoritative usage.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new Zone ===&lt;br /&gt;
Use the following example to add a new zone. In this example we create a new file &amp;lt;code&amp;gt;lab1.com.np.zone&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
Do not forget to replace &amp;#039;lab1.com.np` with your correct domain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN lab1.com.np. &lt;br /&gt;
$TTL 86400 &lt;br /&gt;
@	IN	SOA	dns1.lab1.com.np.	hostmaster.lab1.com.np. (&lt;br /&gt;
			2024071501 ; serial&lt;br /&gt;
			21600      ; refresh after 6 hours&lt;br /&gt;
			3600       ; retry after 1 hour&lt;br /&gt;
			604800     ; expire after 1 week&lt;br /&gt;
			86400 )    ; minimum TTL of 1 day&lt;br /&gt;
&lt;br /&gt;
	IN	NS	dns1.lab1.com.np.&lt;br /&gt;
	IN	NS	dns2.lab1.com.np.&lt;br /&gt;
	&lt;br /&gt;
	IN	MX	10	mail.lab1.com.np.&lt;br /&gt;
	IN	MX	20	mail2.lab1.com.np.&lt;br /&gt;
	&lt;br /&gt;
dns1	IN	A	10.0.1.1&lt;br /&gt;
dns2	IN	A	10.0.1.2&lt;br /&gt;
			       &lt;br /&gt;
server1	IN	A	10.0.1.5&lt;br /&gt;
server2	IN	A	10.0.1.6&lt;br /&gt;
&lt;br /&gt;
ftp	IN	A	10.0.1.3&lt;br /&gt;
	IN	A	10.0.1.4&lt;br /&gt;
	&lt;br /&gt;
mail	IN	CNAME	server1&lt;br /&gt;
mail2	IN	CNAME	server2&lt;br /&gt;
&lt;br /&gt;
www	IN	CNAME	server1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, you need to include the recently configured zone into BIND config by&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/bind/named.conf.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following entry&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  { type master; file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;; };&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reload BIND:&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
or (there is some difference between these commands)&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run tests from your computer and others on the network.&lt;br /&gt;
&lt;br /&gt;
==== Making Changes ====&lt;br /&gt;
Edit the zone file, add new entries, make a few changes, remove some and check whether they are propagated correctly.&lt;br /&gt;
&lt;br /&gt;
Editing:&lt;br /&gt;
* Use your favorite editor to make all changes to the file&lt;br /&gt;
* Increment the Zone serial number&lt;br /&gt;
* Save the file&lt;br /&gt;
* Reload the zone &amp;lt;code&amp;gt;rndc reload lab1.com.np&amp;lt;/code&amp;gt;&lt;br /&gt;
* Checking&lt;br /&gt;
* Troubleshooting&lt;br /&gt;
&lt;br /&gt;
=== Secondary Zone ===&lt;br /&gt;
Now that we have a good understanding of zone, changes and upadating them, lets add a secondary zone. Team up with another group and add their domain to yours as secondary:&lt;br /&gt;
&lt;br /&gt;
* Group 1 add lab2&lt;br /&gt;
* Group 2 add lab3&lt;br /&gt;
* ...&lt;br /&gt;
* Group 6 add lab1&lt;br /&gt;
&lt;br /&gt;
Work with the other group to allow permissions, ensure the zone is transferred and changes are propagated promptly.&lt;br /&gt;
&lt;br /&gt;
On the secondary server, add the zone into named.conf.local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  {&lt;br /&gt;
    type slave;&lt;br /&gt;
    file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;;&lt;br /&gt;
    masters { 10.9.0.31; };&lt;br /&gt;
};&amp;lt;/pre&amp;gt;&lt;br /&gt;
Be sure to use the correct IP and zones, using above as an example.&lt;br /&gt;
&lt;br /&gt;
On the origin server, you will have to allow zone transfer to the appropriate servers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    allow-transfer {&lt;br /&gt;
        10.9.0.31;     # lab1&lt;br /&gt;
        10.9.0.32;     # lab2&lt;br /&gt;
    };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When editing the zone file, be careful about the syntax.&lt;br /&gt;
&lt;br /&gt;
Once done, reload BIND using rndc command.&lt;br /&gt;
&lt;br /&gt;
== Sources and External Links ==&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=79</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=79"/>
		<updated>2024-07-25T15:22:07Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The package bind9 will be used for installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then if you want to also install the documentation (very useful):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9-doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Use these tools to check BIND configurations:&lt;br /&gt;
* named-checkconf&lt;br /&gt;
* named-checkzone&lt;br /&gt;
&lt;br /&gt;
After ensuring the configs are correct, make several queries:&lt;br /&gt;
Eg.:&amp;lt;code&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carefully review the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Config ===&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in BIND config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    recursion yes;                    # enables recursive queries&lt;br /&gt;
    allow-recursion { 10.0.0.0/8 ; }; # allows recursive queries from LAN clients&lt;br /&gt;
    listen-on { 10.9.0.19; };         # listen on specified IP only&lt;br /&gt;
    allow-transfer { none; };         # disable zone transfers by default&lt;br /&gt;
&lt;br /&gt;
    forwarders {&lt;br /&gt;
        1.1.1.1;&lt;br /&gt;
        8.8.8.8;&lt;br /&gt;
    };&lt;br /&gt;
        . . .&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Test from other computers on the network. Observe the responses.&lt;br /&gt;
&lt;br /&gt;
Lab: Check and fix issues that arise during testing.&lt;br /&gt;
&lt;br /&gt;
== Authoritative Configuration ==&lt;br /&gt;
Earlier, we configured BIND for recursive usage. Now we will be configuring BIND for authoritative usage.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new Zone ===&lt;br /&gt;
Use the following example to add a new zone. In this example we create a new file &amp;lt;code&amp;gt;lab1.com.np.zone&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
Do not forget to replace &amp;#039;lab1.com.np` with your correct domain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN lab1.com.np. &lt;br /&gt;
$TTL 86400 &lt;br /&gt;
@	IN	SOA	dns1.lab1.com.np.	hostmaster.lab1.com.np. (&lt;br /&gt;
			2024071501 ; serial&lt;br /&gt;
			21600      ; refresh after 6 hours&lt;br /&gt;
			3600       ; retry after 1 hour&lt;br /&gt;
			604800     ; expire after 1 week&lt;br /&gt;
			86400 )    ; minimum TTL of 1 day&lt;br /&gt;
&lt;br /&gt;
	IN	NS	dns1.lab1.com.np.&lt;br /&gt;
	IN	NS	dns2.lab1.com.np.&lt;br /&gt;
	&lt;br /&gt;
	IN	MX	10	mail.lab1.com.np.&lt;br /&gt;
	IN	MX	20	mail2.lab1.com.np.&lt;br /&gt;
	&lt;br /&gt;
dns1	IN	A	10.0.1.1&lt;br /&gt;
dns2	IN	A	10.0.1.2&lt;br /&gt;
			       &lt;br /&gt;
server1	IN	A	10.0.1.5&lt;br /&gt;
server2	IN	A	10.0.1.6&lt;br /&gt;
&lt;br /&gt;
ftp	IN	A	10.0.1.3&lt;br /&gt;
	IN	A	10.0.1.4&lt;br /&gt;
	&lt;br /&gt;
mail	IN	CNAME	server1&lt;br /&gt;
mail2	IN	CNAME	server2&lt;br /&gt;
&lt;br /&gt;
www	IN	CNAME	server1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, you need to include the recently configured zone into BIND config by&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/bind/named.conf.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following entry&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  { type master; file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;; };&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reload BIND:&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
or (there is some difference between these commands)&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run tests from your computer and others on the network.&lt;br /&gt;
&lt;br /&gt;
==== Making Changes ====&lt;br /&gt;
Edit the zone file, add new entries, make a few changes, remove some and check whether they are propagated correctly.&lt;br /&gt;
&lt;br /&gt;
Editing:&lt;br /&gt;
* Use your favorite editor to make all changes to the file&lt;br /&gt;
* Increment the Zone serial number&lt;br /&gt;
* Save the file&lt;br /&gt;
* Reload the zone &amp;lt;code&amp;gt;rndc reload lab1.com.np&amp;lt;/code&amp;gt;&lt;br /&gt;
* Checking&lt;br /&gt;
* Troubleshooting&lt;br /&gt;
&lt;br /&gt;
=== Secondary Zone ===&lt;br /&gt;
Now that we have a good understanding of zone, changes and upadating them, lets add a secondary zone. Team up with another group and add their domain to yours as secondary:&lt;br /&gt;
&lt;br /&gt;
* Group 1 add lab2&lt;br /&gt;
* Group 2 add lab3&lt;br /&gt;
* ...&lt;br /&gt;
* Group 6 add lab1&lt;br /&gt;
&lt;br /&gt;
Work with the other group to allow permissions, ensure the zone is transferred and changes are propagated promptly.&lt;br /&gt;
&lt;br /&gt;
You will have to allow zone transfer to the appropriate servers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    allow-transfer {&lt;br /&gt;
        10.9.0.31;     # lab1&lt;br /&gt;
        10.9.0.32;     # lab2&lt;br /&gt;
    };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When editing the zone file, be careful about the syntax.&lt;br /&gt;
&lt;br /&gt;
== Sources and External Links ==&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=78</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=78"/>
		<updated>2024-07-25T15:19:05Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The package bind9 will be used for installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then if you want to also install the documentation (very useful):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9-doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Use these tools to check BIND configurations:&lt;br /&gt;
* named-checkconf&lt;br /&gt;
* named-checkzone&lt;br /&gt;
&lt;br /&gt;
After ensuring the configs are correct, make several queries:&lt;br /&gt;
Eg.:&amp;lt;code&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carefully review the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Config ===&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in BIND config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    recursion yes;                    # enables recursive queries&lt;br /&gt;
    allow-recursion { 10.0.0.0/8 ; }; # allows recursive queries from LAN clients&lt;br /&gt;
    listen-on { 10.9.0.19; };         # listen on specified IP only&lt;br /&gt;
    allow-transfer { none; };         # disable zone transfers by default&lt;br /&gt;
&lt;br /&gt;
    forwarders {&lt;br /&gt;
        1.1.1.1;&lt;br /&gt;
        8.8.8.8;&lt;br /&gt;
    };&lt;br /&gt;
        . . .&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Test from other computers on the network. Observe the responses.&lt;br /&gt;
&lt;br /&gt;
Lab: Check and fix issues that arise during testing.&lt;br /&gt;
&lt;br /&gt;
== Authoritative Configuration ==&lt;br /&gt;
Earlier, we configured BIND for recursive usage. Now we will be configuring BIND for authoritative usage.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new Zone ===&lt;br /&gt;
Use the following example to add a new zone. In this example we create a new file &amp;lt;code&amp;gt;lab1.com.np.zone&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
Do not forget to replace &amp;#039;lab1.com.np` with your correct domain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN lab1.com.np. &lt;br /&gt;
$TTL 86400 &lt;br /&gt;
@	IN	SOA	dns1.lab1.com.np.	hostmaster.lab1.com.np. (&lt;br /&gt;
			2001062501 ; serial&lt;br /&gt;
			21600      ; refresh after 6 hours&lt;br /&gt;
			3600       ; retry after 1 hour&lt;br /&gt;
			604800     ; expire after 1 week&lt;br /&gt;
			86400 )    ; minimum TTL of 1 day&lt;br /&gt;
&lt;br /&gt;
	IN	NS	dns1.lab1.com.np.&lt;br /&gt;
	IN	NS	dns2.lab1.com.np.&lt;br /&gt;
	&lt;br /&gt;
	IN	MX	10	mail.lab1.com.np.&lt;br /&gt;
	IN	MX	20	mail2.lab1.com.np.&lt;br /&gt;
	&lt;br /&gt;
dns1	IN	A	10.0.1.1&lt;br /&gt;
dns2	IN	A	10.0.1.2&lt;br /&gt;
			       &lt;br /&gt;
server1	IN	A	10.0.1.5&lt;br /&gt;
server2	IN	A	10.0.1.6&lt;br /&gt;
&lt;br /&gt;
ftp	IN	A	10.0.1.3&lt;br /&gt;
	IN	A	10.0.1.4&lt;br /&gt;
	&lt;br /&gt;
mail	IN	CNAME	server1&lt;br /&gt;
mail2	IN	CNAME	server2&lt;br /&gt;
&lt;br /&gt;
www	IN	CNAME	server1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, you need to include the recently configured zone into BIND config by&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/bind/named.conf.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following entry&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  { type master; file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;; };&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reload BIND:&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
or (there is some difference between these commands)&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run tests from your computer and others on the network.&lt;br /&gt;
&lt;br /&gt;
==== Making Changes ====&lt;br /&gt;
Edit the zone file, add new entries, make a few changes, remove some and check whether they are propagated correctly.&lt;br /&gt;
&lt;br /&gt;
Editing:&lt;br /&gt;
* Use your favorite editor to make all changes to the file&lt;br /&gt;
* Increment the Zone serial number&lt;br /&gt;
* Save the file&lt;br /&gt;
* Reload the zone &amp;lt;code&amp;gt;rndc reload lab1.com.np&amp;lt;/code&amp;gt;&lt;br /&gt;
* Checking&lt;br /&gt;
* Troubleshooting&lt;br /&gt;
&lt;br /&gt;
=== Secondary Zone ===&lt;br /&gt;
Now that we have a good understanding of zone, changes and upadating them, lets add a secondary zone. Team up with another group and add their domain to yours as secondary:&lt;br /&gt;
&lt;br /&gt;
* Group 1 add lab2&lt;br /&gt;
* Group 2 add lab3&lt;br /&gt;
* ...&lt;br /&gt;
* Group 6 add lab1&lt;br /&gt;
&lt;br /&gt;
Work with the other group to allow permissions, ensure the zone is transferred and changes are propagated promptly.&lt;br /&gt;
&lt;br /&gt;
You will have to allow zone transfer to the appropriate servers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    allow-transfer {&lt;br /&gt;
        10.9.0.31;     # lab1&lt;br /&gt;
        10.9.0.32;     # lab2&lt;br /&gt;
    };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When editing the zone file, be careful about the syntax.&lt;br /&gt;
&lt;br /&gt;
== Sources and External Links ==&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=77</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=77"/>
		<updated>2024-07-25T15:16:34Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The package bind9 will be used for installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then if you want to also install the documentation (very useful):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9-doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Use these tools to check BIND configurations:&lt;br /&gt;
* named-checkconf&lt;br /&gt;
* named-checkzone&lt;br /&gt;
&lt;br /&gt;
After ensuring the configs are correct, make several queries:&lt;br /&gt;
Eg.:&amp;lt;code&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carefully review the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Config ===&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in BIND config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    recursion yes;                    # enables recursive queries&lt;br /&gt;
    allow-recursion { 10.0.0.0/8 ; }; # allows recursive queries from LAN clients&lt;br /&gt;
    listen-on { 10.9.0.19; };         # listen on specified IP only&lt;br /&gt;
    allow-transfer { none; };         # disable zone transfers by default&lt;br /&gt;
&lt;br /&gt;
    forwarders {&lt;br /&gt;
        1.1.1.1;&lt;br /&gt;
        8.8.8.8;&lt;br /&gt;
    };&lt;br /&gt;
        . . .&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Test from other computers on the network. Observe the responses.&lt;br /&gt;
&lt;br /&gt;
Lab: Check and fix issues that arise during testing.&lt;br /&gt;
&lt;br /&gt;
== Authoritative Configuration ==&lt;br /&gt;
Earlier, we configured BIND for recursive usage. Now we will be configuring BIND for authoritative usage.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new Zone ===&lt;br /&gt;
Use the following example to add a new zone. In this example we create a new file &amp;lt;code&amp;gt;lab1.com.np.zone&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
Do not forget to replace &amp;#039;lab1.com.np` with your correct domain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN lab1.com.np. &lt;br /&gt;
$TTL 86400 &lt;br /&gt;
@	IN	SOA	dns1.lab1.com.np.	hostmaster.lab1.com.np. (&lt;br /&gt;
			2001062501 ; serial                     &lt;br /&gt;
			21600      ; refresh after 6 hours                     &lt;br /&gt;
			3600       ; retry after 1 hour                     &lt;br /&gt;
			604800     ; expire after 1 week                     &lt;br /&gt;
			86400 )    ; minimum TTL of 1 day  &lt;br /&gt;
		           &lt;br /&gt;
	IN	NS	dns1.lab1.com.np.       &lt;br /&gt;
	IN	NS	dns2.lab1.com.np.        &lt;br /&gt;
	&lt;br /&gt;
	IN	MX	10	mail.lab1.com.np.       &lt;br /&gt;
	IN	MX	20	mail2.lab1.com.np.        &lt;br /&gt;
	&lt;br /&gt;
dns1	IN	A	10.0.1.1&lt;br /&gt;
dns2	IN	A	10.0.1.2	&lt;br /&gt;
			       &lt;br /&gt;
server1	IN	A	10.0.1.5        &lt;br /&gt;
server2	IN	A	10.0.1.6&lt;br /&gt;
       &lt;br /&gt;
ftp	IN	A	10.0.1.3&lt;br /&gt;
	IN	A	10.0.1.4&lt;br /&gt;
	&lt;br /&gt;
mail	IN	CNAME	server1&lt;br /&gt;
mail2	IN	CNAME	server2&lt;br /&gt;
&lt;br /&gt;
www	IN	CNAME	server1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, you need to include the recently configured zone into BIND config by&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/bind/named.conf.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following entry&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  { type master; file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;; };&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reload BIND:&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
or (there is some difference between these commands)&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run tests from your computer and others on the network.&lt;br /&gt;
&lt;br /&gt;
==== Making Changes ====&lt;br /&gt;
Edit the zone file, add new entries, make a few changes, remove some and check whether they are propagated correctly.&lt;br /&gt;
&lt;br /&gt;
Editing:&lt;br /&gt;
* Use your favorite editor to make all changes to the file&lt;br /&gt;
* Increment the Zone serial number&lt;br /&gt;
* Save the file&lt;br /&gt;
* Reload the zone &amp;lt;code&amp;gt;rndc reload lab1.com.np&amp;lt;/code&amp;gt;&lt;br /&gt;
* Checking&lt;br /&gt;
* Troubleshooting&lt;br /&gt;
&lt;br /&gt;
=== Secondary Zone ===&lt;br /&gt;
Now that we have a good understanding of zone, changes and upadating them, lets add a secondary zone. Team up with another group and add their domain to yours as secondary:&lt;br /&gt;
&lt;br /&gt;
* Group 1 add lab2&lt;br /&gt;
* Group 2 add lab3&lt;br /&gt;
* ...&lt;br /&gt;
* Group 6 add lab1&lt;br /&gt;
&lt;br /&gt;
Work with the other group to allow permissions, ensure the zone is transferred and changes are propagated promptly.&lt;br /&gt;
&lt;br /&gt;
You will have to allow zone transfer to the appropriate servers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    allow-transfer {&lt;br /&gt;
        10.9.0.31;     # lab1&lt;br /&gt;
        10.9.0.32;     # lab2&lt;br /&gt;
    };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When editing the zone file, be careful about the syntax.&lt;br /&gt;
&lt;br /&gt;
== Sources and External Links ==&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=76</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=76"/>
		<updated>2024-07-25T15:08:24Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The package bind9 will be used for installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then if you want to also install the documentation (very useful):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9-doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Use these tools to check BIND configurations:&lt;br /&gt;
* named-checkconf&lt;br /&gt;
* named-checkzone&lt;br /&gt;
&lt;br /&gt;
After ensuring the configs are correct, make several queries:&lt;br /&gt;
Eg.:&amp;lt;code&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carefully review the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Config ===&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in BIND config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    recursion yes;                    # enables recursive queries&lt;br /&gt;
    allow-recursion { 10.0.0.0/8 ; }; # allows recursive queries from LAN clients&lt;br /&gt;
    listen-on { 10.9.0.19; };         # listen on specified IP only&lt;br /&gt;
    allow-transfer { none; };         # disable zone transfers by default&lt;br /&gt;
&lt;br /&gt;
    forwarders {&lt;br /&gt;
        1.1.1.1;&lt;br /&gt;
        8.8.8.8;&lt;br /&gt;
    };&lt;br /&gt;
        . . .&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Test from other computers on the network. Observe the responses.&lt;br /&gt;
&lt;br /&gt;
Lab: Check and fix issues that arise during testing.&lt;br /&gt;
&lt;br /&gt;
=== Authoritative Configuration ===&lt;br /&gt;
Earlier, we configured BIND for recursive usage. Now we will be configuring BIND for authoritative usage.&lt;br /&gt;
&lt;br /&gt;
==== Adding a new Zone ====&lt;br /&gt;
Use the following example to add a new zone. In this example we create a new file &amp;lt;code&amp;gt;lab1.com.np.zone&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
Do not forget to replace &amp;#039;lab1.com.np` with your correct domain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN lab1.com.np. &lt;br /&gt;
$TTL 86400 &lt;br /&gt;
@	IN	SOA	dns1.lab1.com.np.	hostmaster.lab1.com.np. (&lt;br /&gt;
			2001062501 ; serial                     &lt;br /&gt;
			21600      ; refresh after 6 hours                     &lt;br /&gt;
			3600       ; retry after 1 hour                     &lt;br /&gt;
			604800     ; expire after 1 week                     &lt;br /&gt;
			86400 )    ; minimum TTL of 1 day  &lt;br /&gt;
		           &lt;br /&gt;
	IN	NS	dns1.lab1.com.np.       &lt;br /&gt;
	IN	NS	dns2.lab1.com.np.        &lt;br /&gt;
	&lt;br /&gt;
	IN	MX	10	mail.lab1.com.np.       &lt;br /&gt;
	IN	MX	20	mail2.lab1.com.np.        &lt;br /&gt;
	&lt;br /&gt;
dns1	IN	A	10.0.1.1&lt;br /&gt;
dns2	IN	A	10.0.1.2	&lt;br /&gt;
			       &lt;br /&gt;
server1	IN	A	10.0.1.5        &lt;br /&gt;
server2	IN	A	10.0.1.6&lt;br /&gt;
       &lt;br /&gt;
ftp	IN	A	10.0.1.3&lt;br /&gt;
	IN	A	10.0.1.4&lt;br /&gt;
	&lt;br /&gt;
mail	IN	CNAME	server1&lt;br /&gt;
mail2	IN	CNAME	server2&lt;br /&gt;
&lt;br /&gt;
www	IN	CNAME	server1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, you need to include the recently configured zone into BIND config by&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/bind/named.conf.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following entry&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;lab1.com.np&amp;quot;  { type master; file &amp;quot;/etc/bind/lab1.com.np.zone&amp;quot;; };&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reload BIND:&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
or (there is some difference between these commands)&lt;br /&gt;
&amp;lt;pre&amp;gt;rndc reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run tests from your computer and others on the network.&lt;br /&gt;
&lt;br /&gt;
=== Secondary Zone ===&lt;br /&gt;
Now, team up with another group and add their domain to yours as secondary:&lt;br /&gt;
&lt;br /&gt;
* Group 1 add lab2&lt;br /&gt;
* Group 2 add lab3&lt;br /&gt;
* ...&lt;br /&gt;
* Group 6 add lab1&lt;br /&gt;
&lt;br /&gt;
Work with the other group to allow permissions, ensure the zone is transferred and changes are propagated promptly.&lt;br /&gt;
&lt;br /&gt;
=== Sources and External Links ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=75</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=75"/>
		<updated>2024-07-25T14:55:24Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The package bind9 will be used for installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then if you want to also install the documentation (very useful):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9-doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step-by-step Tutorial ===&lt;br /&gt;
* Login to your server&lt;br /&gt;
* Install package Unbound&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install -y bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Checking configuration:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo unbound-checkconf&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the output is not like this, there is some error:&lt;br /&gt;
&amp;lt;pre&amp;gt;unbound-checkconf: no errors in /etc/unbound/unbound.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run a few queries, eg.:&lt;br /&gt;
&amp;lt;pre&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go through the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Config ===&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in &amp;lt;code&amp;gt;/etc/unbound/unbound.conf.d/local.conf&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ cat local.conf&lt;br /&gt;
server:&lt;br /&gt;
    # specify the interface to answer queries from by ip-address.&lt;br /&gt;
    interface: 0.0.0.0&lt;br /&gt;
    # interface: ::0&lt;br /&gt;
&lt;br /&gt;
    # addresses from the IP range that are allowed to connect to the resolver&lt;br /&gt;
    access-control: 10.0.0.0/8 allow&lt;br /&gt;
    # access-control: 192.168.0.0/16 allow&lt;br /&gt;
    # access-control: 2001:DB8/64 allow&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Test from other computers on the network. Observe the responses.&lt;br /&gt;
&lt;br /&gt;
You may have to set correct permissions to be able to make recursive queries from other hosts on the LAN.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    recursion yes;                    # enables recursive queries&lt;br /&gt;
    allow-recursion { 10.0.0.0/8 ; }; # allows recursive queries from LAN clients&lt;br /&gt;
    listen-on { 10.9.0.19; };         # listen on specified IP only&lt;br /&gt;
    allow-transfer { none; };         # disable zone transfers by default&lt;br /&gt;
&lt;br /&gt;
    forwarders {&lt;br /&gt;
        1.1.1.1;&lt;br /&gt;
        8.8.8.8;&lt;br /&gt;
    };&lt;br /&gt;
        . . .&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Adding a new Zone ===&lt;br /&gt;
Use the following example to add a new zone. In this example we create a new file &amp;lt;code&amp;gt;lab1.com.np.zone&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
Do not forget to replace &amp;#039;lab1.com.np` with your correct domain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN lab1.com.np. &lt;br /&gt;
$TTL 86400 &lt;br /&gt;
@	IN	SOA	dns1.lab1.com.np.	hostmaster.lab1.com.np. (&lt;br /&gt;
			2001062501 ; serial                     &lt;br /&gt;
			21600      ; refresh after 6 hours                     &lt;br /&gt;
			3600       ; retry after 1 hour                     &lt;br /&gt;
			604800     ; expire after 1 week                     &lt;br /&gt;
			86400 )    ; minimum TTL of 1 day  &lt;br /&gt;
		           &lt;br /&gt;
	IN	NS	dns1.lab1.com.np.       &lt;br /&gt;
	IN	NS	dns2.lab1.com.np.        &lt;br /&gt;
	&lt;br /&gt;
	IN	MX	10	mail.lab1.com.np.       &lt;br /&gt;
	IN	MX	20	mail2.lab1.com.np.        &lt;br /&gt;
	&lt;br /&gt;
dns1	IN	A	10.0.1.1&lt;br /&gt;
dns2	IN	A	10.0.1.2	&lt;br /&gt;
			       &lt;br /&gt;
server1	IN	A	10.0.1.5        &lt;br /&gt;
server2	IN	A	10.0.1.6&lt;br /&gt;
       &lt;br /&gt;
ftp	IN	A	10.0.1.3&lt;br /&gt;
	IN	A	10.0.1.4&lt;br /&gt;
	&lt;br /&gt;
mail	IN	CNAME	server1&lt;br /&gt;
mail2	IN	CNAME	server2&lt;br /&gt;
&lt;br /&gt;
www	IN	CNAME	server1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Secondary Zone ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sources and External Links ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=74</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=74"/>
		<updated>2024-07-25T14:51:02Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The package bind9 will be used for installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then if you want to also install the documentation (very useful):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9-doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step-by-step Tutorial ===&lt;br /&gt;
* Login to your server&lt;br /&gt;
* Install package Unbound&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install -y bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Checking configuration:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo unbound-checkconf&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the output is not like this, there is some error:&lt;br /&gt;
&amp;lt;pre&amp;gt;unbound-checkconf: no errors in /etc/unbound/unbound.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run a few queries, eg.:&lt;br /&gt;
&amp;lt;pre&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go through the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Config ===&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in &amp;lt;code&amp;gt;/etc/unbound/unbound.conf.d/local.conf&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ cat local.conf&lt;br /&gt;
server:&lt;br /&gt;
    # specify the interface to answer queries from by ip-address.&lt;br /&gt;
    interface: 0.0.0.0&lt;br /&gt;
    # interface: ::0&lt;br /&gt;
&lt;br /&gt;
    # addresses from the IP range that are allowed to connect to the resolver&lt;br /&gt;
    access-control: 10.0.0.0/8 allow&lt;br /&gt;
    # access-control: 192.168.0.0/16 allow&lt;br /&gt;
    # access-control: 2001:DB8/64 allow&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Test from other computers on the network. Observe the responses.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new Zone ===&lt;br /&gt;
Use the following example to add a new zone. In this example we create a new file &amp;lt;code&amp;gt;lab1.com.np.zone&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
Do not forget to replace &amp;#039;lab1.com.np` with your correct domain.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN lab1.com.np. &lt;br /&gt;
$TTL 86400 &lt;br /&gt;
@	IN	SOA	dns1.lab1.com.np.	hostmaster.lab1.com.np. (&lt;br /&gt;
			2001062501 ; serial                     &lt;br /&gt;
			21600      ; refresh after 6 hours                     &lt;br /&gt;
			3600       ; retry after 1 hour                     &lt;br /&gt;
			604800     ; expire after 1 week                     &lt;br /&gt;
			86400 )    ; minimum TTL of 1 day  &lt;br /&gt;
		           &lt;br /&gt;
	IN	NS	dns1.lab1.com.np.       &lt;br /&gt;
	IN	NS	dns2.lab1.com.np.        &lt;br /&gt;
	&lt;br /&gt;
	IN	MX	10	mail.lab1.com.np.       &lt;br /&gt;
	IN	MX	20	mail2.lab1.com.np.        &lt;br /&gt;
	&lt;br /&gt;
dns1	IN	A	10.0.1.1&lt;br /&gt;
dns2	IN	A	10.0.1.2	&lt;br /&gt;
			       &lt;br /&gt;
server1	IN	A	10.0.1.5        &lt;br /&gt;
server2	IN	A	10.0.1.6&lt;br /&gt;
       &lt;br /&gt;
ftp	IN	A	10.0.1.3&lt;br /&gt;
	IN	A	10.0.1.4&lt;br /&gt;
	&lt;br /&gt;
mail	IN	CNAME	server1&lt;br /&gt;
mail2	IN	CNAME	server2&lt;br /&gt;
&lt;br /&gt;
www	IN	CNAME	server1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Secondary Zone ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sources and External Links ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=DNS_and_DNSSec&amp;diff=73</id>
		<title>DNS and DNSSec</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=DNS_and_DNSSec&amp;diff=73"/>
		<updated>2024-07-25T11:37:18Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DNS Workshop&lt;br /&gt;
&lt;br /&gt;
== Workshop Info ==&lt;br /&gt;
This is an introductory workshop for &amp;#039;&amp;#039;&amp;#039;DNS and DNSSec&amp;#039;&amp;#039;&amp;#039;. After the completion of the workshops, participants are expected to be able to setup Nameservers, diagnose and troubleshoot DNS issues and get an understanding of DNS Security Extensions.&lt;br /&gt;
 &lt;br /&gt;
* Venue: (TBD), Conference Hall&lt;br /&gt;
* Time: 10:00 to 17:00&lt;br /&gt;
* Dates:&lt;br /&gt;
** DNS and DNSSEc 101 - 2014-03-31&lt;br /&gt;
** DNS and DNSSEc Hands-On - 2014-07-29&lt;br /&gt;
&lt;br /&gt;
== Workshop Contents ==&lt;br /&gt;
* Presentation Slides (to be added)&lt;br /&gt;
* Lab Contents (to be added)&lt;br /&gt;
&lt;br /&gt;
=== Agenda ===&lt;br /&gt;
Following topics are covered in Presentations and Lab.&lt;br /&gt;
* DNS Refresher&lt;br /&gt;
** The inverted tree&lt;br /&gt;
** Database&lt;br /&gt;
** Root and Resilience&lt;br /&gt;
* Tools&lt;br /&gt;
* DNS Resolution&lt;br /&gt;
* Resource Records and Response&lt;br /&gt;
* Deploying Nameserver&lt;br /&gt;
* Understanding DNSSec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Access the Lab ===&lt;br /&gt;
The LAB consists of several VMs, each will be assigned to a group. Workshop participants are divided into multiple groups. Each group will have access to a VM to implement, test and troubleshoot.&lt;br /&gt;
&lt;br /&gt;
Access to the VMs are restricted from outside the Lab. To access the VMs, please login to the Jumphost. The details for Jumphost:&lt;br /&gt;
&lt;br /&gt;
* hostname: TBD&lt;br /&gt;
* ssh username: labuser&lt;br /&gt;
* ssh password: TBD&lt;br /&gt;
&lt;br /&gt;
=== Virtual Machines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Lab VM info&lt;br /&gt;
|-&lt;br /&gt;
! Group !! Hostname !! Username !! Password&lt;br /&gt;
|-&lt;br /&gt;
| One || lab1 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Two || lab2 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Three || lab3 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Four || lab4 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Five || lab5 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Six || lab6 || labuser || labpassword&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Resolver setup ===&lt;br /&gt;
* [[Tutorial_Unbound|Setting up a resolver]]&lt;br /&gt;
* [[Tutorial_BIND9|Setting up an authoritative server]]&lt;br /&gt;
&lt;br /&gt;
After completing the resolver lab, DO NOT FORGET to disable the services, as the next lab also installs BIND, which also listens on the same port.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl stop unbound&lt;br /&gt;
sudo systemctl disable unbound&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=72</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=72"/>
		<updated>2024-07-25T11:34:35Z</updated>

		<summary type="html">&lt;p&gt;Indiver: /* TL;DR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The package bind9 will be used for installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then if you want to also install the documentation (very useful):&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install bind9-doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step-by-step Tutorial ===&lt;br /&gt;
* Login to your server&lt;br /&gt;
* Install package Unbound&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install -y bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Checking configuration:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo unbound-checkconf&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the output is not like this, there is some error:&lt;br /&gt;
&amp;lt;pre&amp;gt;unbound-checkconf: no errors in /etc/unbound/unbound.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run a few queries, eg.:&lt;br /&gt;
&amp;lt;pre&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go through the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Config ===&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in &amp;lt;code&amp;gt;/etc/unbound/unbound.conf.d/local.conf&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ cat local.conf&lt;br /&gt;
server:&lt;br /&gt;
    # specify the interface to answer queries from by ip-address.&lt;br /&gt;
    interface: 0.0.0.0&lt;br /&gt;
    # interface: ::0&lt;br /&gt;
&lt;br /&gt;
    # addresses from the IP range that are allowed to connect to the resolver&lt;br /&gt;
    access-control: 10.0.0.0/8 allow&lt;br /&gt;
    # access-control: 192.168.0.0/16 allow&lt;br /&gt;
    # access-control: 2001:DB8/64 allow&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sources and External Links ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=71</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=71"/>
		<updated>2024-07-25T11:33:11Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
Important features of BIND 9 include: &lt;br /&gt;
* TSIG&lt;br /&gt;
* nsupdate&lt;br /&gt;
* IPv6&lt;br /&gt;
* RNDC (remote name daemon control)&lt;br /&gt;
* views&lt;br /&gt;
* multiprocessor support&lt;br /&gt;
* Response Rate Limiting (RRL)&lt;br /&gt;
* DNSSEC, and&lt;br /&gt;
* Broad portability&lt;br /&gt;
&lt;br /&gt;
RNDC enables remote configuration updates, using a shared secret to provide encryption for local and remote terminals during each session. &lt;br /&gt;
&lt;br /&gt;
=== TL;DR ===&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install -y bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step-by-step Tutorial ===&lt;br /&gt;
* Login to your server&lt;br /&gt;
* Install package Unbound&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install -y bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Checking configuration:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo unbound-checkconf&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the output is not like this, there is some error:&lt;br /&gt;
&amp;lt;pre&amp;gt;unbound-checkconf: no errors in /etc/unbound/unbound.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run a few queries, eg.:&lt;br /&gt;
&amp;lt;pre&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go through the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Config ===&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in &amp;lt;code&amp;gt;/etc/unbound/unbound.conf.d/local.conf&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ cat local.conf&lt;br /&gt;
server:&lt;br /&gt;
    # specify the interface to answer queries from by ip-address.&lt;br /&gt;
    interface: 0.0.0.0&lt;br /&gt;
    # interface: ::0&lt;br /&gt;
&lt;br /&gt;
    # addresses from the IP range that are allowed to connect to the resolver&lt;br /&gt;
    access-control: 10.0.0.0/8 allow&lt;br /&gt;
    # access-control: 192.168.0.0/16 allow&lt;br /&gt;
    # access-control: 2001:DB8/64 allow&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sources and External Links ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=70</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=70"/>
		<updated>2024-07-25T11:31:40Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND is a suite of DNS software. Its most prominent component, named (pronounced name-dee, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Caching resolver&lt;br /&gt;
&lt;br /&gt;
=== TL;DR ===&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install -y bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step-by-step Tutorial ===&lt;br /&gt;
* Login to your server&lt;br /&gt;
* Install package Unbound&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install -y bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Checking configuration:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo unbound-checkconf&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the output is not like this, there is some error:&lt;br /&gt;
&amp;lt;pre&amp;gt;unbound-checkconf: no errors in /etc/unbound/unbound.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run a few queries, eg.:&lt;br /&gt;
&amp;lt;pre&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go through the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Config ===&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in &amp;lt;code&amp;gt;/etc/unbound/unbound.conf.d/local.conf&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ cat local.conf&lt;br /&gt;
server:&lt;br /&gt;
    # specify the interface to answer queries from by ip-address.&lt;br /&gt;
    interface: 0.0.0.0&lt;br /&gt;
    # interface: ::0&lt;br /&gt;
&lt;br /&gt;
    # addresses from the IP range that are allowed to connect to the resolver&lt;br /&gt;
    access-control: 10.0.0.0/8 allow&lt;br /&gt;
    # access-control: 192.168.0.0/16 allow&lt;br /&gt;
    # access-control: 2001:DB8/64 allow&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sources and External Links ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=69</id>
		<title>Tutorial BIND9</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_BIND9&amp;diff=69"/>
		<updated>2024-07-25T11:30:56Z</updated>

		<summary type="html">&lt;p&gt;Indiver: Created page with &amp;quot;BIND (/ˈbaɪnd/) is a suite of DNS software. Its most prominent component, named (pronounced name-dee: /ˈneɪmdiː/, short for name daemon), performs both of the main DNS se...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BIND (/ˈbaɪnd/) is a suite of DNS software. Its most prominent component, named (pronounced name-dee: /ˈneɪmdiː/, short for name daemon), performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library. &lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Caching resolver&lt;br /&gt;
&lt;br /&gt;
=== TL;DR ===&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install -y bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step-by-step Tutorial ===&lt;br /&gt;
* Login to your server&lt;br /&gt;
* Install package Unbound&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install -y bind9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Checking configuration:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo unbound-checkconf&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the output is not like this, there is some error:&lt;br /&gt;
&amp;lt;pre&amp;gt;unbound-checkconf: no errors in /etc/unbound/unbound.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run a few queries, eg.:&lt;br /&gt;
&amp;lt;pre&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go through the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Config ===&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in &amp;lt;code&amp;gt;/etc/unbound/unbound.conf.d/local.conf&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ cat local.conf&lt;br /&gt;
server:&lt;br /&gt;
    # specify the interface to answer queries from by ip-address.&lt;br /&gt;
    interface: 0.0.0.0&lt;br /&gt;
    # interface: ::0&lt;br /&gt;
&lt;br /&gt;
    # addresses from the IP range that are allowed to connect to the resolver&lt;br /&gt;
    access-control: 10.0.0.0/8 allow&lt;br /&gt;
    # access-control: 192.168.0.0/16 allow&lt;br /&gt;
    # access-control: 2001:DB8/64 allow&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sources and External Links ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/BIND BIND entry in Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=DNS_and_DNSSec&amp;diff=68</id>
		<title>DNS and DNSSec</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=DNS_and_DNSSec&amp;diff=68"/>
		<updated>2024-07-25T11:27:40Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DNS Workshop&lt;br /&gt;
&lt;br /&gt;
== Workshop Info ==&lt;br /&gt;
This is an introductory workshop for &amp;#039;&amp;#039;&amp;#039;DNS and DNSSec&amp;#039;&amp;#039;&amp;#039;. After the completion of the workshops, participants are expected to be able to setup Nameservers, diagnose and troubleshoot DNS issues and get an understanding of DNS Security Extensions.&lt;br /&gt;
 &lt;br /&gt;
* Venue: (TBD), Conference Hall&lt;br /&gt;
* Time: 10:00 to 17:00&lt;br /&gt;
* Dates:&lt;br /&gt;
** DNS and DNSSEc 101 - 2014-03-31&lt;br /&gt;
** DNS and DNSSEc Hands-On - 2014-07-29&lt;br /&gt;
&lt;br /&gt;
== Workshop Contents ==&lt;br /&gt;
* Presentation Slides (to be added)&lt;br /&gt;
* Lab Contents (to be added)&lt;br /&gt;
&lt;br /&gt;
=== Agenda ===&lt;br /&gt;
Following topics are covered in Presentations and Lab.&lt;br /&gt;
* DNS Refresher&lt;br /&gt;
** The inverted tree&lt;br /&gt;
** Database&lt;br /&gt;
** Root and Resilience&lt;br /&gt;
* Tools&lt;br /&gt;
* DNS Resolution&lt;br /&gt;
* Resource Records and Response&lt;br /&gt;
* Deploying Nameserver&lt;br /&gt;
* Understanding DNSSec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Access the Lab ===&lt;br /&gt;
The LAB consists of several VMs, each will be assigned to a group. Workshop participants are divided into multiple groups. Each group will have access to a VM to implement, test and troubleshoot.&lt;br /&gt;
&lt;br /&gt;
Access to the VMs are restricted from outside the Lab. To access the VMs, please login to the Jumphost. The details for Jumphost:&lt;br /&gt;
&lt;br /&gt;
* hostname: TBD&lt;br /&gt;
* ssh username: labuser&lt;br /&gt;
* ssh password: TBD&lt;br /&gt;
&lt;br /&gt;
=== Virtual Machines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Lab VM info&lt;br /&gt;
|-&lt;br /&gt;
! Group !! Hostname !! Username !! Password&lt;br /&gt;
|-&lt;br /&gt;
| One || lab1 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Two || lab2 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Three || lab3 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Four || lab4 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Five || lab5 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Six || lab6 || labuser || labpassword&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Resolver setup ===&lt;br /&gt;
* [[Tutorial_Unbound|Setting up a resolver]]&lt;br /&gt;
* [[Tutorial_BIND9|Setting up an authoritative server]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_Unbound&amp;diff=67</id>
		<title>Tutorial Unbound</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_Unbound&amp;diff=67"/>
		<updated>2024-07-25T11:26:03Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Unbound is a FOSS (Free and Open-source software) validating, recursive, and caching DNS resolver product from NLnet Labs.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Caching resolver with prefetching of popular items before they expire&lt;br /&gt;
* DNS over TLS forwarding and server, with domain-validation[2]&lt;br /&gt;
* DNS over HTTPS[3][4]&lt;br /&gt;
* Query Name Minimization[5]&lt;br /&gt;
* Aggressive Use of DNSSEC-Validated Cache[6]&lt;br /&gt;
* Authority zones, for a local copy of the root zone[7]&lt;br /&gt;
* DNS64&lt;br /&gt;
* DNSCrypt[8]&lt;br /&gt;
* DNSSEC validating&lt;br /&gt;
* EDNS Client Subnet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TL;DR ===&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install -y unbound&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step-by-step Tutorial ===&lt;br /&gt;
* Login to your server&lt;br /&gt;
* Install package Unbound&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install -y unbound&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Checking configuration:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo unbound-checkconf&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the output is not like this, there is some error:&lt;br /&gt;
&amp;lt;pre&amp;gt;unbound-checkconf: no errors in /etc/unbound/unbound.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run a few queries, eg.:&lt;br /&gt;
&amp;lt;pre&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go through the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Config ===&lt;br /&gt;
By default, it only allows query from localhost. To enable query from your networks, setup appropiately in &amp;lt;code&amp;gt;/etc/unbound/unbound.conf.d/local.conf&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ cat local.conf&lt;br /&gt;
server:&lt;br /&gt;
    # specify the interface to answer queries from by ip-address.&lt;br /&gt;
    interface: 0.0.0.0&lt;br /&gt;
    # interface: ::0&lt;br /&gt;
&lt;br /&gt;
    # addresses from the IP range that are allowed to connect to the resolver&lt;br /&gt;
    access-control: 10.0.0.0/8 allow&lt;br /&gt;
    # access-control: 192.168.0.0/16 allow&lt;br /&gt;
    # access-control: 2001:DB8/64 allow&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sources and External Links ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Unbound_(DNS_server) Unbound entry in Wikipedia]&lt;br /&gt;
* [https://unbound.docs.nlnetlabs.nl/en/latest/getting-started/configuration.html Unbound configuration at NLNet Labs]&lt;br /&gt;
* [https://www.techrepublic.com/article/how-to-install-unbound-dns/ Digital Ocean article on Unbound installation]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Tutorial_Unbound&amp;diff=66</id>
		<title>Tutorial Unbound</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Tutorial_Unbound&amp;diff=66"/>
		<updated>2024-07-25T11:07:12Z</updated>

		<summary type="html">&lt;p&gt;Indiver: unbound&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Unbound is a FOSS (Free and Open-source software) validating, recursive, and caching DNS resolver product from NLnet Labs.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Caching resolver with prefetching of popular items before they expire&lt;br /&gt;
* DNS over TLS forwarding and server, with domain-validation[2]&lt;br /&gt;
* DNS over HTTPS[3][4]&lt;br /&gt;
* Query Name Minimization[5]&lt;br /&gt;
* Aggressive Use of DNSSEC-Validated Cache[6]&lt;br /&gt;
* Authority zones, for a local copy of the root zone[7]&lt;br /&gt;
* DNS64&lt;br /&gt;
* DNSCrypt[8]&lt;br /&gt;
* DNSSEC validating&lt;br /&gt;
* EDNS Client Subnet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TL;DR ===&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install -y unbound&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step-by-step Tutorial ===&lt;br /&gt;
* Login to your server&lt;br /&gt;
* Install package Unbound&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install -y unbound&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
To check if unbound is working fine:&lt;br /&gt;
&amp;lt;pre&amp;gt;dig @127.0.0.1 yahoo.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go through the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
labuser@labmachine:~$ dig @localhost yahoo.com&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.18.24-1-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @localhost yahoo.com&lt;br /&gt;
; (2 servers found)&lt;br /&gt;
;; global options: +cmd&lt;br /&gt;
;; Got answer:&lt;br /&gt;
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 26347&lt;br /&gt;
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1&lt;br /&gt;
&lt;br /&gt;
;; OPT PSEUDOSECTION:&lt;br /&gt;
; EDNS: version: 0, flags:; udp: 1232&lt;br /&gt;
;; QUESTION SECTION:&lt;br /&gt;
;yahoo.com.			IN	A&lt;br /&gt;
&lt;br /&gt;
;; ANSWER SECTION:&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.25&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.21&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.164&lt;br /&gt;
yahoo.com.		1428	IN	A	98.137.11.163&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.143.26&lt;br /&gt;
yahoo.com.		1428	IN	A	74.6.231.20&lt;br /&gt;
&lt;br /&gt;
;; Query time: 0 msec&lt;br /&gt;
;; SERVER: ::1#53(localhost) (UDP)&lt;br /&gt;
;; WHEN: Thu Jul 25 11:01:56 UTC 2024&lt;br /&gt;
;; MSG SIZE  rcvd: 134&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sources and External Links ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Unbound_(DNS_server) Unbound entry in Wikipedia]&lt;br /&gt;
* [https://www.techrepublic.com/article/how-to-install-unbound-dns/ Digital Ocean article on Unbound installation]&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Main_Page&amp;diff=65</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Main_Page&amp;diff=65"/>
		<updated>2024-07-25T10:35:36Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to NREN Training&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Workshops ==&lt;br /&gt;
=== Upcoming Workshops ===&lt;br /&gt;
* [[DNS and DNSSec|dns workshop]] - July 29, 2024&lt;br /&gt;
&lt;br /&gt;
=== Past Workshops ===&lt;br /&gt;
* [[Eduroam Basics|eduroam basics 01]] - December 31, 2018&lt;br /&gt;
* [[Eduroam Basics|eduroam workshop  02]] - Jan 11, 2019&lt;br /&gt;
&lt;br /&gt;
Agenda&lt;br /&gt;
* Setting up Ubuntu Linux 18.04&lt;br /&gt;
* Setting up FreeRADIUS&lt;br /&gt;
* Setting up Access Point&lt;br /&gt;
* Setting up WPA2 Enterprise&lt;br /&gt;
* Setting up Roaming&lt;br /&gt;
* Setting up Polaris &lt;br /&gt;
* Connectivity testing&lt;br /&gt;
&lt;br /&gt;
== Manuals and Guides ==&lt;br /&gt;
* [[eduroam Configuration|freeRADIUS configuration for eduroam]]&lt;br /&gt;
* [[Eapol testing]] tool for testing freeRADIUS setup for eduroam.&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=DNS_and_DNSSec&amp;diff=64</id>
		<title>DNS and DNSSec</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=DNS_and_DNSSec&amp;diff=64"/>
		<updated>2024-07-25T09:55:34Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DNS Workshop&lt;br /&gt;
&lt;br /&gt;
== Workshop Info ==&lt;br /&gt;
This is an introductory workshop for &amp;#039;&amp;#039;&amp;#039;DNS and DNSSec&amp;#039;&amp;#039;&amp;#039;. After the completion of the workshops, participants are expected to be able to setup Nameservers, diagnose and troubleshoot DNS issues and get an understanding of DNS Security Extensions.&lt;br /&gt;
 &lt;br /&gt;
* Venue: (TBD), Conference Hall&lt;br /&gt;
* Time: 10:00 to 17:00&lt;br /&gt;
* Dates:&lt;br /&gt;
** DNS and DNSSEc 101 - 2014-03-31&lt;br /&gt;
** DNS and DNSSEc Hands-On - 2014-07-29&lt;br /&gt;
&lt;br /&gt;
== Workshop Contents ==&lt;br /&gt;
* Presentation Slides (to be added)&lt;br /&gt;
* Lab Contents (to be added)&lt;br /&gt;
&lt;br /&gt;
=== Agenda ===&lt;br /&gt;
Following topics are covered in Presentations and Lab.&lt;br /&gt;
* DNS Refresher&lt;br /&gt;
** The inverted tree&lt;br /&gt;
** Database&lt;br /&gt;
** Root and Resilience&lt;br /&gt;
* Tools&lt;br /&gt;
* DNS Resolution&lt;br /&gt;
* Resource Records and Response&lt;br /&gt;
* Deploying Nameserver&lt;br /&gt;
* Understanding DNSSec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Access the Lab ===&lt;br /&gt;
The LAB consists of several VMs, each will be assigned to a group. Workshop participants are divided into multiple groups. Each group will have access to a VM to implement, test and troubleshoot.&lt;br /&gt;
&lt;br /&gt;
Access to the VMs are restricted from outside the Lab. To access the VMs, please login to the Jumphost. The details for Jumphost:&lt;br /&gt;
&lt;br /&gt;
* hostname: TBD&lt;br /&gt;
* ssh username: labuser&lt;br /&gt;
* ssh password: TBD&lt;br /&gt;
&lt;br /&gt;
=== Virtual Machines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Lab VM info&lt;br /&gt;
|-&lt;br /&gt;
! Group !! Hostname !! Username !! Password&lt;br /&gt;
|-&lt;br /&gt;
| One || lab1 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Two || lab2 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Three || lab3 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Four || lab4 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Five || lab5 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Six || lab6 || labuser || labpassword&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=DNS_and_DNSSec&amp;diff=63</id>
		<title>DNS and DNSSec</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=DNS_and_DNSSec&amp;diff=63"/>
		<updated>2024-07-25T09:13:24Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DNS Workshop&lt;br /&gt;
&lt;br /&gt;
== Workshop Info ==&lt;br /&gt;
This is an introductory workshop for &amp;#039;&amp;#039;&amp;#039;DNS and DNSSec&amp;#039;&amp;#039;&amp;#039;. After the completion of the workshops, participants are expected to be able to setup Nameservers, diagnose and troubleshoot DNS issues and get an understanding of DNS Security Extensions.&lt;br /&gt;
 &lt;br /&gt;
* Venue: (TBD), Conference Hall&lt;br /&gt;
* Time: 10:00 to 17:00&lt;br /&gt;
* Dates:&lt;br /&gt;
** DNS and DNSSEc 101 - 2014-03-31&lt;br /&gt;
** DNS and DNSSEc Hands-On - 2014-07-29&lt;br /&gt;
&lt;br /&gt;
== Workshop Contents ==&lt;br /&gt;
* Presentation Slides (to be added)&lt;br /&gt;
* Lab Contents (to be added)&lt;br /&gt;
&lt;br /&gt;
=== Agenda ===&lt;br /&gt;
Following topics are covered in Presentations and Lab.&lt;br /&gt;
* DNS Refresher&lt;br /&gt;
** The inverted tree&lt;br /&gt;
** Database&lt;br /&gt;
** Root and Resilience&lt;br /&gt;
* Tools&lt;br /&gt;
* DNS Resolution&lt;br /&gt;
* Resource Records and Response&lt;br /&gt;
* Deploying Nameserver&lt;br /&gt;
* Understanding DNSSec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to Access the Lab ===&lt;br /&gt;
The LAB consists of several VMs, each will be assigned to a group. Workshop participants are divided into multiple groups. Each group will have access to a VM to implement, test and troubleshoot.&lt;br /&gt;
&lt;br /&gt;
Access to the VMs are restricted from outside the Lab. To access the VMs, please login to the Jumphost. The details for Jumphost:&lt;br /&gt;
&lt;br /&gt;
* hostname: TBD&lt;br /&gt;
* ssh username: TBD&lt;br /&gt;
* ssh password: TBD&lt;br /&gt;
&lt;br /&gt;
=== Virtual Machines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Lab VM info&lt;br /&gt;
|-&lt;br /&gt;
! Group !! Hostname !! Username !! Password&lt;br /&gt;
|-&lt;br /&gt;
| One || lab1 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Two || lab2 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Three || lab3 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Four || lab4 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Five || lab5 || labuser || labpassword&lt;br /&gt;
|-&lt;br /&gt;
| Six || lab6 || labuser || labpassword&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=DNS_and_DNSSec&amp;diff=62</id>
		<title>DNS and DNSSec</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=DNS_and_DNSSec&amp;diff=62"/>
		<updated>2024-07-25T08:58:18Z</updated>

		<summary type="html">&lt;p&gt;Indiver: Created page with &amp;quot;DNS Workshop&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DNS Workshop&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Main_Page&amp;diff=61</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Main_Page&amp;diff=61"/>
		<updated>2024-07-25T08:58:07Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to NREN Training&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Workshops ==&lt;br /&gt;
=== Past Workshops ===&lt;br /&gt;
* [[Eduroam Basics|eduroam basics 01]] - December 31, 2018&lt;br /&gt;
* [[Eduroam Basics|eduroam workshop  02]] - Jan 11, 2019&lt;br /&gt;
&lt;br /&gt;
=== Upcoming Workshops ===&lt;br /&gt;
* [[DNS and DNSSec|dns workshop]] - July 29, 2024&lt;br /&gt;
&lt;br /&gt;
Agenda&lt;br /&gt;
* Setting up Ubuntu Linux 18.04&lt;br /&gt;
* Setting up FreeRADIUS&lt;br /&gt;
* Setting up Access Point&lt;br /&gt;
* Setting up WPA2 Enterprise&lt;br /&gt;
* Setting up Roaming&lt;br /&gt;
* Setting up Polaris &lt;br /&gt;
* Connectivity testing&lt;br /&gt;
&lt;br /&gt;
== Manuals and Guides ==&lt;br /&gt;
* [[eduroam Configuration|freeRADIUS configuration for eduroam]]&lt;br /&gt;
* [[Eapol testing]] tool for testing freeRADIUS setup for eduroam.&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Eduroam_Configuration&amp;diff=60</id>
		<title>Eduroam Configuration</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Eduroam_Configuration&amp;diff=60"/>
		<updated>2019-11-04T12:45:39Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;freeRADIUS basic configuration for eduroam&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Make sure you have a fresh Ubuntu 18.04 server ready. Update system before starting the config process.&lt;br /&gt;
  Note: This configuration guide is based upon https://wiki.freeradius.org/guide/eduroam&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Add a test user to the freeradius authorize. We create bob@uni&amp;lt;YOURID&amp;gt;.edu.np user with a password &amp;quot;hello&amp;quot; for the lab test. Be sure to remove this user before moving to production.&lt;br /&gt;
&lt;br /&gt;
=== Users ===&lt;br /&gt;
File: /etc/freeradius/3.0/users (/etc/freeradius/3.0/mods-config/files/authorize)&lt;br /&gt;
&lt;br /&gt;
  ## Users - user logins&lt;br /&gt;
  #######################################################################&lt;br /&gt;
  &amp;quot;bob@uni0.edu.np&amp;quot;	Cleartext-Password := &amp;quot;hello&amp;quot;&lt;br /&gt;
        Reply-Message := &amp;quot;Hello, %{User-Name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Reload freeradius&lt;br /&gt;
  # systemctl restart freeradius&lt;br /&gt;
&lt;br /&gt;
Testing&lt;br /&gt;
  # radtest bob@uni0.edu.np hello localhost 7 testing123&lt;br /&gt;
&lt;br /&gt;
Try several times, with incorrect password as well. Make sure you understand each of the parameters clearly. If you get the expected results, basic setup of freeradius is complete. Now you can move on to setting up 802.1X related parts.&lt;br /&gt;
&lt;br /&gt;
=== Clients (NAS) ===&lt;br /&gt;
File: /etc/freeradius/3.0/clients.conf&lt;br /&gt;
&lt;br /&gt;
 ## clients.conf -- client configuration directives&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 client localhost {&lt;br /&gt;
 	ipaddr = 127.0.0.1&lt;br /&gt;
 	secret = testing123&lt;br /&gt;
 	nas_type = other	# localhost isn&amp;#039;t usually a NAS...&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 client testing {&lt;br /&gt;
 	ipaddr = 192.168.10.101&lt;br /&gt;
 	secret = testing123&lt;br /&gt;
 	nas_type = other&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 client nepal-flr-1 {&lt;br /&gt;
 	ipaddr 		= 192.168.20.101&lt;br /&gt;
 	netmask		= 32&lt;br /&gt;
 	secret		= longSecretPasswordHere&lt;br /&gt;
 	require_message_authenticator	= no&lt;br /&gt;
 	shortname	= nepal-flr-1&lt;br /&gt;
 	nastype		= other&lt;br /&gt;
 	virtual_server	= eduroam&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Sites - eduroam ===&lt;br /&gt;
File: /etc/freeradius/3.0/sites-available/eduroam -- radius configuration&lt;br /&gt;
 ## sites-available/eduroam -- radius configuration&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # The domain users will add to their username to have their credentials &lt;br /&gt;
 # routed to your institution.  You will also need to register this&lt;br /&gt;
 # and your RADIUS server addresses with your NRO.&lt;br /&gt;
 operator_name = &amp;quot;uni0.edu.np&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # The VLAN to assign eduroam visitors&lt;br /&gt;
 eduroam_guest_vlan = &amp;quot;1&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # The VLAN to assign your students/staff&lt;br /&gt;
 eduroam_local_vlan = &amp;quot;1&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 server eduroam {&lt;br /&gt;
 	listen {&lt;br /&gt;
 		type = auth&lt;br /&gt;
 		ipaddr = *&lt;br /&gt;
 		port = 1812&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	authorize {&lt;br /&gt;
 		# Log requests before we change them&lt;br /&gt;
 		linelog_recv_request&lt;br /&gt;
 &lt;br /&gt;
 		# split_username_nai is a policy in the default distribution to &lt;br /&gt;
 		# split a username into username and domain.  We reject user-name &lt;br /&gt;
 		# strings without domains, as they&amp;#039;re not routable.&lt;br /&gt;
 		split_username_nai&lt;br /&gt;
 		if (noop || !&amp;amp;Stripped-User-Domain) {&lt;br /&gt;
 			reject&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# Send the request to the NRO for your region.&lt;br /&gt;
 		# The details of the FLRs (Federation Level RADIUS servers)&lt;br /&gt;
 		# are in proxy.conf.&lt;br /&gt;
 		# You can make this condition as complex as you like, to &lt;br /&gt;
 		# include additional subdomains just concatenate the conditions&lt;br /&gt;
 		# with &amp;amp;&amp;amp;.&lt;br /&gt;
 		if (&amp;amp;Stripped-User-Domain != &amp;quot;${operator_name}&amp;quot;) {&lt;br /&gt;
 			update {&lt;br /&gt;
 				control:Load-Balance-Key := &amp;amp;Calling-Station-ID&lt;br /&gt;
 				control:Proxy-To-Realm := &amp;#039;eduroam_flr&amp;#039;&lt;br /&gt;
 				&lt;br /&gt;
 				# Operator name (RFC 5580) identifies the network the &lt;br /&gt;
 				# request originated from. It&amp;#039;s not absolutely necessary&lt;br /&gt;
 				# but it helps with debugging.&lt;br /&gt;
 				request:Operator-Name := &amp;quot;1${operator_name}&amp;quot;&lt;br /&gt;
 			}&lt;br /&gt;
 			return&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# If the EAP module returns &amp;#039;ok&amp;#039; or &amp;#039;updated&amp;#039;, it means it has handled&lt;br /&gt;
 		# the request and we don&amp;#039;t need to call any other modules in this&lt;br /&gt;
 		# section.&lt;br /&gt;
 		eap {&lt;br /&gt;
 			ok = return&lt;br /&gt;
 			updated = return&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	pre-proxy {&lt;br /&gt;
 		attr_filter.pre-proxy&lt;br /&gt;
 		linelog_send_proxy_request&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	post-proxy {&lt;br /&gt;
 		attr_filter.post-proxy&lt;br /&gt;
 		linelog_recv_proxy_response&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	authenticate {&lt;br /&gt;
 		eap&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	post-auth {&lt;br /&gt;
 		# To implement eduroam you must:&lt;br /&gt;
 		# - Use wireless access points or a controller which supports &lt;br /&gt;
                 #   dynamic VLAN assignments.&lt;br /&gt;
 		# - Have that feature enabled.&lt;br /&gt;
 		# - Have the guest_vlan/local_vlan available to the controller,&lt;br /&gt;
                 #   or to all your access points.&lt;br /&gt;
 		# eduroam user traffic *MUST* be segregated, this is *NOT* optional.&lt;br /&gt;
 		update reply {&lt;br /&gt;
 			Tunnel-Type := VLAN&lt;br /&gt;
 			Tunnel-Medium-Type := IEEE-802&lt;br /&gt;
 		}&lt;br /&gt;
 		if (&amp;amp;control:Proxy-To-Realm) {&lt;br /&gt;
 			update reply {&lt;br /&gt;
 				Tunnel-Private-Group-ID := ${eduroam_guest_vlan}&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 		else {&lt;br /&gt;
 			update reply {&lt;br /&gt;
 				Tunnel-Private-Group-ID := ${eduroam_local_vlan}&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# We&amp;#039;re sending a response to one of OUR network devices for one of &lt;br /&gt;
 		# OUR users so provide it with the real user-identity.&lt;br /&gt;
 		if (&amp;amp;session-state:Stripped-User-Name) {&lt;br /&gt;
 			update reply {&lt;br /&gt;
 				User-Name := &amp;quot;%{session-state:Stripped-User-Name}@%{Stripped-User-Domain}&amp;quot;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		linelog_send_accept&lt;br /&gt;
 &lt;br /&gt;
 		Post-Auth-Type REJECT {&lt;br /&gt;
 			attr_filter.access_reject&lt;br /&gt;
 			linelog_send_reject&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Sites - eduroam-inner ===&lt;br /&gt;
File: sites-available/eduroam-inner&lt;br /&gt;
 ## sites-available/eduroam-inner -- radius configuration&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 server eduroam-inner {&lt;br /&gt;
 	listen {&lt;br /&gt;
 		type = auth&lt;br /&gt;
 		ipaddr = *&lt;br /&gt;
 		port = 18120 # Used for testing only.  Requests proxied internally.&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	authorize {&lt;br /&gt;
 		# The outer username is considered garabage for autz purposes, but &lt;br /&gt;
 		# the domain portion of the outer and inner identities must match.&lt;br /&gt;
 		split_username_nai&lt;br /&gt;
 		if (noop || (&amp;amp;Stripped-User-Domain &amp;amp;&amp;amp; \&lt;br /&gt;
 		    (&amp;amp;outer.Stripped-User-Domain != &amp;amp;Stripped-User-Domain))) {&lt;br /&gt;
 			reject&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# Make the user&amp;#039;s real identity available to anything that needs&lt;br /&gt;
 		# it in the outer server.&lt;br /&gt;
 		update {&lt;br /&gt;
 			&amp;amp;outer.session-state:Stripped-User-Name := &amp;amp;Stripped-User-Name&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# EAP for PEAPv0 (EAP-MSCHAPv2)&lt;br /&gt;
 		inner-eap {&lt;br /&gt;
 			ok = return&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# THIS IS SITE SPECIFIC&lt;br /&gt;
 		#&lt;br /&gt;
 		# The files module is *ONLY* used for testing.  It lets you define &lt;br /&gt;
 		# credentials in a flat file, IT WILL NOT SCALE.&lt;br /&gt;
 		#&lt;br /&gt;
 		# - If you use OpenLDAP with salted password hashes you should &lt;br /&gt;
  		#   call the &amp;#039;ldap&amp;#039; module here and use EAP-TTLS-PAP as your EAP method.&lt;br /&gt;
 		# - If you use OpenLDAP with cleartext passwords you should &lt;br /&gt;
 		#   call the &amp;#039;ldap&amp;#039; module here and use EAP-TTLS or PEAPv0.&lt;br /&gt;
 		# - If you use an SQL DB with salted password hashes you should call &lt;br /&gt;
 		#   the &amp;#039;sql&amp;#039; module here and use EAP-TTLS-PAP as your EAP method.&lt;br /&gt;
 		# - If you use an SQL DB with cleartext passwords you should call &lt;br /&gt;
 		#   the &amp;#039;sql&amp;#039; module here and use EAP-TTLS or PEAPv0.&lt;br /&gt;
 		# - If you use Novell you should call the &amp;#039;ldap&amp;#039; module here and &lt;br /&gt;
 		#   set ``edir = yes`` in ``mods-available/ldap`` and use EAP-TTLS or&lt;br /&gt;
 		#   PEAPv0.&lt;br /&gt;
 		# - If you use Active Directory, you don&amp;#039;t need anything here (remove &lt;br /&gt;
 		#   the call to files) but you&amp;#039;ll need to follow this &lt;br /&gt;
 		#   [guide](freeradius-active-directory-integration-howto) and use &lt;br /&gt;
 		#   EAP-TTLS-PAP or PEAPv0.&lt;br /&gt;
 		# - If you&amp;#039;re using EAP-TLS (i&amp;#039;m impressed!) remove the call to files.&lt;br /&gt;
 		#&lt;br /&gt;
 		# EAP-TTLS-PAP and PEAPv0 are equally secure/insecure depending on how the &lt;br /&gt;
 		# supplicant is configured. PEAPv0 has a slight edge in that you need to &lt;br /&gt;
 		# crack MSCHAPv2 to get the user&amp;#039;s password (but this is not hard).&lt;br /&gt;
 		files&lt;br /&gt;
 &lt;br /&gt;
 		pap&lt;br /&gt;
 		mschap&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	authenticate {&lt;br /&gt;
 		inner-eap&lt;br /&gt;
 		mschap&lt;br /&gt;
 		pap&lt;br /&gt;
 &lt;br /&gt;
 		# Comment pap above and uncomment the stanza below if you&amp;#039;re using &lt;br /&gt;
 		# Active Directory; this will allow it to work with EAP-TTLS/PAP.&lt;br /&gt;
 		#Auth-Type pap {&lt;br /&gt;
 		#	ntlm_auth&lt;br /&gt;
 		#}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Proxy ===&lt;br /&gt;
File: /etc/freeradius/3.0/proxy.conf &lt;br /&gt;
 ## proxy.conf &lt;br /&gt;
 #######################################################################&lt;br /&gt;
 ## proxy.conf &lt;br /&gt;
 #######################################################################&lt;br /&gt;
 proxy server {&lt;br /&gt;
 	default_fallback = no&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 home_server npflr1 {&lt;br /&gt;
 	type		= auth+acct&lt;br /&gt;
 	ipaddr		= 192.168.30.12&lt;br /&gt;
 	port		= 1812&lt;br /&gt;
 	secret		= longSecretPasswordHere&lt;br /&gt;
 	status_check	= status-server&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 home_server npflr2 {&lt;br /&gt;
 	type		= auth+acct&lt;br /&gt;
 	ipaddr		= 192.168.30.15&lt;br /&gt;
 	port		= 1812&lt;br /&gt;
 	secret		= longSecretPasswordHere&lt;br /&gt;
 	status_check	= status-server&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 home_server_pool EDUROAM {&lt;br /&gt;
 	type		= fail-over&lt;br /&gt;
 	home_server	= npflr1&lt;br /&gt;
 	home_server	= npflr2&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 realm NULL {&lt;br /&gt;
 	nostrip&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 realm &amp;quot;~^uni0\.edu\.np&amp;quot; {&lt;br /&gt;
 	nostrip&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 realm &amp;quot;~.+$&amp;quot; {&lt;br /&gt;
 	auth_pool	= EDUROAM&lt;br /&gt;
 	nostrip&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== mods - eap ===  &lt;br /&gt;
File: /etc/freeradius/3.0/mods-available/eap.conf&lt;br /&gt;
 ##  mods-available/eap.conf -- Configuration for EAP types (PEAP, TTLS, etc.)&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 eap {&lt;br /&gt;
 	# The initial EAP type requested.  Change this to peap if you&amp;#039;re&lt;br /&gt;
 	# using peap, or tls if you&amp;#039;re using EAP-TLS.&lt;br /&gt;
 	default_eap_type = ttls&lt;br /&gt;
 &lt;br /&gt;
 	# The maximum time an EAP-Session can continue for&lt;br /&gt;
 	timer_expire = 60&lt;br /&gt;
 &lt;br /&gt;
 	# The maximum number of ongoing EAP sessions&lt;br /&gt;
 	max_sessions = ${max_requests}&lt;br /&gt;
 &lt;br /&gt;
 	tls-config tls-common {&lt;br /&gt;
 		# The public certificate that your server will present&lt;br /&gt;
 		certificate_file = ${certdir}/server.pem&lt;br /&gt;
 &lt;br /&gt;
 		# The private key for the public certificate&lt;br /&gt;
 		private_key_file = ${certdir}/server.key&lt;br /&gt;
 &lt;br /&gt;
 		# The password to decrypt &amp;#039;private_key_file&amp;#039;&lt;br /&gt;
 		private_key_password = whatever&lt;br /&gt;
 &lt;br /&gt;
 		# The certificate of the authority that issued &amp;#039;certificate_file&amp;#039;&lt;br /&gt;
 		ca_file = ${cadir}/ca.pem&lt;br /&gt;
 &lt;br /&gt;
 		# If your AP drops packets towards the client, try reducing this.&lt;br /&gt;
 		fragment_size = 1024&lt;br /&gt;
 &lt;br /&gt;
 		# When issuing client certificates embed the OCSP URL in the &lt;br /&gt;
 		# certificate if you want to be able to revoke them later.&lt;br /&gt;
 		ocsp {&lt;br /&gt;
 			enable = yes&lt;br /&gt;
 			override_cert_url = no&lt;br /&gt;
 			use_nonce = yes&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	tls {&lt;br /&gt;
 		tls = tls-common&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	ttls {&lt;br /&gt;
 		tls = tls-common&lt;br /&gt;
 		default_eap_type = mschapv2&lt;br /&gt;
 		virtual_server = &amp;quot;eduroam-inner&amp;quot;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	peap {&lt;br /&gt;
 		tls = tls-common&lt;br /&gt;
 		default_eap_type = mschapv2&lt;br /&gt;
 		virtual_server = &amp;quot;eduroam-inner&amp;quot;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
You will need to setup the certificates or copy the snakeoil-certs to the proper path.&lt;br /&gt;
&lt;br /&gt;
=== Inner EAP ===&lt;br /&gt;
File: /etc/freeradius/3.0/mods-available/inner-eap.conf&lt;br /&gt;
 ##  mods-available/inner-eap.conf -- Configuration for EAP types (PEAP, TTLS, etc.)&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 eap inner-eap {&lt;br /&gt;
 	default_eap_type = mschapv2&lt;br /&gt;
 	timer_expire = 60&lt;br /&gt;
 	max_sessions = ${max_requests}&lt;br /&gt;
 &lt;br /&gt;
 	mschapv2 {&lt;br /&gt;
 		send_error = yes&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Logging ===&lt;br /&gt;
File: /etc/freeradius/3.0/mods-available/linelog&lt;br /&gt;
 ##  mods-available/linelog&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 linelog linelog_recv_request {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Recv-Request, %{pairs:request:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 linelog linelog_send_accept {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Send-Accept, %{pairs:request:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 linelog linelog_send_reject {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Send-Reject, %{pairs:request:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 linelog linelog_send_proxy_request {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Send-Proxy-Request, %{pairs:proxy-request:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 linelog linelog_recv_proxy_response {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Recv-Proxy-Response, %{pairs:proxy-reply:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Enable Configs ===&lt;br /&gt;
Then enable configurations as necessary. Remove unnecessary configs.&lt;br /&gt;
&lt;br /&gt;
 cd /etc/freeradius/3.0/mods-enabled/&lt;br /&gt;
 ln -s ../mods-available/inner-eap .&lt;br /&gt;
 ln -s ../mods-available/linelog .&lt;br /&gt;
 &lt;br /&gt;
 cd /etc/freeradius/3.0/sites-enabled/&lt;br /&gt;
 ln -s ../sites-available/eduroam&lt;br /&gt;
 ln -s ../sites-available/eduroam-inner&lt;br /&gt;
 rm default&lt;br /&gt;
 rm inner&lt;br /&gt;
&lt;br /&gt;
At each step, understand what you are doing and why. Please consult with the trainer if in doubt.&lt;br /&gt;
&lt;br /&gt;
== Complete ==&lt;br /&gt;
You should now have a working config. &lt;br /&gt;
&lt;br /&gt;
=== Tests ===&lt;br /&gt;
Perform Test following the guide [[Eduroam_Basics#Testing_tools]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=File:Ipj20-1.pdf&amp;diff=58</id>
		<title>File:Ipj20-1.pdf</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=File:Ipj20-1.pdf&amp;diff=58"/>
		<updated>2019-03-13T11:59:43Z</updated>

		<summary type="html">&lt;p&gt;Indiver: Internet Protocol Journal - 20-1 March 2018&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Internet Protocol Journal - 20-1 March 2018&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Eapol_testing&amp;diff=57</id>
		<title>Eapol testing</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Eapol_testing&amp;diff=57"/>
		<updated>2019-02-07T15:49:30Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;PEAP and EAP-TTLS testing tool&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
You can use eapol_test tool to test PEAP, TLS and TTLS authentications on the configured freeRADIUS server. Download the tool from NREN training website.&lt;br /&gt;
&lt;br /&gt;
* eapol_test tool is available at https://w1.fi/hostapd/, we have compiled it to save time for Lab.&lt;br /&gt;
 mkdir ~/eapol_test&lt;br /&gt;
 cd ~/eapol_test&lt;br /&gt;
 curl -O https://training.nren.net.np/downloads/eapol_test-ubuntu1804.tar.gz&lt;br /&gt;
 tar zxvf eapol_test-ubuntu1804.tar.gz&lt;br /&gt;
 sudo mv eapol_test /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
Run Tests and watch for response (replace 127.0.0.1 for authentication server IP)&lt;br /&gt;
 $ eapol_test -c eap-ttls.conf -a 127.0.0.1 -s testing123&lt;br /&gt;
 &lt;br /&gt;
 $ eapol_test -c peap-mschapv2.conf -a 127.0.0.1 -s testing123&lt;br /&gt;
&lt;br /&gt;
Run tests with incorrect password, watch for response. Did you notice anything different?&lt;br /&gt;
 $ eapol_test -c eap-ttls-invalid.conf -a 127.0.0.1 -s testing123&lt;br /&gt;
  &lt;br /&gt;
 $ eapol_test -c peap-mschapv2-invalid.conf -a 127.0.0.1 -s testing123&lt;br /&gt;
&lt;br /&gt;
[[Category:Tools]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Eapol_testing&amp;diff=56</id>
		<title>Eapol testing</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Eapol_testing&amp;diff=56"/>
		<updated>2019-02-07T15:48:46Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;PEAP and EAP-TTLS testing tool&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
You can use eapol_test tool to test PEAP, TLS and TTLS authentications on the configured freeRADIUS server. Download the tool from NREN training website.&lt;br /&gt;
&lt;br /&gt;
* eapol_test tool is available at https://w1.fi/hostapd/, we have compiled it to save time for Lab.&lt;br /&gt;
 mkdir ~/eapol_test&lt;br /&gt;
 cd ~/eapol_test&lt;br /&gt;
 curl -O https://training.nren.net.np/downloads/eapol_test-ubuntu1804.tar.gz&lt;br /&gt;
 tar zxvf eapol_test-ubuntu1804.tar.gz&lt;br /&gt;
 sudo mv eapol_test /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
Run Tests and watch for response&lt;br /&gt;
 $ eapol_test -c eap-ttls.conf -a 127.0.0.1 -s testing123&lt;br /&gt;
 &lt;br /&gt;
 $ eapol_test -c peap-mschapv2.conf -a 127.0.0.1 -s testing123&lt;br /&gt;
&lt;br /&gt;
Run tests with incorrect password, watch for response. Did you notice anything different?&lt;br /&gt;
 $ eapol_test -c eap-ttls-invalid.conf -a 127.0.0.1 -s testing123&lt;br /&gt;
  &lt;br /&gt;
 $ eapol_test -c peap-mschapv2-invalid.conf -a 127.0.0.1 -s testing123&lt;br /&gt;
&lt;br /&gt;
[[Category:Tools]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Eduroam_Basics&amp;diff=55</id>
		<title>Eduroam Basics</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Eduroam_Basics&amp;diff=55"/>
		<updated>2019-01-11T07:11:25Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Workshop Info ==&lt;br /&gt;
This is an introductory workshop for &amp;#039;&amp;#039;&amp;#039;eduroam&amp;#039;&amp;#039;&amp;#039;. After the completion of the workshops, participants are expected to be able to configure WiFi APs for 802.1X authentication, configure freeradius server with database and LDAP user databases, peer with .np FLR and fully implement eduroam at their institution.&lt;br /&gt;
 &lt;br /&gt;
* Venue: NREN Secretariat, Conference Hall&lt;br /&gt;
* Time: 13:00 to 17:00&lt;br /&gt;
* Dates:&lt;br /&gt;
** eduroam Basics 01 - 2018-12-31&lt;br /&gt;
** eduroam Basics 02 - 2019-01-11&lt;br /&gt;
&lt;br /&gt;
== Workshop Contents ==&lt;br /&gt;
* Presentation Slides (to be added)&lt;br /&gt;
&lt;br /&gt;
=== Lab Plan ===&lt;br /&gt;
Identity Provider&lt;br /&gt;
* Install Ubuntu 18.04 server&lt;br /&gt;
** Update Ubuntu&lt;br /&gt;
** Install freeRADIUS&lt;br /&gt;
** Configure freeRADIUS&lt;br /&gt;
** Testing&lt;br /&gt;
&lt;br /&gt;
Service Provider&lt;br /&gt;
* Configure WiFi AP&lt;br /&gt;
* Configure Certificates for WPA2 Enterprise&lt;br /&gt;
* Configure WiFi - uni1, uni2, uni3, uni4  (For lab use only) &lt;br /&gt;
* Testing&lt;br /&gt;
** Check IDP (Local university login)&lt;br /&gt;
** Configure Peering&lt;br /&gt;
** Check peering&lt;br /&gt;
&lt;br /&gt;
Note: SSIDs should be lowercase &amp;quot;eduroam&amp;quot; for the production deployment. In the Labs, for easier troubleshooting we are using different SSIDs.&lt;br /&gt;
&lt;br /&gt;
=== System Preparation ===&lt;br /&gt;
Four VPSes with freshly installed Ubuntu 18.04 LTS Server is provided to participants divided into four groups or two to four participants. The participants are expected to use their Laptop and ssh client to connect to their assigned VPS and follow the lab instructions.&lt;br /&gt;
&lt;br /&gt;
=== freeRADIUS configuration ===&lt;br /&gt;
* freeRADIUS configurations Follow [[eduroam Configuration]] for basic setup and configuration lab&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
You can use eapol_test tool to test PEAP, TLS and TTLS authentications on the configured freeRADIUS server. Download the tool from NREN training website.&lt;br /&gt;
&lt;br /&gt;
* eapol_test tool is available at https://w1.fi/hostapd/, we have compiled it to save time for Lab.&lt;br /&gt;
[[eapol testing]]&lt;br /&gt;
&lt;br /&gt;
=== Setting up APs ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
=== Peering with NRO ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
=== Setting up Roaming ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Main_Page&amp;diff=54</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Main_Page&amp;diff=54"/>
		<updated>2019-01-11T07:10:59Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to NREN Training&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Workshops ==&lt;br /&gt;
=== Recent Workshops ===&lt;br /&gt;
* [[Eduroam Basics|eduroam basics 01]] - December 31, 2018&lt;br /&gt;
&lt;br /&gt;
=== Upcoming Workshops ===&lt;br /&gt;
[[Eduroam Basics|eduroam workshop  02]] - 11 Jan 2019&lt;br /&gt;
&lt;br /&gt;
Agenda&lt;br /&gt;
* Setting up Ubuntu Linux 18.04&lt;br /&gt;
* Setting up FreeRADIUS&lt;br /&gt;
* Setting up Access Point&lt;br /&gt;
* Setting up WPA2 Enterprise&lt;br /&gt;
* Setting up Roaming&lt;br /&gt;
* Setting up Polaris &lt;br /&gt;
* Connectivity testing&lt;br /&gt;
&lt;br /&gt;
== Manuals and Guides ==&lt;br /&gt;
* [[eduroam Configuration|freeRADIUS configuration for eduroam]]&lt;br /&gt;
* [[Eapol testing]] tool for testing freeRADIUS setup for eduroam.&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Main_Page&amp;diff=53</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Main_Page&amp;diff=53"/>
		<updated>2019-01-11T07:08:36Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to NREN Training&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Workshops ==&lt;br /&gt;
=== Recent Workshops ===&lt;br /&gt;
* [[Eduroam Basics|eduroam basics 01]] - December 31, 2018&lt;br /&gt;
&lt;br /&gt;
=== Upcoming Workshops ===&lt;br /&gt;
* [[Eduroam Basics|eduroam workshop  02]] - TBD 11 Jan 2019&lt;br /&gt;
&lt;br /&gt;
=== Agendas of Workshop @ Jan 11 ===&lt;br /&gt;
*Setting up Ubuntu Linux 18.04&lt;br /&gt;
*Setting up FreeRADIUS&lt;br /&gt;
*Setting up Access Point&lt;br /&gt;
*Setting up WPA2 Enterprise&lt;br /&gt;
*Setting up Roaming&lt;br /&gt;
*Setting up Polaris &lt;br /&gt;
*Connectivity testing&lt;br /&gt;
&lt;br /&gt;
Setting up Ubuntu Linux 18.04&lt;br /&gt;
Setting up FreeRADIUS&lt;br /&gt;
Setting up Access Point&lt;br /&gt;
Setting up WPA2 Enterprise&lt;br /&gt;
Setting up Roaming&lt;br /&gt;
Connectivity testing&lt;br /&gt;
&lt;br /&gt;
== Manuals and Guides ==&lt;br /&gt;
* [[eduroam Configuration|freeRADIUS configuration for eduroam]]&lt;br /&gt;
* [[Eapol testing]] tool for testing freeRADIUS setup for eduroam.&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Eduroam_Basics&amp;diff=48</id>
		<title>Eduroam Basics</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Eduroam_Basics&amp;diff=48"/>
		<updated>2019-01-02T01:38:43Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Workshop Info ==&lt;br /&gt;
This is an introductory workshop for &amp;#039;&amp;#039;&amp;#039;eduroam&amp;#039;&amp;#039;&amp;#039;. After the completion of the workshops, participants are expected to be able to configure WiFi APs for 802.1X authentication, configure freeradius server with database and LDAP user databases, peer with .np FLR and fully implement eduroam at their institution.&lt;br /&gt;
 &lt;br /&gt;
* Venue: NREN Secretariat, Conference Hall&lt;br /&gt;
* Time: 13:00 to 17:00&lt;br /&gt;
* Dates:&lt;br /&gt;
** eduroam Basics 01 - 2018-12-31&lt;br /&gt;
** eduroam Basics 02 - TBD (Tentative Jan 2nd week)&lt;br /&gt;
** eduroam Basics 03 - TBD (Tentative Jan last week)&lt;br /&gt;
** eduroam Basics 04 - TBD (Tentative Feb 2nd week)&lt;br /&gt;
&lt;br /&gt;
== Workshop Contents ==&lt;br /&gt;
* Presentation Slides (to be added)&lt;br /&gt;
&lt;br /&gt;
=== Lab Plan ===&lt;br /&gt;
Identity Provider&lt;br /&gt;
* Install Ubuntu 18.04 server&lt;br /&gt;
** Update Ubuntu&lt;br /&gt;
** Install freeRADIUS&lt;br /&gt;
** Configure freeRADIUS&lt;br /&gt;
** Testing&lt;br /&gt;
&lt;br /&gt;
Service Provider&lt;br /&gt;
* Configure WiFi AP&lt;br /&gt;
* Configure Certificates for WPA2 Enterprise&lt;br /&gt;
* Configure WiFi - uni1, uni2, uni3, uni4  (For lab use only) &lt;br /&gt;
* Testing&lt;br /&gt;
** Check IDP (Local university login)&lt;br /&gt;
** Configure Peering&lt;br /&gt;
** Check peering&lt;br /&gt;
&lt;br /&gt;
Note: SSIDs should be lowercase &amp;quot;eduroam&amp;quot; for the production deployment. In the Labs, for easier troubleshooting we are using different SSIDs.&lt;br /&gt;
&lt;br /&gt;
=== System Preparation ===&lt;br /&gt;
Four VPSes with freshly installed Ubuntu 18.04 LTS Server is provided to participants divided into four groups or two to four participants. The participants are expected to use their Laptop and ssh client to connect to their assigned VPS and follow the lab instructions.&lt;br /&gt;
&lt;br /&gt;
=== freeRADIUS configuration ===&lt;br /&gt;
* freeRADIUS configurations Follow [[eduroam Configuration]] for basic setup and configuration lab&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
You can use eapol_test tool to test PEAP, TLS and TTLS authentications on the configured freeRADIUS server. Download the tool from NREN training website.&lt;br /&gt;
&lt;br /&gt;
* eapol_test tool is available at https://w1.fi/hostapd/, we have compiled it to save time for Lab.&lt;br /&gt;
[[eapol testing]]&lt;br /&gt;
&lt;br /&gt;
=== Setting up APs ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
=== Peering with NRO ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
=== Setting up Roaming ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshops]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Eapol_testing&amp;diff=47</id>
		<title>Eapol testing</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Eapol_testing&amp;diff=47"/>
		<updated>2019-01-02T01:37:31Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;PEAP and EAP-TTLS testing tool&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
You can use eapol_test tool to test PEAP, TLS and TTLS authentications on the configured freeRADIUS server. Download the tool from NREN training website.&lt;br /&gt;
&lt;br /&gt;
* eapol_test tool is available at https://w1.fi/hostapd/, we have compiled it to save time for Lab.&lt;br /&gt;
 mkdir ~/eapol_test&lt;br /&gt;
 cd ~/eapol_test&lt;br /&gt;
 curl -O https://training.nren.net.np/downloads/eapol_test-ubuntu1804.tar.gz&lt;br /&gt;
 tar zxvf eapol_test-ubuntu1804.tar.gz&lt;br /&gt;
 sudo mv eapol_test /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
Run Tests and watch for response&lt;br /&gt;
 $ eapol_test -c eap-ttls.conf -s testing123&lt;br /&gt;
 &lt;br /&gt;
 $ eapol_test -c peap-mschapv2.conf -s testing123&lt;br /&gt;
&lt;br /&gt;
Run tests with incorrect password, watch for response. Did you notice anything different?&lt;br /&gt;
 $ eapol_test -c eap-ttls-invalid.conf -s testing123&lt;br /&gt;
  &lt;br /&gt;
 $ eapol_test -c peap-mschapv2-invalid.conf -s testing123&lt;br /&gt;
&lt;br /&gt;
[[Category:Tools]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Eapol_testing&amp;diff=46</id>
		<title>Eapol testing</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Eapol_testing&amp;diff=46"/>
		<updated>2019-01-02T01:36:57Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;PEAP and EAP-TTLS testing tool&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
You can use eapol_test tool to test PEAP, TLS and TTLS authentications on the configured freeRADIUS server. Download the tool from NREN training website.&lt;br /&gt;
&lt;br /&gt;
* eapol_test tool is available at https://w1.fi/hostapd/, we have compiled it to save time for Lab.&lt;br /&gt;
 mkdir ~/eapol_test&lt;br /&gt;
 cd ~/eapol_test&lt;br /&gt;
 curl -O https://training.nren.net.np/downloads/eapol_test-ubuntu1804.tar.gz&lt;br /&gt;
 tar zxvf eapol_test-ubuntu1804.tar.gz&lt;br /&gt;
 sudo mv eapol_test /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
Run Tests and watch for response&lt;br /&gt;
 $ eapol_test -c eap-ttls.conf -s testing123&lt;br /&gt;
 &lt;br /&gt;
 $ eapol_test -c peap-mschapv2.conf -s testing123&lt;br /&gt;
&lt;br /&gt;
Run tests with incorrect password, watch for response. Did you notice anything different?&lt;br /&gt;
 $ eapol_test -c eap-ttls-invalid.conf -s testing123&lt;br /&gt;
  &lt;br /&gt;
 $ eapol_test -c peap-mschapv2-invalid.conf -s testing123&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Main_Page&amp;diff=45</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Main_Page&amp;diff=45"/>
		<updated>2019-01-02T01:35:31Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to NREN Training&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Workshops ==&lt;br /&gt;
=== Recent Workshops ===&lt;br /&gt;
* [[Eduroam Basics|eduroam basics 01]] - December 31, 2018&lt;br /&gt;
&lt;br /&gt;
=== Upcoming Workshops ===&lt;br /&gt;
* [[Eduroam Basics|eduroam basics 02]] - TBD 8 Jan 2019&lt;br /&gt;
* [[Eduroam Basics|eduroam basics 03]] - TBD (Tentative Jan last week)&lt;br /&gt;
* [[Eduroam Basics|eduroam basics 04]] - TBD (Tentative Feb 2nd week)&lt;br /&gt;
&lt;br /&gt;
== Manuals and Guides ==&lt;br /&gt;
* [[eduroam Configuration|freeRADIUS configuration for eduroam]]&lt;br /&gt;
* [[Eapol testing]] tool for testing freeRADIUS setup for eduroam.&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Eduroam_Basics&amp;diff=44</id>
		<title>Eduroam Basics</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Eduroam_Basics&amp;diff=44"/>
		<updated>2019-01-01T13:00:11Z</updated>

		<summary type="html">&lt;p&gt;Indiver: /* Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Workshop Info ==&lt;br /&gt;
This is an introductory workshop for &amp;#039;&amp;#039;&amp;#039;eduroam&amp;#039;&amp;#039;&amp;#039;. After the completion of the workshops, participants are expected to be able to configure WiFi APs for 802.1X authentication, configure freeradius server with database and LDAP user databases, peer with .np FLR and fully implement eduroam at their institution.&lt;br /&gt;
 &lt;br /&gt;
* Venue: NREN Secretariat, Conference Hall&lt;br /&gt;
* Time: 13:00 to 17:00&lt;br /&gt;
* Dates:&lt;br /&gt;
** eduroam Basics 01 - 2018-12-31&lt;br /&gt;
** eduroam Basics 02 - TBD (Tentative Jan 2nd week)&lt;br /&gt;
** eduroam Basics 03 - TBD (Tentative Jan last week)&lt;br /&gt;
** eduroam Basics 04 - TBD (Tentative Feb 2nd week)&lt;br /&gt;
&lt;br /&gt;
== Workshop Contents ==&lt;br /&gt;
* Presentation Slides (to be added)&lt;br /&gt;
&lt;br /&gt;
=== Lab Plan ===&lt;br /&gt;
Identity Provider&lt;br /&gt;
* Install Ubuntu 18.04 server&lt;br /&gt;
** Update Ubuntu&lt;br /&gt;
** Install freeRADIUS&lt;br /&gt;
** Configure freeRADIUS&lt;br /&gt;
** Testing&lt;br /&gt;
&lt;br /&gt;
Service Provider&lt;br /&gt;
* Configure WiFi AP&lt;br /&gt;
* Configure Certificates for WPA2 Enterprise&lt;br /&gt;
* Configure WiFi - uni1, uni2, uni3, uni4  (For lab use only) &lt;br /&gt;
* Testing&lt;br /&gt;
** Check IDP (Local university login)&lt;br /&gt;
** Configure Peering&lt;br /&gt;
** Check peering&lt;br /&gt;
&lt;br /&gt;
Note: SSIDs should be lowercase &amp;quot;eduroam&amp;quot; for the production deployment. In the Labs, for easier troubleshooting we are using different SSIDs.&lt;br /&gt;
&lt;br /&gt;
=== System Preparation ===&lt;br /&gt;
Four VPSes with freshly installed Ubuntu 18.04 LTS Server is provided to participants divided into four groups or two to four participants. The participants are expected to use their Laptop and ssh client to connect to their assigned VPS and follow the lab instructions.&lt;br /&gt;
&lt;br /&gt;
=== freeRADIUS configuration ===&lt;br /&gt;
* freeRADIUS configurations Follow [[eduroam Configuration]] for basic setup and configuration lab&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
You can use eapol_test tool to test PEAP, TLS and TTLS authentications on the configured freeRADIUS server. Download the tool from NREN training website.&lt;br /&gt;
&lt;br /&gt;
* eapol_test tool is available at https://w1.fi/hostapd/, we have compiled it to save time for Lab.&lt;br /&gt;
[[eapol testing]]&lt;br /&gt;
&lt;br /&gt;
=== Setting up APs ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
=== Peering with NRO ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
=== Setting up Roaming ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshop]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Eapol_testing&amp;diff=43</id>
		<title>Eapol testing</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Eapol_testing&amp;diff=43"/>
		<updated>2019-01-01T12:59:53Z</updated>

		<summary type="html">&lt;p&gt;Indiver: Created page with &amp;quot;eduroam configuration for freeRADIUS testing tool:  === Testing === You can use eapol_test tool to test PEAP, TLS and TTLS authentications on the configured freeRADIUS server....&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;eduroam configuration for freeRADIUS testing tool:&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
You can use eapol_test tool to test PEAP, TLS and TTLS authentications on the configured freeRADIUS server. Download the tool from NREN training website.&lt;br /&gt;
&lt;br /&gt;
* eapol_test tool is available at https://w1.fi/hostapd/, we have compiled it to save time for Lab.&lt;br /&gt;
 mkdir ~/eapol_test&lt;br /&gt;
 cd ~/eapol_test&lt;br /&gt;
 curl -O https://training.nren.net.np/downloads/eapol_test-ubuntu1804.tar.gz&lt;br /&gt;
 tar zxvf eapol_test-ubuntu1804.tar.gz&lt;br /&gt;
 sudo mv eapol_test /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
Run Tests and watch for response&lt;br /&gt;
 $ eapol_test -c eap-ttls.conf -s testing123&lt;br /&gt;
 &lt;br /&gt;
 $ eapol_test -c peap-mschapv2.conf -s testing123&lt;br /&gt;
&lt;br /&gt;
Run tests with incorrect password, watch for response. Did you notice anything different?&lt;br /&gt;
 $ eapol_test -c eap-ttls-invalid.conf -s testing123&lt;br /&gt;
  &lt;br /&gt;
 $ eapol_test -c peap-mschapv2-invalid.conf -s testing123&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Eduroam_Basics&amp;diff=42</id>
		<title>Eduroam Basics</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Eduroam_Basics&amp;diff=42"/>
		<updated>2019-01-01T12:59:26Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Workshop Info ==&lt;br /&gt;
This is an introductory workshop for &amp;#039;&amp;#039;&amp;#039;eduroam&amp;#039;&amp;#039;&amp;#039;. After the completion of the workshops, participants are expected to be able to configure WiFi APs for 802.1X authentication, configure freeradius server with database and LDAP user databases, peer with .np FLR and fully implement eduroam at their institution.&lt;br /&gt;
 &lt;br /&gt;
* Venue: NREN Secretariat, Conference Hall&lt;br /&gt;
* Time: 13:00 to 17:00&lt;br /&gt;
* Dates:&lt;br /&gt;
** eduroam Basics 01 - 2018-12-31&lt;br /&gt;
** eduroam Basics 02 - TBD (Tentative Jan 2nd week)&lt;br /&gt;
** eduroam Basics 03 - TBD (Tentative Jan last week)&lt;br /&gt;
** eduroam Basics 04 - TBD (Tentative Feb 2nd week)&lt;br /&gt;
&lt;br /&gt;
== Workshop Contents ==&lt;br /&gt;
* Presentation Slides (to be added)&lt;br /&gt;
&lt;br /&gt;
=== Lab Plan ===&lt;br /&gt;
Identity Provider&lt;br /&gt;
* Install Ubuntu 18.04 server&lt;br /&gt;
** Update Ubuntu&lt;br /&gt;
** Install freeRADIUS&lt;br /&gt;
** Configure freeRADIUS&lt;br /&gt;
** Testing&lt;br /&gt;
&lt;br /&gt;
Service Provider&lt;br /&gt;
* Configure WiFi AP&lt;br /&gt;
* Configure Certificates for WPA2 Enterprise&lt;br /&gt;
* Configure WiFi - uni1, uni2, uni3, uni4  (For lab use only) &lt;br /&gt;
* Testing&lt;br /&gt;
** Check IDP (Local university login)&lt;br /&gt;
** Configure Peering&lt;br /&gt;
** Check peering&lt;br /&gt;
&lt;br /&gt;
Note: SSIDs should be lowercase &amp;quot;eduroam&amp;quot; for the production deployment. In the Labs, for easier troubleshooting we are using different SSIDs.&lt;br /&gt;
&lt;br /&gt;
=== System Preparation ===&lt;br /&gt;
Four VPSes with freshly installed Ubuntu 18.04 LTS Server is provided to participants divided into four groups or two to four participants. The participants are expected to use their Laptop and ssh client to connect to their assigned VPS and follow the lab instructions.&lt;br /&gt;
&lt;br /&gt;
=== freeRADIUS configuration ===&lt;br /&gt;
* freeRADIUS configurations Follow [[eduroam Configuration]] for basic setup and configuration lab&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
You can use eapol_test tool to test PEAP, TLS and TTLS authentications on the configured freeRADIUS server. Download the tool from NREN training website.&lt;br /&gt;
&lt;br /&gt;
* eapol_test tool is available at https://w1.fi/hostapd/, we have compiled it to save time for Lab.&lt;br /&gt;
[[eapol testing]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Setting up APs ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
=== Peering with NRO ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
=== Setting up Roaming ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshop]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Eduroam_Basics&amp;diff=41</id>
		<title>Eduroam Basics</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Eduroam_Basics&amp;diff=41"/>
		<updated>2019-01-01T12:53:57Z</updated>

		<summary type="html">&lt;p&gt;Indiver: /* Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Workshop Info ==&lt;br /&gt;
This is an introductory workshop for &amp;#039;&amp;#039;&amp;#039;eduroam&amp;#039;&amp;#039;&amp;#039;. After the completion of the workshops, participants are expected to be able to configure WiFi APs for 802.1X authentication, configure freeradius server with database and LDAP user databases, peer with .np FLR and fully implement eduroam at their institution.&lt;br /&gt;
 &lt;br /&gt;
* Venue: NREN Secretariat, Conference Hall&lt;br /&gt;
* Time: 13:00 to 17:00&lt;br /&gt;
* Dates:&lt;br /&gt;
** eduroam Basics 01 - 2018-12-31&lt;br /&gt;
** eduroam Basics 02 - TBD (Tentative Jan 2nd week)&lt;br /&gt;
** eduroam Basics 03 - TBD (Tentative Jan last week)&lt;br /&gt;
** eduroam Basics 04 - TBD (Tentative Feb 2nd week)&lt;br /&gt;
&lt;br /&gt;
== Workshop Contents ==&lt;br /&gt;
* Presentation Slides (to be added)&lt;br /&gt;
&lt;br /&gt;
=== Lab Plan ===&lt;br /&gt;
Identity Provider&lt;br /&gt;
* Install Ubuntu 18.04 server&lt;br /&gt;
** Update Ubuntu&lt;br /&gt;
** Install freeRADIUS&lt;br /&gt;
** Configure freeRADIUS&lt;br /&gt;
** Testing&lt;br /&gt;
&lt;br /&gt;
Service Provider&lt;br /&gt;
* Configure WiFi AP&lt;br /&gt;
* Configure Certificates for WPA2 Enterprise&lt;br /&gt;
* Configure WiFi - uni1, uni2, uni3, uni4  (For lab use only) &lt;br /&gt;
* Testing&lt;br /&gt;
** Check IDP (Local university login)&lt;br /&gt;
** Configure Peering&lt;br /&gt;
** Check peering&lt;br /&gt;
&lt;br /&gt;
Note: SSIDs should be lowercase &amp;quot;eduroam&amp;quot; for the production deployment. In the Labs, for easier troubleshooting we are using different SSIDs.&lt;br /&gt;
&lt;br /&gt;
=== System Preparation ===&lt;br /&gt;
Four VPSes with freshly installed Ubuntu 18.04 LTS Server is provided to participants divided into four groups or two to four participants. The participants are expected to use their Laptop and ssh client to connect to their assigned VPS and follow the lab instructions.&lt;br /&gt;
&lt;br /&gt;
=== freeRADIUS configuration ===&lt;br /&gt;
* freeRADIUS configurations Follow [[eduroam Configuration]] for basic setup and configuration lab&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
You can use eapol_test tool to test PEAP, TLS and TTLS authentications on the configured freeRADIUS server. Download the tool from NREN training website.&lt;br /&gt;
&lt;br /&gt;
* eapol_test tool is available at https://w1.fi/hostapd/, we have compiled it to save time for Lab.&lt;br /&gt;
 mkdir ~/eapol_test&lt;br /&gt;
 cd ~/eapol_test&lt;br /&gt;
 curl -O https://training.nren.net.np/downloads/eapol_test-ubuntu1804.tar.gz&lt;br /&gt;
 tar zxvf eapol_test-ubuntu1804.tar.gz&lt;br /&gt;
 sudo mv eapol_test /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
Run Tests and watch for response&lt;br /&gt;
 $ eapol_test -c eap-ttls.conf -s testing123&lt;br /&gt;
 &lt;br /&gt;
 $ eapol_test -c peap-mschapv2.conf -s testing123&lt;br /&gt;
&lt;br /&gt;
Run tests with incorrect password, watch for response. Did you notice anything different?&lt;br /&gt;
 $ eapol_test -c eap-ttls-invalid.conf -s testing123&lt;br /&gt;
  &lt;br /&gt;
 $ eapol_test -c peap-mschapv2-invalid.conf -s testing123&lt;br /&gt;
&lt;br /&gt;
=== Setting up APs ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
=== Peering with NRO ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
=== Setting up Roaming ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshop]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Eduroam_Basics&amp;diff=40</id>
		<title>Eduroam Basics</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Eduroam_Basics&amp;diff=40"/>
		<updated>2019-01-01T12:52:27Z</updated>

		<summary type="html">&lt;p&gt;Indiver: /* Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Workshop Info ==&lt;br /&gt;
This is an introductory workshop for &amp;#039;&amp;#039;&amp;#039;eduroam&amp;#039;&amp;#039;&amp;#039;. After the completion of the workshops, participants are expected to be able to configure WiFi APs for 802.1X authentication, configure freeradius server with database and LDAP user databases, peer with .np FLR and fully implement eduroam at their institution.&lt;br /&gt;
 &lt;br /&gt;
* Venue: NREN Secretariat, Conference Hall&lt;br /&gt;
* Time: 13:00 to 17:00&lt;br /&gt;
* Dates:&lt;br /&gt;
** eduroam Basics 01 - 2018-12-31&lt;br /&gt;
** eduroam Basics 02 - TBD (Tentative Jan 2nd week)&lt;br /&gt;
** eduroam Basics 03 - TBD (Tentative Jan last week)&lt;br /&gt;
** eduroam Basics 04 - TBD (Tentative Feb 2nd week)&lt;br /&gt;
&lt;br /&gt;
== Workshop Contents ==&lt;br /&gt;
* Presentation Slides (to be added)&lt;br /&gt;
&lt;br /&gt;
=== Lab Plan ===&lt;br /&gt;
Identity Provider&lt;br /&gt;
* Install Ubuntu 18.04 server&lt;br /&gt;
** Update Ubuntu&lt;br /&gt;
** Install freeRADIUS&lt;br /&gt;
** Configure freeRADIUS&lt;br /&gt;
** Testing&lt;br /&gt;
&lt;br /&gt;
Service Provider&lt;br /&gt;
* Configure WiFi AP&lt;br /&gt;
* Configure Certificates for WPA2 Enterprise&lt;br /&gt;
* Configure WiFi - uni1, uni2, uni3, uni4  (For lab use only) &lt;br /&gt;
* Testing&lt;br /&gt;
** Check IDP (Local university login)&lt;br /&gt;
** Configure Peering&lt;br /&gt;
** Check peering&lt;br /&gt;
&lt;br /&gt;
Note: SSIDs should be lowercase &amp;quot;eduroam&amp;quot; for the production deployment. In the Labs, for easier troubleshooting we are using different SSIDs.&lt;br /&gt;
&lt;br /&gt;
=== System Preparation ===&lt;br /&gt;
Four VPSes with freshly installed Ubuntu 18.04 LTS Server is provided to participants divided into four groups or two to four participants. The participants are expected to use their Laptop and ssh client to connect to their assigned VPS and follow the lab instructions.&lt;br /&gt;
&lt;br /&gt;
=== freeRADIUS configuration ===&lt;br /&gt;
* freeRADIUS configurations Follow [[eduroam Configuration]] for basic setup and configuration lab&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
You can use eapol_test tool to test PEAP, TLS and TTLS authentications on the configured freeRADIUS server. Download the tool from NREN training website.&lt;br /&gt;
&lt;br /&gt;
* eapol_test tool is available at https://w1.fi/hostapd/, we have compiled it to save time for Lab.&lt;br /&gt;
 mkdir ~/eapol_test&lt;br /&gt;
 cd ~/eapol_test&lt;br /&gt;
 curl -O https://training.nren.net.np/download/eapol_test-ubuntu1804.tar&lt;br /&gt;
 tar zxvf eapol_test-ubuntu1804.tar&lt;br /&gt;
 sudo cp eapol_test /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
Run Tests and watch for response&lt;br /&gt;
 $ eapol_test -c eap-ttls.conf -s testing123&lt;br /&gt;
 &lt;br /&gt;
 $ eapol_test -c peap-mschapv2.conf -s testing123&lt;br /&gt;
&lt;br /&gt;
Run tests with incorrect password, watch for response. Did you notice anything different?&lt;br /&gt;
 $ eapol_test -c eap-ttls-invalid.conf -s testing123&lt;br /&gt;
  &lt;br /&gt;
 $ eapol_test -c peap-mschapv2-invalid.conf -s testing123&lt;br /&gt;
&lt;br /&gt;
=== Setting up APs ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
=== Peering with NRO ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
=== Setting up Roaming ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshop]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Eduroam_Basics&amp;diff=39</id>
		<title>Eduroam Basics</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Eduroam_Basics&amp;diff=39"/>
		<updated>2019-01-01T12:51:30Z</updated>

		<summary type="html">&lt;p&gt;Indiver: /* Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Workshop Info ==&lt;br /&gt;
This is an introductory workshop for &amp;#039;&amp;#039;&amp;#039;eduroam&amp;#039;&amp;#039;&amp;#039;. After the completion of the workshops, participants are expected to be able to configure WiFi APs for 802.1X authentication, configure freeradius server with database and LDAP user databases, peer with .np FLR and fully implement eduroam at their institution.&lt;br /&gt;
 &lt;br /&gt;
* Venue: NREN Secretariat, Conference Hall&lt;br /&gt;
* Time: 13:00 to 17:00&lt;br /&gt;
* Dates:&lt;br /&gt;
** eduroam Basics 01 - 2018-12-31&lt;br /&gt;
** eduroam Basics 02 - TBD (Tentative Jan 2nd week)&lt;br /&gt;
** eduroam Basics 03 - TBD (Tentative Jan last week)&lt;br /&gt;
** eduroam Basics 04 - TBD (Tentative Feb 2nd week)&lt;br /&gt;
&lt;br /&gt;
== Workshop Contents ==&lt;br /&gt;
* Presentation Slides (to be added)&lt;br /&gt;
&lt;br /&gt;
=== Lab Plan ===&lt;br /&gt;
Identity Provider&lt;br /&gt;
* Install Ubuntu 18.04 server&lt;br /&gt;
** Update Ubuntu&lt;br /&gt;
** Install freeRADIUS&lt;br /&gt;
** Configure freeRADIUS&lt;br /&gt;
** Testing&lt;br /&gt;
&lt;br /&gt;
Service Provider&lt;br /&gt;
* Configure WiFi AP&lt;br /&gt;
* Configure Certificates for WPA2 Enterprise&lt;br /&gt;
* Configure WiFi - uni1, uni2, uni3, uni4  (For lab use only) &lt;br /&gt;
* Testing&lt;br /&gt;
** Check IDP (Local university login)&lt;br /&gt;
** Configure Peering&lt;br /&gt;
** Check peering&lt;br /&gt;
&lt;br /&gt;
Note: SSIDs should be lowercase &amp;quot;eduroam&amp;quot; for the production deployment. In the Labs, for easier troubleshooting we are using different SSIDs.&lt;br /&gt;
&lt;br /&gt;
=== System Preparation ===&lt;br /&gt;
Four VPSes with freshly installed Ubuntu 18.04 LTS Server is provided to participants divided into four groups or two to four participants. The participants are expected to use their Laptop and ssh client to connect to their assigned VPS and follow the lab instructions.&lt;br /&gt;
&lt;br /&gt;
=== freeRADIUS configuration ===&lt;br /&gt;
* freeRADIUS configurations Follow [[eduroam Configuration]] for basic setup and configuration lab&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
You can use eapol_test tool to test PEAP, TLS and TTLS authentications on the configured freeRADIUS server. Download the tool from NREN training website.&lt;br /&gt;
&lt;br /&gt;
* eapol_test tool is available at https://w1.fi/hostapd/, we have compiled it to save time for Lab.&lt;br /&gt;
 cd&lt;br /&gt;
 mkdir eapol_test&lt;br /&gt;
 curl -O https://training.nren.net.np/download/eapol_test-ubuntu1804.tar&lt;br /&gt;
 tar zxvf eapol_test-ubuntu1804.tar&lt;br /&gt;
 sudo cp eapol_test /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
Run Tests and watch for response&lt;br /&gt;
 $ eapol_test -c eap-ttls.conf -s testing123&lt;br /&gt;
 &lt;br /&gt;
 $ eapol_test -c peap-mschapv2.conf -s testing123&lt;br /&gt;
&lt;br /&gt;
Run tests with incorrect password, watch for response. Did you notice anything different?&lt;br /&gt;
 $ eapol_test -c eap-ttls-invalid.conf -s testing123&lt;br /&gt;
  &lt;br /&gt;
 $ eapol_test -c peap-mschapv2-invalid.conf -s testing123&lt;br /&gt;
&lt;br /&gt;
=== Setting up APs ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
=== Peering with NRO ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
=== Setting up Roaming ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshop]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Eduroam_Basics&amp;diff=38</id>
		<title>Eduroam Basics</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Eduroam_Basics&amp;diff=38"/>
		<updated>2019-01-01T12:50:58Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Workshop Info ==&lt;br /&gt;
This is an introductory workshop for &amp;#039;&amp;#039;&amp;#039;eduroam&amp;#039;&amp;#039;&amp;#039;. After the completion of the workshops, participants are expected to be able to configure WiFi APs for 802.1X authentication, configure freeradius server with database and LDAP user databases, peer with .np FLR and fully implement eduroam at their institution.&lt;br /&gt;
 &lt;br /&gt;
* Venue: NREN Secretariat, Conference Hall&lt;br /&gt;
* Time: 13:00 to 17:00&lt;br /&gt;
* Dates:&lt;br /&gt;
** eduroam Basics 01 - 2018-12-31&lt;br /&gt;
** eduroam Basics 02 - TBD (Tentative Jan 2nd week)&lt;br /&gt;
** eduroam Basics 03 - TBD (Tentative Jan last week)&lt;br /&gt;
** eduroam Basics 04 - TBD (Tentative Feb 2nd week)&lt;br /&gt;
&lt;br /&gt;
== Workshop Contents ==&lt;br /&gt;
* Presentation Slides (to be added)&lt;br /&gt;
&lt;br /&gt;
=== Lab Plan ===&lt;br /&gt;
Identity Provider&lt;br /&gt;
* Install Ubuntu 18.04 server&lt;br /&gt;
** Update Ubuntu&lt;br /&gt;
** Install freeRADIUS&lt;br /&gt;
** Configure freeRADIUS&lt;br /&gt;
** Testing&lt;br /&gt;
&lt;br /&gt;
Service Provider&lt;br /&gt;
* Configure WiFi AP&lt;br /&gt;
* Configure Certificates for WPA2 Enterprise&lt;br /&gt;
* Configure WiFi - uni1, uni2, uni3, uni4  (For lab use only) &lt;br /&gt;
* Testing&lt;br /&gt;
** Check IDP (Local university login)&lt;br /&gt;
** Configure Peering&lt;br /&gt;
** Check peering&lt;br /&gt;
&lt;br /&gt;
Note: SSIDs should be lowercase &amp;quot;eduroam&amp;quot; for the production deployment. In the Labs, for easier troubleshooting we are using different SSIDs.&lt;br /&gt;
&lt;br /&gt;
=== System Preparation ===&lt;br /&gt;
Four VPSes with freshly installed Ubuntu 18.04 LTS Server is provided to participants divided into four groups or two to four participants. The participants are expected to use their Laptop and ssh client to connect to their assigned VPS and follow the lab instructions.&lt;br /&gt;
&lt;br /&gt;
=== freeRADIUS configuration ===&lt;br /&gt;
* freeRADIUS configurations Follow [[eduroam Configuration]] for basic setup and configuration lab&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
You can use eapol_test tool to test PEAP, TLS and TTLS authentications on the configured freeRADIUS server. Download the tool from NREN training website.&lt;br /&gt;
&lt;br /&gt;
* eapol_test tool is available at https://w1.fi/hostapd/, we have compiled it to save time for Lab.&lt;br /&gt;
  cd&lt;br /&gt;
  mkdir eapol_test&lt;br /&gt;
  curl -O https://training.nren.net.np/download/eapol_test-ubuntu1804.tar&lt;br /&gt;
  tar zxvf eapol_test-ubuntu1804.tar&lt;br /&gt;
  sudo cp eapol_test /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
Run Tests and watch for response&lt;br /&gt;
  $ eapol_test -c eap-ttls.conf -s testing123&lt;br /&gt;
  &lt;br /&gt;
  $ eapol_test -c peap-mschapv2.conf -s testing123&lt;br /&gt;
&lt;br /&gt;
Run tests with incorrect password, watch for response. Did you notice anything different?&lt;br /&gt;
  $ eapol_test -c eap-ttls-invalid.conf -s testing123&lt;br /&gt;
  &lt;br /&gt;
  $ eapol_test -c peap-mschapv2-invalid.conf -s testing123&lt;br /&gt;
&lt;br /&gt;
=== Setting up APs ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
=== Peering with NRO ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
=== Setting up Roaming ===&lt;br /&gt;
Documentation is in progress. Check back again for more/updated contents.&lt;br /&gt;
&lt;br /&gt;
[[Category:Workshop]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Eduroam_Configuration&amp;diff=37</id>
		<title>Eduroam Configuration</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Eduroam_Configuration&amp;diff=37"/>
		<updated>2019-01-01T12:45:54Z</updated>

		<summary type="html">&lt;p&gt;Indiver: /* mods - eap */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;freeRADIUS basic configuration for eduroam&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Make sure you have a fresh Ubuntu 18.04 server ready. Update system before starting the config process.&lt;br /&gt;
  Note: This configuration guide is based upon https://wiki.freeradius.org/guide/eduroam&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Add a test user to the freeradius authorize. We create bob@uni&amp;lt;YOURID&amp;gt;.edu.np user with a password &amp;quot;hello&amp;quot; for the lab test. Be sure to remove this user before moving to production.&lt;br /&gt;
&lt;br /&gt;
=== Users ===&lt;br /&gt;
File: /etc/freeradius/3.0/users (/etc/freeradius/3.0/mods-config/files/authorize)&lt;br /&gt;
&lt;br /&gt;
  ## Users - user logins&lt;br /&gt;
  #######################################################################&lt;br /&gt;
  &amp;quot;bob@uni0.edu.np&amp;quot;	Cleartext-Password := &amp;quot;hello&amp;quot;&lt;br /&gt;
        Reply-Message := &amp;quot;Hello, %{User-Name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Reload freeradius&lt;br /&gt;
  # systemctl restart freeradius&lt;br /&gt;
&lt;br /&gt;
Testing&lt;br /&gt;
  # radtest bob@uni0.edu.np hello localhost 7 testing123&lt;br /&gt;
&lt;br /&gt;
Try several times, with incorrect password as well. Make sure you understand each of the parameters clearly. If you get the expected results, basic setup of freeradius is complete. Now you can move on to setting up 802.1X related parts.&lt;br /&gt;
&lt;br /&gt;
=== Clients (NAS) ===&lt;br /&gt;
File: /etc/freeradius/3.0/clients.conf&lt;br /&gt;
&lt;br /&gt;
 ## clients.conf -- client configuration directives&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 client localhost {&lt;br /&gt;
 	ipaddr = 127.0.0.1&lt;br /&gt;
 	secret = testing123&lt;br /&gt;
 	nas_type = other	# localhost isn&amp;#039;t usually a NAS...&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 client testing {&lt;br /&gt;
 	ipaddr = 45.64.162.158&lt;br /&gt;
 	secret = testing123&lt;br /&gt;
 	nas_type = other&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 client nepal-flr-1 {&lt;br /&gt;
 	ipaddr 		= 202.52.0.18&lt;br /&gt;
 	netmask		= 32&lt;br /&gt;
 	secret		= longSecretPasswordHere&lt;br /&gt;
 	require_message_authenticator	= no&lt;br /&gt;
 	shortname	= nepal-flr-1&lt;br /&gt;
 	nastype		= other&lt;br /&gt;
 	virtual_server	= eduroam&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Sites - eduroam ===&lt;br /&gt;
File: /etc/freeradius/3.0/sites-available/eduroam -- radius configuration&lt;br /&gt;
 ## sites-available/eduroam -- radius configuration&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # The domain users will add to their username to have their credentials &lt;br /&gt;
 # routed to your institution.  You will also need to register this&lt;br /&gt;
 # and your RADIUS server addresses with your NRO.&lt;br /&gt;
 operator_name = &amp;quot;uni0.edu.np&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # The VLAN to assign eduroam visitors&lt;br /&gt;
 eduroam_guest_vlan = &amp;quot;1&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # The VLAN to assign your students/staff&lt;br /&gt;
 eduroam_local_vlan = &amp;quot;1&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 server eduroam {&lt;br /&gt;
 	listen {&lt;br /&gt;
 		type = auth&lt;br /&gt;
 		ipaddr = *&lt;br /&gt;
 		port = 1812&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	authorize {&lt;br /&gt;
 		# Log requests before we change them&lt;br /&gt;
 		linelog_recv_request&lt;br /&gt;
 &lt;br /&gt;
 		# split_username_nai is a policy in the default distribution to &lt;br /&gt;
 		# split a username into username and domain.  We reject user-name &lt;br /&gt;
 		# strings without domains, as they&amp;#039;re not routable.&lt;br /&gt;
 		split_username_nai&lt;br /&gt;
 		if (noop || !&amp;amp;Stripped-User-Domain) {&lt;br /&gt;
 			reject&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# Send the request to the NRO for your region.&lt;br /&gt;
 		# The details of the FLRs (Federation Level RADIUS servers)&lt;br /&gt;
 		# are in proxy.conf.&lt;br /&gt;
 		# You can make this condition as complex as you like, to &lt;br /&gt;
 		# include additional subdomains just concatenate the conditions&lt;br /&gt;
 		# with &amp;amp;&amp;amp;.&lt;br /&gt;
 		if (&amp;amp;Stripped-User-Domain != &amp;quot;${operator_name}&amp;quot;) {&lt;br /&gt;
 			update {&lt;br /&gt;
 				control:Load-Balance-Key := &amp;amp;Calling-Station-ID&lt;br /&gt;
 				control:Proxy-To-Realm := &amp;#039;eduroam_flr&amp;#039;&lt;br /&gt;
 				&lt;br /&gt;
 				# Operator name (RFC 5580) identifies the network the &lt;br /&gt;
 				# request originated from. It&amp;#039;s not absolutely necessary&lt;br /&gt;
 				# but it helps with debugging.&lt;br /&gt;
 				request:Operator-Name := &amp;quot;1${operator_name}&amp;quot;&lt;br /&gt;
 			}&lt;br /&gt;
 			return&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# If the EAP module returns &amp;#039;ok&amp;#039; or &amp;#039;updated&amp;#039;, it means it has handled&lt;br /&gt;
 		# the request and we don&amp;#039;t need to call any other modules in this&lt;br /&gt;
 		# section.&lt;br /&gt;
 		eap {&lt;br /&gt;
 			ok = return&lt;br /&gt;
 			updated = return&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	pre-proxy {&lt;br /&gt;
 		attr_filter.pre-proxy&lt;br /&gt;
 		linelog_send_proxy_request&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	post-proxy {&lt;br /&gt;
 		attr_filter.post-proxy&lt;br /&gt;
 		linelog_recv_proxy_response&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	authenticate {&lt;br /&gt;
 		eap&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	post-auth {&lt;br /&gt;
 		# To implement eduroam you must:&lt;br /&gt;
 		# - Use wireless access points or a controller which supports &lt;br /&gt;
                 #   dynamic VLAN assignments.&lt;br /&gt;
 		# - Have that feature enabled.&lt;br /&gt;
 		# - Have the guest_vlan/local_vlan available to the controller,&lt;br /&gt;
                 #   or to all your access points.&lt;br /&gt;
 		# eduroam user traffic *MUST* be segregated, this is *NOT* optional.&lt;br /&gt;
 		update reply {&lt;br /&gt;
 			Tunnel-Type := VLAN&lt;br /&gt;
 			Tunnel-Medium-Type := IEEE-802&lt;br /&gt;
 		}&lt;br /&gt;
 		if (&amp;amp;control:Proxy-To-Realm) {&lt;br /&gt;
 			update reply {&lt;br /&gt;
 				Tunnel-Private-Group-ID := ${eduroam_guest_vlan}&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 		else {&lt;br /&gt;
 			update reply {&lt;br /&gt;
 				Tunnel-Private-Group-ID := ${eduroam_local_vlan}&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# We&amp;#039;re sending a response to one of OUR network devices for one of &lt;br /&gt;
 		# OUR users so provide it with the real user-identity.&lt;br /&gt;
 		if (&amp;amp;session-state:Stripped-User-Name) {&lt;br /&gt;
 			update reply {&lt;br /&gt;
 				User-Name := &amp;quot;%{session-state:Stripped-User-Name}@%{Stripped-User-Domain}&amp;quot;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		linelog_send_accept&lt;br /&gt;
 &lt;br /&gt;
 		Post-Auth-Type REJECT {&lt;br /&gt;
 			attr_filter.access_reject&lt;br /&gt;
 			linelog_send_reject&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Sites - eduroam-inner ===&lt;br /&gt;
File: sites-available/eduroam-inner&lt;br /&gt;
 ## sites-available/eduroam-inner -- radius configuration&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 server eduroam-inner {&lt;br /&gt;
 	listen {&lt;br /&gt;
 		type = auth&lt;br /&gt;
 		ipaddr = *&lt;br /&gt;
 		port = 18120 # Used for testing only.  Requests proxied internally.&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	authorize {&lt;br /&gt;
 		# The outer username is considered garabage for autz purposes, but &lt;br /&gt;
 		# the domain portion of the outer and inner identities must match.&lt;br /&gt;
 		split_username_nai&lt;br /&gt;
 		if (noop || (&amp;amp;Stripped-User-Domain &amp;amp;&amp;amp; \&lt;br /&gt;
 		    (&amp;amp;outer.Stripped-User-Domain != &amp;amp;Stripped-User-Domain))) {&lt;br /&gt;
 			reject&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# Make the user&amp;#039;s real identity available to anything that needs&lt;br /&gt;
 		# it in the outer server.&lt;br /&gt;
 		update {&lt;br /&gt;
 			&amp;amp;outer.session-state:Stripped-User-Name := &amp;amp;Stripped-User-Name&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# EAP for PEAPv0 (EAP-MSCHAPv2)&lt;br /&gt;
 		inner-eap {&lt;br /&gt;
 			ok = return&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# THIS IS SITE SPECIFIC&lt;br /&gt;
 		#&lt;br /&gt;
 		# The files module is *ONLY* used for testing.  It lets you define &lt;br /&gt;
 		# credentials in a flat file, IT WILL NOT SCALE.&lt;br /&gt;
 		#&lt;br /&gt;
 		# - If you use OpenLDAP with salted password hashes you should &lt;br /&gt;
  		#   call the &amp;#039;ldap&amp;#039; module here and use EAP-TTLS-PAP as your EAP method.&lt;br /&gt;
 		# - If you use OpenLDAP with cleartext passwords you should &lt;br /&gt;
 		#   call the &amp;#039;ldap&amp;#039; module here and use EAP-TTLS or PEAPv0.&lt;br /&gt;
 		# - If you use an SQL DB with salted password hashes you should call &lt;br /&gt;
 		#   the &amp;#039;sql&amp;#039; module here and use EAP-TTLS-PAP as your EAP method.&lt;br /&gt;
 		# - If you use an SQL DB with cleartext passwords you should call &lt;br /&gt;
 		#   the &amp;#039;sql&amp;#039; module here and use EAP-TTLS or PEAPv0.&lt;br /&gt;
 		# - If you use Novell you should call the &amp;#039;ldap&amp;#039; module here and &lt;br /&gt;
 		#   set ``edir = yes`` in ``mods-available/ldap`` and use EAP-TTLS or&lt;br /&gt;
 		#   PEAPv0.&lt;br /&gt;
 		# - If you use Active Directory, you don&amp;#039;t need anything here (remove &lt;br /&gt;
 		#   the call to files) but you&amp;#039;ll need to follow this &lt;br /&gt;
 		#   [guide](freeradius-active-directory-integration-howto) and use &lt;br /&gt;
 		#   EAP-TTLS-PAP or PEAPv0.&lt;br /&gt;
 		# - If you&amp;#039;re using EAP-TLS (i&amp;#039;m impressed!) remove the call to files.&lt;br /&gt;
 		#&lt;br /&gt;
 		# EAP-TTLS-PAP and PEAPv0 are equally secure/insecure depending on how the &lt;br /&gt;
 		# supplicant is configured. PEAPv0 has a slight edge in that you need to &lt;br /&gt;
 		# crack MSCHAPv2 to get the user&amp;#039;s password (but this is not hard).&lt;br /&gt;
 		files&lt;br /&gt;
 &lt;br /&gt;
 		pap&lt;br /&gt;
 		mschap&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	authenticate {&lt;br /&gt;
 		inner-eap&lt;br /&gt;
 		mschap&lt;br /&gt;
 		pap&lt;br /&gt;
 &lt;br /&gt;
 		# Comment pap above and uncomment the stanza below if you&amp;#039;re using &lt;br /&gt;
 		# Active Directory; this will allow it to work with EAP-TTLS/PAP.&lt;br /&gt;
 		#Auth-Type pap {&lt;br /&gt;
 		#	ntlm_auth&lt;br /&gt;
 		#}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Proxy ===&lt;br /&gt;
File: /etc/freeradius/3.0/proxy.conf &lt;br /&gt;
 ## proxy.conf &lt;br /&gt;
 #######################################################################&lt;br /&gt;
 ## proxy.conf &lt;br /&gt;
 #######################################################################&lt;br /&gt;
 proxy server {&lt;br /&gt;
 	default_fallback = no&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 home_server npflr1 {&lt;br /&gt;
 	type		= auth+acct&lt;br /&gt;
 	ipaddr		= 202.52.0.18&lt;br /&gt;
 	port		= 1812&lt;br /&gt;
 	secret		= longSecretPasswordHere&lt;br /&gt;
 	status_check	= status-server&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 home_server npflr2 {&lt;br /&gt;
 	type		= auth+acct&lt;br /&gt;
 	ipaddr		= 202.52.0.4&lt;br /&gt;
 	port		= 1812&lt;br /&gt;
 	secret		= longSecretPasswordHere&lt;br /&gt;
 	status_check	= status-server&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 home_server_pool EDUROAM {&lt;br /&gt;
 	type		= fail-over&lt;br /&gt;
 	home_server	= npflr1&lt;br /&gt;
 	home_server	= npflr2&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 realm NULL {&lt;br /&gt;
 	nostrip&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 realm &amp;quot;~^uni0\.edu\.np&amp;quot; {&lt;br /&gt;
 	nostrip&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 realm &amp;quot;~.+$&amp;quot; {&lt;br /&gt;
 	auth_pool	= EDUROAM&lt;br /&gt;
 	nostrip&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== mods - eap ===  &lt;br /&gt;
File: /etc/freeradius/3.0/mods-available/eap.conf&lt;br /&gt;
 ##  mods-available/eap.conf -- Configuration for EAP types (PEAP, TTLS, etc.)&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 eap {&lt;br /&gt;
 	# The initial EAP type requested.  Change this to peap if you&amp;#039;re&lt;br /&gt;
 	# using peap, or tls if you&amp;#039;re using EAP-TLS.&lt;br /&gt;
 	default_eap_type = ttls&lt;br /&gt;
 &lt;br /&gt;
 	# The maximum time an EAP-Session can continue for&lt;br /&gt;
 	timer_expire = 60&lt;br /&gt;
 &lt;br /&gt;
 	# The maximum number of ongoing EAP sessions&lt;br /&gt;
 	max_sessions = ${max_requests}&lt;br /&gt;
 &lt;br /&gt;
 	tls-config tls-common {&lt;br /&gt;
 		# The public certificate that your server will present&lt;br /&gt;
 		certificate_file = ${certdir}/server.pem&lt;br /&gt;
 &lt;br /&gt;
 		# The private key for the public certificate&lt;br /&gt;
 		private_key_file = ${certdir}/server.key&lt;br /&gt;
 &lt;br /&gt;
 		# The password to decrypt &amp;#039;private_key_file&amp;#039;&lt;br /&gt;
 		private_key_password = whatever&lt;br /&gt;
 &lt;br /&gt;
 		# The certificate of the authority that issued &amp;#039;certificate_file&amp;#039;&lt;br /&gt;
 		ca_file = ${cadir}/ca.pem&lt;br /&gt;
 &lt;br /&gt;
 		# If your AP drops packets towards the client, try reducing this.&lt;br /&gt;
 		fragment_size = 1024&lt;br /&gt;
 &lt;br /&gt;
 		# When issuing client certificates embed the OCSP URL in the &lt;br /&gt;
 		# certificate if you want to be able to revoke them later.&lt;br /&gt;
 		ocsp {&lt;br /&gt;
 			enable = yes&lt;br /&gt;
 			override_cert_url = no&lt;br /&gt;
 			use_nonce = yes&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	tls {&lt;br /&gt;
 		tls = tls-common&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	ttls {&lt;br /&gt;
 		tls = tls-common&lt;br /&gt;
 		default_eap_type = mschapv2&lt;br /&gt;
 		virtual_server = &amp;quot;eduroam-inner&amp;quot;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	peap {&lt;br /&gt;
 		tls = tls-common&lt;br /&gt;
 		default_eap_type = mschapv2&lt;br /&gt;
 		virtual_server = &amp;quot;eduroam-inner&amp;quot;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
You will need to setup the certificates or copy the snakeoil-certs to the proper path.&lt;br /&gt;
&lt;br /&gt;
=== Inner EAP ===&lt;br /&gt;
File: /etc/freeradius/3.0/mods-available/inner-eap.conf&lt;br /&gt;
 ##  mods-available/inner-eap.conf -- Configuration for EAP types (PEAP, TTLS, etc.)&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 eap inner-eap {&lt;br /&gt;
 	default_eap_type = mschapv2&lt;br /&gt;
 	timer_expire = 60&lt;br /&gt;
 	max_sessions = ${max_requests}&lt;br /&gt;
 &lt;br /&gt;
 	mschapv2 {&lt;br /&gt;
 		send_error = yes&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Logging ===&lt;br /&gt;
File: /etc/freeradius/3.0/mods-available/linelog&lt;br /&gt;
 ##  mods-available/linelog&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 linelog linelog_recv_request {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Recv-Request, %{pairs:request:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 linelog linelog_send_accept {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Send-Accept, %{pairs:request:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 linelog linelog_send_reject {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Send-Reject, %{pairs:request:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 linelog linelog_send_proxy_request {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Send-Proxy-Request, %{pairs:proxy-request:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 linelog linelog_recv_proxy_response {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Recv-Proxy-Response, %{pairs:proxy-reply:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Enable Configs ===&lt;br /&gt;
Then enable configurations as necessary. Remove unnecessary configs.&lt;br /&gt;
&lt;br /&gt;
 cd /etc/freeradius/3.0/mods-enabled/&lt;br /&gt;
 ln -s ../mods-available/inner-eap .&lt;br /&gt;
 ln -s ../mods-available/linelog .&lt;br /&gt;
 &lt;br /&gt;
 cd /etc/freeradius/3.0/sites-enabled/&lt;br /&gt;
 ln -s ../sites-available/eduroam&lt;br /&gt;
 ln -s ../sites-available/eduroam-inner&lt;br /&gt;
 rm default&lt;br /&gt;
 rm inner&lt;br /&gt;
&lt;br /&gt;
At each step, understand what you are doing and why. Please consult with the trainer if in doubt.&lt;br /&gt;
&lt;br /&gt;
== Complete ==&lt;br /&gt;
You should now have a working config. &lt;br /&gt;
&lt;br /&gt;
=== Tests ===&lt;br /&gt;
Perform Test following the guide [[Eduroam_Basics#Testing_tools]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Eduroam_Configuration&amp;diff=36</id>
		<title>Eduroam Configuration</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Eduroam_Configuration&amp;diff=36"/>
		<updated>2019-01-01T12:44:57Z</updated>

		<summary type="html">&lt;p&gt;Indiver: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;freeRADIUS basic configuration for eduroam&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Make sure you have a fresh Ubuntu 18.04 server ready. Update system before starting the config process.&lt;br /&gt;
  Note: This configuration guide is based upon https://wiki.freeradius.org/guide/eduroam&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Add a test user to the freeradius authorize. We create bob@uni&amp;lt;YOURID&amp;gt;.edu.np user with a password &amp;quot;hello&amp;quot; for the lab test. Be sure to remove this user before moving to production.&lt;br /&gt;
&lt;br /&gt;
=== Users ===&lt;br /&gt;
File: /etc/freeradius/3.0/users (/etc/freeradius/3.0/mods-config/files/authorize)&lt;br /&gt;
&lt;br /&gt;
  ## Users - user logins&lt;br /&gt;
  #######################################################################&lt;br /&gt;
  &amp;quot;bob@uni0.edu.np&amp;quot;	Cleartext-Password := &amp;quot;hello&amp;quot;&lt;br /&gt;
        Reply-Message := &amp;quot;Hello, %{User-Name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Reload freeradius&lt;br /&gt;
  # systemctl restart freeradius&lt;br /&gt;
&lt;br /&gt;
Testing&lt;br /&gt;
  # radtest bob@uni0.edu.np hello localhost 7 testing123&lt;br /&gt;
&lt;br /&gt;
Try several times, with incorrect password as well. Make sure you understand each of the parameters clearly. If you get the expected results, basic setup of freeradius is complete. Now you can move on to setting up 802.1X related parts.&lt;br /&gt;
&lt;br /&gt;
=== Clients (NAS) ===&lt;br /&gt;
File: /etc/freeradius/3.0/clients.conf&lt;br /&gt;
&lt;br /&gt;
 ## clients.conf -- client configuration directives&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 client localhost {&lt;br /&gt;
 	ipaddr = 127.0.0.1&lt;br /&gt;
 	secret = testing123&lt;br /&gt;
 	nas_type = other	# localhost isn&amp;#039;t usually a NAS...&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 client testing {&lt;br /&gt;
 	ipaddr = 45.64.162.158&lt;br /&gt;
 	secret = testing123&lt;br /&gt;
 	nas_type = other&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 client nepal-flr-1 {&lt;br /&gt;
 	ipaddr 		= 202.52.0.18&lt;br /&gt;
 	netmask		= 32&lt;br /&gt;
 	secret		= longSecretPasswordHere&lt;br /&gt;
 	require_message_authenticator	= no&lt;br /&gt;
 	shortname	= nepal-flr-1&lt;br /&gt;
 	nastype		= other&lt;br /&gt;
 	virtual_server	= eduroam&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Sites - eduroam ===&lt;br /&gt;
File: /etc/freeradius/3.0/sites-available/eduroam -- radius configuration&lt;br /&gt;
 ## sites-available/eduroam -- radius configuration&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # The domain users will add to their username to have their credentials &lt;br /&gt;
 # routed to your institution.  You will also need to register this&lt;br /&gt;
 # and your RADIUS server addresses with your NRO.&lt;br /&gt;
 operator_name = &amp;quot;uni0.edu.np&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # The VLAN to assign eduroam visitors&lt;br /&gt;
 eduroam_guest_vlan = &amp;quot;1&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # The VLAN to assign your students/staff&lt;br /&gt;
 eduroam_local_vlan = &amp;quot;1&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 server eduroam {&lt;br /&gt;
 	listen {&lt;br /&gt;
 		type = auth&lt;br /&gt;
 		ipaddr = *&lt;br /&gt;
 		port = 1812&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	authorize {&lt;br /&gt;
 		# Log requests before we change them&lt;br /&gt;
 		linelog_recv_request&lt;br /&gt;
 &lt;br /&gt;
 		# split_username_nai is a policy in the default distribution to &lt;br /&gt;
 		# split a username into username and domain.  We reject user-name &lt;br /&gt;
 		# strings without domains, as they&amp;#039;re not routable.&lt;br /&gt;
 		split_username_nai&lt;br /&gt;
 		if (noop || !&amp;amp;Stripped-User-Domain) {&lt;br /&gt;
 			reject&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# Send the request to the NRO for your region.&lt;br /&gt;
 		# The details of the FLRs (Federation Level RADIUS servers)&lt;br /&gt;
 		# are in proxy.conf.&lt;br /&gt;
 		# You can make this condition as complex as you like, to &lt;br /&gt;
 		# include additional subdomains just concatenate the conditions&lt;br /&gt;
 		# with &amp;amp;&amp;amp;.&lt;br /&gt;
 		if (&amp;amp;Stripped-User-Domain != &amp;quot;${operator_name}&amp;quot;) {&lt;br /&gt;
 			update {&lt;br /&gt;
 				control:Load-Balance-Key := &amp;amp;Calling-Station-ID&lt;br /&gt;
 				control:Proxy-To-Realm := &amp;#039;eduroam_flr&amp;#039;&lt;br /&gt;
 				&lt;br /&gt;
 				# Operator name (RFC 5580) identifies the network the &lt;br /&gt;
 				# request originated from. It&amp;#039;s not absolutely necessary&lt;br /&gt;
 				# but it helps with debugging.&lt;br /&gt;
 				request:Operator-Name := &amp;quot;1${operator_name}&amp;quot;&lt;br /&gt;
 			}&lt;br /&gt;
 			return&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# If the EAP module returns &amp;#039;ok&amp;#039; or &amp;#039;updated&amp;#039;, it means it has handled&lt;br /&gt;
 		# the request and we don&amp;#039;t need to call any other modules in this&lt;br /&gt;
 		# section.&lt;br /&gt;
 		eap {&lt;br /&gt;
 			ok = return&lt;br /&gt;
 			updated = return&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	pre-proxy {&lt;br /&gt;
 		attr_filter.pre-proxy&lt;br /&gt;
 		linelog_send_proxy_request&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	post-proxy {&lt;br /&gt;
 		attr_filter.post-proxy&lt;br /&gt;
 		linelog_recv_proxy_response&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	authenticate {&lt;br /&gt;
 		eap&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	post-auth {&lt;br /&gt;
 		# To implement eduroam you must:&lt;br /&gt;
 		# - Use wireless access points or a controller which supports &lt;br /&gt;
                 #   dynamic VLAN assignments.&lt;br /&gt;
 		# - Have that feature enabled.&lt;br /&gt;
 		# - Have the guest_vlan/local_vlan available to the controller,&lt;br /&gt;
                 #   or to all your access points.&lt;br /&gt;
 		# eduroam user traffic *MUST* be segregated, this is *NOT* optional.&lt;br /&gt;
 		update reply {&lt;br /&gt;
 			Tunnel-Type := VLAN&lt;br /&gt;
 			Tunnel-Medium-Type := IEEE-802&lt;br /&gt;
 		}&lt;br /&gt;
 		if (&amp;amp;control:Proxy-To-Realm) {&lt;br /&gt;
 			update reply {&lt;br /&gt;
 				Tunnel-Private-Group-ID := ${eduroam_guest_vlan}&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 		else {&lt;br /&gt;
 			update reply {&lt;br /&gt;
 				Tunnel-Private-Group-ID := ${eduroam_local_vlan}&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# We&amp;#039;re sending a response to one of OUR network devices for one of &lt;br /&gt;
 		# OUR users so provide it with the real user-identity.&lt;br /&gt;
 		if (&amp;amp;session-state:Stripped-User-Name) {&lt;br /&gt;
 			update reply {&lt;br /&gt;
 				User-Name := &amp;quot;%{session-state:Stripped-User-Name}@%{Stripped-User-Domain}&amp;quot;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		linelog_send_accept&lt;br /&gt;
 &lt;br /&gt;
 		Post-Auth-Type REJECT {&lt;br /&gt;
 			attr_filter.access_reject&lt;br /&gt;
 			linelog_send_reject&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Sites - eduroam-inner ===&lt;br /&gt;
File: sites-available/eduroam-inner&lt;br /&gt;
 ## sites-available/eduroam-inner -- radius configuration&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 server eduroam-inner {&lt;br /&gt;
 	listen {&lt;br /&gt;
 		type = auth&lt;br /&gt;
 		ipaddr = *&lt;br /&gt;
 		port = 18120 # Used for testing only.  Requests proxied internally.&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	authorize {&lt;br /&gt;
 		# The outer username is considered garabage for autz purposes, but &lt;br /&gt;
 		# the domain portion of the outer and inner identities must match.&lt;br /&gt;
 		split_username_nai&lt;br /&gt;
 		if (noop || (&amp;amp;Stripped-User-Domain &amp;amp;&amp;amp; \&lt;br /&gt;
 		    (&amp;amp;outer.Stripped-User-Domain != &amp;amp;Stripped-User-Domain))) {&lt;br /&gt;
 			reject&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# Make the user&amp;#039;s real identity available to anything that needs&lt;br /&gt;
 		# it in the outer server.&lt;br /&gt;
 		update {&lt;br /&gt;
 			&amp;amp;outer.session-state:Stripped-User-Name := &amp;amp;Stripped-User-Name&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# EAP for PEAPv0 (EAP-MSCHAPv2)&lt;br /&gt;
 		inner-eap {&lt;br /&gt;
 			ok = return&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# THIS IS SITE SPECIFIC&lt;br /&gt;
 		#&lt;br /&gt;
 		# The files module is *ONLY* used for testing.  It lets you define &lt;br /&gt;
 		# credentials in a flat file, IT WILL NOT SCALE.&lt;br /&gt;
 		#&lt;br /&gt;
 		# - If you use OpenLDAP with salted password hashes you should &lt;br /&gt;
  		#   call the &amp;#039;ldap&amp;#039; module here and use EAP-TTLS-PAP as your EAP method.&lt;br /&gt;
 		# - If you use OpenLDAP with cleartext passwords you should &lt;br /&gt;
 		#   call the &amp;#039;ldap&amp;#039; module here and use EAP-TTLS or PEAPv0.&lt;br /&gt;
 		# - If you use an SQL DB with salted password hashes you should call &lt;br /&gt;
 		#   the &amp;#039;sql&amp;#039; module here and use EAP-TTLS-PAP as your EAP method.&lt;br /&gt;
 		# - If you use an SQL DB with cleartext passwords you should call &lt;br /&gt;
 		#   the &amp;#039;sql&amp;#039; module here and use EAP-TTLS or PEAPv0.&lt;br /&gt;
 		# - If you use Novell you should call the &amp;#039;ldap&amp;#039; module here and &lt;br /&gt;
 		#   set ``edir = yes`` in ``mods-available/ldap`` and use EAP-TTLS or&lt;br /&gt;
 		#   PEAPv0.&lt;br /&gt;
 		# - If you use Active Directory, you don&amp;#039;t need anything here (remove &lt;br /&gt;
 		#   the call to files) but you&amp;#039;ll need to follow this &lt;br /&gt;
 		#   [guide](freeradius-active-directory-integration-howto) and use &lt;br /&gt;
 		#   EAP-TTLS-PAP or PEAPv0.&lt;br /&gt;
 		# - If you&amp;#039;re using EAP-TLS (i&amp;#039;m impressed!) remove the call to files.&lt;br /&gt;
 		#&lt;br /&gt;
 		# EAP-TTLS-PAP and PEAPv0 are equally secure/insecure depending on how the &lt;br /&gt;
 		# supplicant is configured. PEAPv0 has a slight edge in that you need to &lt;br /&gt;
 		# crack MSCHAPv2 to get the user&amp;#039;s password (but this is not hard).&lt;br /&gt;
 		files&lt;br /&gt;
 &lt;br /&gt;
 		pap&lt;br /&gt;
 		mschap&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	authenticate {&lt;br /&gt;
 		inner-eap&lt;br /&gt;
 		mschap&lt;br /&gt;
 		pap&lt;br /&gt;
 &lt;br /&gt;
 		# Comment pap above and uncomment the stanza below if you&amp;#039;re using &lt;br /&gt;
 		# Active Directory; this will allow it to work with EAP-TTLS/PAP.&lt;br /&gt;
 		#Auth-Type pap {&lt;br /&gt;
 		#	ntlm_auth&lt;br /&gt;
 		#}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Proxy ===&lt;br /&gt;
File: /etc/freeradius/3.0/proxy.conf &lt;br /&gt;
 ## proxy.conf &lt;br /&gt;
 #######################################################################&lt;br /&gt;
 ## proxy.conf &lt;br /&gt;
 #######################################################################&lt;br /&gt;
 proxy server {&lt;br /&gt;
 	default_fallback = no&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 home_server npflr1 {&lt;br /&gt;
 	type		= auth+acct&lt;br /&gt;
 	ipaddr		= 202.52.0.18&lt;br /&gt;
 	port		= 1812&lt;br /&gt;
 	secret		= longSecretPasswordHere&lt;br /&gt;
 	status_check	= status-server&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 home_server npflr2 {&lt;br /&gt;
 	type		= auth+acct&lt;br /&gt;
 	ipaddr		= 202.52.0.4&lt;br /&gt;
 	port		= 1812&lt;br /&gt;
 	secret		= longSecretPasswordHere&lt;br /&gt;
 	status_check	= status-server&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 home_server_pool EDUROAM {&lt;br /&gt;
 	type		= fail-over&lt;br /&gt;
 	home_server	= npflr1&lt;br /&gt;
 	home_server	= npflr2&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 realm NULL {&lt;br /&gt;
 	nostrip&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 realm &amp;quot;~^uni0\.edu\.np&amp;quot; {&lt;br /&gt;
 	nostrip&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 realm &amp;quot;~.+$&amp;quot; {&lt;br /&gt;
 	auth_pool	= EDUROAM&lt;br /&gt;
 	nostrip&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== mods - eap ===  &lt;br /&gt;
File: /etc/freeradius/3.0/mods-available/eap.conf&lt;br /&gt;
 ##  mods-available/eap.conf -- Configuration for EAP types (PEAP, TTLS, etc.)&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 eap {&lt;br /&gt;
 	# The initial EAP type requested.  Change this to peap if you&amp;#039;re&lt;br /&gt;
 	# using peap, or tls if you&amp;#039;re using EAP-TLS.&lt;br /&gt;
 	default_eap_type = ttls&lt;br /&gt;
 &lt;br /&gt;
 	# The maximum time an EAP-Session can continue for&lt;br /&gt;
 	timer_expire = 60&lt;br /&gt;
 &lt;br /&gt;
 	# The maximum number of ongoing EAP sessions&lt;br /&gt;
 	max_sessions = ${max_requests}&lt;br /&gt;
 &lt;br /&gt;
 	tls-config tls-common {&lt;br /&gt;
 		# The public certificate that your server will present&lt;br /&gt;
 		certificate_file = ${certdir}/server.pem&lt;br /&gt;
 &lt;br /&gt;
 		# The private key for the public certificate&lt;br /&gt;
 		private_key_file = ${certdir}/server.key&lt;br /&gt;
 &lt;br /&gt;
 		# The password to decrypt &amp;#039;private_key_file&amp;#039;&lt;br /&gt;
 		private_key_password = whatever&lt;br /&gt;
 &lt;br /&gt;
 		# The certificate of the authority that issued &amp;#039;certificate_file&amp;#039;&lt;br /&gt;
 		ca_file = ${cadir}/ca.pem&lt;br /&gt;
 &lt;br /&gt;
 		# If your AP drops packets towards the client, try reducing this.&lt;br /&gt;
 		fragment_size = 1024&lt;br /&gt;
 &lt;br /&gt;
 		# When issuing client certificates embed the OCSP URL in the &lt;br /&gt;
 		# certificate if you want to be able to revoke them later.&lt;br /&gt;
 		ocsp {&lt;br /&gt;
 			enable = yes&lt;br /&gt;
 			override_cert_url = no&lt;br /&gt;
 			use_nonce = yes&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	tls {&lt;br /&gt;
 		tls = tls-common&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	ttls {&lt;br /&gt;
 		tls = tls-common&lt;br /&gt;
 		default_eap_type = mschapv2&lt;br /&gt;
 		virtual_server = &amp;quot;eduroam-inner&amp;quot;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	peap {&lt;br /&gt;
 		tls = tls-common&lt;br /&gt;
 		default_eap_type = mschapv2&lt;br /&gt;
 		virtual_server = &amp;quot;eduroam-inner&amp;quot;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Inner EAP ===&lt;br /&gt;
File: /etc/freeradius/3.0/mods-available/inner-eap.conf&lt;br /&gt;
 ##  mods-available/inner-eap.conf -- Configuration for EAP types (PEAP, TTLS, etc.)&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 eap inner-eap {&lt;br /&gt;
 	default_eap_type = mschapv2&lt;br /&gt;
 	timer_expire = 60&lt;br /&gt;
 	max_sessions = ${max_requests}&lt;br /&gt;
 &lt;br /&gt;
 	mschapv2 {&lt;br /&gt;
 		send_error = yes&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Logging ===&lt;br /&gt;
File: /etc/freeradius/3.0/mods-available/linelog&lt;br /&gt;
 ##  mods-available/linelog&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 linelog linelog_recv_request {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Recv-Request, %{pairs:request:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 linelog linelog_send_accept {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Send-Accept, %{pairs:request:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 linelog linelog_send_reject {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Send-Reject, %{pairs:request:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 linelog linelog_send_proxy_request {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Send-Proxy-Request, %{pairs:proxy-request:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 linelog linelog_recv_proxy_response {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Recv-Proxy-Response, %{pairs:proxy-reply:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Enable Configs ===&lt;br /&gt;
Then enable configurations as necessary. Remove unnecessary configs.&lt;br /&gt;
&lt;br /&gt;
 cd /etc/freeradius/3.0/mods-enabled/&lt;br /&gt;
 ln -s ../mods-available/inner-eap .&lt;br /&gt;
 ln -s ../mods-available/linelog .&lt;br /&gt;
 &lt;br /&gt;
 cd /etc/freeradius/3.0/sites-enabled/&lt;br /&gt;
 ln -s ../sites-available/eduroam&lt;br /&gt;
 ln -s ../sites-available/eduroam-inner&lt;br /&gt;
 rm default&lt;br /&gt;
 rm inner&lt;br /&gt;
&lt;br /&gt;
At each step, understand what you are doing and why. Please consult with the trainer if in doubt.&lt;br /&gt;
&lt;br /&gt;
== Complete ==&lt;br /&gt;
You should now have a working config. &lt;br /&gt;
&lt;br /&gt;
=== Tests ===&lt;br /&gt;
Perform Test following the guide [[Eduroam_Basics#Testing_tools]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
	<entry>
		<id>https://training.nren.net.np/index.php?title=Eduroam_Configuration&amp;diff=35</id>
		<title>Eduroam Configuration</title>
		<link rel="alternate" type="text/html" href="https://training.nren.net.np/index.php?title=Eduroam_Configuration&amp;diff=35"/>
		<updated>2019-01-01T12:44:08Z</updated>

		<summary type="html">&lt;p&gt;Indiver: fixed typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;freeRADIUS basic configuration for eduroam&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Make sure you have a fresh Ubuntu 18.04 server ready. Update system before starting the config process.&lt;br /&gt;
  Note: This configuration guide is based upon https://wiki.freeradius.org/guide/eduroam&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Add a test user to the freeradius authorize. We create bob@uni&amp;lt;YOURID&amp;gt;.edu.np user with a password &amp;quot;hello&amp;quot; for the lab test. Be sure to remove this user before moving to production.&lt;br /&gt;
&lt;br /&gt;
=== Users ===&lt;br /&gt;
File: /etc/freeradius/3.0/users (/etc/freeradius/3.0/mods-config/files/authorize)&lt;br /&gt;
&lt;br /&gt;
  ## Users - user logins&lt;br /&gt;
  #######################################################################&lt;br /&gt;
  &amp;quot;bob@uni0.edu.np&amp;quot;	Cleartext-Password := &amp;quot;hello&amp;quot;&lt;br /&gt;
        Reply-Message := &amp;quot;Hello, %{User-Name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Reload freeradius&lt;br /&gt;
  # systemctl restart freeradius&lt;br /&gt;
&lt;br /&gt;
Testing&lt;br /&gt;
  # radtest bob@uni0.edu.np hello localhost 7 testing123&lt;br /&gt;
&lt;br /&gt;
Try several times, with incorrect password as well. Make sure you understand each of the parameters clearly. If you get the expected results, basic setup of freeradius is complete. Now you can move on to setting up 802.1X related parts.&lt;br /&gt;
&lt;br /&gt;
=== Clients (NAS) ===&lt;br /&gt;
File: /etc/freeradius/3.0/clients.conf&lt;br /&gt;
&lt;br /&gt;
 ## clients.conf -- client configuration directives&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 client localhost {&lt;br /&gt;
 	ipaddr = 127.0.0.1&lt;br /&gt;
 	secret = testing123&lt;br /&gt;
 	nas_type = other	# localhost isn&amp;#039;t usually a NAS...&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 client testing {&lt;br /&gt;
 	ipaddr = 45.64.162.158&lt;br /&gt;
 	secret = testing123&lt;br /&gt;
 	nas_type = other&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 client nepal-flr-1 {&lt;br /&gt;
 	ipaddr 		= 202.52.0.18&lt;br /&gt;
 	netmask		= 32&lt;br /&gt;
 	secret		= longSecretPasswordHere&lt;br /&gt;
 	require_message_authenticator	= no&lt;br /&gt;
 	shortname	= nepal-flr-1&lt;br /&gt;
 	nastype		= other&lt;br /&gt;
 	virtual_server	= eduroam&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Sites - eduroam ===&lt;br /&gt;
File: /etc/freeradius/3.0/sites-available/eduroam -- radius configuration&lt;br /&gt;
 ## sites-available/eduroam -- radius configuration&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # The domain users will add to their username to have their credentials &lt;br /&gt;
 # routed to your institution.  You will also need to register this&lt;br /&gt;
 # and your RADIUS server addresses with your NRO.&lt;br /&gt;
 operator_name = &amp;quot;uni0.edu.np&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # The VLAN to assign eduroam visitors&lt;br /&gt;
 eduroam_guest_vlan = &amp;quot;1&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # The VLAN to assign your students/staff&lt;br /&gt;
 eduroam_local_vlan = &amp;quot;1&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 server eduroam {&lt;br /&gt;
 	listen {&lt;br /&gt;
 		type = auth&lt;br /&gt;
 		ipaddr = *&lt;br /&gt;
 		port = 1812&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	authorize {&lt;br /&gt;
 		# Log requests before we change them&lt;br /&gt;
 		linelog_recv_request&lt;br /&gt;
 &lt;br /&gt;
 		# split_username_nai is a policy in the default distribution to &lt;br /&gt;
 		# split a username into username and domain.  We reject user-name &lt;br /&gt;
 		# strings without domains, as they&amp;#039;re not routable.&lt;br /&gt;
 		split_username_nai&lt;br /&gt;
 		if (noop || !&amp;amp;Stripped-User-Domain) {&lt;br /&gt;
 			reject&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# Send the request to the NRO for your region.&lt;br /&gt;
 		# The details of the FLRs (Federation Level RADIUS servers)&lt;br /&gt;
 		# are in proxy.conf.&lt;br /&gt;
 		# You can make this condition as complex as you like, to &lt;br /&gt;
 		# include additional subdomains just concatenate the conditions&lt;br /&gt;
 		# with &amp;amp;&amp;amp;.&lt;br /&gt;
 		if (&amp;amp;Stripped-User-Domain != &amp;quot;${operator_name}&amp;quot;) {&lt;br /&gt;
 			update {&lt;br /&gt;
 				control:Load-Balance-Key := &amp;amp;Calling-Station-ID&lt;br /&gt;
 				control:Proxy-To-Realm := &amp;#039;eduroam_flr&amp;#039;&lt;br /&gt;
 				&lt;br /&gt;
 				# Operator name (RFC 5580) identifies the network the &lt;br /&gt;
 				# request originated from. It&amp;#039;s not absolutely necessary&lt;br /&gt;
 				# but it helps with debugging.&lt;br /&gt;
 				request:Operator-Name := &amp;quot;1${operator_name}&amp;quot;&lt;br /&gt;
 			}&lt;br /&gt;
 			return&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# If the EAP module returns &amp;#039;ok&amp;#039; or &amp;#039;updated&amp;#039;, it means it has handled&lt;br /&gt;
 		# the request and we don&amp;#039;t need to call any other modules in this&lt;br /&gt;
 		# section.&lt;br /&gt;
 		eap {&lt;br /&gt;
 			ok = return&lt;br /&gt;
 			updated = return&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	pre-proxy {&lt;br /&gt;
 		attr_filter.pre-proxy&lt;br /&gt;
 		linelog_send_proxy_request&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	post-proxy {&lt;br /&gt;
 		attr_filter.post-proxy&lt;br /&gt;
 		linelog_recv_proxy_response&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	authenticate {&lt;br /&gt;
 		eap&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	post-auth {&lt;br /&gt;
 		# To implement eduroam you must:&lt;br /&gt;
 		# - Use wireless access points or a controller which supports &lt;br /&gt;
                 #   dynamic VLAN assignments.&lt;br /&gt;
 		# - Have that feature enabled.&lt;br /&gt;
 		# - Have the guest_vlan/local_vlan available to the controller,&lt;br /&gt;
                 #   or to all your access points.&lt;br /&gt;
 		# eduroam user traffic *MUST* be segregated, this is *NOT* optional.&lt;br /&gt;
 		update reply {&lt;br /&gt;
 			Tunnel-Type := VLAN&lt;br /&gt;
 			Tunnel-Medium-Type := IEEE-802&lt;br /&gt;
 		}&lt;br /&gt;
 		if (&amp;amp;control:Proxy-To-Realm) {&lt;br /&gt;
 			update reply {&lt;br /&gt;
 				Tunnel-Private-Group-ID := ${eduroam_guest_vlan}&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 		else {&lt;br /&gt;
 			update reply {&lt;br /&gt;
 				Tunnel-Private-Group-ID := ${eduroam_local_vlan}&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# We&amp;#039;re sending a response to one of OUR network devices for one of &lt;br /&gt;
 		# OUR users so provide it with the real user-identity.&lt;br /&gt;
 		if (&amp;amp;session-state:Stripped-User-Name) {&lt;br /&gt;
 			update reply {&lt;br /&gt;
 				User-Name := &amp;quot;%{session-state:Stripped-User-Name}@%{Stripped-User-Domain}&amp;quot;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		linelog_send_accept&lt;br /&gt;
 &lt;br /&gt;
 		Post-Auth-Type REJECT {&lt;br /&gt;
 			attr_filter.access_reject&lt;br /&gt;
 			linelog_send_reject&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Sites - eduroam-inner ===&lt;br /&gt;
File: sites-available/eduroam-inner&lt;br /&gt;
 ## sites-available/eduroam-inner -- radius configuration&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 server eduroam-inner {&lt;br /&gt;
 	listen {&lt;br /&gt;
 		type = auth&lt;br /&gt;
 		ipaddr = *&lt;br /&gt;
 		port = 18120 # Used for testing only.  Requests proxied internally.&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	authorize {&lt;br /&gt;
 		# The outer username is considered garabage for autz purposes, but &lt;br /&gt;
 		# the domain portion of the outer and inner identities must match.&lt;br /&gt;
 		split_username_nai&lt;br /&gt;
 		if (noop || (&amp;amp;Stripped-User-Domain &amp;amp;&amp;amp; \&lt;br /&gt;
 		    (&amp;amp;outer.Stripped-User-Domain != &amp;amp;Stripped-User-Domain))) {&lt;br /&gt;
 			reject&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# Make the user&amp;#039;s real identity available to anything that needs&lt;br /&gt;
 		# it in the outer server.&lt;br /&gt;
 		update {&lt;br /&gt;
 			&amp;amp;outer.session-state:Stripped-User-Name := &amp;amp;Stripped-User-Name&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# EAP for PEAPv0 (EAP-MSCHAPv2)&lt;br /&gt;
 		inner-eap {&lt;br /&gt;
 			ok = return&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		# THIS IS SITE SPECIFIC&lt;br /&gt;
 		#&lt;br /&gt;
 		# The files module is *ONLY* used for testing.  It lets you define &lt;br /&gt;
 		# credentials in a flat file, IT WILL NOT SCALE.&lt;br /&gt;
 		#&lt;br /&gt;
 		# - If you use OpenLDAP with salted password hashes you should &lt;br /&gt;
  		#   call the &amp;#039;ldap&amp;#039; module here and use EAP-TTLS-PAP as your EAP method.&lt;br /&gt;
 		# - If you use OpenLDAP with cleartext passwords you should &lt;br /&gt;
 		#   call the &amp;#039;ldap&amp;#039; module here and use EAP-TTLS or PEAPv0.&lt;br /&gt;
 		# - If you use an SQL DB with salted password hashes you should call &lt;br /&gt;
 		#   the &amp;#039;sql&amp;#039; module here and use EAP-TTLS-PAP as your EAP method.&lt;br /&gt;
 		# - If you use an SQL DB with cleartext passwords you should call &lt;br /&gt;
 		#   the &amp;#039;sql&amp;#039; module here and use EAP-TTLS or PEAPv0.&lt;br /&gt;
 		# - If you use Novell you should call the &amp;#039;ldap&amp;#039; module here and &lt;br /&gt;
 		#   set ``edir = yes`` in ``mods-available/ldap`` and use EAP-TTLS or&lt;br /&gt;
 		#   PEAPv0.&lt;br /&gt;
 		# - If you use Active Directory, you don&amp;#039;t need anything here (remove &lt;br /&gt;
 		#   the call to files) but you&amp;#039;ll need to follow this &lt;br /&gt;
 		#   [guide](freeradius-active-directory-integration-howto) and use &lt;br /&gt;
 		#   EAP-TTLS-PAP or PEAPv0.&lt;br /&gt;
 		# - If you&amp;#039;re using EAP-TLS (i&amp;#039;m impressed!) remove the call to files.&lt;br /&gt;
 		#&lt;br /&gt;
 		# EAP-TTLS-PAP and PEAPv0 are equally secure/insecure depending on how the &lt;br /&gt;
 		# supplicant is configured. PEAPv0 has a slight edge in that you need to &lt;br /&gt;
 		# crack MSCHAPv2 to get the user&amp;#039;s password (but this is not hard).&lt;br /&gt;
 		files&lt;br /&gt;
 &lt;br /&gt;
 		pap&lt;br /&gt;
 		mschap&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	authenticate {&lt;br /&gt;
 		inner-eap&lt;br /&gt;
 		mschap&lt;br /&gt;
 		pap&lt;br /&gt;
 &lt;br /&gt;
 		# Comment pap above and uncomment the stanza below if you&amp;#039;re using &lt;br /&gt;
 		# Active Directory; this will allow it to work with EAP-TTLS/PAP.&lt;br /&gt;
 		#Auth-Type pap {&lt;br /&gt;
 		#	ntlm_auth&lt;br /&gt;
 		#}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Proxy ===&lt;br /&gt;
File: /etc/freeradius/3.0/proxy.conf &lt;br /&gt;
 ## proxy.conf &lt;br /&gt;
 #######################################################################&lt;br /&gt;
 ## proxy.conf &lt;br /&gt;
 #######################################################################&lt;br /&gt;
 proxy server {&lt;br /&gt;
 	default_fallback = no&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 home_server npflr1 {&lt;br /&gt;
 	type		= auth+acct&lt;br /&gt;
 	ipaddr		= 202.52.0.18&lt;br /&gt;
 	port		= 1812&lt;br /&gt;
 	secret		= longSecretPasswordHere&lt;br /&gt;
 	status_check	= status-server&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 home_server npflr2 {&lt;br /&gt;
 	type		= auth+acct&lt;br /&gt;
 	ipaddr		= 202.52.0.4&lt;br /&gt;
 	port		= 1812&lt;br /&gt;
 	secret		= longSecretPasswordHere&lt;br /&gt;
 	status_check	= status-server&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 home_server_pool EDUROAM {&lt;br /&gt;
 	type		= fail-over&lt;br /&gt;
 	home_server	= npflr1&lt;br /&gt;
 	home_server	= npflr2&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 realm NULL {&lt;br /&gt;
 	nostrip&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 realm &amp;quot;~^uni0\.edu\.np&amp;quot; {&lt;br /&gt;
 	nostrip&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 realm &amp;quot;~.+$&amp;quot; {&lt;br /&gt;
 	auth_pool	= EDUROAM&lt;br /&gt;
 	nostrip&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== mods - eap ===  &lt;br /&gt;
File: /etc/freeradius/3.0/mods-available/eap.conf&lt;br /&gt;
 ##  mods-available/eap.conf -- Configuration for EAP types (PEAP, TTLS, etc.)&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 eap {&lt;br /&gt;
 	# The initial EAP type requested.  Change this to peap if you&amp;#039;re&lt;br /&gt;
 	# using peap, or tls if you&amp;#039;re using EAP-TLS.&lt;br /&gt;
 	default_eap_type = ttls&lt;br /&gt;
 &lt;br /&gt;
 	# The maximum time an EAP-Session can continue for&lt;br /&gt;
 	timer_expire = 60&lt;br /&gt;
 &lt;br /&gt;
 	# The maximum number of ongoing EAP sessions&lt;br /&gt;
 	max_sessions = ${max_requests}&lt;br /&gt;
 &lt;br /&gt;
 	tls-config tls-common {&lt;br /&gt;
 		# The public certificate that your server will present&lt;br /&gt;
 		certificate_file = ${certdir}/server.pem&lt;br /&gt;
 &lt;br /&gt;
 		# The private key for the public certificate&lt;br /&gt;
 		private_key_file = ${certdir}/server.key&lt;br /&gt;
 &lt;br /&gt;
 		# The password to decrypt &amp;#039;private_key_file&amp;#039;&lt;br /&gt;
 		private_key_password = whatever&lt;br /&gt;
 &lt;br /&gt;
 		# The certificate of the authority that issued &amp;#039;certificate_file&amp;#039;&lt;br /&gt;
 		ca_file = ${cadir}/ca.pem&lt;br /&gt;
 &lt;br /&gt;
 		# If your AP drops packets towards the client, try reducing this.&lt;br /&gt;
 		fragment_size = 1024&lt;br /&gt;
 &lt;br /&gt;
 		# When issuing client certificates embed the OCSP URL in the &lt;br /&gt;
 		# certificate if you want to be able to revoke them later.&lt;br /&gt;
 		ocsp {&lt;br /&gt;
 			enable = yes&lt;br /&gt;
 			override_cert_url = no&lt;br /&gt;
 			use_nonce = yes&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	tls {&lt;br /&gt;
 		tls = tls-common&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	ttls {&lt;br /&gt;
 		tls = tls-common&lt;br /&gt;
 		default_eap_type = mschapv2&lt;br /&gt;
 		virtual_server = &amp;quot;eduroam-inner&amp;quot;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	peap {&lt;br /&gt;
 		tls = tls-common&lt;br /&gt;
 		default_eap_type = mschapv2&lt;br /&gt;
 		virtual_server = &amp;quot;eduroam-inner&amp;quot;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Inner EAP ===&lt;br /&gt;
File: /etc/freeradius/3.0/mods-available/inner-eap.conf&lt;br /&gt;
 ##  mods-available/inner-eap.conf -- Configuration for EAP types (PEAP, TTLS, etc.)&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 eap inner-eap {&lt;br /&gt;
 	default_eap_type = mschapv2&lt;br /&gt;
 	timer_expire = 60&lt;br /&gt;
 	max_sessions = ${max_requests}&lt;br /&gt;
 &lt;br /&gt;
 	mschapv2 {&lt;br /&gt;
 		send_error = yes&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Logging ===&lt;br /&gt;
File: /etc/freeradius/3.0/mods-available/linelog&lt;br /&gt;
 ##  mods-available/linelog&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 linelog linelog_recv_request {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Recv-Request, %{pairs:request:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 linelog linelog_send_accept {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Send-Accept, %{pairs:request:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 linelog linelog_send_reject {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Send-Reject, %{pairs:request:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 linelog linelog_send_proxy_request {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Send-Proxy-Request, %{pairs:proxy-request:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 linelog linelog_recv_proxy_response {&lt;br /&gt;
 	filename = ${logdir}/linelog&lt;br /&gt;
 	syslog_facility = local0&lt;br /&gt;
 	syslog_severity = debug&lt;br /&gt;
 	format = &amp;quot;action = Recv-Proxy-Response, %{pairs:proxy-reply:}&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Enable Configs ===&lt;br /&gt;
Then enable configurations as necessary. Remove unnecessary configs.&lt;br /&gt;
&lt;br /&gt;
 cd /etc/freeradius/3.0/mods-enabled/&lt;br /&gt;
 ln -s ../mods-available/inner-eap .&lt;br /&gt;
 ln -s ../mods-available/linelog .&lt;br /&gt;
 &lt;br /&gt;
 cd /etc/freeradius/3.0/sites-enabled/&lt;br /&gt;
 ln -s ../sites-available/eduroam&lt;br /&gt;
 ln -s ../sites-available/eduroam-inner&lt;br /&gt;
 rm default&lt;br /&gt;
 rm inner&lt;br /&gt;
&lt;br /&gt;
At each step, understand what you are doing and why. Please consult with the trainer if in doubt.&lt;br /&gt;
&lt;br /&gt;
== Complete ==&lt;br /&gt;
You should now have a working config. Perform Test as per [[Eduroam_Basics#Testing_tools]]&lt;/div&gt;</summary>
		<author><name>Indiver</name></author>
	</entry>
</feed>