La Fibre
Télécom => Logiciels et systèmes d'exploitation => Linux (usage serveur) => Discussion démarrée par: ochbob 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 :)
-
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
-
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é.
-
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
-
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.
-
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.
-
J'ai essayé mais sans succès, je dois avoir un soucis ailleurs ::)
-
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.
-
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
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
-
Pourquoi ne pas faire du Netplan ? On est en 2019 !
-
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.
-
Il me semble que Debian 10 intègre Netplan...
-
Aucune trace de netplan sur ma distri et je suis sous Buster, c'est toujours ifupdown du coup.
-
Pas de netplan par défaut sur buster en effet. Mais il est présent dans les dépôts.
https://unix.stackexchange.com/questions/515314/will-netplan-io-be-used-in-debian-buster
Par contre sur ubuntu oui... Je me suis d'ailleurs empressé de réinstaller ifupdown pour retrouver mon bon vieux /etc/network/interfaces :P
C'est comme ifconfig que j'ai toujours tendance à taper à la place de ip a, je le trouve plus clair dans sa présentation des interfaces avec en plus l'affichage RX/TX et des erreurs s'il y en a.
-
J'ai hurlé la première fois que j'ai vu netplan.... Puis j'ai appris a m'en servir, depuis je n'utilise que ça :)
-
Je passerai à netplan quand il sera possible de configurer le "token" IPv6...
Pour l'instant je suis à mi-chemin, je fais du systemd-networkd (car il y a l'option IPv6Token) ;)
-
J'ai hurlé la première fois que j'ai vu netplan.... Puis j'ai appris a m'en servir, depuis je n'utilise que ça :)
On a eu la même réaction^^
Je vais essayer d'apprivoiser la bête quand j'aurais 5 min.
-
Je passerai à netplan quand il sera possible de configurer le "token" IPv6...
Comme tout changement lié a SystemD, tu as des grosses régressions les premières versions, nous on a perdu les post-up, mais de toute façon c'était sale :)
Wait&See !
-
Hello :)
Je remonte le sujet, car je viens de m’apercevoir que networking.service me remonte des "erreurs"
déc. 20 07:31:47 systemd[1]: Starting Raise network interfaces...
déc. 20 07:31:48 ifup[1298]: RTNETLINK answers: File exists
déc. 20 07:31:48 ifup[1298]: ifup: failed to bring up br0
déc. 20 07:31:48 ifup[1298]: RTNETLINK answers: File exists
déc. 20 07:31:48 ifup[1298]: ifup: failed to bring up eth0
déc. 20 07:31:48 ifup[1298]: ifup: waiting for lock on /run/network/ifstate.eth1
déc. 20 07:31:54 systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
déc. 20 07:31:54 systemd[1]: networking.service: Failed with result 'exit-code'.
déc. 20 07:31:54 systemd[1]: Failed to start Raise network interfaces.
Je n'ai jamais fait attention car tout fonctionne bien, je suis tombé dessus par hasard tout à l'heure.
Pour rappel, voilà ma config actuelle:
source /etc/network/interfaces.d/*
# The loopback network interface
iface lo inet loopback
# Demarre les interfaces au boot
auto lo br0 eth0 eth1
# The primary network interface
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 default via 192.168.1.254 dev eth0
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
pre-up /sbin/modprobe -q ipv6 ; /bin/true
# Set up bridge and give it a static ip
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 192.168.1.0/24 dev br0 src 192.168.1.101
# Allow autoconf for ipv6
iface br0 inet6 auto
accept_ra 1
A priori c'est que j'aurais déjà plusieurs fois les même routes en fait, du coup il n'aime pas - RTNETLINK answers: File exists
Est ce que qqun aurait une idée ?
Car tout fonctionne bien et mes interfaces sont bien up "<UP,BROADCAST,RUNNING,MULTICAST>" que ce soit la br0,eth0, etc
Merci d'avance !
-
Il y a 2 fois une route vers 192.168.1.0/24 non ? Si c'est vraiment ce que tu veux faire, il faut changer la métrique de l'une des 2 il me semble.