/etc/network/interfaces
이와 유사하게 구성된 외부에서 볼 수 있는 여러 개의 가상 머신을 갖는 KVM 호스트를 설정하고 있습니다.
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
iface eth0 inet6 static
address 2001:0000:1004:1019::
netmask 64
post-up /sbin/ip -family inet6 route add 2001:0000:1004:10ff:ff:ff:ff:ff dev eth0
post-up /sbin/ip -family inet6 route add default via 2001:0000:1004:10ff:ff:ff:ff:ff
pre-down /sbin/ip -family inet6 route del default via 2001:0000:1004:10ff:ff:ff:ff:ff
pre-down /sbin/ip -family inet6 route del 2001:0000:1004:10ff:ff:ff:ff:ff dev eth0
auto br0
iface br0 inet static
address 41.100.60.25
netmask 255.255.255.0
network 41.100.60.0
broadcast 41.100.60.255
gateway 41.100.60.254
bridge_ports eth0
bridge_maxwait 12
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
dns-nameservers 8.8.8.8
dns-search ovh.net
post-up ip link set br0 address xx:xx:xx:xx:xx:xx
post-up ip addr add 164.123.123.123/32 dev br0 broadcast 164.123.123.123
post-down ip addr del 164.123.123.123/32 dev br0
post-up ip route add default via 41.100.60.254 dev br0
post-down ip route del default via 41.100.60.254 dev br0
post-down brctl delbr br0
eth0 및 br0 인터페이스는 결국 모두 작동하지만 부팅 화면을 보면 다음과 같은 내용이 표시됩니다(어떤 이유로 부팅 로그에 없음).
Waiting for network configuration
Waiting upto 60 more seconds for network configuration"
Booting system without full network configuration
또한 내가 달릴 때
ifquery --state
또는
cat /run/network/ifstate
eth0과 br0이 누락된 것을 볼 수 있습니다.
lo=lo
편집 1:
다음 명령을 사용하여
ifup br0 --no-act
다음 명령 세트를 사용하면 실행됩니다.ifup br0
run-parts /etc/network/if-pre-up.d
ip addr add 41.100.60.25/255.255.255.0 broadcast 41.100.60.255 dev br0 label br0
ip link set dev br0 up
ip route add default via 41.100.60.254 dev br0
ip link set br0 address xx:xx:xx:xx:xx:xx
ip addr add 164.123.123.123/32 dev br0 broadcast 164.123.123.123
ip route add default via 41.100.60.254 dev br0
run-parts /etc/network/if-up.d
이 명령이 반복되었음을 알려줍니다.
ip route add default via 41.100.60.254 dev br0
그래서 내 구성에서 제거한 후
post-up ip route add default via 41.100.60.254 dev br0
post-down ip route del default via 41.100.60.254 dev br0
나는 볼 수 있다
run-parts /etc/network/if-pre-up.d
ip addr add 41.100.60.25/255.255.255.0 broadcast 41.100.60.255 dev br0 label br0
ip link set dev br0 up
ip route add default via 41.100.60.254 dev br0
ip link set br0 address xx:xx:xx:xx:xx:xx
ip addr add 164.123.123.123/32 dev br0 broadcast 164.123.123.123
run-parts /etc/network/if-up.d
이것은 실행 시 재부팅 후 br0이 손실되는 문제를 해결했습니다.
ifquery --state
# or
cat /run/network/ifstate
내가 볼 수 있으니까
lo=lo
br0=br0
답변1
"EDIT 1" 이후에는 문제가 없도록 inet6 정적 구성을 일시적으로 제거하기로 결정했습니다.
Inet과 inet6에는 "정적" 및 "수동"과 같은 두 가지 다른 구성 유형이 있다고 생각합니다. 이로 인해 ifup 및 ifdown을 실행할 때 명령이 일부 중복될 수 있습니다.