NAT64DNS64 » Historique » Version 3
Fabien Dupont, 28/05/2012 21:16
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 | 1 | Fabien Dupont | La configuration se fait au niveau du groupe « options » : |
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 | 1 | Fabien Dupont | h2. Ajout d'un NAT 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> |