Outils pour utilisateurs

Outils du site


Panneau latéral

Tips

Divers

Projets

Ham Radio

Machines

Research

Privé

Études

projets:mudrublic:dns

DNS

Configuration

Dans /var/named/etc/named.conf

options {
        version "";     // remove this to allow version queries

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

//      allow-recursion { clients; };
};

logging {
        //category lame-servers { null; };                                      
        category lame-servers { default_syslog; };                              
        category update { default_syslog; };                                    
        category security { default_syslog; };        
};

// Standard zones
//
zone "." {
        type hint;
        file "standard/root.hint";
};

zone "localhost" {
        type master;
        file "standard/localhost";
        allow-transfer { localhost; };
};

zone "127.in-addr.arpa" {
        type master;
        file "standard/loopback";
        allow-transfer { localhost; };
};

zone "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 "standard/loopback6.arpa";
        allow-transfer { localhost; };
};

// "VeriSign patch"
zone "com" {
      type delegation-only;
};

zone "net" {
      type delegation-only;
};

// Specific zones
zone "narf.ssji.net" {
        type master;
        file "master/narf.ssji.net.zone";
};

zone "0.10.in-addr.arpa" {
        type master;
        file "master/0.10.in-addr.arpa";
}; 

Zones

narf.ssji.net.zone

$ORIGIN narf.ssji.net.
$TTL 21600      ; 6 hours
@                       IN SOA  mudrublic.narf.ssji.net. shtrom-narf-ssji.ssji.net. (
                                2005060541 ; serial
                                3600       ; refresh (1 hour)
                                1800       ; retry (30 minutes)
                                604800     ; expire (1 week)
                                3600       ; minimum (1 hour)
                                )
                        NS      ns1.narf.ssji.net.
$ORIGIN narf.ssji.net.
mudrublic               A       10.0.0.1
shmoldu                 A       10.0.0.2

ns1                     CNAME   mudrublic
wpad                    CNAME   mudrublic

$ORIGIN flying.narf.ssji.net.
mudrublic               A       10.0.1.1

ns1                     CNAME   mudrublic
wpad                    CNAME   mudrublic
www                     CNAME   shmoldu

0.10.in-addr.arpa

$ORIGIN 0.10.in-addr.arpa.
$TTL 6h

@       IN      SOA     mudrublic.narf.ssji.net. shtrom-narf-ssji.ssji.net. (
                        2005060501      ; serial
                        1h      ; refresh
                        30m     ; retry
                        7d      ; expiration
                        1h )    ; minimum

                NS      ns1.narf.ssji.net.

$ORIGIN 0.0.10.in-addr.arpa.
1               PTR     mudrublic.narf.ssji.net.
2               PTR     shmoldu.narf.ssji.net.

$ORIGIN 1.0.10.in-addr.arpa.
1               PTR     mudrublic.flying.narf.ssji.net.

Droits dans le chroot

Named est chroot()é et setuid()é. On donne tous les fichiers du chroot à l'user named.

$ sudo chown -R named /var/named

rndc

Il n'y a rien à faire pour qu'il marche grâce aux fichiers (/var/named)+/etc/rndc.conf

Utilisation du DNS local

Add in /etc/dhclient.conf.

prepend domain-name-servers 127.0.0.1;

DDNS Updates

Clé

La clé à générer est du même format que celle pour rndc, on utilise rndc-confgen:

$ rndc-confgen -a -c ~/dhcp_updater.key -k DHCP_UPDATER
wrote key file "~/dhcp_updater.key"

dhcpd

On a besoin d'un ISC-DHCP 3.0:

$ sudo pkg_add isc-dhcp-server-3.0.2.tgz
$ sudo mv /usr/sbin/dhcpd /usr/sbin/dhcpd.old
$ sudo ln -s /usr/local/sbin/dhcpd /usr/sbin/dhcpd

Dans /etc/rc.conf:

  • dhcpd_flags=“”dhcpd_flags=“-q”

On ajoute la clé dhcp_updater.key au début de /etc/dhcpd.conf et on en change les droits:

