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

un "bridge" sous Linux

12 réponses
Avatar
Rakotomandimby Mihamina (R12y)
Bonjour,

Je viens d'etrenner une machine avec un processeur "VT".
Je m'en vais donc lui poser un Xen 3 dessus pour y faire tourner du Windows
et autres conneries.
Cependant, Xen fait usage de bridge.
Le host est sous Linux, mais la question est plutot relative a IP, d'après
moi.
J'aurais aimé en discuter avec vous si vous voulez bien.

Initialement, la machine est connectée à internet par wifi. C'est un
portable qui utilise une connexion domestique founie par une LiveBox.
Le portable reçoit sont adresse IP locale par DHCP. La LiveBox fait
routeur/NATeur. L'interface est eth2.

Rien qu'en utilisant le bon sens ou la reflexion et quelques notions
basiques, le portable envoie une requete DHCP à l'adresse IP boradcast
(255.255.255.255). Le serveur DHCP le reçoit, et puisque la machine
demandeuse n'a pas encore d'adresse IP, il renvoit l'octroi du bail DHCP à
l'adresse MAC (OK, c'est tres mal dit). C'est ça?
Jusque là, je pige un peu, ou presque.

La ou ça se corse, c'est maintenant, quand on installe les bridge-utils sous
Linux, on va commencer à faire un truc qui rajoute un élément: le bridge.
Ca crée une interface virtuelle (vifX.Y), et un bridge (nommons-le xenbrZ)

Est-ce que ce "truc" va "traffiquer" les adresses MAC? Parceque maintenant
je donne une adresse MAC à une machine virtuelle, j'y lance une debian
netinstall, et le problème est que je ne reçoitpas de bail DHCP.
Je pense que la LiveBox donne quand meme le bail DHCP, mais la machine
virtuelle ne reçoit pas, car le bridge zigouille quelquechose.

Supposons que je doive mettre en place quelques regles iptables, je les
applique au dom0 (le host), mais qui est déjà derierre le brigde, non? Donc
ces règles ne s'appliqueront pas à la vraie eth2... Ou bien?
Bref, j'ai un peu de mal...
Si vous pouviez me donner un coup de main...
Merci d'avance.

10 réponses

1 2
Avatar
Vincent Bernat
OoO En cette nuit nuageuse du dimanche 28 janvier 2007, vers 00:07,
"Rakotomandimby Mihamina (R12y)"
disait:

Est-ce que ce "truc" va "traffiquer" les adresses MAC? Parceque maintenant
je donne une adresse MAC à une machine virtuelle, j'y lance une debian
netinstall, et le problème est que je ne reçoitpas de bail DHCP.
Je pense que la LiveBox donne quand meme le bail DHCP, mais la machine
virtuelle ne reçoit pas, car le bridge zigouille quelquechose.


Tu as mis ton interface eth2 dans le bridge de Xen ?
--
I WILL NOT HIDE THE TEACHER'S PROZAC
I WILL NOT HIDE THE TEACHER'S PROZAC
I WILL NOT HIDE THE TEACHER'S PROZAC
-+- Bart Simpson on chalkboard in episode 3G03

Avatar
Rakotomandimby Mihamina (R12y)
Vincent Bernat wrote:
Est-ce que ce "truc" va "traffiquer" les adresses MAC? Parceque
maintenant je donne une adresse MAC à une machine virtuelle, j'y lance
une debian netinstall, et le problème est que je ne reçoitpas de bail
DHCP. Je pense que la LiveBox donne quand meme le bail DHCP, mais la
machine virtuelle ne reçoit pas, car le bridge zigouille quelquechose.
Tu as mis ton interface eth2 dans le bridge de Xen ?



Oui. Et puis une autre question: le brigde est censé faire lui-meme la
distinction entre les paquets destinés à chacune des interfaces virtuelles?
Parceque justement, moi je veux bien y mettre les regles iptables qu'il
faut, mais du dom0, une fois que le bridge est monté (et si je comprends
bien), je vois un fake eth2 qui est _après_ le bridge...


Avatar
Vincent Bernat
OoO En ce début d'après-midi ensoleillé du dimanche 28 janvier 2007,
vers 15:48, "Rakotomandimby Mihamina (R12y)"
disait:

