Auteur Sujet: Debian /etc/network/interfaces eth0 eth1 br0 ?  (Lu 10750 fois)

0 Membres et 1 Invité sur ce sujet

ochbob

  • Abonné Orange Fibre
  • *
  • Messages: 231
  • Beauzelle (31)
Debian /etc/network/interfaces eth0 eth1 br0 ?
« le: 24 mai 2019 à 17:14:08 »
 :hello:

J'ai un petit soucis pour configurer ma deuxième interface physique et un bridge sur Debian.

Actuellement je n'ai que eth0 de configuré, pas de soucis.

Voilà mon /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo eth0
iface lo inet loopback

# The primary network interface
allow-hotplug eth1
        # dns-* options are implemented by the resolvconf package, if installed
        #pre-up iptables-restore < /etc/iptables.up.rules

iface eth0 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        broadcast 192.168.1.255
        gateway 192.168.1.254
        network 192.168.1.0

iface eth0 inet6 manual
        pre-up /sbin/modprobe -q ipv6 ; /bin/true

J'aimerais donc utiliser ma deuxième interface pour faire un bridge sans toucher a eth0 (j'ai des règles de routage lié à eth0).
J'avais idée de faire ça, sauf que cela ne marche pas et je perds la main sur la machine.

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0 eth1 #Demarre les interfaces au boot

iface eth0 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        broadcast 192.168.1.255
        gateway 192.168.1.254
        network 192.168.1.0

iface eth0 inet6 manual
        pre-up /sbin/modprobe -q ipv6 ; /bin/true

# Configuration br0/eth1

iface eth1 inet manual
iface eth1 inet6 manual

# Set up bridge and give it a static ip
auto br0
iface br0 inet static
        address 192.168.1.101
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.254
        bridge_ports eth1
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

# Allow autoconf for ipv6
iface br0 inet6 auto
        accept_ra 1

Une idée de ce qui n'est pas bon ?  ???

Merci à vous  :)

vivien

  • Administrateur
  • *
  • Messages: 47 080
    • Twitter LaFibre.info
Debian /etc/network/interfaces eth0 eth1 br0 ?
« Réponse #1 le: 24 mai 2019 à 17:51:41 »
bridge_ports eth1 => il manque la première interface, non ? Un bridge il faut deux interfaces...

Voici un exemple de configuration bridge qui fonctionne, mais effectivement je n'ai pas mis d'IP sur eth0 :

# The loopback network interface
auto lo
iface lo inet loopback

#-------------- ETH 0
auto eth0
iface eth0 inet manual

#-------------- ETH 1
auto eth1
iface eth1 inet manual

#-------------- BRIDGE 0

auto br0
iface br0 inet static
   address 192.168.1.90
   netmask 255.255.255.0
   gateway 192.168.1.254
   dns-nameservers 1.1.1.1 8.8.8.8
   bridge_ports eth0 eth1
   bridge_stp off
   bridge_fd 0
   bridge_maxwait 0

Ilyazam

  • Abonné MilkyWan
  • *
  • Messages: 118
  • proche Rennes (35)
Debian /etc/network/interfaces eth0 eth1 br0 ?
« Réponse #2 le: 24 mai 2019 à 20:29:58 »
Un bridge il faut deux interfaces...
Pas forcèment : par exemple sur un KVM on crée un bridge ne contenant que l'uplink au démarrage du système, et les interfaces des VMs sont ajoutées de manière dynamique




iface eth0 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        broadcast 192.168.1.255
        gateway 192.168.1.254
        network 192.168.1.0

iface br0 inet static
        address 192.168.1.101
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.254
        bridge_ports eth1
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

# Allow autoconf for ipv6
iface br0 inet6 auto
        accept_ra 1

Une idée de ce qui n'est pas bon ?  ???

Merci à vous  :)

A mon avis le fait d'avoir deux fois le même réseau IP sur les deux interfaces fait que tu sors une fois avec l'IP .100, la fois suivante avec la .101 (ou alors c'est aléatoire suivant quelle interface envoit/reçoit l'ARP).
Il y a moyen de faire une table de routage séparée sur un Linux avec iproute2 et le fichier /etc/iproute2/rt_tables, mais je n'ai jamais testé.