$ sudo chmod 600 /etc/dhcpd.conf

Dans /etc/dhcpcd.conf:

ddns-update-style interim;
ignore client-updates;

key DHCP_UPDATER {
        algorithm hmac-md5;
        secret "xxx";
};

zone narf.ssji.net. {
        primary 127.0.0.1;
        key DHCP_UPDATER;
}

zone 0.10.in-addr.arpa. {
        primary 127.0.0.1;
        key DHCP_UPDATER;
}

Les zones à mettre à jour:

shared-network 10.0.0.0 {
        ddns-domainname "narf.ssji.net";
}

shared-network 10.0.1.0 {
        ddns-domainname "flying.narf.ssji.net";
(...)
}

named

Rajouter le contenu de dhcp_updater.key dans /var/named/etc/named.conf:

$ sudo sh -c "cat ~/dhcp_updater.key >> /var/named/etc/named.conf"

Rajouter aussi cette la ligne allow-update dans chaque zone devant être mise à jour.

allow-update { key DHCP_UPDATER; };

:!: le ddns-update à tendance à pourrir les fichiers de zones qu'il modifie, il vaut mieux penser à en faire des sauvegardes. :!:

Views

On veut être un Authoritative server pour narf.ssji.net par rapport à l'extérieur.

ACL

On veut discriminer les gens à leur IP pour savoir si il viennent du réseau local ou non. On créé une ACL qu'on rajoute dans le named.conf. On autorise ensuite la récursion (demande au DNS de résoudre lui même des noms sur lesquels il n'est pas autoritatif) seulement pour les client locaux.

acl local {
        127.0.0.1;
        10.0.0.0/24;
        10.0.1.0/24;
        ::1;
        2001:7a8:4cc2:100::/64;                                                         
        2001:7a8:4cc2:101::/64;
};

options {
        (...)
        allow-recursion { "local"; };
};

Séparation

On sépare ensuite, le named.conf en deux views:

  • la vue local pour les machines internes qui résoud tout et dans laquelle les ddns-updates sont autorisées
  • la vue outside pour tout le reste qui ne résoud que ce pour quoi elle est authoritative
view "local" {
        match-clients {"local"; };
        (...)
        zone "narf.ssji.net" {
                type master;
                file "master/narf.ssji.net.zone.local";
                allow-update { key DHCP_UPDATER; };
        };
        (...)
};

view "outside" {
        match-clients {"any"; };
        zone "narf.ssji.net" {
                type master;
                file "master/narf.ssji.net.zone";
        };
};

Zones

narf.ssji.net.zone.local

Elle contient les adresses IPv4 locales non routables. Il s'agit de l'ancienne narf.ssji.net.zone.

narf.ssji.net.zone

Elle contient les pointeurs vers l'adress IPv4 du FAI, la seule qui ait cours en dehors du réseau local…

$ORIGIN narf.ssji.net.
$TTL 21600      ; 6 hours
@                       IN SOA  mudrublic.narf.ssji.net. shtrom-narf-ssji.ssji.net. (
                                2005061812 ; serial
                                3600       ; refresh (1 hour)
                                1800       ; retry (30 minutes)
                                604800     ; expire (1 week)
                                3600       ; minimum (1 hour)
                                )
                        NS      ns1.narf.ssji.net.

$ORIGIN narf.ssji.net.
mudrublic               A       81.56.148.2

shmoldu                 A       81.56.148.2

ns1                     CNAME   mudrublic
www                     CNAME   shmoldu

$ORIGIN flying.narf.ssji.net.
mudrublic               A       81.56.148.2

ns1                     CNAME   mudrublic

IPv6