Est-ce que ce "truc" va "traffiquer" les adresses MAC? Parceque
maintenant je donne une adresse MAC à une machine virtuelle, j'y lance
une debian netinstall, et le problème est que je ne reçoitpas de bail
DHCP. Je pense que la LiveBox donne quand meme le bail DHCP, mais la
machine virtuelle ne reçoit pas, car le bridge zigouille quelquechose.
Tu as mis ton interface eth2 dans le bridge de Xen ?



Oui.


Dans ce cas, la requête DHCP devrait arriver sans problème à la
LiveBox. Les adresses MAC attribuées aux machines Xen sont "normales",
il ne devrait donc pas y avoir de problème. Si tu sniffes eth2,
vois-tu la trame DHCP passer ?

Et puis une autre question: le brigde est censé faire lui-meme la
distinction entre les paquets destinés à chacune des interfaces virtuelles?
Parceque justement, moi je veux bien y mettre les regles iptables qu'il
faut, mais du dom0, une fois que le bridge est monté (et si je comprends
bien), je vois un fake eth2 qui est _après_ le bridge...


Un fake eth2 ? Tu peux appliquer des règles iptables sur un bridge. Si
tu veux différencier les différentes interfaces d'entrée et de sortie,
utilise le module physdev.

Que donne brctl show ?
--
/* Thanks to Rob `CmdrTaco' Malda for not influencing this code in any
* way.
*/
2.4.3 linux/net/core/netfilter.c



Avatar
Rakotomandimby Mihamina (R12y)
Vincent Bernat wrote:

Un fake eth2 ? Tu peux appliquer des règles iptables sur un bridge. Si
tu veux différencier les différentes interfaces d'entrée et de sortie,
utilise le module physdev.

Que donne brctl show ?


debian:~# brctl show
bridge name bridge id STP enabled interfaces
br-xen 8000.0018de978caf no eth2
vif0.0
peth0

Je ne sais pas interpreter encore la sortie de tcpdump et compagnie pour
voir si les trames DHCP passent.
Je vais essayer de chercher un peu pour voir.

A bientot.

Avatar
Vincent Bernat
OoO En ce début de soirée du dimanche 28 janvier 2007, vers 21:54,
"Rakotomandimby Mihamina (R12y)"
disait:

debian:~# brctl show
bridge name bridge id STP enabled interfaces
br-xen 8000.0018de978caf no eth2
vif0.0
peth0

Je ne sais pas interpreter encore la sortie de tcpdump et compagnie pour
voir si les trames DHCP passent.


tcpdump -e -i eth2 port bootpc
--
BOFH excuse #18:
excess surge protection

Avatar
Rakotomandimby Mihamina (R12y)
Vincent Bernat wrote:
debian:~# brctl show
bridge name bridge id STP enabled interfaces
br-xen 8000.0018de978caf no eth2
vif0.0
peth0


tcpdump -e -i eth2 port bootpc


Bon alors, d'apres ce que je vois, il y a bien la requete qui part,
la réponse qui revient, mais elle n'arrive pas à destinataire.
L'adresse MAC virtuelle est aa:00:00:00:00:d3 et le modem est 192.168.1.1.

[...]
22:37:23.323643 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from aa:00:00:00:00:d3 (oui Unknown), length 300
22:37:25.361789 IP 192.168.1.1.route > 192.168.1.255.route: RIPv1, Response, length: 24
22:37:35.324582 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from aa:00:00:00:00:d3 (oui Unknown), length 300
22:37:52.325907 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from aa:00:00:00:00:d3 (oui Unknown), length 300
22:37:54.243811 IP 192.168.1.1.route > 192.168.1.255.route: RIPv1, Response, length: 24
[...]

La Debian netinst qui génère ces requetes n'obtient pas la réponse.
Comme indiqué dans le XenWiki [1], j'ai déjà mis ceci comme règles:


#!/bin/bash
EBT=/sbin/ebtables
DOMU="aa:00:00:00:00:d3"
DOMO="00:18:DE:97:8C:AF"
${EBT} -t nat -A POSTROUTING -s ${DOMU} -j snat --to-source ${DOMO}



Mais j'ai des doutes car "ebtables -L" na me liste pas grand chose:

debian:~# ebtables -L
Bridge table: filter
Bridge chain: INPUT, entries: 0, policy: ACCEPT
Bridge chain: FORWARD, entries: 0, policy: ACCEPT
Bridge chain: OUTPUT, entries: 0, policy: ACCEPT




