[passerelle debian] probleme avec passerelle -> MTU ?

probleme avec passerelle -> MTU ? [passerelle debian] - Linux et OS Alternatifs

Marsh Posté le 11-04-2006 à 13:47:10    

Bonjour !
 
Mon problème : je n'arrive consulter que certains sites, d'autres s'affiches mal et certains jamais ....
 
En règle général, j'arrive toujours pinguer les cibles par leurs nom dns, donc ce ne devrait pas être mon dns qui est en cause.
 
Ce n'est pas les règle du firewall (netfilter/iptables) qui pause problème, car meme en accèptant tout, le problème se pose ...
 
Donc... après quelques recherches sur le net et sur le forum, les notions de MTU/MRU reviennent souvent, mais peut de solutions satisfaisantes ne sont posé. Il faut y aller un peut à tatons, j'ai l'impressions ...  
 
De plus, étant donné que c'est ma première passerelle avec linux, il est possible que j'ai omis certains trucs évidents, donc n'hésitez pas de m'en faire par, même si ça peut vous paraitre logique.
 
 
 
Pour vous aider, et pour ceux que ça pourrait intéresser, voici le context:
 
Je suis en train de monter, pour une petite boite que j'administre, une passerelle sous debian.
 
Le réseau actuel est un domaine Windows2000 qui comprend un serveur principal  (win2ksrv), un serveur Terminal server (win2k3srv), un serveur Mysql (debian sarge) et pour finir, un serveur de téléphonie (win2ksrv).
 
