Linux/Networking Services: Difference between revisions
From charlesreid1
| Line 6: | Line 6: | ||
* dns server | * dns server | ||
* ntp server | * ntp server | ||
Revision as of 23:10, 14 March 2016
Overview
This page will cover a couple of key aspects of networking services on Linux:
- ip address schema
- dhcp server
- dns server
- ntp server
DNS Server
DNS stands for domain name system - it turns IP addresses into human-readable host names.
DNS is useful for the wider internet, obviously, but is also useful on a small network. DNS is useful for more than a handful of networked computers.
Installing/Starting
On Debian, use bind9 (BIND = Berkeley Internet Name Domain). This is the most popular name server around. Once you install it, Debian should boot it up for you and configure the daemon.
First, install it:
$ apt-get install bind9
Check that it is running:
$ systemctl status bind9
● bind9.service - BIND Domain Name Server
Loaded: loaded (/lib/systemd/system/bind9.service; disabled)
Drop-In: /run/systemd/generator/bind9.service.d
└─50-insserv.conf-$named.conf
Active: active (running) since Mon 2016-03-14 15:00:06 PDT; 18s ago
Docs: man:named(8)
Main PID: 16356 (named)
CGroup: /system.slice/bind9.service
└─16356 /usr/sbin/named -f -u bind
Mar 14 15:00:06 basilisk named[16356]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA
Mar 14 15:00:06 basilisk named[16356]: command channel listening on 127.0.0.1#953
Mar 14 15:00:06 basilisk named[16356]: couldn't add command channel ::1#953: address not available
Mar 14 15:00:06 basilisk named[16356]: managed-keys-zone: loaded serial 0
Mar 14 15:00:06 basilisk named[16356]: zone 0.in-addr.arpa/IN: loaded serial 1
Mar 14 15:00:06 basilisk named[16356]: zone 127.in-addr.arpa/IN: loaded serial 1
Mar 14 15:00:06 basilisk named[16356]: zone 255.in-addr.arpa/IN: loaded serial 1
Mar 14 15:00:06 basilisk named[16356]: zone localhost/IN: loaded serial 2
Mar 14 15:00:06 basilisk named[16356]: all zones loaded
Mar 14 15:00:06 basilisk named[16356]: running
Until the DNS server is configured, it won't be doing anything for us.
Configuring DNS
The configuration file for BIND is located in /etc/bind/named.conf.
If the file has text in it already, back it up and clear it out. Now what we'll do is include two additional configuration files, to make our lives easier:
include "/etc/bind/named.conf.options" include "/etc/bind/named.conf.local"
Note that we can put those files wherever we want, and create our own layout of configuration files.
Configure DNS Forwarding
Start by setting up your DNS server to forward DNS requests that it can't handle to another (public) DNS server. Start by editing the BIND configuration options:
$ vim /etc/bind/named.conf.options
Edit this file and add the following contents:
options {
forwarders {
8.8.8.8; 8.8.4.4;
};
};
What we are doing here is to create instructions for where to forward DNS requests, if it cannot find what it is looking for. (Note that this is usually done by default, but doing it this way allows us to specify which DNS servers to use.) These two (8.8.8.8 or 8.8.4.4) are both name servers from Google.
Local DNS Configuration
Now we can set up the DNS configuration for the local network and its subnets. Start by editing the file:
$ vim /etc/bind/named.conf.local
Add the following contents to that file:
zone "local.lan" IN {
type master; file "/etc/bind/net.local.lan";
};
zone "96.10.10.in-appr.arpa" {
type master; notify no; file "etc/bind/revp.10.10.96";
};
zone "97.10.10.in-appr.arpa" {
type master; notify no; file "etc/bind/revp.10.10.97";
};
zone "98.10.10.in-appr.arpa" {
type master; notify no; file "etc/bind/revp.10.10.98";
};
zone "99.10.10.in-appr.arpa" {
type master; notify no; file "etc/bind/revp.10.10.99";
};
Here is an explanation of the pieces:
- The first line defines our local domain name. We picked the very boring name of "local.lan"
- This block calls out another file, "/etc/bind/net.local.lan"
- The remaining four blocks create configurations for reverse lookups on the four subnets we are creating. If you only have one subnet on your network, you will only include one block for the one subnet.
- Each subnet has its own reverse-lookup file where we can configure things. Each file is stored in
/etc/bind.
DNS Records
Now let's look at the actual DNS records (in the reverse-lookup files listed in the code above).
Starting with /etc/bind/net.local.lan:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; dns zone for for local.lan network ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $TTL 1D @ IN SOA local.lan. administrator.local.lan. ( 201507261 ; serial 8H ; refresh 4H ; retry 4W ; expire 1D ) ; minimum IN A 10.10.96.1 ; @ IN NS hermes.local.lan. ceres IN A 10.10.98.1 euphoria IN A 10.10.97.4 galaxy IN A 10.10.96.4 hermes IN A 10.10.96.1 puppet CNAME galaxy ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; end dns zone for for local.lan network ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Going through this line by line:
- TTL is time to live, set to 1 day - this is how long DNS records are cached (important with multiple DNS servers or dynamic IP addresses)
- SOA is start of authority, which defines which comptuer has DNS authority on this local network. The
administrator.local.lanis an email address. - 201507261 is the serial number. if you change a zone file in bind, you should change this serial number. It is the first thing the daemon reads and it is how the daemon knows if the DNS records have been changed.
Related
| linux networking all the pages for linux networking
Diagnosing network interfaces: Linux/Network Interfaces Connecting to nodes with ssh: Linux/SSH Bridging networks with ssh tunnels: Linux/SSH Linux file server nfs/smb/sshfs: Linux/File Server Samba on linux: Linux/Samba Automounting network shares on linux: Linux/Automount Network Shares Monitoring system resources: Linux/System Monitoring Linux systemd: Linux/Systemd
IP Schema (ipcalc): Linux/IP Schema DHCP Server: Linux/DHCP DNS Server: Linux/DNS NTP Server: Linux/NTP
|