sysctl gère les paramètres du noyau, pas les options (de compilation).
il n'avait pas precisé qu'il n'agissait de compilation. :)
Je pense que Vincent veut parler de la politique de routage en fonction
de l'adresse source (ip rule add from), qu'il appelle de façon ambiguë
"source routing" (qui peut aussi désigner l'option de même nom de
l'en-tête IP, qui n'a rien à voir et qui est très rarement supportée par
les routeurs). Mais cela suppose que la machine utilise une adresse IP
source dédiée pour les paquets à faire sortir par l'autre routeur.
et il y a t'il moyen de faire cela sans ajouter de carte reseaux.
j'ai essayé en ajoutant une interface eth0:1 avec une autre adresse
mais ca route pas mieux mon service.
sysctl gère les paramètres du noyau, pas les options (de compilation).
il n'avait pas precisé qu'il n'agissait de compilation. :)
Je pense que Vincent veut parler de la politique de routage en fonction
de l'adresse source (ip rule add from), qu'il appelle de façon ambiguë
"source routing" (qui peut aussi désigner l'option de même nom de
l'en-tête IP, qui n'a rien à voir et qui est très rarement supportée par
les routeurs). Mais cela suppose que la machine utilise une adresse IP
source dédiée pour les paquets à faire sortir par l'autre routeur.
et il y a t'il moyen de faire cela sans ajouter de carte reseaux.
j'ai essayé en ajoutant une interface eth0:1 avec une autre adresse
mais ca route pas mieux mon service.
sysctl gère les paramètres du noyau, pas les options (de compilation).
il n'avait pas precisé qu'il n'agissait de compilation. :)
Je pense que Vincent veut parler de la politique de routage en fonction
de l'adresse source (ip rule add from), qu'il appelle de façon ambiguë
"source routing" (qui peut aussi désigner l'option de même nom de
l'en-tête IP, qui n'a rien à voir et qui est très rarement supportée par
les routeurs). Mais cela suppose que la machine utilise une adresse IP
source dédiée pour les paquets à faire sortir par l'autre routeur.
et il y a t'il moyen de faire cela sans ajouter de carte reseaux.
j'ai essayé en ajoutant une interface eth0:1 avec une autre adresse
mais ca route pas mieux mon service.
Désolé mais désormais il va falloir régler ca avec iptables par exemple
ou bien avec 2 cartes réseaux en spécifiant dans la table de routage que
pour tel port il s'adresse a tel interface (physiquement relié a tel
routeur) et pour le reste il utilise la config par defaut.
Désolé mais désormais il va falloir régler ca avec iptables par exemple
ou bien avec 2 cartes réseaux en spécifiant dans la table de routage que
pour tel port il s'adresse a tel interface (physiquement relié a tel
routeur) et pour le reste il utilise la config par defaut.
Désolé mais désormais il va falloir régler ca avec iptables par exemple
ou bien avec 2 cartes réseaux en spécifiant dans la table de routage que
pour tel port il s'adresse a tel interface (physiquement relié a tel
routeur) et pour le reste il utilise la config par defaut.
Il ne faut *surtout pas* ajouter une carte réseau pour faire ça ! On
ajoute une carte réseau pour connecter la machine à un autre réseau
physique, pas pour lui ajouter une adresse IP supplémentaire. Ou alors
pour faire de l'agrégation de liens (channel bonding), mais c'est une
autre histoire.
j'ai essayé en ajoutant une interface eth0:1 avec une autre adresse
mais ca route pas mieux mon service.
C'est une opération nécessaire mais non suffisante. Il faut faire en
sorte que les applications locales qui utilisent le service que tu veux
faire passer par l'autre routeur utilisent explicitement cette adresse
source, en espérant que ce soit prévu. Cela se fait par une option de la
ligne de commande ou dans le fichier de configuration.
Mais avant d'en arriver à ces extrémités, as-tu essayé ma suggestion de
marquer les paquets dans la chaîne OUTPUT ?
Il ne faut *surtout pas* ajouter une carte réseau pour faire ça ! On
ajoute une carte réseau pour connecter la machine à un autre réseau
physique, pas pour lui ajouter une adresse IP supplémentaire. Ou alors
pour faire de l'agrégation de liens (channel bonding), mais c'est une
autre histoire.
j'ai essayé en ajoutant une interface eth0:1 avec une autre adresse
mais ca route pas mieux mon service.
C'est une opération nécessaire mais non suffisante. Il faut faire en
sorte que les applications locales qui utilisent le service que tu veux
faire passer par l'autre routeur utilisent explicitement cette adresse
source, en espérant que ce soit prévu. Cela se fait par une option de la
ligne de commande ou dans le fichier de configuration.
Mais avant d'en arriver à ces extrémités, as-tu essayé ma suggestion de
marquer les paquets dans la chaîne OUTPUT ?
Il ne faut *surtout pas* ajouter une carte réseau pour faire ça ! On
ajoute une carte réseau pour connecter la machine à un autre réseau
physique, pas pour lui ajouter une adresse IP supplémentaire. Ou alors
pour faire de l'agrégation de liens (channel bonding), mais c'est une
autre histoire.
j'ai essayé en ajoutant une interface eth0:1 avec une autre adresse
mais ca route pas mieux mon service.
C'est une opération nécessaire mais non suffisante. Il faut faire en
sorte que les applications locales qui utilisent le service que tu veux
faire passer par l'autre routeur utilisent explicitement cette adresse
source, en espérant que ce soit prévu. Cela se fait par une option de la
ligne de commande ou dans le fichier de configuration.
Mais avant d'en arriver à ces extrémités, as-tu essayé ma suggestion de
marquer les paquets dans la chaîne OUTPUT ?
Désolé mais désormais il va falloir régler ca avec iptables par exemple
ou bien avec 2 cartes réseaux en spécifiant dans la table de routage que
pour tel port il s'adresse a tel interface (physiquement relié a tel
routeur) et pour le reste il utilise la config par defaut.
La table de routage de Linux ne permet pas de prendre en compte les
ports TCP ou UDP. D'autre part, une carte réseau supplémentaire ne sert
à rien pour faire ça.
Désolé mais désormais il va falloir régler ca avec iptables par exemple
ou bien avec 2 cartes réseaux en spécifiant dans la table de routage que
pour tel port il s'adresse a tel interface (physiquement relié a tel
routeur) et pour le reste il utilise la config par defaut.
La table de routage de Linux ne permet pas de prendre en compte les
ports TCP ou UDP. D'autre part, une carte réseau supplémentaire ne sert
à rien pour faire ça.
Désolé mais désormais il va falloir régler ca avec iptables par exemple
ou bien avec 2 cartes réseaux en spécifiant dans la table de routage que
pour tel port il s'adresse a tel interface (physiquement relié a tel
routeur) et pour le reste il utilise la config par defaut.
La table de routage de Linux ne permet pas de prendre en compte les
ports TCP ou UDP. D'autre part, une carte réseau supplémentaire ne sert
à rien pour faire ça.
Hors iptables il me semble qu'il /devrait/ exister une solution avec tc
et le selecteur u32 qui sait selectionner les ports(et les flags) ?
ou ebtables en output/postrouting ? mais je n'ai jamais fait ça
(pas encore ) :-)
Hors iptables il me semble qu'il /devrait/ exister une solution avec tc
et le selecteur u32 qui sait selectionner les ports(et les flags) ?
ou ebtables en output/postrouting ? mais je n'ai jamais fait ça
(pas encore ) :-)
Hors iptables il me semble qu'il /devrait/ exister une solution avec tc
et le selecteur u32 qui sait selectionner les ports(et les flags) ?
ou ebtables en output/postrouting ? mais je n'ai jamais fait ça
(pas encore ) :-)
Sinon, une
solution assez vieille que j'utilisais :
http://groups.google.fr/group/fr.comp.os.unix/browse_thread/thread/f5a57bdeb9f49b2f/7c9aca692deb8022?lnk=st&q=tos+vincent+bernat&rnum=1&hl=fr#7c9aca692deb8022
Cela marche impec.
j'ai lu mais j'ai pas compris en quoi cela me permettrais de regler un
probleme de route ? désolé.
Sinon, une
solution assez vieille que j'utilisais :
http://groups.google.fr/group/fr.comp.os.unix/browse_thread/thread/f5a57bdeb9f49b2f/7c9aca692deb8022?lnk=st&q=tos+vincent+bernat&rnum=1&hl=fr#7c9aca692deb8022
Cela marche impec.
j'ai lu mais j'ai pas compris en quoi cela me permettrais de regler un
probleme de route ? désolé.
Sinon, une
solution assez vieille que j'utilisais :
http://groups.google.fr/group/fr.comp.os.unix/browse_thread/thread/f5a57bdeb9f49b2f/7c9aca692deb8022?lnk=st&q=tos+vincent+bernat&rnum=1&hl=fr#7c9aca692deb8022
Cela marche impec.
j'ai lu mais j'ai pas compris en quoi cela me permettrais de regler un
probleme de route ? désolé.
j'ai essayé en ajoutant une interface eth0:1 avec une autre adresse
mais ca route pas mieux mon service.
C'est une opération nécessaire mais non suffisante. Il faut faire en
sorte que les applications locales qui utilisent le service que tu veux
faire passer par l'autre routeur utilisent explicitement cette adresse
source, en espérant que ce soit prévu. Cela se fait par une option de la
ligne de commande ou dans le fichier de configuration.
Mais avant d'en arriver à ces extrémités, as-tu essayé ma suggest ion de
marquer les paquets dans la chaîne OUTPUT ?
j'ai essayé en ajoutant une interface eth0:1 avec une autre adresse
mais ca route pas mieux mon service.
C'est une opération nécessaire mais non suffisante. Il faut faire en
sorte que les applications locales qui utilisent le service que tu veux
faire passer par l'autre routeur utilisent explicitement cette adresse
source, en espérant que ce soit prévu. Cela se fait par une option de la
ligne de commande ou dans le fichier de configuration.
Mais avant d'en arriver à ces extrémités, as-tu essayé ma suggest ion de
marquer les paquets dans la chaîne OUTPUT ?
j'ai essayé en ajoutant une interface eth0:1 avec une autre adresse
mais ca route pas mieux mon service.
C'est une opération nécessaire mais non suffisante. Il faut faire en
sorte que les applications locales qui utilisent le service que tu veux
faire passer par l'autre routeur utilisent explicitement cette adresse
source, en espérant que ce soit prévu. Cela se fait par une option de la
ligne de commande ou dans le fichier de configuration.
Mais avant d'en arriver à ces extrémités, as-tu essayé ma suggest ion de
marquer les paquets dans la chaîne OUTPUT ?
voila c'est bien ça, ça fonctionne maintenant avec la chaine OUTPUT.
En fait j'etait resté perplexe sur l'usage du fwmark dans cette chaine
car j'avais fait des tests sur une [autre] machine avec 2 interfaces
mais ça ne fonctionnais pas car les paquets partaient vers le routeur
choisi mais avec l'adresse de la carte de l'autre LAN.
[ADSL1]
|
| Eth1
[LINUX]
| Eth2
|
[ADSL2]
le paquet sortant par ADSL2 semblait venir de eth1
et les reponses (qui arrivait pourtant)
ne permettait pas d'etablir de connection
je comprend bien qu'au depart le paquet soit "fabriqué" de cette
façon mais je ne comprend pas pourquoi le paquet retourné via
l'autre routeur dans cas n'est pas accepté ?? une idée ??
voila c'est bien ça, ça fonctionne maintenant avec la chaine OUTPUT.
En fait j'etait resté perplexe sur l'usage du fwmark dans cette chaine
car j'avais fait des tests sur une [autre] machine avec 2 interfaces
mais ça ne fonctionnais pas car les paquets partaient vers le routeur
choisi mais avec l'adresse de la carte de l'autre LAN.
[ADSL1]
|
| Eth1
[LINUX]
| Eth2
|
[ADSL2]
le paquet sortant par ADSL2 semblait venir de eth1
et les reponses (qui arrivait pourtant)
ne permettait pas d'etablir de connection
je comprend bien qu'au depart le paquet soit "fabriqué" de cette
façon mais je ne comprend pas pourquoi le paquet retourné via
l'autre routeur dans cas n'est pas accepté ?? une idée ??
voila c'est bien ça, ça fonctionne maintenant avec la chaine OUTPUT.
En fait j'etait resté perplexe sur l'usage du fwmark dans cette chaine
car j'avais fait des tests sur une [autre] machine avec 2 interfaces
mais ça ne fonctionnais pas car les paquets partaient vers le routeur
choisi mais avec l'adresse de la carte de l'autre LAN.
[ADSL1]
|
| Eth1
[LINUX]
| Eth2
|
[ADSL2]
le paquet sortant par ADSL2 semblait venir de eth1
et les reponses (qui arrivait pourtant)
ne permettait pas d'etablir de connection
je comprend bien qu'au depart le paquet soit "fabriqué" de cette
façon mais je ne comprend pas pourquoi le paquet retourné via
l'autre routeur dans cas n'est pas accepté ?? une idée ??
voila c'est bien ça, ça fonctionne maintenant avec la chaine OUTPUT.
En fait j'etait resté perplexe sur l'usage du fwmark dans cette chaine
car j'avais fait des tests sur une [autre] machine avec 2 interfaces
mais ça ne fonctionnais pas car les paquets partaient vers le routeur
choisi mais avec l'adresse de la carte de l'autre LAN.
[ADSL1]
|
| Eth1
[LINUX]
| Eth2
|
[ADSL2]
le paquet sortant par ADSL2 semblait venir de eth1
et les reponses (qui arrivait pourtant)
ne permettait pas d'etablir de connection
je comprend bien qu'au depart le paquet soit "fabriqué" de cette
façon mais je ne comprend pas pourquoi le paquet retourné via
l'autre routeur dans cas n'est pas accepté ?? une idée ??
voila c'est bien ça, ça fonctionne maintenant avec la chaine OUTPUT.
En fait j'etait resté perplexe sur l'usage du fwmark dans cette chaine
car j'avais fait des tests sur une [autre] machine avec 2 interfaces
mais ça ne fonctionnais pas car les paquets partaient vers le routeur
choisi mais avec l'adresse de la carte de l'autre LAN.
[ADSL1]
|
| Eth1
[LINUX]
| Eth2
|
[ADSL2]
le paquet sortant par ADSL2 semblait venir de eth1
et les reponses (qui arrivait pourtant)
ne permettait pas d'etablir de connection
je comprend bien qu'au depart le paquet soit "fabriqué" de cette
façon mais je ne comprend pas pourquoi le paquet retourné via
l'autre routeur dans cas n'est pas accepté ?? une idée ??
voila c'est bien ça, ça fonctionne maintenant avec la chaine OUTPUT.
En fait j'etait resté perplexe sur l'usage du fwmark dans cette chaine
car j'avais fait des tests sur une [autre] machine avec 2 interfaces
mais ça ne fonctionnais pas car les paquets partaient vers le routeur
choisi mais avec l'adresse de la carte de l'autre LAN.
[ADSL1]
|
| Eth1
[LINUX]
| Eth2
|
[ADSL2]
le paquet sortant par ADSL2 semblait venir de eth1
et les reponses (qui arrivait pourtant)
ne permettait pas d'etablir de connection
je comprend bien qu'au depart le paquet soit "fabriqué" de cette
façon mais je ne comprend pas pourquoi le paquet retourné via
l'autre routeur dans cas n'est pas accepté ?? une idée ??
[supersedes]
voila c'est bien ça, ça fonctionne maintenant avec la chaine OUTPUT.
En fait j'etait resté perplexe sur l'usage du fwmark dans cette chaine
Comme le NAT destination en sortie, je comprends que ça puisse être...
déroutant. ;-)car j'avais fait des tests sur une [autre] machine avec 2 interfaces
mais ça ne fonctionnais pas car les paquets partaient vers le routeur
choisi mais avec l'adresse de la carte de l'autre LAN.
Normal s'il y a eu reroutage et changement d'interface de sortie à cause
d'une marque posée par iptables. Comme on peut le voir sur ce schéma :
http://www.plouf.fr.eu.org/bazar/netfilter/schema_netfilter.txt
pour les paquets émis localement, il y a deux décisions de routage : une
première avant les chaînes OUTPUT (qui ne peut prendre en compte les
marques ou le NAT destination) et une seconde après, qui sert au
reroutage en cas de marquage ou de NAT destination. L'adresse source, si
elle n'est pas déjà fixée par la socket émettrice, est détermin ée par la
première décision de routage avant que le paquet traverse les chaîn es
OUTPUT. En cas de reroutage suite à une marque, l'interface de sortie
peut changer mais pas l'adresse source. Seul le NAT destination (DNAT)
en sortie peut le faire avec les versions de noyau antérieures à 2.6. 11,
mais les versions ultérieures ne le font plus.[ADSL1]
|
| Eth1
[LINUX]
| Eth2
|
[ADSL2]
le paquet sortant par ADSL2 semblait venir de eth1
Correction : le paquet sortant par ADSL2 porte l'adresse source de eth1.et les reponses (qui arrivait pourtant)
Qui arrivaient jusqu'où ? Jusqu'au routeur ADSL2, à la machine Linux ?
ne permettait pas d'etablir de connection
je comprend bien qu'au depart le paquet soit "fabriqué" de cette
façon mais je ne comprend pas pourquoi le paquet retourné via
l'autre routeur dans cas n'est pas accepté ?? une idée ??
Peut-être le routeur ADSL2 qui ne route/déNATe pas correctement un
paquet vers l'adresse de eth1 qui n'appartient pas à son sous-réseau ?
Une solution consiste à modifier l'adresse source avec une règle SNAT
dans la chaîne POSTROUTING en fonction de l'interface de sortie pour
l'adresse et l'interface correspondent.
Attention avec la cible MASQUERADE qui semble à première vue plus
pratique : avec les versions de noyau antérieures à 2.6.10, elle ne
fonctionne pas toujours bien avec le routage avancé car elle se base non
pas sur l'interface de sortie mais sur une décision de routage partielle
pour déterminer la nouvelle adresse source.
[supersedes]
voila c'est bien ça, ça fonctionne maintenant avec la chaine OUTPUT.
En fait j'etait resté perplexe sur l'usage du fwmark dans cette chaine
Comme le NAT destination en sortie, je comprends que ça puisse être...
déroutant. ;-)
car j'avais fait des tests sur une [autre] machine avec 2 interfaces
mais ça ne fonctionnais pas car les paquets partaient vers le routeur
choisi mais avec l'adresse de la carte de l'autre LAN.
Normal s'il y a eu reroutage et changement d'interface de sortie à cause
d'une marque posée par iptables. Comme on peut le voir sur ce schéma :
http://www.plouf.fr.eu.org/bazar/netfilter/schema_netfilter.txt
pour les paquets émis localement, il y a deux décisions de routage : une
première avant les chaînes OUTPUT (qui ne peut prendre en compte les
marques ou le NAT destination) et une seconde après, qui sert au
reroutage en cas de marquage ou de NAT destination. L'adresse source, si
elle n'est pas déjà fixée par la socket émettrice, est détermin ée par la
première décision de routage avant que le paquet traverse les chaîn es
OUTPUT. En cas de reroutage suite à une marque, l'interface de sortie
peut changer mais pas l'adresse source. Seul le NAT destination (DNAT)
en sortie peut le faire avec les versions de noyau antérieures à 2.6. 11,
mais les versions ultérieures ne le font plus.
[ADSL1]
|
| Eth1
[LINUX]
| Eth2
|
[ADSL2]
le paquet sortant par ADSL2 semblait venir de eth1
Correction : le paquet sortant par ADSL2 porte l'adresse source de eth1.
et les reponses (qui arrivait pourtant)
Qui arrivaient jusqu'où ? Jusqu'au routeur ADSL2, à la machine Linux ?
ne permettait pas d'etablir de connection
je comprend bien qu'au depart le paquet soit "fabriqué" de cette
façon mais je ne comprend pas pourquoi le paquet retourné via
l'autre routeur dans cas n'est pas accepté ?? une idée ??
Peut-être le routeur ADSL2 qui ne route/déNATe pas correctement un
paquet vers l'adresse de eth1 qui n'appartient pas à son sous-réseau ?
Une solution consiste à modifier l'adresse source avec une règle SNAT
dans la chaîne POSTROUTING en fonction de l'interface de sortie pour
l'adresse et l'interface correspondent.
Attention avec la cible MASQUERADE qui semble à première vue plus
pratique : avec les versions de noyau antérieures à 2.6.10, elle ne
fonctionne pas toujours bien avec le routage avancé car elle se base non
pas sur l'interface de sortie mais sur une décision de routage partielle
pour déterminer la nouvelle adresse source.
[supersedes]
voila c'est bien ça, ça fonctionne maintenant avec la chaine OUTPUT.
En fait j'etait resté perplexe sur l'usage du fwmark dans cette chaine
Comme le NAT destination en sortie, je comprends que ça puisse être...
déroutant. ;-)car j'avais fait des tests sur une [autre] machine avec 2 interfaces
mais ça ne fonctionnais pas car les paquets partaient vers le routeur
choisi mais avec l'adresse de la carte de l'autre LAN.
Normal s'il y a eu reroutage et changement d'interface de sortie à cause
d'une marque posée par iptables. Comme on peut le voir sur ce schéma :
http://www.plouf.fr.eu.org/bazar/netfilter/schema_netfilter.txt
pour les paquets émis localement, il y a deux décisions de routage : une
première avant les chaînes OUTPUT (qui ne peut prendre en compte les
marques ou le NAT destination) et une seconde après, qui sert au
reroutage en cas de marquage ou de NAT destination. L'adresse source, si
elle n'est pas déjà fixée par la socket émettrice, est détermin ée par la
première décision de routage avant que le paquet traverse les chaîn es
OUTPUT. En cas de reroutage suite à une marque, l'interface de sortie
peut changer mais pas l'adresse source. Seul le NAT destination (DNAT)
en sortie peut le faire avec les versions de noyau antérieures à 2.6. 11,
mais les versions ultérieures ne le font plus.[ADSL1]
|
| Eth1
[LINUX]
| Eth2
|
[ADSL2]
le paquet sortant par ADSL2 semblait venir de eth1
Correction : le paquet sortant par ADSL2 porte l'adresse source de eth1.et les reponses (qui arrivait pourtant)
Qui arrivaient jusqu'où ? Jusqu'au routeur ADSL2, à la machine Linux ?
ne permettait pas d'etablir de connection
je comprend bien qu'au depart le paquet soit "fabriqué" de cette
façon mais je ne comprend pas pourquoi le paquet retourné via
l'autre routeur dans cas n'est pas accepté ?? une idée ??
Peut-être le routeur ADSL2 qui ne route/déNATe pas correctement un
paquet vers l'adresse de eth1 qui n'appartient pas à son sous-réseau ?
Une solution consiste à modifier l'adresse source avec une règle SNAT
dans la chaîne POSTROUTING en fonction de l'interface de sortie pour
l'adresse et l'interface correspondent.
Attention avec la cible MASQUERADE qui semble à première vue plus
pratique : avec les versions de noyau antérieures à 2.6.10, elle ne
fonctionne pas toujours bien avec le routage avancé car elle se base non
pas sur l'interface de sortie mais sur une décision de routage partielle
pour déterminer la nouvelle adresse source.