Newsgroup: it.comp.os.linux.sys
Titolo: Quale configurazione del kernel per -j MASQUERADE?

Salve, ho provato ad abilitare il NAT( per essere precisi masquerading,
sono in dialup con un 56k) ma non ci sono riuscito. La
regola che uso è corretta(corrisponde a quella dei vari HOWTO e sul kernel
della distro va bene), ma sul kernel che ho ricompilato io(e non è il
primo che ricompilo) mi dice sempre iptables: invalid
argument(che deriva da un EINVAL della chiamata di sistema). Posto un
estratto del mio .config:
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
#
#   IP: Netfilter Configuration
#
CONFIG_IP_NF_CONNTRACK=m
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_LIMIT=m
# CONFIG_IP_NF_MATCH_MAC is not set
# CONFIG_IP_NF_MATCH_PKTTYPE is not set
# CONFIG_IP_NF_MATCH_MARK is not set
CONFIG_IP_NF_MATCH_MULTIPORT=m
# CONFIG_IP_NF_MATCH_TOS is not set
# CONFIG_IP_NF_MATCH_ECN is not set
# CONFIG_IP_NF_MATCH_DSCP is not set
# CONFIG_IP_NF_MATCH_AH_ESP is not set
# CONFIG_IP_NF_MATCH_LENGTH is not set
# CONFIG_IP_NF_MATCH_TTL is not set
# CONFIG_IP_NF_MATCH_TCPMSS is not set
CONFIG_IP_NF_MATCH_HELPER=m
CONFIG_IP_NF_MATCH_STATE=m
CONFIG_IP_NF_MATCH_CONNTRACK=m
CONFIG_IP_NF_MATCH_UNCLEAN=m
CONFIG_IP_NF_MATCH_OWNER=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
# CONFIG_IP_NF_TARGET_MIRROR is not set
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_NAT_LOCAL=y
# CONFIG_IP_NF_NAT_SNMP_BASIC is not set
CONFIG_IP_NF_NAT_IRC=m
CONFIG_IP_NF_NAT_FTP=m
# CONFIG_IP_NF_MANGLE is not set
CONFIG_IP_NF_TARGET_LOG=m
# CONFIG_IP_NF_TARGET_ULOG is not set
# CONFIG_IP_NF_TARGET_TCPMSS is not set
# CONFIG_IP_NF_ARPTABLES is not set
# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
# CONFIG_IP_NF_COMPAT_IPFWADM is not set
Uso un 2.4.20(il problema è sia col vanilla sia con una versione patchata
col ck7 di Con Kolivas;
pensavo derivasse dalla patch ma anche il vanilla dà lo stesso problema).
La regola che provo a dare è:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Ma mi dà sempre lo stesso errore. Posso aggiungere altri target sulle
chain della tabella filter, ma né MASQUERADE né DNAT/SNAT. Non riesco a
venirne a capo. Cosa mi può servire ancora? Il supporto alla tabella
mangle per caso? Vi prego!
Questa è la mia conf. di iptables:
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
17400 7890K ACCEPT     all  --  lo     any     anywhere             anywhere
23132 3521K ACCEPT     all  --  tap0   any     anywhere             anywhere
    0     0 ACCEPT     all  --  tap1   any     anywhere             anywhere
   12   720 log_drop   icmp --  any    any     anywhere             anywhere           icmp !echo-reply
    0     0 log_drop   tcp  --  any    any     anywhere             anywhere           tcp dpt:x11
    0     0 log_drop   tcp  --  any    any     anywhere             anywhere           tcp dpt:ipp
    0     0 log_drop   udp  --  any    any     anywhere             anywhere           udp dpt:ipp
    0     0 log_drop   udp  --  any    any     anywhere             anywhere           udp dpt:833
   18   864 log_drop   tcp  --  any    any     anywhere             anywhere           tcp dpt:http
    0     0 log_drop   tcp  --  any    any     anywhere             anywhere           tcp dpt:webcache
15046 9409K ACCEPT     all  --  any    any     anywhere             anywhere           state RELATED,ESTABLISHED
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere           udp dpt:4665
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere           tcp dpts:4661:4662
   97  4551 log_drop   all  --  any    any     anywhere             anywhere
Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       all  --  any    any     anywhere             anywhere
    0     0 ACCEPT     all  --  tap+   any     anywhere             anywhere           state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  any    tap+    anywhere             anywhere           state RELATED,ESTABLISHED
[La drop all'inizio è provvisoria, finché non abilito il NAT non ha senso).
Chain OUTPUT (policy ACCEPT 60001 packets, 12M bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain log_drop (8 references)
 pkts bytes target     prot opt in     out     source               destination
   14  1027 LOG        all  --  any    any     anywhere             anywhere           LOG level warning prefix `[iptables] DROP: '
    4   427 REJECT     tcp  --  any    any     anywhere             anywhere           reject-with tcp-reset
  123  5708 DROP       all  --  any    any     anywhere            
anywhere
Se dovesse servire: in realtà non ho altre macchine connesse in rete, il
forwarding mi serve per delle Macchine virtuali che appaiono sulle
interfacce tap0, tap1... che creo con User mode linux(vedi Google). Hanno
indirizzi privati di subnet(192.168.0.n), quindi mi serve.
-- 
cat <<EOSIGN
Paolo Giarrusso, aka Blaisorblade(togliere solo REMOVEONLYTHIS per rispondere)
Kernel 2.4.20/2.5.63 on an i686; Linux registered user n. 292729
EOSIGN

Blaisorblade wrote:

Prova ad abilitare il mangle

 Prova ad abilitare il mangle
Prova ad abilitare il QUOTING!
Davide

 sull'arcano significato di "-t nat" e di "-t mangle"
Dopo queste battutone(spero non rivolto a me dato che io la so la
differenza), rispondo che: ho provato anche ad abilitare il mangle nella
conf. del kernel: dato che il problema è illogico, ho pensato che la
logica "siccome modifica i pacchetti FORSE ne ha bisogno", poco sensata,
fosse giusta, ma non va, e  iptables continua a
mandarmi laconicamente a quel paese. La cosa mi rende molto allegro. Non
voglio usare il kernel Mdk, voglio ricompilarlo io e farlo funzionare.
