libvirt의 도움 없이 호스트 물리적 포트 1개를 게스트 가상 포트 1개에 전용으로 사용하면 됩니다.
호스트는 다음과 같습니다:
- 2개의 물리적 인터페이스: eth0 및 eth1
- 모든 VM에 대한 가상 인터페이스를 포함한 1개의 가상 브리지(vmbr0)
- eth0 및 vmbr0이 브리지 모드에 있습니다.. 모든 게스트와 호스트가 동일한 서브넷(192.168.247.0/24)에 있기 때문입니다.
이것이 내 구성입니다./etc/network/interfaces
auto lo
iface lo inet loopback
iface eth0 inet manual
iface eth1 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.247.2
netmask 255.255.255.0
gateway 192.168.247.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
eth1은 ISP 모뎀에 연결되어 있어야 합니다. 따라서 eth1은 인터넷을 종료합니다. 호스트의 가상 머신 중 하나인 가상 방화벽에 eth1을 전용으로 사용하고 싶습니다. 가상 방화벽은 호스트가 아닌 모든 라우팅 작업을 수행합니다.
내가 아는 한, 이 작업을 위해서는 MacVTap(macvlan)을 사용해야 하지만 내가 보는 모든 가이드는 KVM+libvirt에 대한 것입니다.그리고 나는 libvirt가 없습니다!Proxmox는 "사용자 친화적인 작업"을 모두 수행하고 있습니다.
아래에서 볼 수 있듯이 이제 인터페이스 Tap101i0 및 Tap101i1인 1개의 VM만 활성화되어 있습니다. 여기서 Tap101i0은 vmbr0에 있고 호스트의 eth0과 동일한 서브넷 마스크를 공유하는 것으로 가정됩니다. 그리고 tap101i1은 호스트의 eth1에 100% 바인딩되어야 하므로 인터넷이 종료됩니다.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr0 state UP mode DEFAULT group default qlen 1000
link/ether 00:15:17:50:95:66 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 00:15:17:50:95:67 brd ff:ff:ff:ff:ff:ff
6: tap101i0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
link/ether 06:97:77:30:cc:a7 brd ff:ff:ff:ff:ff:ff
7: tap101i1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
link/ether ce:b4:f3:40:38:0d brd ff:ff:ff:ff:ff:ff
8: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 00:15:17:50:95:66 brd ff:ff:ff:ff:ff:ff
답변1
이 목적으로 macvlan을 사용할 수 있습니다.
- eth1에 macvlan 인터페이스를 생성합니다:
ip link add link eth1 name macvlan1 type macvlan mode bridge
- macvlan 인터페이스에 IP 주소를 할당합니다. VM은 다음 IP 주소를 사용합니다.
ip addr add 192.168.247.3/24 dev macvlan1
- macvlan 인터페이스를 불러옵니다.
ip link set macvlan1 up
- 가상 머신의 PID를 가져옵니다(
vm-name
실제 이름으로 대체).ps aux | grep [v]m-name
- 가상 머신의 네트워크 네임스페이스에 macvlan 인터페이스를 추가합니다(
PID
실제 PID로 대체).ip link set macvlan1 netns PID
- 가상 머신에서 macvlan 인터페이스를 엽니다(PID를 다시 교체).
ip netns exec PID ip link set macvlan1 up
이제 가상 머신은 마치 eth1에 직접 연결된 것처럼 사용할 수 있습니다. 가상 머신의 IP 주소는 192.168.247.3이며 eth1을 통해 인터넷과 통신할 수 있습니다.