Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1292 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  [Résolu en partie] Serveur avec plusieurs FAI

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu en partie] Serveur avec plusieurs FAI

n°798342
BMenez
Posté le 02-04-2006 à 12:58:47  profilanswer
 

Bonjour,
J'ai un petit soucis de réseau avec OpenBSD, j'ai écumé Google mais sans trouvé de réponse (ou plutôt en trouvant des réponses pas adaptées à mon cas).
 
J'expose mon cas :
 
J'ai deux fournisseur d'accès qui arrivent sur mon OpenBSD-3.8.


ISP1--(IPpub1)--RouteurNAT--\
             192.168.254.250 \      
                             OpenBSD  
ISP2---------------(IPpub2)--/      


Citation :


OpenBSD# route -n show
Routing tables
 
Internet:
Destination        Gateway            Flags    Refs      Use    Mtu  Interface
default            GW-ISP2            UGS         0  3042486      -   tun0
GW-ISP2            IPpub2             UH          0        0      -   tun0
127/8              127.0.0.1          UGRS        0        0  33224   lo0
127.0.0.1          127.0.0.1          UH          0    67404  33224   lo0
10.0.0/24          link#1             UC          0        0      -   sis0
192.168.0/24       link#2             UC          0        0      -   sis1
192.168.254/24     link#3             UC          0        0      -   sis2


 
Si je me loggue sur une machine chez un hébergeur :

Citation :


HBG# ping IPpub2
PING IPpub2 (IPpub2): 56 data bytes
64 bytes from IPpub2: icmp_seq=0 ttl=249 time=61.4 ms
64 bytes from IPpub2: icmp_seq=1 ttl=249 time=64.2 ms
64 bytes from IPpub2: icmp_seq=2 ttl=249 time=66.5 ms
 
HBG# ping IPpub1
PING IPpub1 (IPpub1): 56 data bytes
64 bytes from (192.168.254.250): icmp_seq=0 ttl=249 time=61.4 ms
64 bytes from (192.168.254.250): icmp_seq=1 ttl=249 time=64.2 ms
64 bytes from (192.168.254.250): icmp_seq=2 ttl=249 time=66.5 ms


 
Et :
 

Citation :


OpenBSD# tcpdump -i sis2
tcpdump: listening on sis2, link-type EN10MB
14:52:23.970138 HBG > 192.168.254.250: icmp: echo request (DF)
14:52:24.970083 HBG > 192.168.254.250: icmp: echo request (DF)
14:52:25.970100 HBG > 192.168.254.250: icmp: echo request (DF)
14:52:26.970643 HBG > 192.168.254.250: icmp: echo request (DF)
 
OpenBSD# tcpdump -i tun0
14:52:23.970138 192.168.254.250 > HBG: icmp: echo reply (DF)
14:52:24.970083 192.168.254.250 > HBG: icmp: echo reply (DF)
14:52:25.970100 192.168.254.250 > HBG: icmp: echo reply (DF)
14:52:26.970643 192.168.254.250 > HBG: icmp: echo reply (DF)


 
Dans mon pf.conf :

Citation :


set block-policy drop
scrub in all
block all
antispoof for {$if_isp1, $if_isp2}
pass quick on lo0 all
pass in on {$if_isp1, $if_isp2} proto icmp keep state
pass out on {$if_isp1, $if_isp2} keep state


 
Ma question : comment se fait-il que le système ne conserve pas l'état de la connexion et donc ne renvoie pas la réponse par l'interface qui-va-bien ?
(Ok, ya la route par défaut mais le système doit bien réussir à savoir que la requète arrive par $if_isp1 et devrait donc, en toute logique, repartir par $if_isp1)
 
Merci à celui ou ceux qui pourront m'indiquer une piste...
 
Première étape de la solution : http://forum.hardware.fr/hardwaref [...] tm#t805862


Message édité par BMenez le 30-04-2006 à 15:47:38
mood
Publicité
Posté le 02-04-2006 à 12:58:47  profilanswer
 

n°798384
Profil sup​primé
Posté le 02-04-2006 à 16:28:55  answer
 

Essaye avec ca: http://lartc.org/howto/lartc.rpdb.multiple-links.html
 
Ca doit etre transposable a BSD  ;)


Message édité par Profil supprimé le 02-04-2006 à 16:29:18
n°798399
BMenez
Posté le 02-04-2006 à 17:40:41  profilanswer
 

Oh, merci :)
Je regarde ça et je complète le topic.
 