vivien

  • Administrateur
  • *
  • Messages: 47 080
    • Twitter LaFibre.info
Debian /etc/network/interfaces eth0 eth1 br0 ?
« Réponse #3 le: 24 mai 2019 à 21:53:35 »
IPv4 : ne met la gateway que sur l'interface que tu souhaite utiliser en sortie.

IPv6 : Pour sélectionner l'IP de sortie, quand tu en a plusieurs en IPv6 :
Tu peux mettre le preferred_lft a 0 sur l'adresse anycast comme elle ne sera jamais sélectionnée pour sortir.

ou alors activer une ipv6 temporaire elle sera toujours choisie pour sortir (en plus cela limite l'exposition de ton serveur).

Exemple :
Les serveurs ont tous une configuration assez simple avec une seule interface 10 Gb/s (carte réseau Intel X710 for 10GbE SFP+) qui porte les différentes IPv4 et IPv6.

Voici /etc/network/interfaces d'un serveur SpeedTest (le dossier /etc/network/interfaces.d/ est vide). Il y a :
- une plage IPv4 (89.84.1.200/29) qui est utilisée pour une IPv4 unicast.
- une plage IPv6 (2001:860:DE01:1102::/64) qui est utilisée pour deux IPv6 unicast.
- une seconde plage IPv4 (89.84.1.228/30) qui est utilisée par une IPv4 anycast.
- une seconde plage IPv6 (2001:860:DEFF:1002::/64) qui est utilisée pour une IPv6 anycast.
Les IP anycast sont utilisées par d'autres serveurs situées dans d'autres villes: C'est le réseau qui route vers le serveur le plus proche.[/size]
# cat
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# Interface 10Gb/s
auto enp1s0f0

# IPv4v6 unicast N°1 :
iface enp1s0f0 inet static
        address 89.84.1.202
        netmask 255.255.255.248
        gateway 89.84.1.201

iface enp1s0f0 inet6 static
        address 2001:860:de01:1102::2
        netmask 64
        gateway 2001:860:de01:1102::1
        dns-nameservers 2001:860:b0ff:1::1 2001:860:b0ff:1::2

# IPv6 unicast N°2 :
        pre-up ip -6 addr add 2001:860:de01:1102::3/64 dev $IFACE preferred_lft 0
        down   ip -6 addr del 2001:860:de01:1102::3/64 dev $IFACE preferred_lft 0

# IPv4v6 Anycast :
        pre-up ip addr add 89.84.1.230/30 dev $IFACE label $IFACE:0
        down   ip addr del 89.84.1.230/30 dev $IFACE label $IFACE:0
        pre-up ip -6 addr add 2001:860:deff:1002::2/64 dev $IFACE preferred_lft 0
        down   ip -6 addr del 2001:860:deff:1002::2/64 dev $IFACE preferred_lft 0

ochbob

  • Abonné Orange Fibre
  • *
  • Messages: 231
  • Beauzelle (31)
Debian /etc/network/interfaces eth0 eth1 br0 ?
« Réponse #4 le: 24 mai 2019 à 23:40:31 »
Merci pour vos réponse  :)

Si je me base sur des exemples de la doc Debian: https://wiki.debian.org/KVM
Pas de soucis à n'avoir qu'un interface:

bridge_ports eth1
en l’occurrence dans ma conf.

En fait physiquement j'aurais bien les deux interfaces de reliés sur le switch (lors de mes tests je n'avais pas encore branché  physiquement eth1, mais je n’étais pas allé plus loin car je perdais la main)
Le but est d'utiliser eth1 pour ne pas touché a eth0 et bridgé eth1 pour donner de la connectivité aux VMs  ;D

Je pensais effectivement plus à cette histoire de gateway qui est présente dans le br0 ET eth0.
Mais si je retire la gateway de br0, je ne pourrais pas sortir ?