Actuellement, la connection internet est assuré par un modem PLC(powerline), et le partage de connection, par un routeur/firewall PPPoE (lightning speedsurf - http://www.lightning.ch/products/speedsurf-2.html).
 
Pour différentes raisons (ftp, ssh, web, ....), j'aimerais remplacer le routeur par un pc avec debian. Par la suite, je vais y configurer un firewall avec iptables, pour accèder à différents services internes depuis l'extérieur.
 
 

Reply

Marsh Posté le 11-04-2006 à 13:47:10   

Reply

Marsh Posté le 11-04-2006 à 13:57:42    

Pour information, mon voici mon log de connexion et déconnexion :

Code :
  1. Apr 11 13:17:09 localhost pppd[27005]: Plugin rp-pppoe.so loaded.
  2. Apr 11 13:17:09 localhost pppd[27007]: pppd 2.4.3 started by root, uid 0
  3. Apr 11 13:17:09 localhost pppd[27007]: PPP session is 1743
  4. Apr 11 13:17:09 localhost pppd[27007]: Using interface ppp0
  5. Apr 11 13:17:09 localhost pppd[27007]: Connect: ppp0 <--> eth0
  6. Apr 11 13:17:09 localhost pppd[27007]: Couldn't increase MTU to 1500
  7. Apr 11 13:17:09 localhost pppd[27007]: Couldn't increase MRU to 1500
  8. Apr 11 13:17:09 localhost pppd[27007]: Couldn't increase MTU to 1500
  9. Apr 11 13:17:09 localhost pppd[27007]: Couldn't increase MRU to 1500
  10. Apr 11 13:17:09 localhost pppd[27007]: CHAP authentication succeeded
  11. Apr 11 13:17:09 localhost pppd[27007]: peer from calling number 00:03:42:CE:20:B2 authorized
  12. Apr 11 13:17:09 localhost pppd[27007]: Cannot determine ethernet address for proxy ARP
  13. Apr 11 13:17:09 localhost pppd[27007]: local  IP address 85.90.8.48
  14. Apr 11 13:17:09 localhost pppd[27007]: remote IP address 85.90.0.17
  15. Apr 11 13:17:09 localhost pppd[27007]: primary   DNS address 193.192.227.3
  16. Apr 11 13:17:09 localhost pppd[27007]: secondary DNS address 195.141.56.5
  17. Apr 11 13:24:27 localhost pppd[27007]: Terminating on signal 15
  18. Apr 11 13:24:27 localhost pppd[27007]: Connect time 7.3 minutes.
  19. Apr 11 13:24:27 localhost pppd[27007]: Sent 294611 bytes, received 2760590 bytes.
  20. Apr 11 13:24:27 localhost pppd[27007]: Couldn't increase MTU to 1500
  21. Apr 11 13:24:27 localhost pppd[27007]: Couldn't increase MRU to 1500
  22. Apr 11 13:24:27 localhost pppd[27007]: Connection terminated.
  23. Apr 11 13:24:27 localhost pppd[27007]: Exit.


 
On voit clairement qu'il y a un problème au niveau du mtu ...
 
 
Voici aussi /etc/ppp/peers/dsl-provider que j'ai renomé en plc-eef (eef étant mon FAI) donc :

Code :
  1. srv02:/etc/ppp/peers# cat plc-eef
  2. # Configuration file for PPP, using PPP over Ethernet
  3. # to connect to a DSL provider.
  4. #
  5. # See the manual page pppd(8) for information on all the options.
  6. ##
  7. # Section 1
  8. #
  9. # Stuff to configure...
  10. # MUST CHANGE: Uncomment the following line, replacing the user@provider.net
  11. # by the DSL user name given to your by your DSL provider.
  12. # (There should be a matching entry in /etc/ppp/pap-secrets with the password.)
  13. user flore.swiss
  14. # Use the pppoe program to send the ppp packets over the Ethernet link
  15. # This line should work fine if this computer is the only one accessing
  16. # the Internet through this DSL connection. This is the right line to use
  17. # for most people.
  18. #pty "/usr/sbin/pppoe -I eth0 -T 80 -m 1452"
  19. # An even more conservative version of the previous line, if things
  20. # don't work using -m 1452...
  21. pty "/usr/sbin/pppoe -I eth0 -T 80 -m 1412"
  22. # If the computer connected to the Internet using pppoe is not being used
  23. # by other computers as a gateway to the Internet, you can try the following
  24. # line instead, for a small gain in speed:
  25. #pty "/usr/sbin/pppoe -I eth0 -T 80"
  26. # The following two options should work fine for most DSL users.
  27. # Assumes that your IP address is allocated dynamically
  28. # by your DSL provider...
  29. noipdefault
  30. # Try to get the name server addresses from the ISP.
  31. usepeerdns
  32. # Use this connection as the default route.
  33. # Comment out if you already have the correct default route installed.
  34. defaultroute
  35. ##
  36. # Section 2
  37. #
  38. # Uncomment if your DSL provider charges by minute connected
  39. # and you want to use demand-dialing.
  40. #
  41. # Disconnect after 300 seconds (5 minutes) of idle time.
  42. #demand
  43. #idle 300
  44. ##
  45. # Section 3
  46. #
  47. # You shouldn't need to change these options...
  48. hide-password
  49. lcp-echo-interval 20
  50. lcp-echo-failure 3
  51. # Override any connect script that may have been set in /etc/ppp/options.
  52. connect /bin/true
  53. noauth
  54. persist
  55. #mtu 1492
  56. mtu 1412
  57. # RFC 2516, paragraph 7 mandates that the following options MUST NOT be
  58. # requested and MUST be rejected if requested by the peer:
  59. # Address-and-Control-Field-Compression (ACFC)
  60. noaccomp
  61. # Asynchronous-Control-Character-Map (ACCM)
  62. default-asyncmap
  63. plugin rp-pppoe.so eth0


 
Comme on peut le remarquer, j'ai configuré (2x) le mtu à 1412 ...
mais quand je fais un ifconfig ppp0 est à 1492 et mon interface eth0 (celle connecté au modem) est à 1500.
 

Reply

Marsh Posté le 11-04-2006 à 14:01:26    

Il existe un autre fichier de configuration ( /etc/ppp/option  ) où l'on parle de mtu (et aussi de mru). Mais les modification que j'y ai faite ne sont pas pris en compte .. Je l'ai d'ailleurs carrément déplacer, et la connexion se fait quand même... Ca ne doit être utilisé, je suppose que pour des connexion RTC ...

Reply

Marsh Posté le 11-04-2006 à 14:19:15    

Juste pour précision, voici le script simple qui transforme mon pc en passerelle. Bien entendu, quand ceci sera au point, j'ajouterai les règle de filtrages nécessaires afin d'avoir quelque chose de sécure ;)
 

