Bridge et nat debian 9

Bonjour,

est ce que quelqu’un saurai me dire pourquoi lorsque je lance cette commande:
brctl addif br0 eno1

mon server plante completement.

Que cherche tu a faire, peux tu nous faire voir le retour de la commande brctl show ?

j’essaye de configurer mon reseau pour etablir un bridge et du NAT pour faire de la virtualisation avec KVM et virsh.

voici les commandes que je fais pour etablir le bridge:

sudo brctl addbr br0
ip addr show
sudo brctl addif br0 eno1

Question fallacieuse : cette commande ne fait pas planter ton serveur.
Mais as-tu bien compris ses conséquences ?
Qu’est-ce qui te fait dire que ton serveur plante complètement ?

je dit sa mon server plante, car le server bloque et n’est plus accessible apres en ssh et que je recois un mail de Kimsufi qui me dit qu’il doivent intervenir sur le server car il a rencontré un souci.

maintenant pour les commandes de ce que j’ai pu comprendre

brctl addbr br0 : me permet d’ajouter un bridge
brctl addif br0 et eno1 : me permet de relier br0 a ma ma carte reseau eno1

Pour configurer ton serveur en bridge, il faut faire bien plus que ça.

Premièrement, il faut déconfigurer ta carte réseau, et reconfigurer pour utiliser un bridge.

Dans ton /etc/network/interfaces:

# auto eno1
# iface eno1 inet dhcp

auto br0
iface br0 inet dhcp
  bridge_ports eno1
  bridge_fd 0
  bridge_maxwait 0

Cette configuration c’est si tu as “eno1” de configurée, en DHCP, et que tu veux le bridge configuré en DHCP lui aussi.

En général, si tu monte un bridge et que tu met une interface physique dedans, ça n’a aucun intéret
de faire du NAT. Sinon c’est que tu veux monter un bridge SANS y mettre une interface physique.

Pour monter l’interface, il vaut mieux avoir un moyen de se connecter au serveur, autre que via eno1 justement, et faire un
ifdown eno1
, puis modifier le fichier interfaces, puis
ifup br0.

1 J'aime

justement le fichier interfaces n’existe pas, je pensais d’abord lancer ses commandes et puis creer se fichier avec sa:

 auto lo
iface lo inet loopback

auto eno1
iface eno1 inet manual

auto br0
iface br0 inet static
        bridge_ports eno1
                    address 192.168.1.10
                    network 192.168.1.0
                   netmask 255.255.255.0
                   broadcast 192.168.1.255
                  gateway 192.168.1.254
                 dns-nameservers 213.186.33.99
        bridge_stp on
        bridge_fd 0
        bridge_maxwait 0

est ce que ma logique est bonne?

C’est normal.
Tu aurais pu préciser qu’il s’agissait d’un serveur dédié chez un hébergeur. On n’intervient pas de la même façon quand on a un accès physique ou seulement un accès par le réseau.

Je ne demande pas si tu as compris ce que cela fait mais les conséquences de cette action sur le fonctionnement de la pile réseau de la machine, notamment ce que deviennent les trames ethernet reçues par eno1.

Pas tellement. Pour que le serveur fonctionne en pont, Il suffit d’ajouter une seconde interface à br0. Le reste, c’est pour gérer les conséquences de cette action sur la couche IP.

Etonnant. Par quoi sont configurées les interfaces lo et eno1 alors ?

La logique, oui. La réalisation m’inspire quelques remarques :

  • les options network et broadcast sont inutiles
  • comment se fait-il que ton serveur ait une adresse IP privée ?
  • l’option dns-nameservers n’est prise en compte que si le paquet resolvconf est installé.

pour le fichier interfaces, je ne saurai pas dire pourquoi il n’y est pas, je sais que sur les anciennes versions de Debian, le fichier y etait, voici le retour de la commande ls dans le directory network:

if-down.d if-post-down.d if-pre-up.d if-up.d interfaces.d

j’ai regardé dans le dossier interface.d, il est vide.

l’ip de mon server est une ip public: 91.121.139.218

l’ip privée que j’ai mise aussi est la config du reseau que je voudrai pour mes vm donc j’aimerai quelles soit dans le reseau 192.168.1.0/24

Dans ce cas il ne faut pas ajouter eno1 au pont br0.
Il faudra faire du routage et du NAT entre br0 et eno1.

pas de bridge? en utilisant le routage et le NAT est ce que mes VM pourront etre accessible a l’exterieur du reseau?

car quelqu’un avait config mon ancien server et m’avais dit qu’il fallait etablir un bridge pour que mes vm puisses sortir du reseau et mettre l’ip forwarding a 1.

Je n’ai pas écrit “pas de pont”. J’ai écrit : pas eno1 dans le pont. Seulement les interfaces virtuelles des VM.

Pas forcément. Cela dépend de la configuration réseau des VM.

Si les VM doivent avoir des adresses IP publiques dans le même préfixe que la machine hôte, alors il faut effectivement les ponter avec l’interface physique.

Mais dans ton cas les VM ont des adresses IP privées dans un préfixe distinct de celui de l’hôte, donc il ne faut pas les ponter avec l’interface physique. Le pont ne sert pas pour qu’elles puissent communiquer avec l’extérieur. Il sert uniquement à ce que les VM soient dans le même réseau.

ah d’accord, désolé pour le bridge, j’ai mal lu :(.

est ce que je pourrai avoir un exemple de fichier de config interfaces?, car je vois pas comment le construire si je ne dois pas mettre le eno1 dans le bridge.

car actuellement, j’ai suivi cette doc la:

https://wiki.debian.org/BridgeNetworkConnections pour le bridge

auto br0
iface br0 inet static
address 192.168.1.10
netmask 255.255.255.0
bridge_ports none
bridge_fd 0
bridge_maxwait 0

merci beaucoup PascalHambourg,

si je cree moi meme le fichier interfaces et que je met sa, donc derriere je pourrai creer mes VM pour qu’elles puissent sortir du reseau? je demande pour etre sur

Ce n’est pas suffisant.
Il faudra encore ajouter le forwarding IP et le masquerading, et l’interface virtuelle associée à chaque VM devra être ajoutée au pont.
Mais il n’y a pas déjà plein de documentation de KVM qui explique tout ça ?

personnellement, je n’ai trouvé aucun tuto pour faire ce que je voulais, tout les tutos explique comment faire avec un bridge mais pas du NAT ni du routage.

j’ai meme regardé sur ce lien la: https://wiki.debian.org/KVM#Setting_up_bridge_networking

Dans ce cas il faut apprendre à faire du routage et du NAT, ce qui est de toute façon indépendant de l’utilisation de KVM.