J'utilise déjà iproute2 pour router une partie du trafic réseau vers mon VPN.
Faut que je creuse ça alors.

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
Debian /etc/network/interfaces eth0 eth1 br0 ?
« Réponse #5 le: 25 mai 2019 à 01:19:12 »
Si le but n'est que de fournir une connectivité aux VM, il n'y a même pas besoin d'IP sur le bridge.
C'est la configuration à l'intérieur des VM qui compte, l'hôte relaie les trames Ethernet sur le bridge en fonction des adresses MAC (comme un switch).

Si on veut pouvoir avoir des dialogues entre l'hôte et les VM sans passer par eth1<=>switch<=>eth0, alors on peut mettre une IP sur le bridge, mais pas besoin d'avoir de gateway.

ochbob

  • Abonné Orange Fibre
  • *
  • Messages: 231
  • Beauzelle (31)
Debian /etc/network/interfaces eth0 eth1 br0 ?
« Réponse #6 le: 04 juin 2019 à 14:27:45 »
J'ai essayé mais sans succès, je dois avoir un soucis ailleurs  ::)

ochbob

  • Abonné Orange Fibre
  • *
  • Messages: 231
  • Beauzelle (31)
Debian /etc/network/interfaces eth0 eth1 br0 ?
« Réponse #7 le: 17 juillet 2019 à 12:32:32 »
source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0 eth1 #Démarre les interfaces au boot

allow-hotplug eth0
iface eth0 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        broadcast 192.168.1.255
        network 192.168.1.0
up ip route add 192.168.1.0/24 dev eth0 src 192.168.1.100 table eth0table
        up ip route add default via 192.168.1.254 dev eth0 table eth0table
        up ip rule add from 192.168.1.100/32 table eth0table
        up ip rule add to 192.168.1.100/32 table eth0table
up ip route add 192.168.1.0/24 dev eth0 src 192.168.1.100

iface eth0 inet6 manual
        pre-up /sbin/modprobe -q ipv6 ; /bin/true

# Configuration br0/eth1
allow-hotplug eth1
iface eth1 inet manual
iface eth1 inet6 manual

# Set up bridge and give it a static ip
auto br0
iface br0 inet static
        address 192.168.1.101
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        bridge_ports eth1
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
up ip route add 192.168.1.0/24 dev br0 src 192.168.1.101 table br0table
        up ip route add default via 192.168.1.254 dev br0 table br0table
        up ip rule add from 192.168.1.101/32 table br0table
        up ip rule add to 192.168.1.101/32 table br0table
up ip route add default via 192.168.1.254 dev br0
up ip route add 192.168.1.0/24 dev br0 src 192.168.1.101

# Allow autoconf for ipv6
iface br0 inet6 auto
        accept_ra 1

Est ce que ça vous semble cohérent ? j'ai pas encore eu l'occasion de tester.

ochbob

  • Abonné Orange Fibre
  • *
  • Messages: 231
  • Beauzelle (31)
Debian /etc/network/interfaces eth0 eth1 br0 ?
« Réponse #8 le: 18 juillet 2019 à 13:17:25 »
C'est tout bon.

Ping vers l’extérieur depuis les deux interfaces:

root:~# ping -I br0 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 192.168.1.101 br0: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=55 time=14.7 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=55 time=14.8 ms

root:~# ping -I eth0 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 192.168.1.100 eth0: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=55 time=14.6 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=55 time=14.8 ms

Ping entre les deux interfaces dans les deux sens sur le même subnet:

root:~# ping -I 192.168.1.100 192.168.1.101
PING 192.168.1.101 (192.168.1.101) from 192.168.1.100 : 56(84) bytes of data.
64 bytes from 192.168.1.101: icmp_seq=1 ttl=64 time=0.082 ms
64 bytes from 192.168.1.101: icmp_seq=2 ttl=64 time=0.036 ms

root:~# ping -I 192.168.1.101 192.168.1.100
PING 192.168.1.100 (192.168.1.100) from 192.168.1.101 : 56(84) bytes of data.
64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=0.085 ms
64 bytes from 192.168.1.100: icmp_seq=2 ttl=64 time=0.090 ms