[1] XenWiki: http://wiki.xensource.com/xenwiki/XenWifi


Avatar
Pascal Hambourg
Salut,


Bon alors, d'apres ce que je vois, il y a bien la requete qui part,
la réponse qui revient, mais elle n'arrive pas à destinataire.
L'adresse MAC virtuelle est aa:00:00:00:00:d3 et le modem est 192.168.1.1.

[...]
22:37:23.323643 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from aa:00:00:00:00:d3 (oui Unknown), length 300
22:37:25.361789 IP 192.168.1.1.route > 192.168.1.255.route: RIPv1, Response, length: 24
22:37:35.324582 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from aa:00:00:00:00:d3 (oui Unknown), length 300
22:37:52.325907 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from aa:00:00:00:00:d3 (oui Unknown), length 300
22:37:54.243811 IP 192.168.1.1.route > 192.168.1.255.route: RIPv1, Response, length: 24
[...]


Les paquets envoyés par 192.168.1.1 qu'on voit ici ne sont pas des
réponses DHCP mais des annonces RIP (protocole de routage). De plus un
serveur DHCP ne mettrait pas 2 secondes à répondre à une requête.

Avatar
Rakotomandimby Mihamina (R12y)
Pascal Hambourg wrote:
Les paquets envoyés par 192.168.1.1 qu'on voit ici ne sont pas des
réponses DHCP mais des annonces RIP (protocole de routage). De plus un
serveur DHCP ne mettrait pas 2 secondes à répondre à une requête.


Bon OK le modem ne répond pas.
Je vais essayer chez un pote qui a un autre modem demain.

Avatar
Dominique ROUSSEAU
Le sam, 27 jan 2007 at 23:07 GMT, Rakotomandimby Mihamina (R12y) a écrit :
[...]
Initialement, la machine est connectée à internet par wifi. C'est un
portable qui utilise une connexion domestique founie par une LiveBox.
Le portable reçoit sont adresse IP locale par DHCP. La LiveBox fait
routeur/NATeur. L'interface est eth2.


afaik, les livebox ont en place un filtrage par MAC, avec un bouton pour
autoriser l'association de nouvelles MAC.
Je ne serais pas vraiment étonné que ça soit lié à ça.

Avatar
Vincent Bernat
OoO La nuit ayant déjà recouvert d'encre ce jour du dimanche 28
janvier 2007, vers 23:50, "Rakotomandimby Mihamina (R12y)"
disait:

debian:~# brctl show
bridge name bridge id STP enabled interfaces
br-xen 8000.0018de978caf no eth2
vif0.0
peth0


tcpdump -e -i eth2 port bootpc


Bon alors, d'apres ce que je vois, il y a bien la requete qui part,
la réponse qui revient, mais elle n'arrive pas à destinataire.
L'adresse MAC virtuelle est aa:00:00:00:00:d3 et le modem est 192.168.1.1.

[...]
22:37:23.323643 IP 0.0.0.0.bootpc > 255.255.255.255.bootps:
BOOTP/DHCP, Request from aa:00:00:00:00:d3 (oui Unknown), length 300


Tu n'as pas mis le -e.

La Debian netinst qui génère ces requetes n'obtient pas la réponse.
Comme indiqué dans le XenWiki [1], j'ai déjà mis ceci comme règles:



#!/bin/bash
EBT=/sbin/ebtables
DOMU="aa:00:00:00:00:d3"
DOMO="00:18:DE:97:8C:AF"
${EBT} -t nat -A POSTROUTING -s ${DOMU} -j snat --to-source ${DOMO}


Moi, je ne mettrai rien du tout justement.


Mais j'ai des doutes car "ebtables -L" na me liste pas grand chose:

debian:~# ebtables -L
Bridge table: filter
Bridge chain: INPUT, entries: 0, policy: ACCEPT
Bridge chain: FORWARD, entries: 0, policy: ACCEPT
Bridge chain: OUTPUT, entries: 0, policy: ACCEPT


ebtables -L -t nat
Et pour virer ce que tu as rajouté : ebtables -t nat -F PREROUTING
--
panic("Detected a card I can't drive - whoopsn");
2.2.16 /usr/src/linux/drivers/net/daynaport.c



1 2