libvirtd - vps가 기존 브리지를 사용하도록 하기

libvirtd - vps가 기존 브리지를 사용하도록 하기

저는 CentOS 6.4에서 KVM을 실행하는 작업을 하다가 문제에 부딪혔습니다. VPN이 연결할 브리지를 설정하고 수동으로 필요한 변경을 시도하는 방법에 대한 여러 온라인 문서를 살펴본 후 마침내 이 문제를 발견했습니다.이 기사이를 수행하는 자동적인 방법을 보여줍니다.

virsh iface-bridge eth1 br0

이제 내가 할 때 brctl show다음을 얻습니다.

bridge name     bridge id               STP enabled     interfaces
br0             8000.001b78bb915a       yes             eth1

지금까지 모든 것이 좋아 보입니다. 내 도메인 구성에는 다음과 같은 네트워크 구성이 있습니다.

<interface type='network'>
  <mac address='52:54:00:a3:dd:2c'/>
  <source network='br0'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

그런데 도메인을 시작하려고 하면 다음 오류가 계속 발생합니다.

error: Failed to start domain service-a-2
error: Network not found: no network with matching name 'br0'

좀 더 검색한 후 다음을 실행하여 하이퍼바이저에서 사용할 수 있는 네트워크를 나열할 수 있음을 발견했습니다.

$ ->  virsh net-list --all

하지만 내 경우에는 비어 있습니다. 그래서 찾았어요이 기사이는 기존 브리지를 사용하도록 설정하는 방법을 보여줍니다. 따라서 내 구성은 다음과 같습니다.

<network>
  <name>br0</name>
  <forward mode="bridge"/>
  <bridge name="br0" />
</network>

를 통해 하이퍼바이저에 추가했습니다 virsh net-define /tmp/br0.xml. 그런 다음 네트워크와 도메인을 시작했지만 이제 ifconfig명령을 실행하면 vnet0 항목이 표시됩니다.

vnet0     Link encap:Ethernet  HWaddr FE:54:00:A3:DD:2C
inet6 addr: fe80::fc54:ff:fea3:dd2c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

말이 안 되네요. 도메인이 기존 br0 브리지를 사용해야 하지 않나요? 하이퍼바이저에 의해 시작된 모든 vps에 대해 새로운 vnetX 터널(?)이 생성됩니까?

답변1

이것은 절대적으로 의미가 있습니다. 브리지를 설정할 때 발생하는 일은 아무것도 연결되지 않은 더미 브리지 장치입니다( brctl show아래에 NIC가 나열되지 않음).

브리지를 물리적 인터페이스에 연결하면 브리지에 연결된 인터페이스 중 하나로 나타나며 실제로는 실제 트래픽이 통과하게 되지만 이는 브리지의 인터페이스 중 하나일 뿐입니다. VM을 시작하면 탭 장치가 나타나며 이 장치도 스위치에 연결되어야 합니다. 따라서 스위치는 두 개의 인터페이스를 갖고 둘 사이에서 트래픽을 이동할 수 있습니다. 브리지를 VM이 연결되고(탭은 vnet0 장치임) 실제 NIC도 연결되는 네트워크 스위치로 생각하면 됩니다. 더 많은 VM을 이 브리지에 연결할 수 있으며 모든 트래픽은 브리지에 연결된 물리적 NIC를 통해 네트워크로 이동합니다.

관련 정보