J'ai du désactiver dhcpcd car il me foutais vraiment le bordel sur eth1 (il me bindé une @ip...) malgré le fait qu'elle soit censé être en  manual dans la conf /etc/network/interfaces...

Jul 18 07:27:28  dhcpcd[14892]: eth1: carrier acquired
Jul 18 07:27:28  dhcpcd[14892]: eth1: IAID 6b:6b:ac:5f
Jul 18 07:27:28  dhcpcd[14892]: eth1: IAID conflicts with one assigned to br0
Jul 18 07:27:28  dhcpcd[14892]: br0: carrier acquired
Jul 18 07:27:28  dhcpcd[14892]: br0: IAID 6b:6b:ac:5f
Jul 18 07:27:28  dhcpcd[14892]: br0: IAID conflicts with one assigned to eth1
Jul 18 07:27:28  dhcpcd[14892]: br0: soliciting an IPv6 router
Jul 18 07:27:28  dhcpcd[14892]: br0: rebinding lease of 192.168.1.79
Jul 18 07:27:28  dhcpcd[14892]: br0: probing address 192.168.1.79/24
Jul 18 07:27:28  dhcpcd[14892]: eth1: rebinding lease of 192.168.1.79
Jul 18 07:27:28  dhcpcd[14892]: eth1: probing address 192.168.1.79/24
Jul 18 07:27:29  dhcpcd[14892]: eth1: soliciting an IPv6 router

Les routes:

Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
default         192.168.1.254   0.0.0.0         UG    202    0        0 eth0
localnet        0.0.0.0         255.255.255.0   U     0      0        0 br0
localnet        0.0.0.0         255.255.255.0   U     202    0        0 eth0

ip route list table eth0table
default via 192.168.1.254 dev eth0
192.168.1.0/24 dev eth0 scope link src 192.168.1.100

ip route list table br0table
default via 192.168.1.254 dev br0
192.168.1.0/24 dev br0 scope link src 192.168.1.101

Ah oui, si jamais ça sert à d'autres, il ne faut pas oublier d'activer le paramètre kernel arp_filter

net.ipv4.conf.all.arp_filter = 1
Citer
arp_filter - BOOLEAN
   1 - Allows you to have multiple network interfaces on the same
   subnet, and have the ARPs for each interface be answered
   based on whether or not the kernel would route a packet from
   the ARP'd IP out that interface (therefore you must use source
   based routing for this to work). In other words it allows control
   of which cards (usually 1) will respond to an arp request.

   0 - (default) The kernel can respond to arp requests with addresses
   from other interfaces. This may seem wrong but it usually makes
   sense, because it increases the chance of successful communication.
   IP addresses are owned by the complete host on Linux, not by
   particular interfaces. Only for more complex setups like load-
   balancing, does this behaviour cause problems.

   arp_filter for the interface will be enabled if at least one of
   conf/{all,interface}/arp_filter is set to TRUE,
   it will be disabled otherwise

Hugues

  • AS2027 MilkyWan
  • Modérateur
  • *
  • Messages: 12 424
  • Lyon (69) / St-Bernard (01)
    • Twitter
Debian /etc/network/interfaces eth0 eth1 br0 ?
« Réponse #9 le: 18 juillet 2019 à 13:22:29 »
Pourquoi ne pas faire du Netplan ? On est en 2019 !

ochbob

  • Abonné Orange Fibre
  • *
  • Messages: 231
  • Beauzelle (31)
Debian /etc/network/interfaces eth0 eth1 br0 ?
« Réponse #10 le: 18 juillet 2019 à 13:27:55 »
C'est pas un truc sur les distri Ubuntu ça ?
(je suis sous Debian)

Une bonne conf à la mano exclusivement sur le fichier /etc/network/interfaces me suffit largement pour gérer mes interfaces.

Hugues

  • AS2027 MilkyWan
  • Modérateur
  • *
  • Messages: 12 424
  • Lyon (69) / St-Bernard (01)
    • Twitter
Debian /etc/network/interfaces eth0 eth1 br0 ?
« Réponse #11 le: 18 juillet 2019 à 13:29:11 »
Il me semble que Debian 10 intègre Netplan...