EDIT: Ca ressemble à l'utilisation d'un "route-to" de PF. J'avais essayé mais sans succès, je vais retenter.


Message édité par BMenez le 02-04-2006 à 18:08:53
n°798420
Zzozo
Modérateur
Un peu, passionément, à la fol
Posté le 02-04-2006 à 19:29:35  profilanswer
 

Tu veux faire quoi exactement ?


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
n°798455
BMenez
Posté le 02-04-2006 à 21:08:02  profilanswer
 

Exactement la même chose que la première section du lien de Canth : si une requète arrive par ISP1 que le réponse reparte par ISP1.
 
Alors qu'actuellement, peu importe qu'une requète arrive par ISP1 ou ISP2, ça repart par ISP2...

n°798466
Zzozo
Modérateur
Un peu, passionément, à la fol
Posté le 02-04-2006 à 21:54:33  profilanswer
 

C'est un problème de routage, tout bêtement [:spamafote]
 
Et c'est bien expliqué dans le lien de Canth :)


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
n°798624
Tomate
Posté le 03-04-2006 à 16:07:38  profilanswer
 

ça ne va pas poser pb au niveau IP que ça ne repparte pas depuis l'IP jointe ?
car IP ISP1 != IP IPS2


---------------
:: Light is Right ::
n°804161
BMenez
Posté le 22-04-2006 à 17:42:25  profilanswer
 

Si ça pose problème. Enfin pas pour tout : par exemple sur un ping ça ne pose pas de problème. Mais dès que l'on a à faire à TCP ça ne marche plus :)

n°804162
Tomate
Posté le 22-04-2006 à 17:58:46  profilanswer
 

oue normal ;)


---------------
:: Light is Right ::
n°804173
Mikouze
Universe Owner
Posté le 22-04-2006 à 19:34:46  profilanswer
 

Sinon, tu peux aussi utiliser iptables: http://www.linux.com.lb/wiki/index [...] le%20Links
 
J'ai pas teste mais le principe est marrant et devrait etre efficace ;)

mood
Publicité
Posté le 22-04-2006 à 19:34:46  profilanswer
 

n°804174
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 22-04-2006 à 19:42:27  profilanswer
 

iptables sur un openbsd ça pourrait être tendu :o


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°804301
Mikouze
Universe Owner
Posté le 23-04-2006 à 15:08:54  profilanswer
 

Y'a moyen de faire l'equivalent sous BSD, non ? [:xx_xx]

n°804308
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 23-04-2006 à 15:47:48  profilanswer
 

relis le sujet :o
 
et PF roxor


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°804367
Mikouze
Universe Owner
Posté le 23-04-2006 à 19:35:51  profilanswer
 

black_lord a écrit :

relis le sujet :o
 
et PF roxor


 
 :heink:  
 
pf a une table mangle et une table nat, non ? Ouskil est le probleme ?  :o

n°804368
BMenez
Posté le 23-04-2006 à 19:46:09  profilanswer
 

Il faudrait que je relise la doc de PF pour être sûr mais il me semble qu'il n'existe pas d'équivalent à la table "mangle" d'iptable...

n°805862
BMenez
Posté le 28-04-2006 à 22:31:16  profilanswer
 

Après avoir lu ce message : http://groups.google.fr/group/luck [...] b67efcc24e
J'ai pris le taureau par les cornes, j'ai remonté un OpenBSD minimal avec un pf.conf minimal aussi :
 

Code :
  1. ext_if1 = "tun0"
  2. ext_if2 = "sis2"
  3. ext_gw1 = "62.xxx.xxx.xxx"
  4. ext_gw2 = "192.168.254.254"
  5. pass in on $ext_if1
  6. pass in on $ext_if2
  7. pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 to any
  8. pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 to any


 
Et comme par miracle ça marche... [:tuffgong]
 
Reste plus qu'à remonter un vrai pf.conf autour de ce squelette :)

n°806103
BMenez
Posté le 30-04-2006 à 16:10:42  profilanswer
 

Zut! C'est le "block all" qui gène tout...
 
Voilà trois configurations.
 
Là, j'ai accès au Net mais je suis comme au début, les réponses ne partent pas par la bonne interface :

Code :
  1. if_nerim = "tun0"
  2. if_wanadoo = "sis2"
  3. gw_nerim = "xxxx"
  4. gw_wanadoo = "192.168.254.254"
  5. ip_nerim = "xxxx"
  6. if_net = "sis0"
  7. if_lan = "sis1"
  8. if_wifi = "sis2"
  9. local = "{ 192.168.0.10, 192.168.0.11, 192.168.0.12, 192.168.0.13 }"
  10. soekris = "{ 10.0.0.1, 192.168.0.1, 192.168.254.250 }"
  11. set block-policy drop
  12. scrub in all
  13. nat on $if_nerim from $local to any -> $if_nerim
  14. block all
  15. antispoof for { $if_net $if_lan $if_wifi }
  16. pass quick on lo0 all
  17. pass in on $if_lan from $local keep state
  18. pass out on $if_net from $local to any keep state
  19. pass out on $if_nerim keep state
  20. pass in on $if_nerim
  21. pass in on $if_wanadoo
  22. pass out on $if_nerim route-to ($if_wanadoo $gw_wanadoo) from $if_wanadoo to any
  23. pass out on $if_wanadoo route-to ($if_nerim $gw_nerim) from $if_nerim to any


(j'ai essayé en modifiant l'ordre des règles, en mettant des keep state, etc...)
 
 
Là, je n'ai plus accès au Net (normal le "block all" bloque tout) :

Code :
  1. if_nerim = "tun0"
  2. if_wanadoo = "sis2"
  3. gw_nerim = "xxxx"
  4. gw_wanadoo = "192.168.254.254"
  5. ip_nerim = "xxxx"
  6. if_net = "sis0"
  7. if_lan = "sis1"
  8. if_wifi = "sis2"
  9. local = "{ 192.168.0.10, 192.168.0.11, 192.168.0.12, 192.168.0.13 }"
  10. soekris = "{ 10.0.0.1, 192.168.0.1, 192.168.254.250 }"
  11. set block-policy drop
  12. scrub in all
  13. nat on $if_nerim from $local to any -> $if_nerim
  14. block all
  15. antispoof for { $if_net $if_lan $if_wifi }
  16. pass quick on lo0 all
  17. pass in on $if_lan from $local keep state
  18. pass out on $if_net from $local to any keep state
  19. pass in on $if_nerim
  20. pass in on $if_wanadoo
  21. pass out on $if_nerim route-to ($if_wanadoo $gw_wanadoo) from $if_wanadoo to any
  22. pass out on $if_wanadoo route-to ($if_nerim $gw_nerim) from $if_nerim to any


 
Là, tout fonctionne comme je veux mais tout est ouvert...

Code :
  1. if_nerim = "tun0"
  2. if_wanadoo = "sis2"
  3. gw_nerim = "xxxx"
  4. gw_wanadoo = "192.168.254.254"
  5. ip_nerim = "xxxx"
  6. if_net = "sis0"
  7. if_lan = "sis1"
  8. if_wifi = "sis2"
  9. local = "{ 192.168.0.10, 192.168.0.11, 192.168.0.12, 192.168.0.13 }"
  10. soekris = "{ 10.0.0.1, 192.168.0.1, 192.168.254.250 }"
  11. set block-policy drop
  12. scrub in all
  13. nat on $if_nerim from $local to any -> $if_nerim
  14. #block all
  15. antispoof for { $if_net $if_lan $if_wifi }
  16. pass quick on lo0 all
  17. pass in on $if_lan from $local keep state
  18. pass out on $if_net from $local to any keep state
  19. pass in on $if_nerim
  20. pass in on $if_wanadoo
  21. pass out on $if_nerim route-to ($if_wanadoo $gw_wanadoo) from $if_wanadoo to any
  22. pass out on $if_wanadoo route-to ($if_nerim $gw_nerim) from $if_nerim to any


(je pourrais virer d'autres lignes pour n'avoir que le nat et les pass out... route-to...)
 
A votre avis, qu'est-ce qu'il pourrait manquer à mes règles pour être le plus restrictif possible (mais que ça marche quand même hein... ;) )


Message édité par BMenez le 30-04-2006 à 16:14:38

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  [Résolu en partie] Serveur avec plusieurs FAI

 

Sujets relatifs
quelle distribution pour debutant voulant petit serveur familiale[resolu]mandriva2006+P.O.V 6600GT = compatible ?
[Résolu] BIND + Apache + DHCP + VMWareCréer un serveur web sous linux...
[Résolu] Script ftp : Problème de répertoire[resolu] Svp, besoin d'aide pour config Mandriva/routeur
[RESOLU] wpa_supplicant et ipw2200[Resolu] merci : Gestion des devices (/dev/)
[resolu][kde] plante au démarrage[Résolu] Volume anormalement bas.
Plus de sujets relatifs à : [Résolu en partie] Serveur avec plusieurs FAI


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR