Auteur Sujet: Configuration / routage tunnel GRE Milkywan  (Lu 9452 fois)

0 Membres et 1 Invité sur ce sujet

Hugues

  • AS2027 MilkyWan
  • Modérateur
  • *
  • Messages: 12 423
  • Lyon (69) / St-Bernard (01)
    • Twitter
Configuration / routage tunnel GRE Milkywan
« Réponse #12 le: 06 février 2021 à 22:05:25 »
On n'a pas de conf toute faite pour OpenWRT, donc vaut mieux qu'il apprenne à pécher plutôt qu'on lui donne un poisson, mais je peux aiguiller pour dire pourquoi ça ne marche pas :)

maximushugus

  • Abonné SFR fibre FttH
  • *
  • Messages: 258
  • 69
Configuration / routage tunnel GRE Milkywan
« Réponse #13 le: 06 février 2021 à 22:08:04 »
Oui tant qu'à faire je préfère comprendre ;)

maximushugus

  • Abonné SFR fibre FttH
  • *
  • Messages: 258
  • 69
Configuration / routage tunnel GRE Milkywan
« Réponse #14 le: 07 février 2021 à 10:37:06 »
Voici, pour information, ma configuration qui fonctionne pour monter le tunnel GRE avec un bloc /48 d'IPv6 et une IPv4 publique fournie par MilkyWan sur un routeur OpenWrt, si cela peut aider des gens ultérieurement :

/etc/config/network :
config interface 'tunnelMW'
option proto 'gre'
option peeraddr 'IPendpoint'
option mtu '1476' #MTU de 1476 car je suis sur un tunnel GRE (pas GRE6) depuis une ligne FTTH de MTU 1500 donc 1500 - 20 (protocole IPv4) - 4 protocole GRE = 1476

config interface 'intercoMW'
option proto 'static'
option ifname '@tunnelMW'
option ipaddr '10.1.0.246' #IPv4 de l'interconnexion du tunnel GRE coté client
option netmask '255.255.255.252'
list ip6addr '2a0b:cbc0:x::xxx/126' #IPv6 de l'interconnexion du tunnel GRE côté client
option mtu '1476' #MTU de 1476 car je suis sur un tunnel GRE (pas GRE6) depuis une ligne FTTH de MTU 1500 donc 1500 - 20 (protocole IPv4) - 4 protocole GRE = 1476

config interface 'milkywan'
option proto 'static'
option ipaddr 'IPv4MW' #si vous avez une IPv4 fournie par MW
option netmask '255.255.255.255' #si vous avez une IPv4 fournie par MW
option gateway '10.1.0.245' #si vous avez une IPv4 fournie par MW
option ifname '@tunnelMW'
option ip6prefix '2a0e:e70x:xxx::/48' # bloc d'IPv6 fourni par MW
option ip6gw '2a0b:cbc0:x::xxx' #IPv6 de l'interconnexion du tunnel GRE côté client
list ip6addr '2a0e:e70x:xxx::x/64' #une IPv6 parmi le bloc /48 qui sera celle du routeur sur son interface milkywan
option mtu '1476' #MTU de 1476 car je suis sur un tunnel GRE (pas GRE6) depuis une ligne FTTH de MTU 1500 donc 1500 - 20 (protocole IPv4) - 4 protocole GRE = 1476

/etc/config/firewall :
config zone #paramètre de la zone milkywan
option forward 'REJECT'
option name 'milkywan'
option output 'ACCEPT'
option input 'REJECT'
option network 'intercoMW milkywan tunnelMW'

config forwarding #autoriser le transfère de la zone lan vers la zone milkywan
option dest 'milkywan'
option src 'lan'

config nat #si vous avez une IPv4 fournie par MW : ce SNAT sers à transformer l'IP d'interconnexion en l'IPv4 fournie par MW, car cette dernière est rootable sur internet contrairement à celle d'interconnexion
option src 'milkywan'
option name 'milkywan'
option target 'SNAT'
option snat_ip 'IPv4MW'
list proto 'all'

maximushugus

  • Abonné SFR fibre FttH
  • *
  • Messages: 258
  • 69
Configuration / routage tunnel GRE Milkywan
« Réponse #15 le: 07 février 2021 à 10:39:45 »
Dans ton cas, si tu veux pinger des 2:
- enleve "option gateway" dans l' interface et definit la gateway directement:

config interface 'milkywan'
option ifname '@tunnelMW'
option proto 'static'
option ipaddr 'IPv4MW'
option netmask '255.255.255.255'
supprimer -> option gateway '10.1.0.245'

config route 'sortie'
        option interface 'milkywan'
        option target '0.0.0.0'
        option netmask '0.0.0.0'
        option source 'IPv4MW'
        option gateway '10.1.0.245'
