나는 후속 조치를 취하고 있다libvirt 및 KVM을 사용하여 네트워크를 브리징하는 방법에 대한 훌륭한 기사입니다., 그러나 이를 완전히 이해/따르기에는 몇 가지 기본 지식이 부족합니다.
기사에 따르면,
- virbr0 브리지는 NAT를 사용하여 연결을 제공하므로 물리적 인터페이스를 추가해서는 안 됩니다.
- 가상 머신을 생성하고 시작하면 가상 인터페이스가 브리지에 추가됩니다.
가장 중요한 것은,
- 브리지에 물리적 이더넷 인터페이스를 추가하는 경우 기본 이더넷 인터페이스를 사용할 수 없습니다.
- 따라서 추가 인터페이스를 사용해야 합니다.
물리적 인터페이스, 가상 인터페이스, 기본 인터페이스 및 추가 인터페이스 간의 관계에 대해서는 잘 모르겠습니다. 따라서 기사에서 그가 추가 인터페이스 enp0s29u1u1을 사용하고 있다고 말하면 이는 이더넷-USB 어댑터에서 제공하는 인터페이스입니다. 어떤 추가 인터페이스가 있는지 모르겠습니다.나위해 사용해야한다내 상황, 이는 이더넷 카드가 있는 일반 데비안입니다.
도와주세요.
답변1
"물리적 인터페이스"는 컴퓨터의 실제 네트워크 장치, 즉 이더넷 케이블이나 무선 네트워크 장치가 연결되는 장치를 의미합니다.
"가상 인터페이스"는 특정 물리적 장치와 연결되지 않은 네트워크 인터페이스를 의미합니다. 즉, VLAN 인터페이스, 브리지, tun/tap 인터페이스 등이 있습니다.
"기본 인터페이스"는 시스템의 기본 IP 주소(및 기본 경로)와 연결된 네트워크 인터페이스입니다.
이 경우 "추가 인터페이스"는 기본 인터페이스 이외의 모든 물리적 인터페이스를 나타냅니다.
이 두 진술은...
- virbr0 브리지는 NAT를 사용하여 연결을 제공하므로 물리적 인터페이스를 추가해서는 안 됩니다.
- 가상 머신을 생성하고 시작하면 가상 인터페이스가 브리지에 추가됩니다.
...맞다. 이 virbr0
브리지는 libvirt "기본" 네트워크와 연결되어 있으며 NAT를 사용하여 이 브리지에 물리적 인터페이스를 추가하지 않으려는 외부 세계에 가상 머신을 연결합니다.
Libvirt는 가상 머신을 시작하고 이를 브리지에 추가할 때 조정/탭 장치를 생성합니다.
그런데 다음 발언은..
- 브리지에 물리적 이더넷 인터페이스를 추가하는 경우 기본 이더넷 인터페이스를 사용할 수 없습니다.
...약간 단순화했습니다. 너할 수 있는기본 이더넷 인터페이스를 브리지의 일부로 사용하지만 프로세스는 보조 인터페이스를 사용할 때보다 조금 더 복잡합니다(실수로 인터넷 연결을 비활성화할 수 있는 좋은 방법입니다). 일반적으로 말하면 다음이 필요합니다.
- 브리지 장치 생성
- 브리지에 이더넷 인터페이스 추가
- 이전에 기본 인터페이스와 연결된 IP 주소를 사용하여 브리지 장치를 구성합니다.
예를 들어 내 시스템에서는 eth0
다음과 같습니다.
# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:9b:a0:2a brd ff:ff:ff:ff:ff:ff
altname enp1s0
inet 192.168.122.64/24 brd 192.168.122.255 scope global dynamic noprefixroute eth0
valid_lft 3570sec preferred_lft 3570sec
inet6 fe80::d6:992e:d74a:c05a/64 scope link noprefixroute
valid_lft forever preferred_lft forever
이것이 내 시스템의 유일한 물리적 인터페이스입니다. 또한 기본 경로도 알아야 합니다.
# ip route
default via 192.168.122.1 dev eth0 proto dhcp metric 100
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.64 metric 100
eth0
브리지에 추가하려면 먼저 브리지 장치를 만듭니다.
# ip link add br-example type bridge
eth0
그런 다음 브리지에 추가 하고 기존 주소를 제거합니다 eth0
.
# ip link set eth0 master br-example
# ip addr flush eth0
원래 주소를 추가 eth0
하고 br-example
기본 경로를 복원합니다.
# ip addr add 192.168.122.64/24 dev br-example
# ip link set br-example up
# ip route add default via 192.168.122.1
이 시점에서 (a) 브리지가 있고 br-example
, (b) eth0
해당 브리지의 구성원이며, (c) 브리지를 통해 여전히 연결되어 있습니다 eth0
. 링크된 기사의 지침에 따라 이와 관련된 libvirt 네트워크를 만들고 br-example
네트워크 관점에서 가상 머신을 연결할 수 있었습니다. 머신은 로컬 네트워크에 물리적으로 연결된 다른 장치처럼 보였습니다.
물론, 위의 프로세스는 지속적인 변경을 가져오지 않습니다. 릴리스마다 이것이 어떻게 달라지는지, 링크된 문서는 프로세스에 대한 좋은 개요를 제공합니다.