내 목표는 간단합니다. 물리적 이더넷 인터페이스가 있는 Ubuntu 서버를 브리지 네트워크 장치로 사용하여 가상 머신이 여기에 연결하고 LAN 및 인터넷의 다른 장치와 통신할 수 있도록 하는 것입니다. NAT를 사용하고 싶지 않습니다.
이제 지난 며칠 동안 제가 직면한 문제는 LAN에서 VM을 실행하고 인터넷과 통신할 때 서버 DNS가 엉망이 되어 인터넷에 연결할 수 없다는 것입니다. DNS 설정을 수동으로 조정해야 하는데 제가 하고 있는 작업이 임시방편일 뿐 올바른 접근 방식은 아닌 것 같습니다.
제가 이해한 바는 브리지 인터페이스는 포트를 할당할 수 있는 소프트웨어 네트워크 스위치라는 것입니다. 일반적인 네트워크처럼 여러 L3 장치를 포함할 수 있습니다. 브리지를 생성하기 위해 유틸리티를 사용할 때 ip
일반적인 사용 사례 시나리오는 Linux 상자를 스위치로 사용하고 그 위에 여러 이더넷 포트를 "브리지"하는 것입니다. 이 포트는 각각 에지 라우터/방화벽 및 내부 LAN에 연결될 수 있습니다. 이더넷 포트는 가상 브리지 인터페이스의 슬레이브 인터페이스가 되며, 가상 브리지 인터페이스는 슬레이브 인터페이스로 들어오는 모든 패킷을 수신합니다.
나는 이 브리지 인터페이스를 생성함으로써 내 컴퓨터뿐만 아니라 호스트 컴퓨터 자체에서 실행되는 2개의 VM 모두에 대해 단일 이더넷 인터페이스를 사용할 수 있을 것이라고 생각했습니다. 하지만 여기에 질문이 있습니다. 고정 IP 주소를 브리지에 할당하면 누가 해당 IP 주소를 얻습니까? 스위치 가상 인터페이스인가요? 소유자? 가상 기기?
브리지 인터페이스를 사용하는 올바른 방법은 무엇입니까? 이 경우 브리징이 필요합니까? 감사해요.
답변1
브리지 인터페이스를 활용하여 단일 인터페이스에서 여러 가상 머신에 IP를 제공할 수 있으며, 호스트와 동일한 네트워크에 가상 머신을 두려는 경우 반드시 필요합니다.
브리지 인터페이스를 생성하고 고정 IP를 할당하면,호스트 IP. 기억하세요.브리지 인터페이스, 물리적 인터페이스 자체가 아닌 brctl addif <bridge> <device>
예를 들어, 물리적 인터페이스를 브리지 인터페이스에 할당하려면 명령을 사용하면 됩니다. 변경 사항을 확인하는 데 사용됩니다 brctl show
.
그런 다음 VM을 만들고 해당 브리지 인터페이스를 사용하도록 설정할 때 VM 운영 체제 내에서 자체 고정 IP(또는 DHCP 할당 IP)를 설정할 수 있습니다. 이제 가상 머신은 정의한 IP를 사용하는 호스트와 동일한 네트워크에 있게 됩니다. 귀하는 게스트에게 핑을 보낼 수 있어야 하고, 게스트는 외부적으로 핑을 할 수 있어야 합니다.
Ubuntu를 사용하고 있으므로 16.04 이상을 사용하는 경우 netplan을 사용하여 매우 쉽게 설정할 수 있습니다. 물리적 인터페이스가 호출되고 브리지 이름을 지정한다고 가정하면 /etc/netplan/01-netcfg.yaml
(또는 거기에 있는 파일이 무엇이든) 다음과 같아야 합니다.50-cloud-init.yaml
eno1
br0
network:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: no
bridges:
br0:
interfaces: [eno1]
dhcp4: yes
이렇게 하면 브리지가 생성되고 브리지 인터페이스의 호스트에서 DHCP가 활성화됩니다. 물리적 인터페이스에서 DHCP를 어떻게 비활성화했는지 살펴보세요 eno1
. 호스트가 고정 IP를 갖도록 하려면 다음을 참조하세요.이 페이지더 많은 예시를 알아보세요.
그런 다음 실행 netplan apply
하여 변경 사항을 적용합니다. 그런 다음 ip a
호스트에서 실행하면 물리적 인터페이스에 master br0
이를 표시됩니다. 물리적 인터페이스에는 IP가 없어야 합니다. 이제 br0
위에서 지정한 IP와의 인터페이스 도 있어야 합니다 .
넷플랜을 사용하고 계시다면 /etc/network/interfaces
확인해 보세요.여기.