blob: 6f34f3d206513673f3cf7f68045eb6aa63dee2dd [file] [log] [blame]
Willy Tarreaud1142aa2007-01-07 13:03:59 +01001Nécessite CAP_NET_ADMIN (12)
2On peut donc aussi mettre CAP_NET_BIND_SERVICE (10) pour autoriser les ports < 1024
3
4
5charger le module :
6# modprobe ip_conntrack hashsize=65536
7# modprobe iptable_tproxy hashsize=65536
8# echo 15 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_time_wait
9# echo 30 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_fin_wait
10
11
12Si on utilise "usesrc client", alors on rencontre ce problème en cas
13de réutilisation d'un port :
14
15# dmesg
16IP_TPROXY: error applying NAT mapping, hooknum=4 0103000a:e5a2 -> 05000001:d204
17IP_TPROXY: error applying NAT mapping, hooknum=4 0103000a:e5a2 -> 05000001:d204
18
19Solution retenue pour la configuration :
20
21 You have to write "usesrc XXXX" on the "source" line. "XXXX" is either
22 an IP address or the keyword "clientip" to reuse the client's IP with
23 a dynamically allocated port, or "client" to reuse both the client's IP
24 and port (dangerous). But due to the way cttproxy works, the source address
25 is mandatory. Eg:
26
27 backend static
28 source 192.168.1.254 usesrc clientip
29 server static1 192.168.1.10 source 192.168.1.254 usesrc clientip
30
31
32---- Anciennes réflexions ----
33
34Il faudrait donc peut-être toujours avoir un port dynamique, ou bien
35traiter le TIME_WAIT correctement en appliquant natdel => corrige pratiquement
36toujours le problème (mais réduire les timeouts semble important)
37
38
39 source 10.1.2.3 present 10.2.3.4
40 source 10.1.2.3 present same_ip
41 source 10.1.2.3 present same
42 source 10.1.2.3:5000 present same
43
44 source 10.1.2.3 appear_as 10.2.3.4
45 source 10.1.2.3 appear_as same_ip
46 source 10.1.2.3 appear_as same
47 source 10.1.2.3:5000 appear_as same
48
49 source 10.1.2.3 {keepsrc | keepip | usesrc 1.2.3.4}
50
51 source 10.1.2.3 snat { client | clientip | 1.2.3.4 }
52 source 10.1.2.3 extbind same
53 source 10.1.2.3 intercept same
54 source 10.1.2.3 spoof same
55 source 10.1.2.3 showsrc same
56 source 10.1.2.3 usesrc same
57 source 10.1.2.3 setsrc same
58 source 10.1.2.3 withsrc same
59 source 10.1.2.3 usesrc clientip:sameport
60 source 10.1.2.3 alias same
61 source 10.1.2.3 as same
62 source 10.1.2.3 outgoing same
63 source 10.1.2.3 public same
64 source 10.1.2.3:5000 pretend same
65
66 source 10.1.2.3=same
67 source 10.1.2.3=10.2.3.4
68
69 source 10.1.2.3^same
70 source 10.1.2.3^10.2.3.4
71
72 source 10.1.2.3@same
73 source 10.1.2.3@10.2.3.4
74
75 source 10.1.2.3!same
76 source 10.1.2.3!10.2.3.4
77
78 source 10.1.2.3|same
79 source 10.1.2.3|10.2.3.4
80
81 source 10.1.2.3(same)
82 source 10.1.2.3(10.2.3.4)
83
84 source 10.1.2.3~same
85 source 10.1.2.3~10.2.3.4
86
87A l'inverse, si "source" contient l'adresse vue :
88
89 source same bindto 1.2.3.4
90 source 2.3.4.5 bindto 1.2.3.4
91
92Problème: si "bindto" est oublié, le bind sur 2.3.4.5 ne fonctionnera pas.
93
94Pour l'adresse de listen (avec "bind"), il serait bien que l'adresse
95translatée apparaisse au même niveau que l'IP afin que les plages et
96listes continuent de fonctionner par association.
97
98Différences entre source et bind :
99 - source: 1 seule IP source, éventuellement un port, plus tard une plage
100 - bind : liste de (IP source facultatives, port obligatoire, parfois une plage)
101