Si je mets en place cette route, je perds l'accès à mon routeur (et à internet par ailleurs) et je dois reset mon routeur : je pense que cette route écrase les routes pour les interfaces "lan" "wan" etc.
Je vais essayer de faire une configuration plus "propre" que celle que j'ai faite sur le message précédent.

Merci tous les 2 pour l'aide en tout cas :)

maximushugus

  • Abonné SFR fibre FttH
  • *
  • Messages: 258
  • 69
Configuration / routage tunnel GRE Milkywan
« Réponse #16 le: 07 février 2021 à 10:58:19 »
J'ai testé avec cette configuration pour retirer la règle de SNAT dans le firewall:
config interface 'milkywan'
option ifname '@tunnelMW'
option proto 'static'
option ipaddr 'IPv4MW'
option netmask '255.255.255.255'
supprimer -> option gateway '10.1.0.245'

config route 'sortie'
        option interface 'milkywan'
        option target '10.1.0.245'
        option netmask '255.255.255.255'
        option source 'IPv4MW'
        option gateway '10.1.0.245'

Mais cela ne fonctionne pas : les packets doivent passer de l'interface "milkywan" à interface "intercoMW" pour atteindre 10.1.0.245. Donc les packets sortent du tunnel en direction du réseau MW avec l'IP de l'interconnexion de mon coté, à savoir 10.1.0.246, qui n'est pas routable sur internet, donc je n'ai accès que réseau de MW mais pas plus loin.
Je suis donc obligé de laisser la règle de SNAT telle que décrite plus haut.
En effet je pense que les règle de masquage / masquerade sont faites remplacer l'IP d'un client (d'un réseau lan) par l'IP du routeur sur la pâte de son interface WAN. Or dans mon cas, l'interface "milkywan" passe par une gateway qui l'oblige à sortir par l'interface "intercoMW" et donc de sortir avec 10.1.0.246 quel que soit les règles de mascage / masquerade sur les interfaces "milkywan" et "intercoMW"

Si quelqu'un a une méthode plus propre que ce que j'ai mis en place je suis preneur, car je n'en vois pas d'autres actuellement.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 078
  • Paris (75)
Configuration / routage tunnel GRE Milkywan
« Réponse #17 le: 07 février 2021 à 18:01:43 »
ce n'est pas clair ce qui marche/ marche pas ...
tu parle du routeur ou des équipements sur le LAN ?

J'ai testé avec cette configuration pour retirer la règle de SNAT dans le firewall:

qu'appele tu la "règle de SNAT dans le firewall" ?

les packets doivent passer de l'interface "milkywan" à interface "intercoMW" pour atteindre 10.1.0.245

tu n'a pas 3 interfaces. il y en a qu'une. les 2 autres sont des "alias", notion propre a OpenWrt.

la commande "ip a" permet de voir les interfaces. tu verras surement une interface seule a 3 IP différents (ou 2 si l'interface de base n'a pas d'IP définie). on ne peut router d'une interface a elle meme (faire passer les paquets d'une interface a elle meme).

par contre on peut éventuellement changer les ip sources ou destination quand on sort/entre d'une interface.
la table de routage (ip route) affiche l'ip source utilisée suivant la destination.

exemple:

routeur: 192.168.1.1
PC: 192.168.1.2

default via 10.1.0.245 dev tunnel  src A.B.C.D
10.1.0.244/30 dev tunnel scope link  src 10.1.0.246
192.168.1.0/24 dev lan scope link  src 192.168.1.1

la route par défaut sort par 10.1.0.245 mais prend A.B.C.D comme adresse source quand c'est le routeur qui émet le trafic. si le routeur ne fait que router il ne touche pas a l'adresse source. Sans le 'option source A.B.C.D' (= "src A.B.C.D" dans la route par défaut) le routeur utilise son adresse sur l'interface pour sortir donc 10.1.0.246 dans ce cas.

Donc PC sort avec son IP. comme celle-ci est privée il faut faire du masquerade (statefull NAT) pour sortie sur le Net.

Si le masquerade (NAT) n'utilise pas A.B.C.D en sortie c'est qu'il y a un souci de configuration (ou une limitation d'OpenWrt) ?

que donne "iptables -S" et "iptables -L" ?

tu peux tracer le NAT en faisant:

ping -W 1 -c 1 1.1.1.1
cat /proc/net/nf_conntrack | grep 1.1.1.1
puis de même depuis un PC (que le ping bien sur, le cat .. sur le routeur) pour voir la différence.

ca devrait donné une indication d'où ca cloche.

maximushugus

  • Abonné SFR fibre FttH
  • *
  • Messages: 258
  • 69
Configuration / routage tunnel GRE Milkywan
« Réponse #18 le: 07 février 2021 à 18:28:58 »
ce n'est pas clair ce qui marche/ marche pas ...
tu parle du routeur ou des équipements sur le LAN ?
Avec la configuration seule, que j'avais mise dans mon dernier message, je ne peux pas ping internet que ce soit directement depuis le routeur ou via les client LAN.

qu'appele tu la "règle de SNAT dans le firewall" ?

Il s'agit de cette règle, qui fait fonctionner le tunnel vers internet :
config nat
option src 'milkywan'
option name 'milkywan'
option target 'SNAT'
option snat_ip 'IPv4MW'
list proto 'all'

Si le masquerade (NAT) n'utilise pas A.B.C.D en sortie c'est qu'il y a un souci de configuration (ou une limitation d'OpenWrt) ?
J'ai bien l'impression que c'est le problème, que l'option masquerade soit activée ou non... De base avec la configuration que j'ai :
default via 10.1.0.245 dev gre4-tunnelMW proto staticDonc sans le "src A.B.C.D" qui donnerait mon IPv4MW.
Lorsque je le rajoute via la commande
ip route change default via 10.1.0.245 dev gre4-tunnelMW proto static src A.B.C.D
ip route flush cache
Alors j'ai bien
default via 10.1.0.245 dev gre4-tunnelMW proto static src A.B.C.Dcomme je le souhaite mais je ne peux toujours ping que le réseaux de MW et pas plus loin, pas internet. D'ailleurs avec cette route, si je fais une capture Wireshark de l'interface "gre4-tunnelMW", je vois bien que mes ping sortent toujours avec l'adresse source 10.1.0.246. C'est pour ça que je suis obligé de mettre en place la règle de SNAT citée précédement, qui corrige cela, et qui me permet d'accéder au net.

maximushugus

  • Abonné SFR fibre FttH
  • *
  • Messages: 258
  • 69
Configuration / routage tunnel GRE Milkywan
« Réponse #19 le: 07 février 2021 à 18:34:10 »
Pour information voici mon "iptables -S" (non filtré, avc mes zones invités, IOT etc)
https://hastebin.milkywan.fr/irufokariq.sql

et mon iptables -L :
https://hastebin.milkywan.fr/guloyaqudo.sql

Pour les tests j'essayerai de les faire plus tard

maximushugus

  • Abonné SFR fibre FttH
  • *
  • Messages: 258
  • 69
Configuration / routage tunnel GRE Milkywan
« Réponse #20 le: 07 février 2021 à 18:43:41 »
En faisant un ping sur 8.8.8.8 directement depuis le routeur, avec ma règle SNAT désactivée, j'obtiens :
root@router:~# cat /proc/net/nf_conntrack | grep 8.8.8.8
ipv4     2 icmp     1 28 src=10.1.0.246 dst=8.8.8.8 type=8 code=0 id=50717 packets=1 bytes=84 src=8.8.8.8 dst=10.1.0.246 type=0 code=0 id=50717 packets=1 bytes=84 mark=0 zone=0 use=2
et j'ai le même résultat avec la règle de masquerade activée ou désactivée sur la zone milkywan

Même résultats en lançant le ping depuis un appareil du lan

En revanche dès que j'active la règle SNAT citée précédemment (avec masquerade activé comme désactivé) :
root@routeur:~# cat /proc/net/nf_conntrack | grep 8.8.8.8
ipv4     2 icmp     1 28 src=10.1.0.246 dst=8.8.8.8 type=8 code=0 id=19742 packets=1 bytes=84 src=8.8.8.8 dst=IPv4MW type=0 code=0 id=19742 packets=1 bytes=84 mark=0 zone=0 use=2

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 078
  • Paris (75)
Configuration / routage tunnel GRE Milkywan
« Réponse #21 le: 07 février 2021 à 19:37:37 »
oui donc ca marche ou pas ? c'est la ou ce n'est pas clair. ;D


maximushugus

  • Abonné SFR fibre FttH
  • *
  • Messages: 258
  • 69
Configuration / routage tunnel GRE Milkywan
« Réponse #22 le: 07 février 2021 à 19:40:56 »
ah, oui avec la configuration que j'ai publiée avec la règle SNAT, cela fonctionne 😅. Mais c'est juste que c'est une solution pas classique. Je pense qu'OpenWrt n'est pas fait pour passer une IPv4 publique sur un tunnel, et du coup il faut cette solution un peu bricolage

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 078
  • Paris (75)
Configuration / routage tunnel GRE Milkywan
« Réponse #23 le: 07 février 2021 à 20:52:53 »
par contre pourquoi le SNAT marche et pas le "config route" ... c'est ca qui m'échappe.