ca fait quelque temps que je tourne autour de mon probleme, sans en trouver la solution.
Tout est decrit ici (avec un trace ethereal prise sur ma debian faisant office de firewall/routeur):
http://famillejacques.free.fr/fbx/
Le modem ADSL dont je cherche a partager la connexion est une freebox (v1).
Je reprend quelques elements de la page ici, pour faciliter la recherche dans le forum.
Configuration:
Client Windows XP - avec une interface ethernet, adresse statique 192.168.0.1 - default gateway: 192.168.0.2
Debian woody + iptables - avec deux interfaces ethernet:
eth0: dhcp (relie a la freebox)
eth1: 192.168.0.2 (relie a un switch - lui meme relie au client Win XP 192.168.0.1)
Freebox V1 (ADSL01)
Symptomes:
Du routeur Linux, aucun problemes
Du client windows, internet fonctionne mais est tres lent voir meme ne marche pas sur certains (gros) sites ou en telechargement (http get sur test-debit.free.fr)
Pour essayer de tracer tout ca, j'ai utilise ethereal en regardant a la fois les interfaces eth0 et eth1 du routeur. Le resultat est sur http://famillejacques.free.fr/fbx (fait avec http://callflow.sourceforge.net).
On peut y voir les choses suivantes:
La trame 15 est une retransmission de la trame 11 (envoyee 3s apres). Apparement le ACK de la trame 13, forwarde par iptables n'est jamais arrive.
D'autre trucs pas super se passent... Et je n'arrive pas vraiment a diagnostiquer ce qui se passe.
Voici les regles IPTABLES que j'utilise (honteusement recopie de l'excellent guide d'Alexis de Lattre (http://www.via.ecp.fr/~alexis/formation-linux/)
- Code: Tout sélectionner
# iptables -v -L
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
8 560 ACCEPT all -- lo any anywhere anywhere
1 60 ACCEPT icmp -- any any anywhere anywhere
0 0 ACCEPT igmp -- any any anywhere anywhere
93 11008 ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ftp-data
0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ftp
1 52 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ssh
0 0 ACCEPT udp -- any any anywhere anywhere udp dpt:1234
289 39115 REJECT all -- any any anywhere anywhere reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT 309 packets, 83914 bytes)
pkts bytes target prot opt in out source destination
18 936 TCPMSS tcp -- any eth0 anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
Chain OUTPUT (policy ACCEPT 358 packets, 36218 bytes)
pkts bytes target prot opt in out source destination
- Code: Tout sélectionner
# iptables -v -L -t nat
Chain PREROUTING (policy ACCEPT 241 packets, 29572 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 13 packets, 2054 bytes)
pkts bytes target prot opt in out source destination
42 3567 MASQUERADE all -- any eth0 anywhere anywhere
Chain OUTPUT (policy ACCEPT 27 packets, 4080 bytes)
pkts bytes target prot opt in out source destination
- Code: Tout sélectionner
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:80:C8:C0:F9:F1
inet addr:XX.XX.XX.XX Bcast:XX.XX.XX.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:373 errors:0 dropped:0 overruns:0 frame:20
TX packets:436 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:101922 (99.5 KiB) TX bytes:46393 (45.3 KiB)
Interrupt:12 Base address:0xd000
eth1 Link encap:Ethernet HWaddr 00:50:BF:99:03:36
inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:602 errors:0 dropped:0 overruns:0 frame:0
TX packets:651 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:64767 (63.2 KiB) TX bytes:134088 (130.9 KiB)
Interrupt:5 Base address:0xd400
/etc/network/interfaces
- Code: Tout sélectionner
# /etc/network/interfaces
# Fichier de configuration dexemple des interfaces réseau
# pour faire un serveur NAT
# Formation Debian GNU/Linux par Alexis de Lattre
# http://www.via.ecp.fr/~alexis/formation-linux/
# Plus dinformations dans "man interfaces"
# Linterface "loopback"
auto lo
iface lo inet loopback
# Activation de la fonction de forwarding IP au niveau du noyau
up echo "1" > /proc/sys/net/ipv4/ip_forward
# Linterface "eth0" connectée à Internet (configuration par DHCP)
auto eth0
iface eth0 inet dhcp
# Linterface "eth1" connectée au réseau local (IP privée fixe)
auto eth1
iface eth1 inet static
address 192.168.0.2
netmask 255.255.255.0
broadcast 192.168.0.255
Au depart, je pensais a un probleme de MTU (bien connu avec un modem ADSL partage sur un reseau local ethernet), mais le "TCPMSS clamp to PMTU" devrait me proteger de ca. J'ai quand meme essaye de baisser le MTU du client win XP (jusque 1200!), mais sans aucun effet (les trames sont bien plus petites, mais j'ai toujours les meme problemes).
Merci pour vos idees eclairees