Re: [FRnOG] [TECH] Internet via un tunnel GRE

2013-10-30 Par sujet Laurent Cima

Salut Aurélien,

Le cas le plus probable est souvent qu'il y a un firewall ou un routeur 
sur le chemin qui bloque l'ICMP car c'est beaucoup plus rare d'avoir un 
serveur qui ignore les ICMP retour.


La solution la plus simple dans le cas que tu décris est effectivement, 
comme tu le suggères, de mettre le DF à 0 à l'entrée.
Sur les Cisco, par exemple on utilise une route-map sur l'interface avec 
une commande 'set ip df 0'


Sur le Vyatta, tu peux le faire dans l'iptable
pour les paquets sortants :
iptables -t mangle -A POSTROUTING -j DF --clear
pour les paquets entrants :
iptables -t mangle -A PREROUTING -j DF --clear

et pour le Fortinet, je ne sais pas...

Le MTU du GRE devrait être de 1476 et ton TCP MSS à 20 de moins.

Laurent

Le 30/10/2013 16:50, Aurélien a écrit :

Hello la liste,

Il y a quelques jours, je me suis lancé dans une petite aventure consistant
à essayer d'accéder à internet à travers un tunnel GRE et une session BGP.
Globalement, ça me diminue ma MTU à 1460, et mon TCP Max Segment à 1436 si
j'ai bien tout compris.

J'ai réglé cette MTU dans mes équipements d'extrémité (Fortinet d'un côté,
Vyatta de l'autre), et j'ai essayé de faire fonctionner le tout.

Il semble que sur certains sites cela fonctionne, et sur certains autres
non. J'ai fait pas mal de débugs, et j'ai fini par trouver les éléments
suivants:

  - Tous les paquets IP avec du TCP dedans comportent le flag DF, ce qui est
nécessaire pour le PMTU.
  - Il semble que mon routeur Vyatta, au moment où un trop gros paquet
devrait rentrer dans le tunnel envoie bien l'ICMP comme quoi ça ne passe
pas.

Cependant à partir de ce point ça se complique, puisqu'il arrive que la
communication passe bien (IE, l'ICMP est reçu, et la communication se
poursuit correctement), soit ça ne passe pas, et la source continue à
retransmettre comme si le paquet avait été perdu.

En creusant plus, j'ai réussi à déterminer que c'était un souci de routage
de l'ICMP too-big en question, qui n'arrivait pas forcément à l'hôte qui a
émis le paquet, en fonction du load-balancing utilisé pour le site web
concerné.

Du coup, comme à priori je ne peux pas patcher internet (c) je me demande
si il y a un moyen ou pas que mon équipement oublie le flag DF et
fragmente quand même mon paquet pour que ça passe ? Est-ce que ce type de
configs vous paraît raisonnable ?

Ou sinon, il y a peut-être une autre solution au problème que je veux
résoudre (utilisation de mes propres IP internet derrière une ADSL
classique, en backup dégradé d'un lien dédié) ?

Avez-vous déjà réalisé ce type de configurations ?
Avez-vous des solutions à ce type de souci de fragmentation ?

Merci pour vos réponses !

Cordialement,



---
Liste de diffusion du FRnOG
http://www.frnog.org/


Re: [FRnOG] [TECH] Internet via un tunnel GRE

2013-10-30 Par sujet Fabien V.

Le 2013-10-30 22:43, Fabien V. a écrit :

Le 2013-10-30 22:21, Laurent Cima a écrit :

Salut Aurélien,

Le cas le plus probable est souvent qu'il y a un firewall ou un
routeur sur le chemin qui bloque l'ICMP car c'est beaucoup plus rare
d'avoir un serveur qui ignore les ICMP retour.

La solution la plus simple dans le cas que tu décris est
effectivement, comme tu le suggères, de mettre le DF à 0 à l'entrée.
Sur les Cisco, par exemple on utilise une route-map sur l'interface
avec une commande 'set ip df 0'

Sur le Vyatta, tu peux le faire dans l'iptable
pour les paquets sortants :
iptables -t mangle -A POSTROUTING -j DF --clear
pour les paquets entrants :
iptables -t mangle -A PREROUTING -j DF --clear

et pour le Fortinet, je ne sais pas...


Chez Fortinet, c'est dans la policy en cli (config firewall policy
puis edit id)

tcp-mss-sender maximumsize_int (Enter a TCP Maximum Sending Size
number for the sender) DEFAULT : 0
tcp-mss-receiver maximumsize_int (Enter a TCP MSS number for the
receiver) DEFAULT : 0

Si tu veux vérifier, un simple show full dans la policy ID te permet
de voir l'ensemble des commandes possibles.



Le MTU du GRE devrait être de 1476 et ton TCP MSS à 20 de moins.

Laurent

Le 30/10/2013 16:50, Aurélien a écrit :

Hello la liste,

Il y a quelques jours, je me suis lancé dans une petite aventure 
consistant
à essayer d'accéder à internet à travers un tunnel GRE et une session 
BGP.
Globalement, ça me diminue ma MTU à 1460, et mon TCP Max Segment à 
1436 si

j'ai bien tout compris.

J'ai réglé cette MTU dans mes équipements d'extrémité (Fortinet d'un 
côté,

Vyatta de l'autre), et j'ai essayé de faire fonctionner le tout.

Il semble que sur certains sites cela fonctionne, et sur certains 
autres
non. J'ai fait pas mal de débugs, et j'ai fini par trouver les 
éléments

suivants:

  - Tous les paquets IP avec du TCP dedans comportent le flag DF, ce 
qui est

nécessaire pour le PMTU.
  - Il semble que mon routeur Vyatta, au moment où un trop gros 
paquet
devrait rentrer dans le tunnel envoie bien l'ICMP comme quoi ça ne 
passe

pas.

Cependant à partir de ce point ça se complique, puisqu'il arrive que 
la

communication passe bien (IE, l'ICMP est reçu, et la communication se
poursuit correctement), soit ça ne passe pas, et la source continue à
retransmettre comme si le paquet avait été perdu.

En creusant plus, j'ai réussi à déterminer que c'était un souci de 
routage
de l'ICMP too-big en question, qui n'arrivait pas forcément à l'hôte 
qui a
émis le paquet, en fonction du load-balancing utilisé pour le site 
web

concerné.

Du coup, comme à priori je ne peux pas patcher internet (c) je me 
demande

si il y a un moyen ou pas que mon équipement oublie le flag DF et
fragmente quand même mon paquet pour que ça passe ? Est-ce que ce 
type de

configs vous paraît raisonnable ?

Ou sinon, il y a peut-être une autre solution au problème que je veux
résoudre (utilisation de mes propres IP internet derrière une ADSL
classique, en backup dégradé d'un lien dédié) ?

Avez-vous déjà réalisé ce type de configurations ?
Avez-vous des solutions à ce type de souci de fragmentation ?

Merci pour vos réponses !

Cordialement,



---
Liste de diffusion du FRnOG
http://www.frnog.org/


Oups, j'avais pas tout lu en fait, je pense que tu avais déjà changé les 
mss dans tes policies ?


Peut être essayer de forcer au niveau de l'interface du firewall avec un 
set tcp-mss, en en changeant le comportement du pmtu-icmp (normalement à 
enable pour renvoyer unreachable) je pense dans la config globale (en 
cli tjs)


Je pense pas qu'il soit possible, comme ca, avec un FG, de changer le 
bit DF ?

--
-
Fabien V.
@beufanet


---
Liste de diffusion du FRnOG
http://www.frnog.org/