Projet

Général

Profil

NAT64DNS64 » Historique » Version 5

Fabien Dupont, 28/05/2012 21:25

1 1 Fabien Dupont
h1. Mise en place d'un LAN « IPv6 only » sous debian
2 1 Fabien Dupont
3 1 Fabien Dupont
h2. Principe
4 1 Fabien Dupont
5 1 Fabien Dupont
<pre>                                           DNS (dns64)
6 1 Fabien Dupont
                                            ________  
7 1 Fabien Dupont
                                           |==|=====| 
8 1 Fabien Dupont
                       ipv4.example.com    |  |     | 
9 1 Fabien Dupont
                  .----------------------->|  |     | 
10 1 Fabien Dupont
                  |                        |  |     | 
11 1 Fabien Dupont
                  |                        |  |     | 
12 1 Fabien Dupont
                  |                        |  |====°| 
13 1 Fabien Dupont
                  |                        |__|_____| 
14 1 Fabien Dupont
              ____   __                         |
15 1 Fabien Dupont
             |    | |==|                        |
16 1 Fabien Dupont
             |____| |  |<-----------------------'
17 1 Fabien Dupont
             /::::/ |__|  2001:910:109c:ffff::5be0:958e
18 1 Fabien Dupont
                  |
19 1 Fabien Dupont
                  |
20 1 Fabien Dupont
                  |                                                                         .--.               
21 1 Fabien Dupont
                  |                           .---.                                     _ -(    )- _           
22 1 Fabien Dupont
                  |                          /   /|                                .--,(            ),--.      
23 1 Fabien Dupont
                  |                         .---. |                            _.-(                       )-._ 
24 1 Fabien Dupont
                  '------------------------>|   | ' ------------------------->(           INTERNET            )
25 1 Fabien Dupont
           2001:910:109c:ffff::5be0:958e    |   |/          91.224.149.142     '-._(                     )_.-' 
26 1 Fabien Dupont
                                            '---'                                   '__,(            ),__'     
27 1 Fabien Dupont
                                            Routeur                                      - ._(__)_. -          
28 1 Fabien Dupont
                                            (nat 64)</pre>
