본문 바로가기
Virtual/KVM

[Rocky 8.10][KVM] Bridge 설정

by Yoon_estar 2025. 7. 15.
728x90

Version

  • OS : Rocky linux 8.10

사전 작업

2025.07.10 - [Virtual/KVM] - [Rocky 8.10][KVM] KVM libvirt 설치

 

 

참고 문서

https://www.redhat.com/en/blog/setup-network-bridge-VM

 

How to set up a network bridge for virtual machine communication

If you're using virtual machines (VMs) with a hypervisor like KVM or QEMU, you may need to configure a network bridge to facilitate systems communicating on ...

www.redhat.com

https://docs.redhat.com/ko/documentation/red_hat_enterprise_linux/9/html/configuring_and_managing_networking/proc_creating-a-virtual-network-in-libvirt-with-an-existing-bridge_assembly_using-a-vxlan-to-create-a-virtual-layer-2-domain-for-vms

 

10.4. 기존 브리지를 사용하여 libvirt에 가상 네트워크 생성 | 네트워킹 구성 및 관리 | Red Hat Enterpri

형식멀티 페이지단일 페이지모든 문서를 PDF로 표시

docs.redhat.com

 

개요(작업 내용)

  • 이 작업은 VM이 외부 네트워크와 직접 통신할 수 있도록 만들어주는 핵심 네트워크 설정
  • 기존 물리 NIC(eth0)를 Bridge 장치 br0에 연결
  • libvirt가 br0을 통해 VM에 외부 통신 가능하도록 설정

 

현재 NIC 확인

  • connected 상태인 NIC(eth0)를 브릿지에 붙일 대상 인터페이스로 선택
# nmcli device status
DEVICE       TYPE      STATE                   CONNECTION
eth0         ethernet  connected               Wired connection 1
docker0      bridge    connected (externally)  docker0
virbr0       bridge    unmanaged               --
vethd3781b8  ethernet  unmanaged               --
lo           loopback  unmanaged               --

 

현재 연결된 eth0 정보 백업

# nmcli connection show "Wired connection 1" > eth0_backup.txt

or

# nmcli connection show "System eth0" > eth0_backup.txt

 

Bridge interface 생성

# nmcli connection add type bridge autoconnect yes con-name br0 ifname br0
Connection 'br0' (db509c70-c2bd-4829-b80f-e1e4a74e6704) successfully added.

 

확인

# nmcli device status
DEVICE       TYPE      STATE                                  CONNECTION
eth0         ethernet  connected                              Wired connection 1
docker0      bridge    connected (externally)                 docker0
br0          bridge    connecting (getting IP configuration)  br0
virbr0       bridge    unmanaged                              --
vethd3781b8  ethernet  unmanaged                              --
lo           loopback  unmanaged                              --

 

브릿지에 물리 NIC 연결

  • eth0을 br0의 slave로 지정
# nmcli connection add type ethernet slave-type bridge autoconnect yes con-name br0-slave ifname eth0 master br0

Connection 'br0-slave' (e89f2da4-aacc-4a3e-9844-2db8788450ed) successfully added.

 

브릿지 IP 설정(Static IP)

  • 원래 eth0이 쓰던 IP 정보를 그대로 br0에 옮김
nmcli connection modify br0 ipv4.addresses 192.168.207.10/24
nmcli connection modify br0 ipv4.gateway 192.168.207.254
nmcli connection modify br0 ipv4.dns "8.8.8.8"
nmcli connection modify br0 ipv4.method manual

 

브릿지 연결 활성화 및 확인

# nmcli con up br0
# nmcli con show br0
# ip addr show br0

 

기존 eth0 연결 비활성화

  • 해당 작업 시 터미널 연결 중이라면 끊기니 주의 
nmcli con down "Wired connection 1"

 

확인

  • 재접속 후 확인
# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.207.10  netmask 255.255.255.0  broadcast 192.168.207.255
        inet6 fe80::c680:dae9:db22:be34  prefixlen 64  scopeid 0x20<link>
        ether 34:5a:60:46:83:32  txqueuelen 1000  (Ethernet)
        RX packets 945  bytes 97190 (94.9 KiB)
        RX errors 0  dropped 43  overruns 0  frame 0
        TX packets 69  bytes 10717 (10.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 34:5a:60:46:83:32  txqueuelen 1000  (Ethernet)
        RX packets 80174  bytes 8130876 (7.7 MiB)
        RX errors 0  dropped 3915  overruns 0  frame 0
        TX packets 982  bytes 200578 (195.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

libvirt에서 브릿지 네트워크 설정

  • 수동으로 만든 br0은 OS 레벨에서 만든 외부 브릿지 → libvirt에게 명시
  • br0을 사용해서 VM의 네트워크 연결 가능
  • 이 네트워크는 외부 네트워크로 직접 통신 가능

브릿지용 네트워크 XML 생성

cat <<EOF > /etc/libvirt/qemu/networks/bridge-network.xml
<network>
  <name>bridge-network</name>
  <forward mode='bridge'/>
  <bridge name='br0'/>
</network>
EOF

 

libvirt에 브릿지 네트워크 등록 및 시작

# virsh net-define /etc/libvirt/qemu/networks/bridge-network.xml
# virsh net-start bridge-network
# virsh net-autostart bridge-network

 

확인

# virsh net-list --all

**** Name             State    Autostart   Persistent
---------------------------------------------------
 bridge-network   active   yes         yes
 default          active   yes         yes
 
 
# nmcli device status
DEVICE       TYPE      STATE      CONNECTION
br0          bridge    connected  br0
docker0      bridge    connected  docker0
eth0         ethernet  connected  br0-slave
virbr0       bridge    unmanaged  --
vethd3781b8  ethernet  unmanaged  --
lo           loopback  unmanaged  --