Code :
  1. uti_open_netfilter()
  2. {
  3.   # Clearing any previous configuration
  4.   # ------------------------------------------------------------------------
  5.   echo "  Clearing any existing rules and setting default policy to ACCEPT !!!!!!!!!.."
  6.   $IPTABLES --flush
  7. #  $IPTABLES --flush INPUT
  8. #  $IPTABLES --flush OUTPUT
  9. #  $IPTABLES --flush FORWARD
  10.   $IPTABLES --table nat --flush
  11. #  $IPTABLES --table nat --flush PREROUTING
  12. #  $IPTABLES --table nat --flush POSTROUTING
  13. #  $IPTABLES --table nat --flush OUTPUT
  14.   #$IPTABLES --table mangle --flush PREROUTING
  15.   #$IPTABLES --table mangle --flush INPUT
  16.   #$IPTABLES --table mangle --flush OUTPUT
  17.   #$IPTABLES --table mangle --flush FORWARD
  18.   #$IPTABLES --table mangle --flush POSTROUTING
  19.   # Delete all User-specified chains
  20.   # ------------------------------------------------------------------------
  21.   $IPTABLES                --delete-chain
  22.   $IPTABLES --table nat    --delete-chain
  23.   #$IPTABLES --table mangle --delete-chain
  24.   # Reset all IPTABLES counters
  25.   # ------------------------------------------------------------------------
  26.   $IPTABLES --zero
  27.   $IPTABLES --table nat --zero
  28.   #$IPTABLES --table mangle --zero
  29.   $IPTABLES             --policy INPUT       ACCEPT
  30.   $IPTABLES             --policy OUTPUT      ACCEPT
  31.   $IPTABLES             --policy FORWARD     ACCEPT
  32.   $IPTABLES --table nat --policy PREROUTING  ACCEPT
  33.   $IPTABLES --table nat --policy POSTROUTING ACCEPT
  34.   $IPTABLES --table nat --policy OUTPUT      ACCEPT
  35. }
  36. uti_count_traffics()
  37. {
  38.   $IPTABLES -A FORWARD -i ppp0
  39.   $IPTABLES -A FORWARD -o ppp0
  40.   $IPTABLES -A OUTPUT  -o ppp0
  41.   $IPTABLES -A INPUT   -i ppp0
  42. }
  43. gw_snat()
  44. # --------------------------------------------------------------------------
  45. {
  46.   # Activation du forwarding. Sous debian, on peut aussi le faire de la
  47.   # manière suivante :
  48.   # - éditer le fichier /etc/network/options
  49.   # - mettre "ip_forward=1"
  50.   # ------------------------------------------------------------------------
  51.   echo "  Enabling forwarding.."
  52.   echo "1" > /proc/sys/net/ipv4/ip_forward
  53.   # If you get your IP address dynamically from SLIP, PPP, or DHCP,
  54.   # enable the following option.  This enables dynamic-address hacking
  55.   # which makes the life with Diald and similar programs much easier.
  56.   # ------------------------------------------------------------------------
  57.   echo "  Enabling DynamicAddr.."
  58.   echo "1" > /proc/sys/net/ipv4/ip_dynaddr
  59.   echo "  ---"
  60.   echo "  NAT: Enabling SNAT (MASQUERADE) functionality on $EXTIF"
  61.   #More liberal form
  62.   # ------------------------------------------------------------------------
  63.   $IPTABLES --table nat --append POSTROUTING --out-interface $EXTIF --jump MASQUERADE
  64.   #Stricter form
  65.   # ------------------------------------------------------------------------
  66. #  $IPTABLES --table nat --append POSTROUTING                                                      --out-interface $EXTIF
  67. }

Reply

Marsh Posté le 11-04-2006 à 14:58:40    

Je crois avoir trouvé la solution ....
J'ajoute ça dans mon script :

Code :
  1. $IPTABLES --append FORWARD --proto tcp --tcp-flags SYN,RST SYN --jump TCPMSS --out-interface $EXTIF --clamp-mss-to-pmtu


 
Merci google .... :)
 
EDIT : en fait, non, ca règle le problème lorsque je n'ai pas de règle de filtrage... Par contre, ca se reproduit dès que je lance mon script de firewall ....   [:albator7k]
 
De plus, j'ai toujours ces problème de MTU dans mon log !
Ca vous dis quelque chose ?


Message édité par helvetik le 11-04-2006 à 16:01:26
Reply

Marsh Posté le 12-04-2006 à 08:46:10    

Bon, j'ai encore rajouté une ligne :

Code :
  1. $IPTABLES --table  mangle --append POSTROUTING --proto tcp --tcp-flags SYN,RST SYN --out-interface $EXTIF --jump TCPMSS --clamp-mss-to-pmtu


 
Ca améliore encore les chose, mais la connexion reste quand même instable ....
 
Un petit peu d'aide, svp ...

Reply

