Síťová infrastruktura pro domácí prostředí a malé firmy (SOHO) – síťové služby 1

SOHO - DNSPo základním nastavení sítě, a uvedení do funkčního stavu, se můžeme pustit do instalace základních síťových služeb. Jelikož již máme na centrálních serverech pracující službu SSH, nemusíme potřebné operace provádět fyzicky u těchto strojů. Následující popis se bude vztahovat na služby VPN a DNS, které jsou pro naši infrastrukturu potřebné.Než začneme s instalací a konfigurací jednotlivých služeb, potřebujeme u našeho registrátora DNS domény (my-own-domain.net) a poskytovatelů internetu/hostingu upravit DNS záznamy patřící centrálním serverům. Není to nezbytně nutné, nicméně nám to ulehčí pozdější práci s infrastrukturou. Pokud používáme smyšlený název domény, který jsme neregistrovali, tento krok přeskočíme.

Nastavení DNS záznamů u poskytovatelů

Do DNS záznamů pro naši doménu my-own-domain.net vložíme (většinou přes webové rozhraní registrátora) následující řádky:

srv-01	A	192.168.1.253
srv-02	A	192.168.2.253

IP adresy opět změníme na správné, přidělené od ISP.

Změny otestujeme příkazem ping, případně dig:

[root@srv-01 ~]# ping srv-01.my-own-domain.net
PING srv-01. my-own-domain.net (192.168.1.253) 56(84) bytes of data.
64 bytes from srv-01.my-own-domain.net (192.168.1.253): icmp_seq=1 ttl=52 time=22.3 ms
64 bytes from srv-01.my-own-domain.net (192.168.1.253): icmp_seq=2 ttl=52 time=16.5 ms
^C
--- srv-01. my-own-domain.net ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1011ms
rtt min/avg/max/mdev = 16.540/19.427/22.315/2.890 ms

[root@srv-01 ~]# dig srv-01.my-own-domain.net

; <<>> DiG 9.10.2-P2 <<>> srv-01.my-own-domain.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER< ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
; srv-01.my-own-domain.net. IN A

;; ANSWER SECTION:
srv-01.my-own-domain.net. 219 IN A 192.168.1.253

;; AUTHORITY SECTION:
my-own-domain.net. 45339 IN NS nejaky-registrator.cz.

;; ADDITIONAL SECTION:
nejaky-registrator.cz. 281 IN A 192.168.1.254

;; Query time: 0 msec
;; SERVER: 172.16.1.254#53(172.16.1.254)
;; WHEN: Sat Jul 18 15:38:59 CEST 2015
;; MSG SIZE rcvd: 198

Propagování změn DNS záznamů může trvat delší dobu. To je dáno zejména nastavením parametru TTL v hlavičce SOA.

Nyní kontaktujeme poskytovatele internetu/hostingu a necháme zavést tzv. reverzní záznamy. Ty slouží k opačnému překladu, tedy z IP adresy na název. Každému poskytovateli předáme relevantní údaje platné v jeho síti.
ISP A:

192.168.1.253	PTR	srv-01.my-own-domain.net.

ISP B:

192.168.2.253	PTR	srv-02.my-own-domain.net.

Změny opět otestujeme příkazem ping, případně dig. U příkazu dig je ale změna. Jelikož se jedná o reverzní záznam, nemůžeme zadat IP adresu ve formátu 192.168.1.253, ale s obráceným pořadím bajtů a sufixem .in-addr.arpa. Tedy 253.1.168.192.in-addr.arpa.

[root@srv-01 ~]# ping 192.168.1.253
PING 192.168.1.253 (192.168.1.253) 56(84) bytes of data.
64 bytes from 192.168.1.253: icmp_seq=1 ttl=53 time=15.2 ms
^C
--- 192.168.1.253 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 15.266/15.266/15.266/0.000 ms

[root@srv-01 ~]# dig 253.1.168.192.in-addr.arpa

; <<>> DiG 9.10.2-P2 <<>> 253.1.168.192.in-addr.arpa
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59427
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
; 253.1.168.192.in-addr.arpa.    IN      A

;; AUTHORITY SECTION:
1.168.192.in-addr.arpa. 3539    IN      SOA     ns.nejaky-registrator.cz. root.nejaky-registrator.cz. 2015072101 3600 3600 2592000 3600

;; Query time: 2 msec
;; SERVER: 172.16.1.254#53(172.16.1.254)
;; WHEN: Út čec 21 09:20:50 CEST 2015
;; MSG SIZE  rcvd: 112

Nastavení VPN

SOHO - VPNPro bezpečnou komunikaci mezi zařízeními ve všech našich interních sítích, skrze internet, použijeme technologii VPN. Je to možnost, jak směrovat IP sítě s privátním rozsahem přes sítě veřejné. Mimo jiné slouží pro zašifrování komunikace, která je pro případné odchycení nečitelná. Použití VPN je pro propojování síťové infrastruktury standardem.

Nainstalujeme balíček openvpn. Tato operace se týká VPN serveru srv-01 a klientů srv-02, gw-01 a gw-02.

Konfigurace openvpn je umístěna v adresáři /etc/openvpn/.

Nastavení VPN serveru

Nainstalujeme balíček easy-rsa. Ten slouží pro generování a údržbu SSL certifikátů. Po instalaci zkopírujeme adresář obsahující programový kód do /etc/openvpn/. Je to běžná praxe a bývá popsána v mnoha příručkách.

[root@srv-01 ~]# cp -r /usr/share/easy-rsa/ /etc/openvpn/

V souboru /etc/openvpn/easy-rsa/vars upravíme následující řádky:

export KEY_COUNTRY="CZ"
export KEY_PROVINCE=""
export KEY_CITY="Praha"
export KEY_ORG="Moje sit"
export KEY_EMAIL="moje.jmeno@my-own-domain.net "
export KEY_OU=""

Obsah nastavíme dle vlastního uvážení, nikterak na něm nezáleží. Následně generované certifikáty budeme používat pouze pro naši VPN.
Vytvoříme adresář pro umístění certifikátů a nastavíme bezpečná práva:

[root@srv-01 ~]# mkdir /etc/openvpn/easy-rsa/keys
[root@srv-01 ~]# chmod 700 /etc/openvpn/easy-rsa/keys

Generování certifikátů pro VPN

Nejprve musíme vygenerovat certifikát tzv. certifikační autority (CA). Ten bude používán pro podepisování všech ostatních certifikátů. VPN server si při přihlášení nejprve ověří jeho platnost a následně povolí nebo zakáže připojení. Certifikát CA je ale používán i klienty. Ti si ověřují, zda server, kam se připojují, je opravdu jejich VPN server.

[root@srv-01 ~]# cd /etc/openvpn/easy-rsa
[root@srv-01 easy-rsa]# . ./vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys

[root@srv-01 easy-rsa]# ./build-ca
Generating a 2048 bit RSA private key
.........................................................+++
.................+++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [CZ]:
State or Province Name (full name) []:
Locality Name (eg, city) [Praha]:
Organization Name (eg, company) [Moje sit]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [Moje sit CA]:srv-01
Name [EasyRSA]:srv-01
Email Address [moje.jmeno@my-own-domain.net]:

[root@srv-01 easy-rsa]# ls -l /etc/openvpn/easy-rsa/keys/
total 12
-rw-r--r-- 1 root root 1602 Jul 12 22:53 ca.crt
-rw------- 1 root root 1704 Jul 12 22:53 ca.key
-rw-r--r-- 1 root root    0 Jul 12 22:44 index.txt
-rw-r--r-- 1 root root    3 Jul 12 22:44 serial

Vytvoříme parametrický soubor pro algoritmus a výměnu klíčů DIFFIE-HELLMAN (trvá to nějakou dobu):

[root@srv-01 easy-rsa]# ./build-dh
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
..........+...........................................................................................+...

Vygenerujeme a podepíšeme (za pomoci certifikátu CA) SSL certifikát VPN serveru:

[root@srv-01 easy-rsa]# ./build-key-server srv-01
Generating a 2048 bit RSA private key
.....................+++
......+++
writing new private key to 'srv-01.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [CZ]:
State or Province Name (full name) []:
Locality Name (eg, city) [Praha]:
Organization Name (eg, company) [Moje sit]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [srv-01]:
Name [EasyRSA]:srv-01
Email Address [moje.jmeno@my-own-domain.net]:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'CZ'
localityName          :PRINTABLE:'Praha'
organizationName      :PRINTABLE:'Moje sit'
commonName            :PRINTABLE:'srv-01'
name                  :PRINTABLE:'srv-01'
emailAddress          :IA5STRING:'moje.jmeno@my-own-domain.net'
Certificate is to be certified until Jul  9 21:12:40 2025 GMT (3650 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Nastavení služby VPN
V adresáři /etc/openvpn/ vytvoříme soubor server.conf s obsahem:

dev tun
port 1194
proto udp
server 10.128.1.0 255.255.255.0
route 10.11.1.0 255.255.255.0 10.128.1.1
push "route 10.11.1.0 255.255.255.0"
route 10.12.1.0 255.255.255.0 10.128.1.1
push "route 10.12.1.0 255.255.255.0"
topology subnet
ifconfig-pool-persist /etc/openvpn/ipp.txt
client-config-dir /etc/openvpn/ccd/
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
client-to-client
user nobody
group nobody

ca      /etc/openvpn/easy-rsa/keys/ca.crt
cert    /etc/openvpn/easy-rsa/keys/srv-01.crt
key     /etc/openvpn/easy-rsa/keys/srv-01.key
dh      /etc/openvpn/easy-rsa/keys/dh2048.pem
#crl-verify /etc/openvpn/easy-rsa/keys/crl.pem

VPN server při startu služby vytvoří síťové rozhraní tun0 s IP adresou 10.128.1.1. Nově bude vytvořena i síť 10.128.1.0/24, která bude určena pouze pro komunikaci zařízení v rámci vytvořeného VPN tunelu. Všechna zařízení připojená do VPN budou mít na rozhraní tun0 IP adresu z tohoto rozsahu. Řádky pushroute obsahují definici našich interních sítí. Při vytvoření VPN tunelu na klientech se tyto řádky využijí k nastavení statického směrování na jednotlivých zařízeních. Pokud tuto vlastnost nechceme využít, tzn., z lokality Praha nebudou moci zařízení komunikovat s lokalitou Bern a opačně, řádky vymažeme.
Vytvoříme adresář /etc/openvpn/ccd/, který bude obsahovat jména zařízení a nastavení identifikující, které interní sítě obsluhují. U těchto zařízení se tedy nebude při výstavbě VPN tunelu nastavovat statické směrování právě do těchto sítí. Pokud nám nebude směrování procházet, jeden z problémů může být právě zde.

[root@srv-01 ccd]# mkdir /etc/openvpn/ccd
[root@srv-01 ccd]# cd /etc/openvpn/ccd
[root@srv-01 ccd]# cat gw-01
iroute 10.11.1.0 255.255.255.0
[root@srv-01 ccd]# cat gw-02
iroute 10.12.1.0 255.255.255.0

Zakomentovaný řádek crl-verify slouží pro případ, že nám někdo odcizí zařízení obsahující klientský VPN certifikát. Pokud zatím nemáme potřebu jej využít, necháme zakomentovaný. Pokud je soubor, na který je odkazováno, prázdný, služba se nespustí. Příklad revokace certifikátu zařízení „mobil-android“:

[root@srv-01 ccd]# cd /etc/openvpn/easy-rsa
[root@srv-01 ccd]# . ./vars
[root@srv-01 ccd]# ./revoke-full mobil-android

Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnf
Revoking Certificate 05.
Data Base Updated

Pokud je nastavení kompletní, povolíme a spustíme službu openvpn:

[root@srv-01 openvpn]# systemctl enable openvpn@server
Created symlink from /etc/systemd/system/multi-user.target.wants/openvpn@server.service to /usr/lib/systemd/system/openvpn@.service.
[root@srv-01 openvpn]# systemctl start openvpn@server

Ověříme, zda služba poslouchá na správném portu a protokolu (řádky port 1194proto udp v souboru server.conf):

[root@srv-01 openvpn]# netstat -lupn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
udp        0      0 0.0.0.0:1194            0.0.0.0:*                           5528/openvpn

Případnou změnu portu můžeme provést podobně jako v případě služby SSH.

Zkontrolujeme nastavení rozhraní a směrovací tabulku:

[root@srv-01 openvpn]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
3: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:bd:07:3f brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.253/24 brd 192.168.1.255 scope global eno16777736
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:febd:73f/64 scope link
       valid_lft forever preferred_lft forever
4: tun0@NONE: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none
    inet 10.128.1.1/24 brd 10.128.1.255 scope global tun0
       valid_lft forever preferred_lft forever

[root@srv-01 openvpn]# ethtool tun0
Settings for tun0:
        Supported ports: [ ]
        Supported link modes:   Not reported
        Supported pause frame use: No
        Supports auto-negotiation: No
        Advertised link modes:  Not reported
        Advertised pause frame use: No
        Advertised auto-negotiation: No
        Speed: 10Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: off
        MDI-X: Unknown
        Current message level: 0xffffffa1 (-95)
                               drv ifup tx_err tx_queued intr tx_done rx_status pktdata hw wol 0xffff8000
        Link detected: yes

[root@srv-01 openvpn]# ip route
default via 192.168.1.254 dev eno16777736
10.11.1.0/24 via 10.128.1.1 dev tun0
10.12.1.0/24 via 10.128.1.1 dev tun0
10.128.1.0/24 dev tun0  proto kernel  scope link  src 10.128.1.1
192.168.1.0/24 dev eno16777736  proto kernel  scope link  src 192.168.1.253

Poznámka: ethtool hlásí rychlost rozhraní 10 Mb/s, ale skutečná se pohybuje výše (záleží na rychlostech fyzických rozhraních, výkonů CPU a vytíženosti obou zařízení):

[root@gw-01 ~]# iperf -c 10.128.1.1
------------------------------------------------------------
Client connecting to 10.128.1.1, TCP port 5001
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[  3] local 10.128.1.2 port 55111 connected with 10.128.1.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   326 MBytes   274 Mbits/sec

Zajímá-li nás stav připojených klientských zařízení, můžeme se podívat do souboru /var/log/openvpn-status.log:

[root@srv-01 ~]# cat /var/log/openvpn-status.log
OpenVPN CLIENT LIST
Updated,Tue Jul 21 08:40:53 2015
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
gw-01,172.16.1.1:32890,37842335,13563125,Tue Jul 21 06:27:48 2015
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
10.128.1.2,gw-01,172.16.1.1:32890,Tue Jul 21 06:33:38 2015
10.11.1.0/24,gw-01,172.16.1.1:32890,Tue Jul 21 06:27:48 2015
GLOBAL STATS
Max bcast/mcast queue length,0
END

Povolení komunikace na firewallu

Jelikož služba čeká na síťovém portu 1194/udp na případná spojení klientských zařízení, musí být tento port nastaven na firewallu jako průchozí.
Do souboru /etc/nftables.conf přidáme k pravidlu povolující službu SSH další řádek:

# Sluzba VPN: max. 15 pripojeni za minutu, pokusy logovat
udp dport 1194 limit rate 15/minute log prefix "VPN::ACPT: " counter accept

Firewall restartujeme:

[root@srv-01 etc]# systemctl restart nftables

Nastavení VPN klientů

Oproti VPN serveru nastavení klienta vyžaduje minimum operací skládající se z generování certifikátu, jeho umístění na klientské zařízení, úprava konfiguračních souborů a start VPN služby.
Pro stručnost budu popisovat nastavení VPN u internetové brány gw-01. Pro všechna ostatní zařízení, srv-02 a gw-02, je postup obdobný.
Generování certifikátů pro VPN
Pro každé fyzické zařízení, které se bude připojovat k VPN serveru, potřebujeme vygenerovat a podepsat jedinečný SSL certifikát. Tuto operaci provádíme opět na VPN serveru.

[root@srv-01 ~]# cd /etc/openvpn/easy-rsa [root@srv-01 easy-rsa]# . ./vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys

[root@srv-01 easy-rsa]# ./build-key gw-01
Generating a 2048 bit RSA private key
....+++
............+++
writing new private key to 'gw-01.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [CZ]:
State or Province Name (full name) []:
Locality Name (eg, city) [Praha]:
Organization Name (eg, company) [Moje sit]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [gw-01]:
Name [EasyRSA]:gw-01
Email Address [moje.jmeno@my-own-domain.net]:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'CZ'
localityName          :PRINTABLE:'Praha'
organizationName      :PRINTABLE:'Moje sit'
commonName            :PRINTABLE:'gw-01'
name                  :PRINTABLE:'gw-01'
emailAddress          :IA5STRING:'moje.jmeno@my-own-domain.net'
Certificate is to be certified until Jul  9 20:55:59 2025 GMT (3650 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Nastavení služby VPN

Na klientském zařízení v adresáři /etc/openvpn/ vytvoříme soubor client.conf s obsahem:

client
dev tun
proto udp
remote srv-01.my-own-domain.net 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ns-cert-type server
cipher bf-cbc
comp-lzo
verb 3
mute 20
ca ca.crt
mssfix 1300
key gw-01.key
cert gw-01.crt

V konfiguračním souboru změníme na řádku remote jméno serveru na náš aktuální. Můžeme použít i IP adresu. Pokud jsme na VPN serveru provedli změnu portu či protokolu, tuto operaci promítneme i zde. Upravíme názvy souborů s certifikáty, řádky keycert. Tyto certifikáty, společně se souborem ca.crt, musíme do adresáře /etc/openvpn/ zkopírovat ze serveru ručně. U souboru /etc/openvpn/gw-01.key změníme oprávnění:

[root@gw-01 openvpn]# chmod 600 /etc/openvpn/gw-01.key

Nyní můžeme povolit a spustit službu openvpn:

[root@gw-01 openvpn]# systemctl enable openvpn@client
Created symlink from /etc/systemd/system/multi-user.target.wants/openvpn@client.service to /usr/lib/systemd/system/openvpn@.service.
[root@gw-01 openvpn]# systemctl start openvpn@client

Provedeme kontrolu rozhraní tun0:

[root@gw-01 ~]# ip addr show tun0
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none
    inet 10.128.1.2/24 brd 10.128.1.255 scope global tun0
       valid_lft forever preferred_lft forever

[root@gw-01 ~]# ip route
default via 172.16.1.254 dev eno16777736
10.11.1.0/24 dev eno33554976  proto kernel  scope link  src 10.11.1.254
10.12.1.0/24 via 10.128.1.1 dev tun0
10.128.1.0/24 dev tun0  proto kernel  scope link  src 10.128.1.2
172.16.1.0/24 dev eno16777736  proto kernel  scope link  src 172.16.1.1

Firewall

Není potřeba nastavovat. Služba VPN bude pouze iniciovat spojení k serveru.

Poznámka: Pokud budeme chtít omezit komunikaci mezi VPN a ostatními zařízeními v místní síti, vložíme příslušné pravidlo v souboru /etc/nftables.conf do řetězce forward. Např. pokud nechceme, aby byla možná komunikace ze zařízení v naší síti k portu 53/tcp serverů ve VPN, použijeme iifname tun0 tcp dport 53 counter drop.

Nastavení DNS

Jednou z nejdůležitějších služeb všech sítí je DNS, která slouží pro překlad názvů na IP adresy a opačně. Obvykle si vystačíme se standardními DNS servery v internetu nebo od poskytovatele připojení, ale my chceme mít vlastní, kam si budeme zadávat záznamy vztahující se k našim místním doménám (praha.my-own-domain.net a bern.my-own-domain.net).
Popis se nebude věnovat technologii DNSSEC. Podpora ale bude ve službách zapnuta.

Nejdříve nainstalujeme balíček bind (ISC DNS Server), který je součástí většiny distribucí linuxu. Nastavení se bude vztahovat na servery srv-01, net-01 a net-02, proto provedeme instalaci na všechny tyto servery. Na server srv-02 službu nasazovat nebudeme, pouze v případě, že bychom chtěly vytvořit „failover cluster“ (nebudu popisovat).

Zjednodušené schéma, jak komunikují jednotlivé služby v rámci DNS je na následujícím obrázku (šipky odpovídají směru dotazu, odpověď jde stejnou cestou zpět):

SOHO - DNS

Dotazy (A, AAAA, SRV, TXT, …) týkající se naší domény my-own-domain.net jsou z internetu směrovány na DNS server u registrátora. Dotazy na veřejné IP adresy serverů srv-01 a srv-02, tedy 192.168.1.253 a 192.168.2.253 jsou směrovány na DNS servery hostingu.

Pokud naše doména my-own-domain.net obsahuje nějakou subdoménu (NS záznamy – např. intranet.my-own-domain.net), je dotaz přes DNS server registrátora směrován na naši DNS službu nainstalovanou na serveru srv-01. Server srv-02 nemá nainstalovanou službu DNS, a pro dotazy využívá DNS servery v internetu.

Místní servery net-01 a net-02 obsahují sofistikovanější nastavení. Služba DNS spolupracuje s DHCP a, kromě přeposílání (forward) dotazů jiným DNS serverům, slouží jako primární a zároveň sekundární DNS server. DNS služba na srv-01 obsahuje nastavení subdomén my-own-domain.net dostupných z internetu, a současně subdomén dostupných z našich interních sítí.

Zařízení v interních sítích, a internetové brány gw-01 a gw-02, jsou pouhými klienty DNS služeb a jejich dotazy jsou vyřizovány na serverech net-01, net-02, případně směrovány jinam (srv-01, internet, …).

Centrální server srv-01

Pro běžný provoz není DNS služba na serveru srv-01 příliš důležitá. Většina požadavků je vyřizována přes DNS na místních serverech net-01 a net-02. Centrální server využijeme hlavně pro zpracování požadavků přicházejících z prostředí internetu. Pokud tedy máme např. subdoménu mail.my-own-domain.net, obsahující MX záznamy a záznamy cluster serverů pro zpracování pošty, bez tohoto serveru se neobejdeme. V našem případě bude srv-01 obsahovat záznamy pro IP adresy náležící VPN a sekundární záznamy našich dvou domén praha.my-own-domain.netbern.my-own-domain.net.

Nastavení služby DNS

Nejprve vytvoříme adresáře, kde budou umístěny zónové soubory obsahující jednotlivé záznamy. Tyto adresáře budou vlastněny uživatelem named.

[root@srv-01 ~]# mkdir /var/named/pri
[root@srv-01 ~]# chown named:named /var/named/pri
[root@srv-01 ~]# mkdir /var/named/sec
[root@srv-01 ~]# chown named:named /var/named/sec

Stejným způsobem vytvoříme adresář pro detailní logy:

[root@srv-01 ~]# mkdir /var/log/named
[root@srv-01 ~]# chown named:named /var/log/named

Hlavním konfiguračním souborem je /etc/named.conf. Ten odkazuje na zónové soubory obsahující definice jednotlivých domén/subdomén. Primární domény budeme uchovávat v adresáři /var/named/pri/, sekundární v adresáři /var/named/sec/.

acl "trusted" {
        127.0.0.0/8;
        ::1/128;
        10.11.0.0/16;
        10.12.0.0/16;
        10.128.1.0/24;
};

options {
    directory "/var/named";
    pid-file "/run/named/named.pid";

    //  listen-on-v6 { any; };

    // IP adresu 192.168.1.253 zmenit na spravnou
    listen-on { 127.0.0.1; 192.168.1.253; 10.128.1.1; };

    allow-transfer { none; };
    allow-update { none; };
    allow-query { any; };
    allow-query-cache { trusted; };
    allow-recursion { trusted; };


    auth-nxdomain no;
    rate-limit { responses-per-second 20; window 5; };

    version none;
    hostname none;
    server-id none;

    forwarders {
        // servery NIC.CZ
        217.31.204.130;
        193.29.206.206;
    };

    dnssec-validation auto;
    dnssec-enable yes;
    dnssec-lookaside . trust-anchor dlv.isc.org.;
    sig-validity-interval 2400;

};

statistics-channels {
    inet 127.0.0.1 port 8053;
};

logging {
        channel default_log {
                file "/var/log/named/named.log" versions 1 size 128k;
                print-time yes;
                print-severity yes;
                print-category yes;
        };

        channel dnssec_log {
                file "/var/log/named/dnssec.log" versions 1 size 64k;
                print-time yes;
                print-severity yes;
                print-category yes;
        };

        channel queries_log {
                file "/var/log/named/queries.log" versions 1 size 512k;
                print-time yes;
                print-severity yes;
                print-category yes;
        };

        channel update_debug {
                file "/var/log/named/updates.log" versions 1 size 64k;
                severity  debug 3;
                print-category yes;
                print-severity yes;
                print-time     yes;
        };

        category default { default_log; };
        category general { default_log; };
        category dnssec { dnssec_log; };
        category queries { queries_log; };
        category update { update_debug; };
};


zone "localhost" IN {
    type master;
    file "localhost.zone";
};

zone "0.0.127.in-addr.arpa" IN {
    type master;
    file "127.0.0.zone";
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" {
    type master;
    file "localhost.ip6.zone";
};

zone "255.in-addr.arpa" IN {
    type master;
    file "empty.zone";
};

zone "0.in-addr.arpa" IN {
    type master;
    file "empty.zone";
};

zone "." IN {
    type hint;
    file "root.hint";
};


// zona pro emailovy system
zone "mail.my-own-domain.net" {
    type master;
    file "pri/mail.my-own-domain.net";
};


// zony pro VPN
zone "vpn-net.my-own-domain.net" IN {
    type master;
    notify yes;
    // v pripade zmeny upozornit net-01 a net-02
    also-notify { 10.11.1.253; 10.12.1.253; };
    // povolit prenos zony na net-01 a net-02
    allow-transfer { 10.11.1.253; 10.12.1.253; };
    // povolit dotazy z
    allow-query { 10.128.1.0/24; 127.0.0.0/16; 10.11.0.0/16; 10.12.0.0/16; };
    file "pri/vpn-net.my-own-domain.net";
};

zone "1.128.10.in-addr.arpa" IN {
    type master;
    notify yes;
    // v pripade zmeny upozornit net-01 a net-02
    also-notify { 10.11.1.253; 10.12.1.253; };
    // povolit prenos zony na net-01 a net-02
    allow-transfer { 10.11.1.253; 10.12.1.253; };
    // povolit dotazy z
    allow-query { 10.128.1.0/24; 127.0.0.0/16; 10.11.0.0/16; 10.12.0.0/16; };
    file "pri/1.128.10.in-addr.arpa";
};


// interni zony pro lokalitu Praha
zone "praha.my-own-domain.net" IN {
    type slave;
    // master server net-01
    masters { 10.11.1.253; };
    file "sec/praha.my-own-domain.net";
};

zone "1.11.10.in-addr.arpa" IN {
    type slave;
    // master server net-01
    masters { 10.11.1.253; };
    file "sec/1.11.10.in-addr.arpa";
};

// interni zony pro lokalitu Bern
zone "bern.my-own-domain.net" IN {
    type slave;
    // master server net-02
    masters { 10.12.1.253; };
    file "sec/bern.my-own-domain.net";
};

zone "1.12.10.in-addr.arpa" IN {
    type slave;
    // master server net-02
    masters { 10.12.1.253; };
    file "sec/1.12.10.in-addr.arpa";
};



// tato zona je pouze pro smyslenou domenu my-own-domain.net, ktera neni registrovana v internetu
zone "my-own-domain.net" IN {
    type master;
    notify yes;
    // v pripade zmeny upozornit net-01 a net-02
    also-notify { 10.11.1.253; 10.12.1.253; };
    // povolit prenos zony na net-01 a net-02
    allow-transfer { 10.11.1.253; 10.12.1.253; };
    // povolit dotazy z
    allow-query { 10.128.1.0/24; 127.0.0.0/16; 10.11.0.0/16; 10.12.0.0/16; };
    file "pri/my-own-domain.net";
};

// vim:set ts=4 sw=4 et:

Veškeré IP adresy, názvy domén a názvy souborů musíme upravit podle našeho skutečného stavu. Na serveru budeme upravovat pouze zónové soubory uložené v adresáři /var/named/pri/. Zónu my-own-domain.net vytvoříme pouze v případě, že je smyšlená a nemáme ji registrovanou v internetu. V tomto případě nevytváříme ani subdoménu mail.my-own-domain.net, na kterou by nám mohla přicházet elektronická pošta.

Zónové soubory

U všech zónových souborů nastavíme vlastníka a skupinu named.

Zóna určená pouze pro zpracování elektronické pošty:

$TTL 86400
@       IN SOA  mail.my-own-domain.net. root.my-own-domain.net. (
            2015042001 ; serial
            28800      ; refresh (8 hours)
            7200       ; retry (2 hours)
            604800     ; expire (1 week)
            86400      ; minimum (1 day)
        )

        NS      srv-01.my-own-domain.net.

srv-01  A               192.168.1.253
@       MX      10      srv-01
@       A               192.168.1.253
@       TXT             "v=spf1 mx ip4:192.168.1.253 include:my-own-domain.net ~all"
@       SPF             "v=spf1 mx ip4:192.168.1.253 include:my-own-domain.net ~all"

Pokud budeme subdoménu mail.my-own-domain.net využívat, do DNS záznamů u našeho registrátora vložíme následující řádek:

mail	NS	srv-01

Zóna obsahující seznam zařízení přímo připojených do VPN. Tuto zónu je nutné vytvořit podle obsahu souboru /etc/openvpn/ipp.txt. Ten je udržován službou openvpn. Je sice možné tuto operaci provádět automaticky při připojování/odpojování klientů VPN, ale vyžaduje to napsání souboru skriptů, které budou udržovat zónu aktuální. Soubor /etc/openvpn/ipp.txt se ale prakticky nemění, a proto pro náš případ pouze několika statických zařízení je manuální úprava nejjednodušší.

$TTL 86400
@       IN SOA  srv-01.vpn-net.my-own-domain.net. root.my-own-domain.net. (
            2015022606 ; serial
            86400      ; refresh (8 hours)
            7200       ; retry (2 hours)
            604800     ; expire (1 week)
            86400      ; minimum (1 day)
        )

        NS      srv-01.vpn-net.my-own-domain.net.

@               A       10.128.1.1

srv-01          A       10.128.1.1
gw-01           A       10.128.1.2
gw-02           A       10.128.1.3
srv-02          A       10.128.1.4

; zaznamy musi souhlasit s obsahem souboru /etc/openvpn/ipp.txt

Reverzní záznamy pro zónu vpn-net.my-own-domain.net. I tato zóna musí být synchronizována se souborem /etc/openvpn/ipp.txt. Nicméně pokud tyto dvě zóny nechceme používat, nemusíme.

$ORIGIN .
$TTL 86400      ; 1 day
1.128.10.in-addr.arpa   IN SOA  srv-01.vpn-net.my-own-domain.net. root.my-own-domain.net. (
                                2015022631 ; serial
                                86400      ; refresh (8 hours)
                                7200       ; retry (2 hours)
                                604800     ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                        NS      srv-01.vpn-net.my-own-domain.net.
$ORIGIN 1.128.10.in-addr.arpa.
$TTL 3600       ; 1 hour
1       PTR     srv-01.vpn-net.my-own-domain.net.
2       PTR     gw-01.vpn-net.my-own-domain.net.
3       PTR     gw-02.vpn-net.my-own-domain.net.
4       PTR     srv-02.vpn-net.my-own-domain.net.

; zaznamy musi souhlasit s obsahem souboru /etc/openvpn/ipp.txt

Zónu my-own-domain.net vytváříme pouze, pokud je naše doména smyšlená a nemáme ji registrovanou v internetu. To se nám může hodit pro případ, že stavíme infrastrukturu v provizorních podmínkách bez připojení do celosvětové sítě, nebo nemůžeme operativně během konfigurace měnit nastavení naší domény u registrátora.

$TTL 86400
@       IN SOA  srv-01.my-own-domain.net. root.my-own-domain.net. (
            2015022608 ; serial
            86400      ; refresh (8 hours)
            7200       ; retry (2 hours)
            604800     ; expire (1 week)
            86400      ; minimum (1 day)
        )

        NS      srv-01.my-own-domain.net.

@               A       192.168.1.253

srv-01          A       192.168.1.253
srv-02          A       192.168.2.253

net-01          A       10.11.1.253
net-02          A       10.11.2.253

praha           NS      net-01
bern            NS      net-02

mail            NS      srv-01

; tato zona je pouze pro smyslenou domenu my-own-domain.net, ktera neni registrovana v internetu

Spuštění služby

Pře spuštěním DNS provedeme kontrolu syntaxe včetně master zónových souborů:

[root@srv-01 pri]# named-checkconf -z
zone localhost/IN: loaded serial 42
zone 0.0.127.in-addr.arpa/IN: loaded serial 42
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 42
zone 255.in-addr.arpa/IN: loaded serial 42
zone 0.in-addr.arpa/IN: loaded serial 42
zone mail.my-own-domain.net/IN: loaded serial 2015042001
zone vpn-net.my-own-domain.net/IN: loaded serial 2015022606
zone 1.128.10.in-addr.arpa/IN: loaded serial 2015022631
zone my-own-domain.net/IN: loaded serial 2015022608

Pokud máme službu DNS na serveru nakonfigurovánu, můžeme ji povolit a spustit. Nevadí, pokud nebudou master či slave servery uvedené v konfiguraci v provozu. V takovém případě bude automaticky navázáno spojení při jejich startu.

[root@srv-01 pri]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
[root@srv-01 pri]# systemctl start named

Máme-li se startem potíže, můžeme se podívat na logy do adresáře /var/log/named/.

Test služby

Podíváme se, zda jsou otevřeny síťové porty:

[root@srv-01 pri]# netstat -lutpn | grep named
tcp        0      0 10.128.1.1:53           0.0.0.0:*               LISTEN      6577/named
tcp        0      0 192.168.1.253:53        0.0.0.0:*               LISTEN      6577/named
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      6577/named
tcp        0      0 127.0.0.1:8053          0.0.0.0:*               LISTEN      6577/named
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      6577/named
tcp6       0      0 :::53                   :::*                    LISTEN      6577/named
tcp6       0      0 ::1:953                 :::*                    LISTEN      6577/named
udp        0      0 10.128.1.1:53           0.0.0.0:*                           6577/named
udp        0      0 192.168.1.253:53        0.0.0.0:*                           6577/named
udp        0      0 127.0.0.1:53            0.0.0.0:*                           6577/named
udp6       0      0 :::53                   :::*                                6577/named

Služba DNS využívá zejména port 53/tcp i /udp. Jak je podle výpisu vidět, je otevřeno množství portů na různých síťových rozhraních. Proto bude nutné nastavit pravidla pro firewall.

Pro otestování můžeme použít příkaz dig:

[root@srv-01 ~]# dig @127.0.0.1 vpn-net.my-own-domain.net

; <<>> DiG 9.10.2-P2 <<>> @127.0.0.1 vpn-net.my-own-domain.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9631
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;vpn-net.my-own-domain.net.     IN      A

;; ANSWER SECTION:
vpn-net.my-own-domain.net. 86400 IN     A       10.128.1.1

;; AUTHORITY SECTION:
vpn-net.my-own-domain.net. 86400 IN     NS      srv-01.vpn-net.my-own-domain.net.

;; ADDITIONAL SECTION:
srv-01.vpn-net.my-own-domain.net. 86400 IN A    10.128.1.1

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jul 21 18:27:29 CEST 2015
;; MSG SIZE  rcvd: 107

Firewall

Pro naše účely povolíme přístup na port 53/udp ze všech sítí, tzn. i z internetu, a na port 53/tcp pouze přes VPN (rozhraní tun0). Protokol TCP je nutné povolit pro zone transfer, což je vlastnost pro synchronizaci jednotlivých zón mazi master a slave servery.

Do souboru /etc/nftables.conf přidáme k pravidlům povolujícím služby SSH a VPN další řádky:

# Sluzba DNS
  udp dport 53 counter accept
  iif tun0 tcp dport 53 counter accept

Firewall restartujeme:

[root@srv-01 etc]# systemctl restart nftables

Nastavení překladu na serveru srv-01

V tuto chvíli máme službu DNS funkční, nicméně potřebujeme na serveru nastavit překlad IP adres a názvů právě touto službou.

V souboru /etc/netctl/eno16777736 upravíme řádek DNS= na DNS=('127.0.0.1') a restartujeme síťové rozhraní:

[root@srv-01 ~]# netctl restart eno16777736

Po této operaci by měl být obsah souboru /etc/resolv.conf následující:

# Generated by resolvconf
domain my-own-domain.net
search local.my-own-domain.net my-own-domain.net praha.my-own-domain.net bern.my-own-domain.net
nameserver 127.0.0.1

Místní server net-01

Abychom mohli používat překlady názvu na IP adresu, a opačně, pro zařízení v naší síti, potřebujeme nainstalovat DNS službu i na naše místní servery net-01 a net-02. Nastavení je podobné jako v případě srv-01.

Nastavení služby DNS

Vytvoříme adresáře pro zónové soubory a logy a nastavíme oprávnění:

[root@net-01 ~]# mkdir /var/named/pri
[root@net-01 ~]# chown named:named /var/named/pri
[root@net-01 ~]# mkdir /var/named/sec
[root@net-01 ~]# chown named:named /var/named/sec
[root@net-01 ~]# mkdir /var/log/named
[root@net-01 ~]# chown named:named /var/log/named

Upravíme konfigurační soubor /etc/named.conf :

acl "trusted" {
        127.0.0.0/8;
        ::1/128;
        10.11.0.0/16;
        10.12.0.0/16;
        10.128.1.0/24;
};

options {
    directory "/var/named";
    pid-file "/run/named/named.pid";

    //  listen-on-v6 { any; };

    listen-on { 127.0.0.1; 10.11.1.253; };

    allow-transfer { none; };
    allow-update { none; };
    allow-query { trusted; };
    allow-query-cache { trusted; };
    allow-recursion { trusted; };


    auth-nxdomain no;
    rate-limit { responses-per-second 20; window 5; };

    version none;
    hostname none;
    server-id none;

    forwarders {
        // servery NIC.CZ
        217.31.204.130;
        193.29.206.206;
    };

    dnssec-validation auto;
    dnssec-enable yes;
    dnssec-lookaside . trust-anchor dlv.isc.org.;
    sig-validity-interval 2400;

};

logging {
        channel default_log {
                file "/var/log/named/named.log" versions 1 size 128k;
                print-time yes;
                print-severity yes;
                print-category yes;
        };

        channel dnssec_log {
                file "/var/log/named/dnssec.log" versions 1 size 64k;
                print-time yes;
                print-severity yes;
                print-category yes;
        };

        channel queries_log {
                file "/var/log/named/queries.log" versions 1 size 512k;
                print-time yes;
                print-severity yes;
                print-category yes;
        };

        channel update_debug {
                file "/var/log/named/updates.log" versions 1 size 64k;
                severity  debug 3;
                print-category yes;
                print-severity yes;
                print-time     yes;
        };

        category default { default_log; };
        category general { default_log; };
        category dnssec { dnssec_log; };
        category queries { queries_log; };
        category update { update_debug; };
};

statistics-channels {
    inet 127.0.0.1 port 8053;
};

include "/etc/rndc.key";

controls {
        inet 127.0.0.1 port 953 allow { 127.0.0.1/32; ::1/128; } keys { "rndc-key"; };
};


zone "localhost" IN {
    type master;
    file "localhost.zone";
};

zone "0.0.127.in-addr.arpa" IN {
    type master;
    file "127.0.0.zone";
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" {
    type master;
    file "localhost.ip6.zone";
};

zone "255.in-addr.arpa" IN {
    type master;
    file "empty.zone";
};

zone "0.in-addr.arpa" IN {
    type master;
    file "empty.zone";
};

zone "." IN {
    type hint;
    file "root.hint";
};


zone "vpn-net.my-own-domain.net" IN {
    type slave;
    // master server srv-01
    masters { 10.128.1.1; };
    file "sec/vpn-net.my-own-domain.net";
};

zone "1.128.10.in-addr.arpa" IN {
    type slave;
    // master server srv-01
    masters { 10.128.1.1; };
    file "sec/1.128.10.in-addr.arpa";
};

zone "praha.my-own-domain.net" IN {
    type master;
    notify yes;
    // v pripade zmeny upozornit srv-01 a net-02
    also-notify { 10.128.1.1; 10.12.1.253; };
    // povolit prenos zony na srv-01 a net-02
    allow-transfer { 10.128.1.1; 10.12.1.253; };
    allow-update { key "rndc-key"; };
    file "pri/praha.my-own-domain.net";
};

zone "1.11.10.in-addr.arpa" IN {
    type master;
    notify yes;
    // v pripade zmeny upozornit srv-01 a net-02
    also-notify { 10.128.1.1; 10.12.1.253; };
    // povolit prenos zony na srv-01 a net-02
    allow-transfer { 10.128.1.1; 10.12.1.253; };
    allow-update { key "rndc-key"; };
    file "pri/1.11.10.in-addr.arpa";
};

zone "dhcp.praha.my-own-domain.net" {
    type master;
    allow-update { key "rndc-key"; };
    file "pri/dhcp.praha.my-own-domain.net";
};

zone "bern.my-own-domain.net" IN {
    type slave;
    // master server net-02
    masters { 10.12.1.253; };
    file "sec/bern.my-own-domain.net";
};

zone "1.12.10.in-addr.arpa" IN {
    type slave;
    // master server net-02
    masters { 10.12.1.253; };
    file "sec/1.12.10.in-addr.arpa";
};

zone "local.my-own-domain.net" {
    type master;
    file "pri/local.my-own-domain.net";
};

// tato zona je pouze pro smyslenou domenu my-own-domain.net, ktera neni registrovana v internetu
// pokud mame domenu registrovanu, nepouzijeme
zone "my-own-domain.net" IN {
    type slave;
    // master server srv-01
    masters { 10.128.1.1; };
    file "sec/my-own-domain.net";
};

// vim:set ts=4 sw=4 et:

Nastavení není tak restriktivní jako v případě srv-01. Navíc je možné některé zóny za běhu měnit jinými službami, např. DHCP (o této službě bude následující článek).

Zónové soubory

U všech zónových souborů nastavíme vlastníka a skupinu named.

Zóna obsahující místní služby a další servery umístěné na lokalitě Praha. V domácnosti zde mohou být uvedeny chytré spotřebiče, kterým přidělíme pevnou IP adresu:

$TTL 86400
@       IN SOA  net-01.praha.my-own-domain.net. root.my-own-domain.net. (
            2015022606 ; serial
            86400      ; refresh (8 hours)
            7200       ; retry (2 hours)
            604800     ; expire (1 week)
            86400      ; minimum (1 day)
        )

        NS      net-01.praha.my-own-domain.net.

@               A       10.11.1.253

net-01          A       10.11.1.253
gw-01           A       10.11.1.254

Reverzní záznamy pro celou interní síť na lokalitě Praha:

$ORIGIN .
$TTL 86400      ; 1 day
1.11.10.in-addr.arpa   IN SOA  net-01.praha.my-own-domain.net. root.my-own-domain.net. (
                                2015022631 ; serial
                                86400      ; refresh (8 hours)
                                7200       ; retry (2 hours)
                                604800     ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                        NS      net-01.praha.my-own-domain.net.
$ORIGIN 1.11.10.in-addr.arpa.
$TTL 3600       ; 1 hour

253       PTR     net-01.praha.my-own-domain.net.
254       PTR     gw-01.praha.my-own-domain.net.

Zóna určená pouze pro „dočasná“ zařízení, která se připojují do naší sítě. Tato zařízení nebudou mít pevnou IP adresu, ale bude přidělována DHCP serverem (DHCP server může přidělovat i pevné IP adresy na základě MAC adresy fyzického síťového rozhraní, ty ale budeme umisťovat do zóny praha.my-own-domain.net):

$ORIGIN .
$TTL 86400      ; 1 day
dhcp.praha.my-own-domain.net IN SOA net-01.praha.my-own-domain.net. root.my-own-domain.net. (
                                2009043191 ; serial
                                28800      ; refresh (8 hours)
                                7200       ; retry (2 hours)
                                604800     ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                        NS      net-01.praha.my-own-domain.net.

Pokud chceme, můžeme vytvořit speciální zónu, kam budeme umisťovat služby, které budou umístěné na všech lokalitách. To je vhodné pro případ, že se připojujeme stejným chytrým telefonem nebo notebookem v obou lokalitách. Takovou zónu/subdoménu jsem pojmenoval <code>local.my-own-domain.net</code>. V nastavení příslušného klientského zařízení nastavíme například pro přístup k proxy adresu <code>http://local.my-own-domain.net:3128</code> a již nezáleží, zda se připojujeme na lokalitě Praha nebo Bern.

$TTL 86400
@       IN SOA  net-srv.local.my-own-domain.net. root.my-own-domain.net. (
            2015022608 ; serial
            86400      ; refresh (8 hours)
            7200       ; retry (2 hours)
            604800     ; expire (1 week)
            86400      ; minimum (1 day)
        )

        NS      net-01.praha.my-own-domain.net.

@               A       10.11.1.253

net-srv         A       10.11.1.253
gateway         A       10.11.1.254

Nastavení vlastního zónového souboru je ale na lokalitě závislé.

Spuštění služby

Pře spuštěním DNS provedeme kontrolu syntaxe včetně master zónových souborů:

[root@net-01 pri]# named-checkconf -z
zone localhost/IN: loaded serial 42
zone 0.0.127.in-addr.arpa/IN: loaded serial 42
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 42
zone 255.in-addr.arpa/IN: loaded serial 42
zone 0.in-addr.arpa/IN: loaded serial 42
zone praha.my-own-domain.net/IN: loaded serial 2015022606
zone 1.11.10.in-addr.arpa/IN: loaded serial 2015022631
zone dhcp.praha.my-own-domain.net/IN: loaded serial 2009043191

Pokud máme službu DNS na serveru nakonfigurovánu, můžeme ji povolit a spustit.

[root@net-01 pri]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
[root@net-01 pri]# systemctl start named

Máme-li se startem potíže, můžeme se podívat na logy do adresáře /var/log/named/.

Test služby

Podíváme se, zda jsou otevřeny síťové porty:

[root@net-01 pri]# netstat -lutpn | grep named
tcp        0      0 10.11.1.253:53          0.0.0.0:*               LISTEN      430/named
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      430/named
tcp        0      0 127.0.0.1:8053          0.0.0.0:*               LISTEN      430/named
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      430/named
tcp6       0      0 :::53                   :::*                    LISTEN      430/named
udp        0      0 10.11.1.253:53          0.0.0.0:*                           430/named
udp        0      0 127.0.0.1:53            0.0.0.0:*                           430/named
udp6       0      0 :::53                   :::*                                430/named 

Služba DNS opět využívá zejména port 53/tcp i /udp.

Pro otestování můžeme použít příkaz dig:

[root@net-01 pri]# dig @127.0.0.1 praha.my-own-domain.net

; <<>> DiG 9.10.2-P2 <<>> @127.0.0.1 praha.my-own-domain.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28779
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;praha.my-own-domain.net.       IN      A

;; ANSWER SECTION:
praha.my-own-domain.net. 86400  IN      A       10.11.1.253

;; AUTHORITY SECTION:
praha.my-own-domain.net. 86400  IN      NS      net-01.praha.my-own-domain.net.

;; ADDITIONAL SECTION:
net-01.praha.my-own-domain.net. 86400 IN A      10.11.1.253

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Jul 22 14:34:12 CEST 2015
;; MSG SIZE  rcvd: 105

Firewall

Nebude nastaven.

Nastavení překladu na serveru net-01

V souboru /etc/netctl/eno16777736 upravíme řádek DNS= na DNS=('127.0.0.1') a restartujeme síťové rozhraní:

[root@net-01 ~]# netctl restart eno16777736

Po této operaci by měl být obsah souboru /etc/resolv.conf následující:

# Generated by resolvconf
domain praha.my-own-domain.net
search local.my-own-domain.net my-own-domain.net praha.my-own-domain.net bern.my-own-domain.net
nameserver 127.0.0.1

Nastavení překladu na serveru gw-01

Na tuto změnu si musíme dát pozor, jelikož se bude provádět na obou síťových rozhraních.

Rozhraní do internetu:
V souboru /etc/netctl/eno16777736 odstraníme všechny řádky s názvem DNS. Zůstane nám pouze:

Description='Sitove rozhrani eno16777736 pro pristup do internetu'
Interface=eno16777736
Connection=ethernet
IP=static
Address=172.16.1.1/24'
Gateway='172.16.1.254'

Rozhraní do místní/interní sítě:
V souboru /etc/netctl/eno33554976 přidáme nastavení pro překlad DNS:

Description='Sitove rozhrani eno33554976 pro pristup do interni site'
Interface=eno33554976
Connection=ethernet
IP=static
Address='10.11.1.254/24'
DNS=('10.11.1.253')
DNSDomain='praha.my-own-domain.net'
DNSSearch='local.my-own-domain.net my-own-domain.net praha.my-own-domain.net bern.my-own-domain.net'

a restartujeme síťové rozhraní:

[root@gw-01 ~]# netctl restart eno16777736
[root@gw-01 ~]# netctl restart eno33554976

Po této operaci by měl být obsah souboru /etc/resolv.conf následující:

# Generated by resolvconf
domain praha.my-own-domain.net
search local.my-own-domain.net my-own-domain.net praha.my-own-domain.net bern.my-own-domain.net
nameserver 10.11.1.253

Místní server net-02

Nastavení je podobné jako v případě net-01. Abych však předešel případným nejasnostem, uvedu jej celé.

Nastavení služby DNS

Vytvoříme adresáře pro zónové soubory a logy a nastavíme oprávnění:

[root@net-02 ~]# mkdir /var/named/pri
[root@net-02 ~]# chown named:named /var/named/pri
[root@net-02 ~]# mkdir /var/named/sec
[root@net-02 ~]# chown named:named /var/named/sec
[root@net-02 ~]# mkdir /var/log/named
[root@net-02 ~]# chown named:named /var/log/named

Upravíme konfigurační soubor /etc/named.conf :

acl "trusted" {
        127.0.0.0/8;
        ::1/128;
        10.11.0.0/16;
        10.12.0.0/16;
        10.128.1.0/24;
};

options {
    directory "/var/named";
    pid-file "/run/named/named.pid";

    //  listen-on-v6 { any; };

    listen-on { 127.0.0.1; 10.12.1.253; };

    allow-transfer { none; };
    allow-update { none; };
    allow-query { trusted; };
    allow-query-cache { trusted; };
    allow-recursion { trusted; };


    auth-nxdomain no;
    rate-limit { responses-per-second 20; window 5; };

    version none;
    hostname none;
    server-id none;

    forwarders {
        // servery NIC.CZ
        217.31.204.130;
        193.29.206.206;
    };

    dnssec-validation auto;
    dnssec-enable yes;
    dnssec-lookaside . trust-anchor dlv.isc.org.;
    sig-validity-interval 2400;

};

logging {
        channel default_log {
                file "/var/log/named/named.log" versions 1 size 128k;
                print-time yes;
                print-severity yes;
                print-category yes;
        };

        channel dnssec_log {
                file "/var/log/named/dnssec.log" versions 1 size 64k;
                print-time yes;
                print-severity yes;
                print-category yes;
        };

        channel queries_log {
                file "/var/log/named/queries.log" versions 1 size 512k;
                print-time yes;
                print-severity yes;
                print-category yes;
        };

        channel update_debug {
                file "/var/log/named/updates.log" versions 1 size 64k;
                severity  debug 3;
                print-category yes;
                print-severity yes;
                print-time     yes;
        };

        category default { default_log; };
        category general { default_log; };
        category dnssec { dnssec_log; };
        category queries { queries_log; };
        category update { update_debug; };
};

statistics-channels {
    inet 127.0.0.1 port 8053;
};

include "/etc/rndc.key";

controls {
        inet 127.0.0.1 port 953 allow { 127.0.0.1/32; ::1/128; } keys { "rndc-key"; };
};


zone "localhost" IN {
    type master;
    file "localhost.zone";
};

zone "0.0.127.in-addr.arpa" IN {
    type master;
    file "127.0.0.zone";
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" {
    type master;
    file "localhost.ip6.zone";
};

zone "255.in-addr.arpa" IN {
    type master;
    file "empty.zone";
};

zone "0.in-addr.arpa" IN {
    type master;
    file "empty.zone";
};

zone "." IN {
    type hint;
    file "root.hint";
};


zone "vpn-net.my-own-domain.net" IN {
    type slave;
    // master server srv-01
    masters { 10.128.1.1; };
    file "sec/vpn-net.my-own-domain.net";
};

zone "1.128.10.in-addr.arpa" IN {
    type slave;
    // master server srv-01
    masters { 10.128.1.1; };
    file "sec/1.128.10.in-addr.arpa";
};

zone "bern.my-own-domain.net" IN {
    type master;
    notify yes;
    // v pripade zmeny upozornit srv-01 a net-01
    also-notify { 10.128.1.1; 10.11.1.253; };
    // povolit prenos zony na srv-01 a net-01
    allow-transfer { 10.128.1.1; 10.11.1.253; };
    allow-update { key "rndc-key"; };
    file "pri/bern.my-own-domain.net";
};

zone "1.12.10.in-addr.arpa" IN {
    type master;
    notify yes;
    // v pripade zmeny upozornit srv-01 a net-01
    also-notify { 10.128.1.1; 10.11.1.253; };
    // povolit prenos zony na srv-01 a net-01
    allow-transfer { 10.128.1.1; 10.11.1.253; };
    allow-update { key "rndc-key"; };
    file "pri/1.12.10.in-addr.arpa";
};

zone "dhcp.bern.my-own-domain.net" {
    type master;
    // v pripade zmeny upozornit srv-01 a net-01
    //also-notify { 10.128.1.1; 10.11.1.253; };
    // povolit prenos zony na srv-01 a net-01
    //allow-transfer { 10.128.1.1; 10.11.1.253; };
    allow-update { key "rndc-key"; };
    file "pri/dhcp.bern.my-own-domain.net";
};

zone "praha.my-own-domain.net" IN {
    type slave;
    // master server net-01
    masters { 10.11.1.253; };
    file "sec/praha.my-own-domain.net";
};

zone "1.11.10.in-addr.arpa" IN {
    type slave;
    // master server net-01
    masters { 10.11.1.253; };
    file "sec/1.11.10.in-addr.arpa";
};

zone "local.my-own-domain.net" {
    type master;
    file "pri/local.my-own-domain.net";
};

// tato zona je pouze pro smyslenou domenu my-own-domain.net, ktera neni registrovana v internetu
zone "my-own-domain.net" IN {
    type slave;
    // master server srv-01
    masters { 10.128.1.1; };
    file "sec/my-own-domain.net";
};


// vim:set ts=4 sw=4 et:

Zónové soubory

U všech zónových souborů nastavíme vlastníka a skupinu named.

Zóna obsahující místní služby a další servery umístěné na lokalitě Bern:

$TTL 86400
@       IN SOA  net-02.bern.my-own-domain.net. root.my-own-domain.net. (
            2015022606 ; serial
            86400      ; refresh (8 hours)
            7200       ; retry (2 hours)
            604800     ; expire (1 week)
            86400      ; minimum (1 day)
        )

        NS      net-02.bern.my-own-domain.net.

@               A       10.12.1.253

net-02          A       10.12.1.253
gw-02           A       10.12.1.254

Reverzní záznamy pro celou interní síť na lokalitě Bern:

$ORIGIN .
$TTL 86400      ; 1 day
1.12.10.in-addr.arpa   IN SOA  net-02.bern.my-own-domain.net. root.my-own-domain.net. (
                                2015022631 ; serial
                                86400      ; refresh (8 hours)
                                7200       ; retry (2 hours)
                                604800     ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                        NS      net-02.bern.my-own-domain.net.
$ORIGIN 1.12.10.in-addr.arpa.
$TTL 3600       ; 1 hour

253       PTR     net-02.bern.my-own-domain.net.
254       PTR     gw-02.bern.my-own-domain.net.

Zóna určená pouze pro „dočasná“ zařízení, která se připojují do naší sítě:

$ORIGIN .
$TTL 86400      ; 1 day
dhcp.bern.my-own-domain.net IN SOA net-02.bern.my-own-domain.net. root.my-own-domain.net. (
                                2009043191 ; serial
                                28800      ; refresh (8 hours)
                                7200       ; retry (2 hours)
                                604800     ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                        NS      net-02.bern.my-own-domain.net.

Speciální zóna <code>local.my-own-domain.net</code>:

$TTL 86400
@       IN SOA  net-srv.local.my-own-domain.net. root.my-own-domain.net. (
            2015022608 ; serial
            86400      ; refresh (8 hours)
            7200       ; retry (2 hours)
            604800     ; expire (1 week)
            86400      ; minimum (1 day)
        )

        NS      net-02.bern.my-own-domain.net.

@               A       10.12.1.253

net-srv         A       10.12.1.253
gateway         A       10.12.1.254

Spuštění služby

Pře spuštěním DNS provedeme kontrolu syntaxe včetně master zónových souborů:

[root@net-02 var]# named-checkconf -z
zone localhost/IN: loaded serial 42
zone 0.0.127.in-addr.arpa/IN: loaded serial 42
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 42
zone 255.in-addr.arpa/IN: loaded serial 42
zone 0.in-addr.arpa/IN: loaded serial 42
zone bern.my-own-domain.net/IN: loaded serial 2015022606
zone 1.12.10.in-addr.arpa/IN: loaded serial 2015022631
zone dhcp.bern.my-own-domain.net/IN: loaded serial 2009043191

Pokud máme službu DNS na serveru nakonfigurovánu, můžeme ji povolit a spustit.

[root@net-02 pri]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
[root@net-02 pri]# systemctl start named

Máme-li se startem potíže, můžeme se podívat na logy do adresáře /var/log/named/.

Test služby

Podíváme se, zda jsou otevřeny síťové porty:

[root@net-02 pri]# netstat -lutpn | grep named
tcp        0      0 10.12.1.253:53          0.0.0.0:*               LISTEN      329/named
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      329/named
tcp        0      0 127.0.0.1:8053          0.0.0.0:*               LISTEN      329/named
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      329/named
tcp6       0      0 :::53                   :::*                    LISTEN      329/named
tcp6       0      0 ::1:953                 :::*                    LISTEN      329/named
udp        0      0 10.12.1.253:53          0.0.0.0:*                           329/named
udp        0      0 127.0.0.1:53            0.0.0.0:*                           329/named
udp6       0      0 :::53                   :::*                                329/named

Služba DNS opět využívá zejména port 53/tcp i /udp.

Pro otestování můžeme použít příkaz dig:

[root@net-02 pri]# dig @127.0.0.1 bern.my-own-domain.net

; <<>> DiG 9.10.2-P2 <<>> @127.0.0.1 bern.my-own-domain.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16284
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;bern.my-own-domain.net.                IN      A

;; ANSWER SECTION:
bern.my-own-domain.net. 86400   IN      A       10.12.1.253

;; AUTHORITY SECTION:
bern.my-own-domain.net. 86400   IN      NS      net-02.bern.my-own-domain.net.

;; ADDITIONAL SECTION:
net-02.bern.my-own-domain.net. 86400 IN A       10.12.1.253

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Jul 22 17:04:24 CEST 2015
;; MSG SIZE  rcvd: 104

Firewall

Nebude nastaven.

Nastavení překladu na serveru net-02

V souboru /etc/netctl/eno16777736 upravíme řádek DNS= na DNS=('127.0.0.1') a restartujeme síťové rozhraní:

[root@net-02 ~]# netctl restart eno16777736

Po této operaci by měl být obsah souboru /etc/resolv.conf následující:

# Generated by resolvconf
domain bern.my-own-domain.net
search local.my-own-domain.net my-own-domain.net praha.my-own-domain.net bern.my-own-domain.net
nameserver 127.0.0.1

Nastavení překladu na serveru gw-02

Na tuto změnu si musíme dát opět pozor, jelikož se bude provádět na obou síťových rozhraních.

Rozhraní do internetu:
V souboru /etc/netctl/eno16777736 odstraníme všechny řádky s názvem DNS. Zůstane nám pouze:

Description='Sitove rozhrani eno16777736 pro pristup do internetu'
Interface=eno16777736
Connection=ethernet
IP=static
Address=172.16.2.1/24'
Gateway='172.16.2.254'

Rozhraní do místní/interní sítě:
V souboru /etc/netctl/eno33554976 přidáme nastavení pro překlad DNS:

Description='Sitove rozhrani eno33554976 pro pristup do interni site'
Interface=eno33554976
Connection=ethernet
IP=static
Address='10.12.1.254/24'
DNS=('10.12.1.253')
DNSDomain='bern.my-own-domain.net'
DNSSearch='local.my-own-domain.net my-own-domain.net praha.my-own-domain.net bern.my-own-domain.net'

a restartujeme síťové rozhraní:

[root@gw-02 ~]# netctl restart eno16777736
[root@gw-02 ~]# netctl restart eno33554976

Po této operaci by měl být obsah souboru /etc/resolv.conf následující:

# Generated by resolvconf
domain praha.my-own-domain.net
search local.my-own-domain.net my-own-domain.net praha.my-own-domain.net bern.my-own-domain.net
nameserver 10.12.1.253

Jednoduchý test VPN a DNS

Zkusíme v našich sítích a na internetu přeložit některé názvy na IP adresy. Pokud vše pracuje, otestujeme latence a přístup na internet.

[root@net-01 netctl]# nslookup 10.128.1.1
Server:         127.0.0.1
Address:        127.0.0.1#53

1.1.128.10.in-addr.arpa name = srv-01.vpn-net.my-own-domain.net.

[root@net-01 netctl]# nslookup 10.128.1.2
Server:         127.0.0.1
Address:        127.0.0.1#53

2.1.128.10.in-addr.arpa name = gw-01.vpn-net.my-own-domain.net.

[root@net-01 netctl]# nslookup srv-01.vpn-net.my-own-domain.net
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   srv-01.vpn-net.my-own-domain.net
Address: 10.128.1.1

[root@net-01 netctl]# nslookup praha.my-own-domain.net
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   praha.my-own-domain.net
Address: 10.11.1.253

[root@net-01 netctl]# nslookup bern.my-own-domain.net
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   bern.my-own-domain.net
Address: 10.12.1.253

[root@net-01 netctl]# nslookup 10.12.1.253
Server:         127.0.0.1
Address:        127.0.0.1#53

253.1.12.10.in-addr.arpa        name = net-02.bern.my-own-domain.net.

[root@net-01 netctl]# nslookup srv-01
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   srv-01.my-own-domain.net
Address: 192.168.1.253

[root@net-01 netctl]# nslookup gw-02
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   gw-02.bern.my-own-domain.net
Address: 10.12.1.254

[root@net-01 netctl]# ping srv-01
PING srv-01.my-own-domain.net (192.168.1.253) 56(84) bytes of data.
64 bytes from 192.168.1.253: icmp_seq=1 ttl=62 time=0.812 ms
^C
--- srv-01.my-own-domain.net ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.812/0.812/0.812/0.000 ms

[root@net-01 netctl]# ping gw-01.vpn-net.my-own-domain.net
PING gw-01.vpn-net.my-own-domain.net (10.128.1.2) 56(84) bytes of data.
64 bytes from gw-01.vpn-net.my-own-domain.net (10.128.1.2): icmp_seq=1 ttl=64 time=0.402 ms
64 bytes from gw-01.vpn-net.my-own-domain.net (10.128.1.2): icmp_seq=2 ttl=64 time=0.322 ms

[root@net-01 netctl]# traceroute net-02
traceroute to net-02 (10.12.1.253), 30 hops max, 60 byte packets
 1  gw-01.praha.my-own-domain.net (10.11.1.254)  0.309 ms  0.299 ms  0.232 ms
 2  gw-02.vpn-net.my-own-domain.net (10.128.1.3)  6.545 ms  6.482 ms  6.741 ms
 3  net-02.bern.my-own-domain.net (10.12.1.253)  6.682 ms  7.277 ms  7.225 ms

[root@net-01 netctl]# nslookup google.com
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   google.com
Address: 173.194.116.228
Name:   google.com
Address: 173.194.116.230
Name:   google.com
Address: 173.194.116.231
Name:   google.com
Address: 173.194.116.233

[root@net-01 netctl]# ping google.com
PING google.com (173.194.116.233) 56(84) bytes of data.
64 bytes from prg02s11-in-f9.1e100.net (173.194.116.233): icmp_seq=1 ttl=54 time=24.3 ms
64 bytes from prg02s11-in-f9.1e100.net (173.194.116.233): icmp_seq=2 ttl=54 time=36.9 ms

[root@net-01 netctl]# traceroute google.com
traceroute to google.com (173.194.116.233), 30 hops max, 60 byte packets
 1  gw-01.praha.my-own-domain.net (10.11.1.254)  0.229 ms  0.194 ms  0.169 ms
 2  172.16.1.254 (172.16.1.254)  1.093 ms  1.031 ms  0.971 ms
 3  * * *
 4  192.168.18.1 (192.168.24.1)  7.764 ms  7.860 ms  7.806 ms
 5  192.168.0.1 (192.168.0.1)  7.814 ms  7.758 ms  14.566 ms
 6  * * *
 7  213.46.172.210 (213.46.172.210)  43.422 ms  45.386 ms  45.402 ms
 8  209.85.246.93 (209.85.246.93)  43.169 ms  30.712 ms  29.304 ms
 9  prg02s11-in-f9.1e100.net (173.194.116.233)  37.078 ms  30.072 ms  28.959 ms

[root@net-01 ~]# pacman -Syu
:: Synchronizing package databases...
 core                                           121.8 KiB   361K/s 00:00 [########################################] 100%
 extra                                         1745.6 KiB   102K/s 00:17 [########################################] 100%
 community                                        2.7 MiB   338K/s 00:08 [########################################] 100%
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Packages (3) libevent-2.0.22-1  links-2.10-1  postfix-3.0.2-1

Total Download Size:    4.29 MiB
Total Installed Size:  10.24 MiB
Net Upgrade Size:       2.24 MiB

:: Proceed with installation? [Y/n]

Následovat bude…

Tato část se věnovala zprovoznění VPN a DNS.

Do naší sítě můžeme připojovat zařízení s pevnými IP adresami, které vybereme z rozsahu 10.11.1.1-10.11.1.252 na lokalitě Praha a 10.12.1.1-10.12.1.252 na lokalitě Bern. Brány použijeme 10.11.1.254, 10.12.1.254 a DNS 10.11.1.253, 10.12.1.253. Síťové masky jsou ve všech sítích 255.255.255.0 (/24).

Příště nainstalujeme službu DHCP, která nám umožní přidělovat IP adresy nově připojeným zařízením automaticky, proxy server a webový server.

3 komentáře u „Síťová infrastruktura pro domácí prostředí a malé firmy (SOHO) – síťové služby 1

  1. Pingback: Jak jsem nasadil IPv6 | brichacek.net

  2. Pingback: Zajimave cteni | Blog J.Z. na NAS4y.NET

  3. Pingback: Arch Linux on Orange Pi Zero | brichacek.net

Napsat komentář