On a (grâce au tunnel) des adresses en 2001:7a8:4cc2:100:/65 (100 et 101 selon l'interface). On peut rajouter les associations de type 'AAAA' et 'A6' directement dans les fichiers de zones. Comme ce sera deux fois exactement les même infos (local et outside), on va plutôt faire un $INCLUDE

On rajoute donc dans narf.ssji.net.zone et narf.ssji.net.zone.local la ligne suivante

$INCLUDE master/ip6.narf.ssji.net

Et dans le fichier ip6.narf.ssji.net on peut mettre toutes nos adresses IPv6.

ip6.narf.ssji.net

$ORIGIN narf.ssji.net.
@                       A6      48 0:0:0:100:: netv6.whymper.ssji.net.
mudrublic               AAAA    2001:7a8:4cc2:100::1
                        A6      64 ::1 @
;\[x0000000000000001]    PTR     mudrublic

faterv                  AAAA    2001:7a8:4cc2:100:240:f4ff:fe75:c005
                        A6      64 ::240:f4ff:fe75:c005 @
;\[x0240F4FFFE75C005]    PTR     faterv

itadakamisu             AAAA    2001:7a8:4cc2:100:290:27ff:fe5b:83e7
                        A6      64 ::290:27ff:fe5b:83e7 @
;\[x029027FFFE5B83E7]    PTR     itadakamisu

paperbox                AAAA    2001:7a8:4cc2:100:200:c0ff:fe3c:36d4
                        A6      64 ::200:c0ff:fe3c:36d4 @
;\[x0200C0FFFE3C36D4]    PTR     paperbox

schtrnick               AAAA    2001:7a8:4cc2:100:208:c7ff:fe0c:82ab
                        A6      64 ::208:c7ff:fe0c:82ab @
;\[x0208C7FFFE0C82AB]    PTR     schtrnick

shmoldu                 AAAA    2001:7a8:4cc2:100:250:fcff:fe24:a183
                        A6      64 ::250:fcff:fe24:a183 @
;\[x0250FCFFFE24A183]    PTR     shmoldu

; KsK
elena                   AAAA    2001:7a8:4cc2:100:211:24ff:fe79:a67a
                        A6      64 ::211:24ff:fe79:a67a @
;\[x021124FFFE79A67A]    PTR     elena

$ORIGIN flying.narf.ssji.net.
@                       A6      48 0:0:0:101:: netv6.whymper.ssji.net.
mudrublic               AAAA    2001:7a8:4cc2:101::1
                        A6      64 ::1 @
;\[x0000000000000001]    PTR     mudrublic

schtrnick               AAAA    2001:7a8:4cc2:101:209:b5ff:fe8b:234a
                        A6      64 ::209:b5ff:fe8b:234a @
;\[x0209B5FFFE8B234A]    PTR     schtrnick

; KsK
elena                   AAAA    2001:7a8:4cc2:101:211:24ff:fe92:3493
                        A6      64 ::211:24ff:fe92:3493 @
;\[x021124FFFE923493]    PTR     elena

Zones arpa et int

Elle vont toutes les deux contenir les mêmes informations, au moins à la base. Pour éviter la redondance, on les mets dans un fichier qui sera $INCLUDEé.

Adresses

Dans le fichier ip6.0.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2:

1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0   IN  PTR mudrublic.narf.ssji.net.
f.d.6.6.4.5.e.f.f.f.1.a.8.0.2.0   IN  PTR drublic.narf.ssji.net.
4.d.6.3.c.3.e.f.f.f.0.c.0.0.2.0   IN  PTR paperbox.narf.ssji.net.
3.8.1.a.4.2.e.f.f.f.c.f.0.5.2.0   IN  PTR shmoldu.narf.ssji.net.
5.0.0.c.5.7.e.f.f.f.4.f.0.4.2.0   IN  PTR faterv.narf.ssji.net.
b.a.2.8.c.0.e.f.f.f.7.c.8.0.2.0   IN  PTR schtrnick.narf.ssji.net.
7.e.3.8.b.5.e.f.f.f.7.2.0.9.2.0   IN  PTR itadakamisu.narf.ssji.net.

; KsK
a.7.6.a.9.7.e.f.f.f.4.2.1.1.2.0   IN  PTR elena.narf.ssji.net.

Et dans ip6.1.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2:

1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0   IN  PTR mudrublic.flying.narf.ssji.net.
a.4.3.2.b.8.e.f.f.f.b.5.9.0.2.0   IN  PTR schtrnick.flying.narf.ssji.net.

; KsK
3.9.4.3.2.9.e.f.f.f.4.2.1.1.2.0   IN  PTR elena.flying.narf.ssji.net.

ip6.int

On rajoute pour chaque vue.

        zone "0.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.ip6.int" {
                type master;
                file "master/0.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.ip6.int";
        };
        zone "1.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.ip6.int" {
                type master;
                file "master/1.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.ip6.int";
        };

La zone 0.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.ip6.int:

$ORIGIN 0.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.in-addr.ip6.int
$TTL 21600      ; 6 hours
@                       IN SOA  mudrublic.narf.ssji.net. shtrom-narf-ssji.ssji.net. ( 
                                2005061801 ; serial
                                3600       ; refresh (1 hour)
                                1800       ; retry (30 minutes)
                                604800     ; expire (1 week)
                                3600       ; minimum (1 hour)
                                )
                        NS      ns1.narf.ssji.net.

$INCLUDE master/ip6.0.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2

Et 1.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.in-addr.ip6.int:

$ORIGIN 1.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.ip6.int.
$TTL 21600      ; 6 hours
@                       IN SOA  mudrublic.ssji.net. shtrom-narf-ssji.ssji.net. (
                                2005061805 ; serial
                                3600       ; refresh (1 hour)
                                1800       ; retry (30 minutes)
                                604800     ; expire (1 week)
                                3600       ; minimum (1 hour)
                                )
                        NS      ns1.narf.ssji.net.


$INCLUDE master/ip6.1.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2

ip6.arpa

On rajoute pour chaque vue.

        zone "0.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.ip6.arpa" {
                type master;
                file "master/0.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.ip6.arpa";
        };
        zone "1.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.ip6.arpa" {
                type master;
                file "master/1.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.ip6.arpa";
        };

La zone 0.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.ip6.arpa:

$ORIGIN 0.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.in-addr.ip6.arpa
$TTL 21600      ; 6 hours
@                       IN SOA  mudrublic.narf.ssji.net. shtrom-narf-ssji.ssji.net. ( 
                                2005061801 ; serial
                                3600       ; refresh (1 hour)
                                1800       ; retry (30 minutes)
                                604800     ; expire (1 week)
                                3600       ; minimum (1 hour)
                                )
                        NS      ns1.narf.ssji.net.

$INCLUDE master/ip6.0.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2

Et 1.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.in-addr.ip6.arpa:

$ORIGIN 1.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.ip6.arpa.
$TTL 21600      ; 6 hours
@                       IN SOA  mudrublic.ssji.net. shtrom-narf-ssji.ssji.net. (
                                2005061805 ; serial
                                3600       ; refresh (1 hour)
                                1800       ; retry (30 minutes)
                                604800     ; expire (1 week)
                                3600       ; minimum (1 hour)
                                )
                        NS      ns1.narf.ssji.net.


$INCLUDE master/ip6.1.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2

Redondance

Serveurs secondaires

On va autoriser les serveurs de Ssji à être secondaires pour la zone narf.ssji.net. On leur créé une nouvelle ACL:

acl ssji {
        62.212.108.4;
        213.41.140.194;
2001:7a8:3030::face;
2001:7a8:4cc2::1;
};
(...)
view "outside" {
        (...)
        zone "narf.ssji.net" {
                (...)
                allow-transfer { ssji; };
        };

        zone "0.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.ip6.int" {
                (...)
                allow-transfer { ssji; };
        };

        zone "1.0.1.0.2.c.c.4.8.a.7.0.1.0.0.2.ip6.int" {
                (...)
                allow-transfer { ssji; };
        };
};

On rajoute dans le SOA de toutes nos zone

                        NS      whymper.ssji.net.
                        NS      zorglub.ssji.net.

Serveurs primaires

De même, on va servir de serveurs secondaire à Ssji.

view "outside" {
        (...)
        zone "ssji.net" {                                                       
                type slave;                                                     
                masters { 62.212.108.48; };                                     
                allow-transfer { ssji; };                                       
        };
};
projets/mudrublic/dns.txt · Dernière modification: 2013-11-15 05:06 (modification externe)