Bridge를 시작할 때 DHCP를 통해 IP를 얻을 수 없습니다.

Bridge를 시작할 때 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

네트워크 인터페이스 탭에 br0이 표시된 virt-manager 스크린샷

관련 내용 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.
  • 로그에서 중요한 항목을 찾은 결과 전달 상태에 들어가기 전에 IP를 얻으려는 것으로 나타납니다 systemd.br0
  • 나는 열었다오류 8086CentOS 버그 추적기에서.

답변1

브리지는 네트워크 초기화 스크립트가 아니라 libvirt에 의해 제어됩니다. libvirtd 서비스가 시작되면 브리지가 시작되어야 합니다.

나는 이렇게 뛰지 않을 것이다. 네트워크 초기화 스크립트에 의해 제어되는 브리지를 만들고 libvirt 구성에는 브리지가 없습니다.

현재 가지고 있는 ifcfg- 파일은 괜찮습니다. libvirt에서 구성을 제거하고 파일이 아직 있는지 확인한 다음chkconfig network on

예, chkconfig는 EL7에서 작동합니다.

답변2

에서 인용http://www.microhowto.info/howto/persistly_bridge_traffic_ Between_two_or_more_ethernet_interfaces_on_redhat.html:

따라서 간단한 경우(예: VM 그룹을 단일 물리적 인터페이스에 브리징하는 경우)에는 STP를 비활성화할 수 있습니다.

STP를 비활성화하는 것이 작동하게 하는 방법인 것 같습니다.

답변3

브리지가 나타나면 물리적 링크가 아직 활성화되지 않은 것입니다. 물리적 인터페이스에 대기 시간을 추가하세요.

관련 정보