Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

probleme avec 2 freebox entrantes

3 réponses
Avatar
free
Bonjour

J'aimerais connecter 2 freebox vers un serveur web (freebsd)

La premiere box gere le dhcp et initialise l'interface du serveur web
La deuxieme est la en "secours"
Chaque box redirige son port 80 vers le serveur

Une connexion entrante depuis la box #2 ne fonctionne pas.
Cela me semble normal, un paquet doit arriver avec une IP externe, la
gateway par défaut pointe vers la box #1, et du coup ca doit perturber
l'échange.

Mais je m'étais dit, quand attribuant une deuxieme IP à l'interface commune
cela pourrait fonctionner :

box #1: 192.168.0.254, redirect 80 => 192.168.0.1 (interface #1 serveur
web)
box #2: 192.168.0.253, redirect 80 => 192.168.0.2 (interface #1 serveur
web)

Serveur web:
une interface avec 2 ip :
192.168.0.1 et 192.168.0.2
gateway 192.168.0.254

Je pensais qu'une socket TCP ouverte par 192.168.0.253 depuis l'IP
192.168.0.2, verrait ses réponses repartir vers 192.168.0.254, mais cela ne
fonctionne pas (je n'ai pas pris le temps de mettre un tcpdump, mais je
soupconne que la table de routage prime sur tout le reste

Est ce que quelqu'un peut confirmer (si ca peut marcher, ou si ca peut pas
marcher ) ??
merci d'avances

3 réponses

Avatar
Le Forgeron
Le 11/10/2010 10:15, free nous fit lire :
Bonjour

J'aimerais connecter 2 freebox vers un serveur web (freebsd)

La premiere box gere le dhcp et initialise l'interface du serveur web
La deuxieme est la en "secours"
Chaque box redirige son port 80 vers le serveur

Une connexion entrante depuis la box #2 ne fonctionne pas.
Cela me semble normal, un paquet doit arriver avec une IP externe, la
gateway par défaut pointe vers la box #1, et du coup ca doit perturber
l'échange.

Mais je m'étais dit, quand attribuant une deuxieme IP à l'interface commune
cela pourrait fonctionner :

box #1: 192.168.0.254, redirect 80 => 192.168.0.1 (interface #1 serveur
web)
box #2: 192.168.0.253, redirect 80 => 192.168.0.2 (interface #1 serveur
web)

Serveur web:
une interface avec 2 ip :
192.168.0.1 et 192.168.0.2
gateway 192.168.0.254

Je pensais qu'une socket TCP ouverte par 192.168.0.253 depuis l'IP
192.168.0.2, verrait ses réponses repartir vers 192.168.0.254, mais cela ne
fonctionne pas (je n'ai pas pris le temps de mettre un tcpdump, mais je
soupconne que la table de routage prime sur tout le reste

Est ce que quelqu'un peut confirmer (si ca peut marcher, ou si ca peut pas
marcher ) ??



Tel quel, ça ne marchera pas. La table de routage est l'endroit du problème.

On pourrait envisager:
box#1: 192.168.0.254, (/24) redirect 80 => 192.168.0.1
box#2: 192.168.1.254, (/24) redirect 80 => 192.168.1.1
server: 192.168.0.1 & 192.168.1.1
route 192.168.0.0/24 -> 192.168.0.254
route 192.168.1.0/24 -> 192.168.1.254

Les box n'ont pas de raisons de se voir. Reste le problème du DNS, le
DHCP ayant l'inconvénient de choisir l'une des box, il va donc falloir
mettre les informations à la main (hélas, en statique, ce qui peut poser
des soucis à terme en cas d'évolution du fournisseur)
Nota: il n'est pas utile d'autoriser le forwarding sur le serveur.

Maintenant, si c'est vraiment pour faire du secours, le plus simple
c'est de dupliquer les deux box (même config), et de n'en allumer
qu'une. C'est tellement plus simple, et on garde le DHCP.
Avatar
Pascal Hambourg
Salut,

Le Forgeron a écrit :
Le 11/10/2010 10:15, free nous fit lire :



(Bizarre, je ne vois pas l'article originel.)

J'aimerais connecter 2 freebox vers un serveur web (freebsd)

La premiere box gere le dhcp et initialise l'interface du serveur web
La deuxieme est la en "secours"
Chaque box redirige son port 80 vers le serveur

Une connexion entrante depuis la box #2 ne fonctionne pas.
Cela me semble normal, un paquet doit arriver avec une IP externe, la
gateway par défaut pointe vers la box #1, et du coup ca doit perturber
l'échange.





Oui : le paquet de réponse part via la route par défaut, c'est-à-dire la
box #1 dans tous les cas. C'est un cas de routage asymétrique. Or les
box font du NAT avec chacune une adresse publique et une table d'état
différente. Le NAT ne marche pas avec le routage asymétrique.

Mais je m'étais dit, quand attribuant une deuxieme IP à l'interface commune
cela pourrait fonctionner :

box #1: 192.168.0.254, redirect 80 => 192.168.0.1 (interface #1 serveur
web)
box #2: 192.168.0.253, redirect 80 => 192.168.0.2 (interface #1 serveur
web)

Serveur web:
une interface avec 2 ip :
192.168.0.1 et 192.168.0.2
gateway 192.168.0.254

Je pensais qu'une socket TCP ouverte par 192.168.0.253 depuis l'IP
192.168.0.2,





La socket n'est pas ouverte depuis l'adresse de la passerelle mais
depuis l'adresse source du client.

verrait ses réponses repartir vers 192.168.0.254



C'est bien le cas car c'est ce que dit la route par défaut, et c'est
pourquoi cela ne marche pas.

Attribuer au serveur une adresse différente par box est une idée
intéressante, mais il manque une étape : forcer la route par défaut vers
192.168.0.253 quand l'adresse source est 192.168.0.2. Je ne sais pas si
c'est faisable sous FreeBSD ni comment. A voir éventuellement dans le
forum concerné fr.comp.os.bsd à moins qu'un connaisseur passe par ici.

On pourrait envisager:
box#1: 192.168.0.254, (/24) redirect 80 => 192.168.0.1
box#2: 192.168.1.254, (/24) redirect 80 => 192.168.1.1
server: 192.168.0.1 & 192.168.1.1
route 192.168.0.0/24 -> 192.168.0.254
route 192.168.1.0/24 -> 192.168.1.254



Cela n'apporterait rien de plus que l'attribution d'une seconde adresse
dans le même sous-réseau.
Avatar
Bastien Durel
Le Tue, 12 Oct 2010 09:27:05 +0200, Pascal Hambourg a écrit :
Attribuer au serveur une adresse différente par box est une idée
intéressante, mais il manque une étape : forcer la route par défaut vers
192.168.0.253 quand l'adresse source est 192.168.0.2. Je ne sais pas si
c'est faisable sous FreeBSD ni comment. A voir éventuellement dans le
forum concerné fr.comp.os.bsd à moins qu'un connaisseur passe par ici.



[...]
Sous OpenBSD, on utiliserait une syntaxe de type :
pass out on $box2_if route-to $box2_router from ($box2_if) keep state

Je crois que FreeBSD utilise aussi PF, donc à la version près, ça doit
être ça. (Je fais ça, sur ma gate commune)

--
Bastien