워크스테이션에는 eth0
다음 설정을 사용하여 DHCP 서버로 실행되는 인터페이스가 있습니다.
auto eth0
iface eth0 inet static
network 10.0.0.0
address 10.0.0.1
netmask 255.0.0.0
gateway 10.0.0.1
broadcast 0.255.255.255
/etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 10.0.0.0 netmask 255.0.0.0 {
range 10.0.0.1 10.0.0.254;
option time-servers 10.0.0.1;
option broadcast-address 10.255.255.255;
default-lease-time 600;
max-lease-time 7200;
}
eth0
QEMU에서 생성된 모든 시스템에 DHCP 서버가 제공하는 정의된 NIC의 IP 주소가 할당되도록 DHCP 구성 설정을 변경하지 않고 브리지를 생성 할 수 있습니까?
워크스테이션이 스위치에 연결되어 있고, 다른 컴퓨터도 스위치에 연결되어 있으며, 목표는 IP 주소를 사용하여 네트워크의 다른 컴퓨터에서 가상 머신에 액세스할 수 있도록 하는 것입니다.10.0.0.X
답변1
가장 간단한 방법은 초기 인터페이스를 브리지로 정의하는 것입니다. 예를 들어 iface eth0 ...
의 정의를 삭제 /etc/network/interfaces
하고 의 정의로 바꿉니다 iface br0
.
auto br0
iface br0 inet static
address 10.0.0.1/8
bridge_ports eth0
bridge_stp off
bridge_maxwait 0
bridge_fd 0
bridge_hello 2
bridge_maxage 12
완료되면 브리지 네트워킹을 사용하도록 가상 머신을 구성해야 합니다 br0
.
더 이상 에 IP 주소가 없습니다 eth0
. 그것/그들은 열릴 것이다 br0
. 이는 상대적으로 중요하지 않으며 어떤 것에도 거의 영향을 미치지 않습니다. 인터페이스 이름에 관심이 있는 프로그램에만 해당됩니다. 대부분은 그렇지 않지만 일부는... 일부 데몬(예: dhcpd
또는 arpwatch
)을 좋아하거나 실행할 때 대신 tcpdump
사용해야 합니다 . 물론 그것도 사실이지만 dhcp를 실행하는 동일한 인터페이스와 시스템에 있으면 안 됩니다. 서버 dhcp 클라이언트를 실행합니다. 그럼에도 불구하고 이를 사용하려면 다시 구성해야 합니다 .tcpdump -i br0
tcpdump -i eth0
dhclient
br0
dhcpd
DHCP 서버 가 워크스테이션과 동일한 컴퓨터인 br0
경우 eth0
.
Debian(또는 Debian의 파생 제품)을 실행 중인 것으로 나타나므로 에서 이 작업을 수행할 수 있습니다 /etc/default/isc-dhcp-server
. 예를 들어, br0(LAN의 가상 머신 및 물리적 호스트용) 및 무선 인터페이스 wlan0을 수신하는 다음이 있습니다. (휴대폰, 노트북, 태블릿 등의 경우):
INTERFACESv4="br0 wlan0"
eth0/br0 에서 네트워크를 다시 시작하려면 재부팅하거나 유사한 명령을 사용해야 합니다 ifdown eth0 ; sleep 5; ifup br0
. 이 작업이나 유사한 작업을 반복적으로 수행하려면 ssh
명령줄로 실행하는 것이 매우 중요합니다. 그렇지 않으면 eth0이 다운될 때 br0을 시작할 수 없습니다. sleep 5
iface를 닫고 다시 시작하는 사이에 몇 초 정도 기다리는 것이 좋다고 생각하기 때문에 이것이 존재합니다.
일부 네트워크 데몬은 eth0이 사라진 후 다시 시작해야 합니다. eth0을 수신하는 데몬이 많으면 모두 다시 시작하는 것보다 다시 시작하는 것이 더 쉬울 수 있습니다.
답변2
VM이 KVM/qemu라고 지정하는 경우 qemu 네트워크로 시작하는 것이 가장 좋습니다. 1) 사용자, 2) 클릭, 3) 패스스루의 3가지 변형이 있습니다.
-netdev user,
- 기본적으로 VM 게스트는 개인 IP 범위 서브넷 10.0.2.0/24 내에서 완전히 격리되고 통합 qemu-DHCP 서버는 VM 인터페이스에 IP: 10.0.2.15 주소를 제공한다는 의미입니다. 이 서브넷은 부팅 시 활성화/비활성화할 수 있는 NAT 방화벽을 통해 호스트 인터페이스에 연결됩니다. 활성화된 경우에도 다음 매개변수를 사용하여 포트 전달을 활성화하지 않으면 외부에서 VM에 연결할 수 없습니다.
-netdev user,id=n0,hostfwd=hostip:hostport-guestip:guestport
-netdev tap,
[tap] - [br0 브리지] - [eth0 호스트 인터페이스]를 통해 VM eth0 인터페이스에 연결할 수 있는 기회를 제공합니다. 여기서는 호스트 수준에서 호스트 eth0이 아닌 br0 인터페이스를 구성해야 한다는 점을 고려해야 합니다. 가상 머신에는 기본 IP가 제공되지 않으므로 일반적인 방법으로 구성해야 합니다. 이는 VM의 모든 포트를 서로 연결하거나 상자 외부에서 보는 제한 없이 동일한 호스트에서 실행되는 더 많은 VM을 연결하려는 경우에도 유용합니다.passthrough는 PCI 네트워크 카드의 모든 제어권을 VM에 전달할 수 있는 가능성을 기반으로 하는 최종 변형입니다. 이는 간단한 구성이 아니며 일부 튜토리얼 예제에서 찾을 수 있습니다. 이렇게 하면 호스트 커널의 제어에서 카드가 완전히 제거되며, 호스트에서 네트워크 연결이 필요한 경우 호스트에는 최소한 두 개의 네트워크 카드가 있어야 합니다.
내 조언: 먼저 VM 네트워킹 사용 목표를 고려하십시오. 클라이언트용 VM만 사용해야 하거나 일부 서버 서비스에 대해 단일 개방 포트만 사용하려는 경우 -netdev 사용자가 가장 쉬운 방법인 반면 호스트 DHCP 서버는 더 이상 사용되지 않습니다. 가상 머신을 보다 정교하게 사용하거나 동일한 호스트에서 실행되는 더 많은 가상 머신을 상호 연결할 계획이라면 TAP가 올바른 선택입니다. 완전히 격리된 VM의 경우 NIC 패스스루를 사용합니다.
PS 예, 눈치채지 못했습니다. -netdev socket,
하지만 기본적으로 VM을 연결하기 위한 것이 아니라 단일 호스트 내에서 더 많은 VM을 상호 연결하기 위한 것입니다.