16.3. 권장되는 가상 머신 네트워킹 구성
대부분의 시나리오에서는 기본 VM 네트워킹 구성으로 충분합니다. 그러나 구성을 조정해야 하는 경우 CLI(명령줄 인터페이스) 또는 RHEL 9 웹 콘솔을 사용하여 이를 수행할 수 있습니다. 다음 섹션에서는 이러한 상황에 대해 선택한 VM 네트워크 설정에 대해 설명합니다.
16.3.1. 명령줄 인터페이스를 사용하여 외부적으로 표시되는 가상 머신 구성
기본적으로 새로 생성된 VM은 호스트의 기본 가상 브릿지인 virbr0
을 사용하는 NAT-type 네트워크에 연결됩니다. 이렇게 하면 VM에서 외부 네트워크에 연결하는 데 호스트의 NIC(네트워크 인터페이스 컨트롤러)를 사용할 수 있지만 외부 시스템에서 VM에 연결할 수 없습니다.
VM이 하이퍼바이저와 동일한 외부 네트워크에 표시되도록 하려면 대신 bridged 모드를 사용해야 합니다. 이를 위해 VM을 하이퍼바이저의 물리적 네트워크 장치에 연결된 브릿지 장치에 연결합니다. 이를 위해 명령줄 인터페이스를 사용하려면 아래 지침을 따르십시오.
사전 요구 사항
- 기본 NAT 설정을 사용하는 기존 VM 종료.
하이퍼바이저의 IP 구성입니다. 이는 호스트의 네트워크 연결에 따라 다릅니다. 예를 들어, 이 절차에서는 이더넷 케이블을 사용하여 호스트가 네트워크에 연결된 시나리오를 사용하고, 호스트의 물리적 NIC MAC 주소는 DHCP 서버의 고정 IP에 할당됩니다. 따라서 이더넷 인터페이스는 하이퍼바이저 IP로 처리됩니다.
ethernet 인터페이스의 IP 구성을 가져오려면
ip addr
유틸리티를 사용합니다.# ip addr [...] enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 54:ee:75:49:dc:46 brd ff:ff:ff:ff:ff:ff inet 10.0.0.148/24 brd 10.0.0.255 scope global dynamic noprefixroute enp0s25
절차
호스트에서 물리적 인터페이스에 대한 브리지 연결을 만들고 설정합니다. 자세한 내용은 네트워크 브리지 구성을 참조하십시오.
고정 IP 할당이 사용되는 시나리오에서는 물리적 이더넷 인터페이스의 IPv4 설정을 브리지 인터페이스로 이동해야 합니다.
생성된 브릿지 인터페이스를 사용하도록 VM의 네트워크를 수정합니다. 예를 들어, 다음에서는 bridge0 을 사용하도록 testguest 를 설정합니다.
# virt-xml testguest --edit --network bridge=bridge0 Domain 'testguest' defined successfully.
VM을 시작합니다.
# virsh start testguest
게스트 운영 체제에서 VM이 하이퍼바이저와 동일한 네트워크의 다른 물리적 시스템이었던 것처럼 시스템 네트워크 인터페이스의 IP 및 DHCP 설정을 조정합니다.
이 특정 단계는 VM에서 사용하는 게스트 OS에 따라 다릅니다. 예를 들어 게스트 OS가 RHEL 9 인 경우 이더넷 연결 구성을 참조하십시오.
검증
새로 생성된 브리지가 실행 중이고 호스트의 물리적 인터페이스와 VM의 인터페이스를 모두 포함합니다.
# ip link show master bridge0 2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000 link/ether 54:ee:75:49:dc:46 brd ff:ff:ff:ff:ff:ff 10: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UNKNOWN mode DEFAULT group default qlen 1000 link/ether fe:54:00:89:15:40 brd ff:ff:ff:ff:ff:ff
VM이 하이퍼바이저와 동일한 외부 네트워크에 표시되는지 확인합니다.
게스트 운영 체제에서 시스템의 네트워크 ID를 가져옵니다. 예를 들어 Linux 게스트인 경우 다음을 수행합니다.
# ip addr [...] enp0s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:09:15:46 brd ff:ff:ff:ff:ff:ff inet 10.0.0.150/24 brd 10.0.0.255 scope global dynamic noprefixroute enp0s0
로컬 네트워크에 연결된 외부 시스템에서 가져온 ID를 사용하여 VM에 연결합니다.
# ssh root@10.0.0.150 root@10.0.0.150's password: Last login: Mon Sep 24 12:05:36 2019 root~#*
연결이 작동하면 네트워크가 성공적으로 구성되어 있습니다.
문제 해결
VM이 클라이언트에서 호스팅되는 동안 클라이언트-사이트 VPN을 사용할 때와 같은 특정 상황에서는 VM을 외부 위치에서 사용할 수 있도록 브리지 모드를 사용할 수 없습니다.
이 문제를 해결하려면 VM에
nftables
를 사용하여 대상 NAT를 설정할 수 있습니다.