web-dev-qa-db-ja.com

ブリッジが起動時にDHCP経由でIPを取得しない

CentOS 7を実行しています。NetworkManagerを実行していません。実際にアンインストールしました。

私のシステムは、ブート時に_br0_でDHCPを介してIPv4アドレスを取得することになっています。しかし、ログインすると、アドレスがありません。

私の構成:

_# 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
_

このブリッジを手動で構成していないことに注意してください。 _virt-manager_は、このダイアログで_br0_を追加したときにそうしました。

virt-manager screenshot showing br0 on Network Interfaces tab

関連するjournalctl --boot | grep '\(\<br0\>\|enp5s0\)'とコンテキスト:

_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)
_

システムが起動し、ログインした後、ターミナルを開くことができます。

_# ifup br0
set forward delay failed: Numerical result out of range

Determining IP information for br0... done.
_

そして、私は自分のネットワークに接続しています。

起動時に_br0_のIPを取得できないのはなぜですか?

関連:

ノート:

  • _brctl showstp br0_は、転送遅延が2.00に設定されていることを示しています。 _brctl setfd br0 0_は、_ifup br0_と同じエラーを示します。 virt-managerが_DELAY=0_に対して無効な_br0_を指定したようです。
  • ログで重要なエントリを見つけた後、転送状態に入る前にsystemdが_br0_のIPを取得しようとしているようです。
  • CentOSバグトラッカーで バグ8086 を開きました。
8

http://www.microhowto.info/howto/persistently_bridge_traffic_between_two_or_more_ethernet_interfaces_on_redhat.html からの引用:

このため、STPを単純なケース(仮想マシンのセットを単一の物理インターフェースにブリッジする場合など)では無効にしておくことをお勧めします)

STPを無効にすることは、それを機能させる方法のようです。

1
Jari Turkia

ブリッジはネットワーク初期化スクリプトによって制御されておらず、libvirtによって制御されています。 libvirtdサービスが起動すると、ブリッジが起動するはずです。

私はこのように走らないでしょう。私は、ブリッジをネットワークのinitscriptによって制御され、libvirt構成にブリッジがありません。

現在使用しているifcfg-ファイルで問題ありません。 libvirtから設定を削除し、それらのファイルが残っていることを確認してから、chkconfig network on

はい、chkconfigはEL7で動作します。

1
suprjami

ブリッジの開始時に物理リンクがアップしていません。物理インターフェイスに遅延を追加します。

0
Nils