J'exécute CentOS 7. Je n'exécute pas NetworkManager et je l'ai en fait désinstallé.
Mon système est censé acquérir une adresse IPv4 via DHCP br0
au démarrage. Cependant, lorsque je me connecte, il n'a pas d'adresse.
Ma configuration:
# pwd
/etc/sysconfig/network-scripts
# cat ifcfg-enp5s0
DEVICE=enp5s0
ONBOOT="yes"
BRIDGE=br0
# cat ifcfg-br0
DEVICE=br0
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=dhcp
STP=on
DELAY=0
Notez que je n'ai pas configuré ce pont manuellement; virt-manager
l'a fait quand j'ai ajouté br0
sur cette boîte de dialogue:
Pertinent journalctl --boot | grep '\(\<br0\>\|enp5s0\)'
et contextuel:
Jan 08 21:04:32 jonathon-centos7 kernel: r8169 0000:05:00.0 enp5s0: link down
Jan 08 21:04:32 jonathon-centos7 kernel: IPv6: ADDRCONF(NETDEV_UP): enp5s0: link is not ready
Jan 08 21:04:32 jonathon-centos7 kernel: r8169 0000:05:00.0 enp5s0: link down
Jan 08 21:04:32 jonathon-centos7 kernel: device enp5s0 entered promiscuous mode
Jan 08 21:04:32 jonathon-centos7 network[947]: Bringing up interface enp5s0: [ OK ]
...
Jan 08 21:04:32 jonathon-centos7 network[947]: Bringing up interface br0:
Jan 08 21:04:32 jonathon-centos7 kernel: IPv6: ADDRCONF(NETDEV_UP): br0: link is not ready
...
Jan 08 21:04:34 jonathon-centos7 kernel: r8169 0000:05:00.0 enp5s0: link up
Jan 08 21:04:34 jonathon-centos7 kernel: IPv6: ADDRCONF(NETDEV_CHANGE): enp5s0: link becomes ready
Jan 08 21:04:34 jonathon-centos7 kernel: br0: port 1(enp5s0) entered listening state
Jan 08 21:04:34 jonathon-centos7 kernel: br0: port 1(enp5s0) entered listening state
//// (Note: 2 second delay here, with no other events)
Jan 08 21:04:36 jonathon-centos7 avahi-daemon[957]: Registering new address record for fe80::f66d:4ff:fe3b:c24e on enp5s0.*.
Jan 08 21:04:36 jonathon-centos7 kernel: br0: port 1(enp5s0) entered learning state
///// (Too soon!)
Jan 08 21:04:38 jonathon-centos7 network[947]: Determining IP information for br0... failed; no link present. Check cable?
Jan 08 21:04:38 jonathon-centos7 network[947]: [FAILED]
Jan 08 21:04:38 jonathon-centos7 systemd[1]: network.service: control process exited, code=exited status=1
Jan 08 21:04:38 jonathon-centos7 systemd[1]: Failed to start LSB: Bring up/down networking.
Jan 08 21:04:38 jonathon-centos7 systemd[1]: Unit network.service entered failed state.
...
Jan 08 21:04:38 jonathon-centos7 kernel: br0: topology change detected, propagating
Jan 08 21:04:38 jonathon-centos7 kernel: br0: port 1(enp5s0) entered forwarding state
Jan 08 21:04:38 jonathon-centos7 kernel: IPv6: ADDRCONF(NETDEV_CHANGE): br0: link becomes ready
Jan 08 21:04:39 jonathon-centos7 avahi-daemon[957]: Registering new address record for fe80::f66d:4ff:fe3b:c24e on br0.*.
Jan 08 21:04:41 jonathon-centos7 avahi-daemon[957]: Registering new address record for 2605:a000:1315:8119:f66d:4ff:fe3b:c24e on br0.*.
Jan 08 21:04:41 jonathon-centos7 avahi-daemon[957]: Withdrawing address record for fe80::f66d:4ff:fe3b:c24e on br0.
///// (Here's where I entered `ifup br0`)
Jan 08 22:43:30 jonathon-centos7 dhclient[5009]: DHCPDISCOVER on br0 to 255.255.255.255 port 67 interval 6 (xid=0x25f649b7)
Jan 08 22:43:31 jonathon-centos7 dhclient[5009]: DHCPREQUEST on br0 to 255.255.255.255 port 67 (xid=0x25f649b7)
Jan 08 22:43:34 jonathon-centos7 avahi-daemon[957]: Joining mDNS multicast group on interface br0.IPv4 with address 10.0.1.128.
Jan 08 22:43:34 jonathon-centos7 avahi-daemon[957]: New relevant interface br0.IPv4 for mDNS.
Jan 08 22:43:34 jonathon-centos7 avahi-daemon[957]: Registering new address record for 10.0.1.128 on br0.IPv4.
Jan 08 23:43:17 jonathon-centos7 dhclient[5124]: DHCPREQUEST on br0 to 10.0.1.1 port 67 (xid=0x25f649b7)
Une fois que le système a démarré et que je suis connecté, je peux ouvrir un terminal et:
# ifup br0
set forward delay failed: Numerical result out of range
Determining IP information for br0... done.
Et puis je suis connecté à mon réseau.
Pourquoi ne puis-je pas obtenir une adresse IP br0
au démarrage?
En relation:
- Pont Ethernet avec dhcp [formulaires CentOS]
Remarques:
brctl showstp br0
indique que le délai de transmission est réglé sur 2,00.brctl setfd br0 0
affiche la même erreur queifup br0
. Il semble que virt-manager ait spécifié un invalideDELAY=0
pourbr0
.- Après avoir trouvé les entrées importantes dans les journaux, il semble que
systemd
tente d'obtenir une adresse IPbr0
avant qu'il ne soit entré dans l'état de transfert. - J'ai ouvert le bug 8086 sur le bugtracker de CentOS.
STP=yes
de ma configuration me permet de gagner cette condition de course.Réponses:
Votre pont n'est pas contrôlé par les scripts de réseau, il est contrôlé par libvirt. Le pont devrait apparaître lorsque le service libvirtd démarre.
Je ne courrais pas comme ça. Je ferais le pont contrôlé par le réseau initscript, et je n'aurais pas de pont dans la configuration libvirt.
Les fichiers ifcfg que vous avez maintenant sont très bien. Supprimez simplement la configuration de libvirt, assurez-vous que vous avez toujours ces fichiers, puis
chkconfig network on
Oui, chkconfig fonctionne sur EL7.
la source
Une citation de http://www.microhowto.info/howto/persistently_bridge_traffic_between_two_or_more_ethernet_interfaces_on_redhat.html :
La désactivation de STP semble être le moyen de le faire fonctionner.
la source
Votre lien physique n'est pas établi lorsque votre pont démarre. Ajoutez un délai à votre interface physique.
la source