브리징을 사용하여 게스트 가상 머신을 내 네트워크에 연결하려고 합니다. 온라인에서 일부 리소스를 찾았지만 오래된 것 같거나, xen 또는 Ubuntu를 참조하거나, 불완전한 것 같습니다. 호스트 컴퓨터는 CentOS 5.5를 실행하고 있으며 libvirt를 사용하여 가상 컴퓨터를 관리하므로 이를 사용하여 가상 컴퓨터를 만들고 시작하고 중지합니다. 브리지(br0)를 만들고 eth0을 여기에 연결했습니다. 가상 머신이 IP 주소를 얻지 못하는 것 같습니다. DHCP를 사용하여 주소를 얻고 가상 머신에 대한 고정 임대를 설정하겠습니다.
호스트의 ifconfig:
br0 Link encap:Ethernet HWaddr 00:1A:4D:53:C3:A6
inet addr:192.168.1.121 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::21a:4dff:fe53:c3a6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5222 errors:0 dropped:0 overruns:0 frame:0
TX packets:470 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:753743 (736.0 KiB) TX bytes:47868 (46.7 KiB)
eth0 Link encap:Ethernet HWaddr 00:1A:4D:53:C3:A6
inet6 addr: fe80::21a:4dff:fe53:c3a6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:103200 errors:0 dropped:0 overruns:0 frame:0
TX packets:116575 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:13605883 (12.9 MiB) TX bytes:63269448 (60.3 MiB)
Interrupt:217 Base address:0xc000
eth1 Link encap:Ethernet HWaddr 00:1B:21:0A:25:AA
inet addr:192.168.1.91 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::21b:21ff:fe0a:25aa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3124648 errors:0 dropped:0 overruns:0 frame:0
TX packets:1693433 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:4531121842 (4.2 GiB) TX bytes:119907573 (114.3 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:27294 errors:0 dropped:0 overruns:0 frame:0
TX packets:27294 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:34266420 (32.6 MiB) TX bytes:34266420 (32.6 MiB)
virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:51332 errors:0 dropped:0 overruns:0 frame:0
TX packets:89020 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2916963 (2.7 MiB) TX bytes:132997389 (126.8 MiB)
vnet0 Link encap:Ethernet HWaddr FE:52:00:1A:C8:4F
inet6 addr: fe80::fc52:ff:fe1a:c84f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:25 errors:0 dropped:0 overruns:0 frame:0
TX packets:518 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:4226 (4.1 KiB) TX bytes:51190 (49.9 KiB)
산출brctl show
bridge name bridge id STP enabled interfaces
br0 8000.001a4d53c3a6 no vnet0
eth0
virbr0 8000.000000000000 yes
출력 route
:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
192.168.1.0 * 255.255.255.0 U 0 0 0 br0
192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0
169.254.0.0 * 255.255.0.0 U 0 0 0 br0
default DD-WRT 0.0.0.0 UG 0 0 0 br0
마지막으로 구성하려는 VM의 네트워킹 부분은 다음과 같습니다.
<interface type='bridge'>
<mac address='54:52:00:1a:c8:4f'/>
<source bridge='br0'/>
</interface>
답변1
이미 발견하셨듯이 모든 일이 제대로 이루어지고 있습니다. 방화벽 문제입니다. 이전처럼 트래픽을 허용하는 규칙을 추가하거나 방화벽을 완전히 끄거나 최신 버전의 Fedora 및 RHEL에서와 같이 /etc/sysctl.conf에 다음을 추가하여 이 문제를 해결할 수 있습니다.
# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
그런 다음 실행 sysctl -p
하여 이러한 변경 사항을 적용합니다.
답변2
KVM은 자체 네트워크 브리지를 구축합니다. 이것은 다리입니다 virbr0
. 인터넷에 연결하는 방법을 구성할 수 있어야 합니다.
eth0
가상 머신에서는 브리지 대신 인터페이스가 표시되어야 합니다 . 이것은 장치의 다른 쪽이 될 것입니다 vnet0
.
저는 KVM이 DHCP 주소를 배포하기 위해 브리지 네트워크용 DNSMasq 서버를 시작하는 Ubuntu에서 작업하고 있습니다. KVM은 iptables
가상 머신에 대한 네트워크 액세스를 구성하는 데에도 사용됩니다 .
생성한 브리지를 삭제하고 가상 머신을 다시 시작해 보세요. 내가 본 구성에 따르면 192.168.122.0 범위의 주소를 얻을 것으로 예상됩니다.
KVM이 내 방화벽과 상호 작용하는 방식이 마음에 들지 않으며 내 방화벽도 마찬가지입니다.KVM 수동 네트워킹. 내 구성은 이더넷 인터페이스에 연결되지 않은 가상 브리지를 사용합니다. 이것KVM 네트워크 페이지Ubuntu 커뮤니티의 콘텐츠는 현재 KVM이 네트워킹을 수행하는 방식을 이해하는 데 도움이 될 수 있습니다.
편집: 브리지 네트워킹을 다시 살펴보았습니다. 왜 당신의 주소가 192.168.1.x인지 잘 모르겠습니다 eth1
. 귀하의 구성은 제가 기대했던 것과 거의 같습니다. 가상 머신에 고정 주소를 설정해 보고 통신이 가능한지 확인해 보세요.
DHCP에 무슨 일이 일어나고 있는지 테스트하기 위해 DHCP 트래픽이나 mac 주소에서 들어오는 모든 트래픽을 실행 tcpdump
하거나 br0
모니터링 해 보겠습니다 . 그런 다음 DHCP 주소를 얻으십시오. 브리지에서 SPT를 활성화해야 할 수도 있습니다.eth0
54:52:00:1a:c8:4f
제가 자체 네트워크를 구축한 이유는 외부에서 가상머신에 접속할 수 있기 위해서입니다. 저는 두 개의 브리지를 운영하고 있으며 그 중 하나는 DMZ를 호스팅합니다.