29 1 Fabien Dupont
30 1 Fabien Dupont
h2. Installation/configuration de bind (DNS64)
31 1 Fabien Dupont
32 1 Fabien Dupont
DNS64 n'est supporté qu'à partir de debian « wheezy ».
33 1 Fabien Dupont
34 1 Fabien Dupont
<pre># cat 'APT::Default-Release "squeeze";' > /etc/apt/apt.conf.d/90default
35 1 Fabien Dupont
# cat 'deb http://apt.kafe-in.net:3142/debian wheezy main contrib' > /etc/apt/sources.list.d/wheezy.list
36 1 Fabien Dupont
# aptitude update
37 1 Fabien Dupont
# aptitude -t wheezy install bind9
38 1 Fabien Dupont
</pre>
39 1 Fabien Dupont
40 4 Fabien Dupont
La configuration se fait au niveau du groupe « options » de /etc/bind/named.conf :
41 1 Fabien Dupont
42 1 Fabien Dupont
<pre>options {
43 1 Fabien Dupont
(...)
44 1 Fabien Dupont
        listen-on-v6 { any; };
45 1 Fabien Dupont
        dns64 2001:910:109c:ffff::/96 {
46 1 Fabien Dupont
                clients { any; };
47 1 Fabien Dupont
                recursive-only yes;
48 1 Fabien Dupont
        };
49 1 Fabien Dupont
(...)
50 1 Fabien Dupont
}</pre>
51 1 Fabien Dupont
52 1 Fabien Dupont
h2. Installation/configuration de tayga (NAT64)
53 1 Fabien Dupont
54 1 Fabien Dupont
<pre># aptitude install tayga
55 1 Fabien Dupont
# echo << EOF > /etc/tayga.conf
56 1 Fabien Dupont
tun-device nat64
57 1 Fabien Dupont
ipv4-addr 192.168.255.1
58 1 Fabien Dupont
prefix 2001:910:109c:ffff::/96
59 1 Fabien Dupont
dynamic-pool 192.168.255.0/24
60 1 Fabien Dupont
data-dir /var/spool/tayga
61 1 Fabien Dupont
EOF
62 1 Fabien Dupont
# echo "net.ipv4.conf.all.forwarding=1" > /etc/sysctl.d/99forwarding
63 1 Fabien Dupont
# echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.d/99forwarding
64 3 Fabien Dupont
# /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
65 3 Fabien Dupont
# /sbin/iptables -A FORWARD -i eth0 -o nat64 -m state --state RELATED,ESTABLISHED -j ACCEPT
66 3 Fabien Dupont
# /sbin/iptables -A FORWARD -i nat64 -o eth0 -j ACCEPT
67 1 Fabien Dupont
# sed -i -e 's/^RUN="no"/RUN="yes"/' /etc/default/tayga
68 1 Fabien Dupont
# /etc/init.d/tayga start</pre>
69 1 Fabien Dupont
70 5 Fabien Dupont
h2. Ajout d'un NAT en entrée IPv4 vers IPv6
71 1 Fabien Dupont
72 1 Fabien Dupont
Le problème du « IPv6 only » dans le cas où l'on héberge un serveur (sur le LAN) est qu'il faut forwarder les requêtes venant d'une IPv4 vers le serveur qui écoute sur une IPv6.  
73 1 Fabien Dupont
Il semble compliqué de se contenter de ne recevoir les mails que via IPv6...
74 1 Fabien Dupont
75 1 Fabien Dupont
Tayga permet de « mapper » des IPv4 complètement virtuelles (utilisées sur aucune interfaces) vers des IPv6.  
76 1 Fabien Dupont
Admettons qu'on veut forwarder les requêtes entrantes sur le port TCP 25 dans l'interface eth0 vers l'IPv6 2001:910:109c:1::25.
77 1 Fabien Dupont
78 1 Fabien Dupont
<pre>
79 1 Fabien Dupont
# echo "map 192.168.255.25 2001:910:109c:1::25" >> /etc/tayga.conf
80 1 Fabien Dupont
# /sbin/iptables -t nat -A PREROUTING -p tcp --dport 25 -i eth0 --to 192.168.255.25:25 -j DNAT 
81 1 Fabien Dupont
# /sbin/iptables -A FORWARD -i eth0 -o nat64 -d 192.168.255.25 -p tcp --dport 25 -j ACCEPT
82 1 Fabien Dupont
# /sbin/ip6tables -A FORWARD -i nat64 -d 2001:910:109c:1::25 -p tcp --dport 25 -j ACCEPT
83 1 Fabien Dupont
# /etc/init.d/tayga restart</pre>
84 2 Fabien Dupont
85 2 Fabien Dupont
h2. Problèmes liés à cette architecture
86 2 Fabien Dupont
87 2 Fabien Dupont
* Peu de serveurs DNS répondent sur IPv6. Le serveur DNS +doit+ avoir une connectivité IPv4 car il interroge des IP et non des domains donc pas de DNS64.
88 2 Fabien Dupont
* A priori, bind pert les pédales en cas d'un enregistrement CNAME vers un CNAME vers un A. Exemple :
89 2 Fabien Dupont
<pre>$ host -t aaaa fr.wikipedia.org
90 2 Fabien Dupont
Host fr.wikipedia.org not found: 3(NXDOMAIN)
91 2 Fabien Dupont
$ host -t a fr.wikipedia.org
92 2 Fabien Dupont
fr.wikipedia.org is an alias for wikipedia-lb.wikimedia.org.
93 2 Fabien Dupont
wikipedia-lb.wikimedia.org is an alias for wikipedia-lb.esams.wikimedia.org.
94 2 Fabien Dupont
wikipedia-lb.esams.wikimedia.org has address 91.198.174.225
95 2 Fabien Dupont
$ host -t aaaa wikipedia-lb.wikimedia.org
96 2 Fabien Dupont
wikipedia-lb.wikimedia.org is an alias for wikipedia-lb.esams.wikimedia.org.
97 2 Fabien Dupont
wikipedia-lb.esams.wikimedia.org has IPv6 address 2001:910:109c:ffff::5bc6:aee1</pre>