Marsh Posté le 12-04-2006 à 16:35:06    

Bonjour,
 
met un # devant la ligne " plugin rp-pppoe.so eth0 " dans ton fichier dsl-provider.
Ainsi tu utiliseras pppoe et non le plugin rp-pppoe.so
 
J'étais exactement dans le même cas que toi  et le fait de passer par pppoe à la place du plugin à résolu le problème.
 
A+

Message cité 1 fois
Message édité par Spud le 12-04-2006 à 16:49:14
Reply

Marsh Posté le 12-04-2006 à 17:37:32    

Pour explications, voir Formations Linux de ~Alexis (nom du compte), clique sur Firewall.
Son 1er ou 2nd script est commente et explique le probleme du MTU.


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 13-04-2006 à 11:11:20    

Spud a écrit :

Bonjour,
 
met un # devant la ligne " plugin rp-pppoe.so eth0 " dans ton fichier dsl-provider.
Ainsi tu utiliseras pppoe et non le plugin rp-pppoe.so
 
J'étais exactement dans le même cas que toi  et le fait de passer par pppoe à la place du plugin à résolu le problème.
 
A+


 
Hello,
 
Merci pour ta réponse ...
Par contre, pourrais-tu m'expliquer la différence entre les deux plugins?
 
Je vais de mon côté faire de plus amples recherche sur le sujet.
 
A+

Reply

Marsh Posté le 13-04-2006 à 11:16:25    

Fork Bomb a écrit :

Pour explications, voir Formations Linux de ~Alexis (nom du compte), clique sur Firewall.
Son 1er ou 2nd script est commente et explique le probleme du MTU.


 
Hello,
 
C'est marrant que tu me parles de ce site, car c'est sur celui ci que j'ai trouvé la solution du clampage dont je fais référence dans mon 5ème post....
-> Grillé
 
Merci quand même.
 
 
Je rajouterai que l'autre solution de clampage (voir poste numéro 6) est tiré d'un autre site : http://www.linux-france.org/prj/in [...] arget.html
 

Reply

Marsh Posté le 13-04-2006 à 11:16:25   

Reply

Marsh Posté le 13-04-2006 à 11:17:37    

Mes connaissances en la matière sont limitées. Je ne peux pas t'expliquer la différence...


Message édité par Spud le 13-04-2006 à 11:19:49
Reply

Marsh Posté le 14-04-2006 à 15:14:32    

domage, car j'ai pas trouvé grand chose sur le net (je sais pas trop ou chercher, d'ailleurs)
 
Merci quand meme :hello:

Reply

Marsh Posté le 15-04-2006 à 13:00:37    

en réglant la max mss, tu n'influes que sur TCP, pas les autres protos (dont UDP).

Reply

Marsh Posté le 16-04-2006 à 08:51:49    

Taz a écrit :

en réglant la max mss, tu n'influes que sur TCP, pas les autres protos (dont UDP).


Mais alors comment faire avec les autres protocoles?
Comment faire pour que les MTU et MRU que j'ai renseigné dans le fichier dsl-provider soient pris en compte ?? Simplement virer le plugin rp-pppoe (pas encore essayé) ?
 
Merci

Reply

Marsh Posté le 17-04-2006 à 02:21:44    

si ta machine ne fait que passerelle, tu pourrais simplement configurer la MTU de ton eth0 ?

Reply

Marsh Posté le 18-04-2006 à 09:13:38    

Oui, je comprend bien, mais bon, si ce fichier (dsl-provider) existe, c'est pas pour rien, non?  
Et si j'ai des avertissement dans mon log, c'est aussi qu'il y a une raison !
 
Bref... Avant de chercher plus loin, je vais tester aujourd'hui si ça résoud mes problème de ne pas charger le plugin rp-pppoe....
 
A+

Reply

Marsh Posté le 18-04-2006 à 11:44:37    

Alors pour info, voila ce que j'ai trouvé dans la doc de ppp :

Citation :

4.  Add the following line to /etc/ppp/options:
 
    plugin rp-pppoe.so
 
    The effect of this line is simply to make "eth0", "eth1",
    ....,"ethx" all valid device names for pppd (just like ttyS0,
    ttyS1).

Reply

Marsh Posté le 18-04-2006 à 19:27:50    

à la fin de /etc/ppp/ip-up
 
if [ $1 == 'ppp0' ]
then
ifconfig ppp0 mtu 1412
fi

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed